From Fedora Project Wiki
m
 
(7 intermediate revisions by 2 users not shown)
Line 24: Line 24:
  
 
== Summary ==
 
== Summary ==
Rebase of Golang package to upcoming version 1.16 in Fedora 34, including the rebuild of all dependent packages(the pre-release version of Go will be used for the rebuild if released version will not be available at the time of the mass rebuild).
+
The Go compiler is updated to the upcoming version 1.16 in Fedora 34, and all golang packages are rebuilt. (The pre-release version of Go will be used for the rebuild if released version will not be available at the time of the mass rebuild).
 
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. -->
 
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. -->
  
Line 46: Line 46:
 
== Current status ==
 
== Current status ==
 
[[Category:SystemWideChange]]
 
[[Category:SystemWideChange]]
 +
[[Category:ChangeAcceptedF34]]
  
 
* Targeted release: [[Releases/34 | Fedora 34 ]]  
 
* Targeted release: [[Releases/34 | Fedora 34 ]]  
Line 57: Line 58:
 
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
 
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
 
-->
 
-->
 +
* FESCo issue: [https://pagure.io/fesco/issue/2531 #2531]
 +
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1913835 #1913835]
 +
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/629 #629]
  
 
== Detailed Description ==
 
== Detailed Description ==
  
 
Rebase of Golang package to upcoming version 1.16 in Fedora 34. Golang 1.16 is scheduled to be released in February 2021.
 
Rebase of Golang package to upcoming version 1.16 in Fedora 34. Golang 1.16 is scheduled to be released in February 2021.
Due to Go packages' current nature and state, the rebuild of dependent packages will require the changes.
+
Due to Go packages' current nature and state, the rebuild of dependent packages will be required.
  
 
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
 
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
 
== Benefit to Fedora ==
 
== Benefit to Fedora ==
  
Stay closely behind upstream by providing the latest release of Go, which includes performance improvements and improvements in support for currently supported platforms, among other bug fixes and new features. For a complete list of changes, see upstream change notes at https://tip.golang.org/doc/go1.16 . Therefore Fedora will be providing a reliable development platform for Go language.
+
Stay closely behind upstream by providing the latest release of Go, which includes improved support of the risc-v processor architecture and added support for aarch64 based darwin(macOS) machines, among other bug fixes, enhancements and new features. For a complete list of changes, see upstream change notes at https://tip.golang.org/doc/go1.16 . Therefore Fedora will be providing a reliable development platform for Go language and projects written in it.
 
   
 
   
 
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?-->
 
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?-->
Line 76: Line 80:
 
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
 
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
  
* Release engineering: Rebuild of dependent packages as part of planned mass-rebuild. <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
* Release engineering: Rebuild of dependent packages as part of planned mass-rebuild. Tracking issue.[https://pagure.io/releng/issue/9904] <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
 
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuid required?  If a rel-eng ticket exists, add a link here.  
 
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuid required?  If a rel-eng ticket exists, add a link here.  
 
Please work with releng prior to feature submission, and ensure that someone is on board to do any process development work and testing; don't just assume that a bullet point in a change puts someone else on the hook.-->
 
Please work with releng prior to feature submission, and ensure that someone is on board to do any process development work and testing; don't just assume that a bullet point in a change puts someone else on the hook.-->

Latest revision as of 17:21, 7 January 2021


Golang 1.16

Summary

The Go compiler is updated to the upcoming version 1.16 in Fedora 34, and all golang packages are rebuilt. (The pre-release version of Go will be used for the rebuild if released version will not be available at the time of the mass rebuild).

Owner

Current status

Detailed Description

Rebase of Golang package to upcoming version 1.16 in Fedora 34. Golang 1.16 is scheduled to be released in February 2021. Due to Go packages' current nature and state, the rebuild of dependent packages will be required.

Benefit to Fedora

Stay closely behind upstream by providing the latest release of Go, which includes improved support of the risc-v processor architecture and added support for aarch64 based darwin(macOS) machines, among other bug fixes, enhancements and new features. For a complete list of changes, see upstream change notes at https://tip.golang.org/doc/go1.16 . Therefore Fedora will be providing a reliable development platform for Go language and projects written in it.

Scope

  • Proposal owners: Rebase Golang package in Fedora 34, help resolve possible issues found during package rebuilds.
  • Other developers: Fix possible issues, with help from Golang maintainers.
  • Release engineering: Rebuild of dependent packages as part of planned mass-rebuild. Tracking issue.[1]
  • Policies and guidelines: N/A
  • Trademark approval: N/A

Upgrade/compatibility impact

None

How To Test

0.
a) Install golang 1.16 from rawhide and use it to build your application(s)/package(s).
b) Scratch build against rawhide.
1.
Your application/package built using golang 1.16 should work as expected.

User Experience

None

Dependencies

dnf repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'golang'
dnf repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'compiler(go-compiler)'
dnf repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'compiler(golang)'
dnf repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'go-rpm-macros'
Omitted due to the number of packages listed ~1600.

Not all of listed require re-build as they might not ship binaries and/or do not use golang compiler during build, but only use Go rpm macros that pull it in to every build root.

Contingency Plan

  • Contingency mechanism:Reverting to golang version 1.15.X if significant issues are discovered.
  • Contingency deadline: Beta Freeze(?)
  • Blocks release? No
  • Blocks product? No

Documentation

https://tip.golang.org/doc/go1.16

Release Notes