From Fedora Project Wiki

Revision as of 16:09, 20 June 2017 by Jcajka (talk | contribs)


Golang 1.9

Summary

Rebase of Golang package to upcoming version 1.9 in Fedora 27, including rebuild of all dependent packages(pre-release version of Go will be used for mass rebuild).

Owner

Current status

  • Targeted release: Fedora 27
  • Last updated: 2017-06-20
  • Tracker bug:

Detailed Description

Rebase of Golang package to upcoming version 1.9 in Fedora 27. Golang 1.9 is schedule to be released in Aug/Sep. Due to current nature of Go packages, rebuild of dependent package will be required to pick up the changes.

Along with the rebase I do propose to drop ppc64 from Go architectures(effectively disabling build of all packages adhering to draft Go packaging guidelines) as ppc64 port of "GC" is not feature complete(never were) and with Go 1.9 "GC" will be supporting only Power 8 and up. Due to limitation of the Go port impact should be fairly limited. Possible alternative could be switch to gccgo, but it is generally not used by upstreams and less tested than GC and move will most probably require nontrivial amount of packaging/debugging work.

Benefit to Fedora

Staying closely behind upstream by providing latest release of golang, which includes performance improvements among other bug fixes and new features. For complete list of changes see upstream change notes at https://tip.golang.org/doc/go1.9 . In result Fedora will be providing solid development platform for Go language.

Scope

  • Proposal owners: Rebase golang package in f27, help with resolving possible issues found during package rebuilds. Change Go packaging macros in way that will drop ppc64 builds.
  • Other developers: fix possible issues with help from golang maintainers
  • Release engineering: As there is scheduled mass-rebuild, nothing should be required.
  • Policies and guidelines: N/A
  • Trademark approval: N/A

Upgrade/compatibility impact

None

How To Test

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

User Experience

None

Dependencies

repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}\n' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'golang'
repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}\n' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'compiler(go-compiler)'
repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}\n' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'compiler(golang)'
arduino-builder
audit
flannel
golang
golang-github-BurntSushi-toml-test
golang-github-SeanDolphin-bqschema
golang-github-Sirupsen-logrus
golang-github-armon-gomdb
golang-github-docopt-docopt-go
golang-github-hashicorp-raft-mdb
golang-github-influxdb-go-cache
golang-github-influxdb-gomdb
golang-github-mreiferson-go-httpclient
golang-github-openshift-go-json-rest
golang-github-openshift-go-systemd
golang-github-prometheus-client_model
golang-github-prometheus-prometheus
golang-github-racker-perigee
golang-github-rakyll-globalconf
golang-github-rakyll-statik
golang-github-rcrowley-go-metrics
golang-github-ryanuber-columnize
golang-github-samalba-dockerclient
golang-github-samuel-go-zookeeper
golang-github-skarademir-naturalsort
golang-github-skratchdot-open-golang
golang-github-skynetservices-skydns
golang-github-smartystreets-go-aws-auth
golang-github-spacemonkeygo-flagfile
golang-github-spacemonkeygo-spacelog
golang-github-stathat-go
golang-github-syndtr-gocapability
golang-github-syndtr-goleveldb
golang-github-tent-http-link-go
golang-github-tonnerre-golang-pretty
golang-github-vaughan0-go-ini
golang-github-vmware-govcloudair
golang-googlecode-gcfg
golang-googlecode-gomock
golang-googlecode-log4go
golang-googlecode-sqlite
gotags
htrace
kubernetes
origin
reg
rkt
swig
tmux-top
atomic
buildah
cadvisor
consul
containernetworking-cni
direnv
docker
docker-distribution
docker-latest
etcd
glide
go-bindata
go-i18n
godep
gofed
golang-bitbucket-kardianos-osext
golang-bitbucket-ww-goautoneg
golang-github-10gen-openssl
golang-github-3rf-mongo-lint
golang-github-AdRoll-goamz
golang-github-AudriusButkevicius-cli
golang-github-AudriusButkevicius-go-nat-pmp
golang-github-AudriusButkevicius-pfilter
golang-github-Azure-azure-sdk-for-go
golang-github-BurntSushi-toml
golang-github-DATA-DOG-go-sqlmock
golang-github-DataDog-datadog-go
golang-github-MakeNowJust-heredoc
golang-github-Masterminds-semver
golang-github-Masterminds-vcs
golang-github-PuerkitoBio-purell
golang-github-PuerkitoBio-urlesc
golang-github-RangelReale-osin
golang-github-RangelReale-osincli
golang-github-Shopify-sarama
golang-github-Shopify-toxiproxy
golang-github-abbot-go-http-auth
golang-github-agl-ed25519
golang-github-akrennmair-gopcap
golang-github-appc-spec
golang-github-armon-circbuf
golang-github-armon-go-metrics
golang-github-armon-go-radix
golang-github-asaskevich-govalidator
golang-github-auth0-go-jwt-middleware
golang-github-aws-aws-sdk-go
golang-github-beorn7-perks
golang-github-bep-gitmap
golang-github-bep-inflect
golang-github-bgentry-speakeasy
golang-github-bkaradzic-go-lz4
golang-github-blang-semver
golang-github-bmizerany-assert
golang-github-bmizerany-pat
golang-github-bmizerany-perks
golang-github-boltdb-bolt
golang-github-bradfitz-http2
golang-github-bugsnag-bugsnag-go
golang-github-bugsnag-panicwrap
golang-github-calmh-du
golang-github-calmh-luhn
golang-github-calmh-xdr
golang-github-ccding-go-stun
golang-github-cenkalti-backoff
golang-github-chaseadamsio-goorgeous
golang-github-cheggaaa-pb
golang-github-chmduquesne-rollinghash
golang-github-circonus-labs-circonus-gometrics
golang-github-circonus-labs-circonusllhist
golang-github-cloudfoundry-incubator-candiedyaml
golang-github-cockroachdb-cmux
golang-github-codegangsta-cli
golang-github-codegangsta-negroni
golang-github-collectd-go-collectd
golang-github-coreos-gexpect
golang-github-coreos-go-etcd
golang-github-coreos-go-iptables
golang-github-coreos-go-log
golang-github-coreos-go-oidc
golang-github-coreos-go-semver
golang-github-coreos-go-systemd
golang-github-coreos-pkg
golang-github-cpuguy83-go-md2man
golang-github-cznic-b
golang-github-cznic-fileutil
golang-github-cznic-internal
golang-github-cznic-mathutil
golang-github-cznic-sortutil
golang-github-cznic-strutil
golang-github-d2g-dhcp4
golang-github-d2g-dhcp4client
golang-github-d4l3k-messagediff
golang-github-davecgh-go-spew
golang-github-daviddengcn-go-colortext
golang-github-dchest-cssmin
golang-github-denverdino-aliyungo
golang-github-dgnorton-goback
golang-github-dgrijalva-jwt-go
golang-github-digitalocean-godo
golang-github-docker-go
golang-github-docker-go-connections
golang-github-docker-go-units
golang-github-docker-libcontainer
golang-github-docker-libkv
golang-github-docker-libtrust
golang-github-docker-spdystream
golang-github-dustin-go-humanize
golang-github-dvsekhvalnov-jose2go
golang-github-eapache-go-resiliency
golang-github-eapache-queue
golang-github-edsrzf-mmap-go
golang-github-eknkc-amber
golang-github-elazarl-go-bindata-assetfs
golang-github-emicklei-go-restful
golang-github-endophage-gotuf
golang-github-evanphx-json-patch
golang-github-fatih-pool
golang-github-fortytw2-leaktest
golang-github-fsnotify-fsnotify
golang-github-fsouza-go-dockerclient
golang-github-garyburd-redigo
golang-github-gengo-grpc-gateway
golang-github-getsentry-raven-go
golang-github-ghodss-yaml
golang-github-glacjay-goini
golang-github-go-asn1-ber-asn1-ber
golang-github-go-errors-errors
golang-github-go-fsnotify-fsnotify
golang-github-go-ini-ini
golang-github-go-ldap-ldap
golang-github-go-macaron-inject
golang-github-go-mgo-mgo
golang-github-go-sql-driver-mysql
golang-github-go-tomb-tomb
golang-github-gobwas-glob
golang-github-godbus-dbus
golang-github-golang-appengine
golang-github-golang-glog
golang-github-golang-groupcache
golang-github-golang-sys
golang-github-golang-time
golang-github-gonum-blas
golang-github-gonum-floats
golang-github-gonum-graph
golang-github-gonum-internal
golang-github-gonum-lapack
golang-github-gonum-matrix
golang-github-google-btree
golang-github-google-go-github
golang-github-google-go-querystring
golang-github-google-gofuzz
golang-github-goraft-raft
golang-github-gorilla-context
golang-github-gorilla-handlers
golang-github-gorilla-mux
golang-github-gorilla-securecookie
golang-github-gorilla-sessions
golang-github-gorilla-websocket
golang-github-gosexy-gettext
golang-github-grpc-ecosystem-go-grpc-prometheus
golang-github-grpc-ecosystem-grpc-gateway
golang-github-grpc-grpc-go
golang-github-hashicorp-consul-migrate
golang-github-hashicorp-errwrap
golang-github-hashicorp-go-checkpoint
golang-github-hashicorp-go-cleanhttp
golang-github-hashicorp-go-immutable-radix
golang-github-hashicorp-go-memdb
golang-github-hashicorp-go-msgpack
golang-github-hashicorp-go-multierror
golang-github-hashicorp-go-retryablehttp
golang-github-hashicorp-go-sockaddr
golang-github-hashicorp-go-syslog
golang-github-hashicorp-go-uuid
golang-github-hashicorp-golang-lru
golang-github-hashicorp-hcl
golang-github-hashicorp-hil
golang-github-hashicorp-logutils
golang-github-hashicorp-mdns
golang-github-hashicorp-memberlist
golang-github-hashicorp-net-rpc-msgpackrpc
golang-github-hashicorp-raft
golang-github-hashicorp-raft-boltdb
golang-github-hashicorp-scada-client
golang-github-hashicorp-serf
golang-github-hashicorp-yamux
golang-github-hawkular-hawkular-client-go
golang-github-howeyc-gopass
golang-github-imdario-mergo
golang-github-inconshreveable-mousetrap
golang-github-inconshreveable-muxado
golang-github-influxdb-hyperleveldb-go
golang-github-influxdb-influxdb
golang-github-influxdb-rocksdb
golang-github-jackpal-gateway
golang-github-jacobsa-oglematchers
golang-github-jessevdk-go-flags
golang-github-jfrazelle-go
golang-github-jinzhu-gorm
golang-github-jmespath-go-jmespath
golang-github-jmhodges-levigo
golang-github-jonboulle-clockwork
golang-github-jtolds-gls
golang-github-juju-ratelimit
golang-github-julienschmidt-httprouter
golang-github-karlseguin-ccache
golang-github-karlseguin-expect
golang-github-kballard-go-shellquote
golang-github-kdar-factorlog
golang-github-kimor79-gollectd
golang-github-klauspost-cpuid
golang-github-klauspost-crc32
golang-github-klauspost-reedsolomon
golang-github-knieriem-markdown
golang-github-kr-fs
golang-github-kr-pretty
golang-github-kr-pty
golang-github-kr-text
golang-github-kubernetes-heapster
golang-github-kyokomi-emoji
golang-github-lib-pq
golang-github-lpabon-godbc
golang-github-lsegal-gucumber
golang-github-magiconair-properties
golang-github-mattn-go-isatty
golang-github-mattn-go-runewidth
golang-github-mattn-go-sqlite3
golang-github-matttproud-golang_protobuf_extensions
golang-github-mesos-mesos-go
golang-github-miekg-dns
golang-github-miekg-mmark
golang-github-miekg-pkcs11
golang-github-milochristiansen-axis2
golang-github-milochristiansen-lua
golang-github-minio-sha256-simd
golang-github-mistifyio-go-zfs
golang-github-mitchellh-cli
golang-github-mitchellh-copystructure
golang-github-mitchellh-go-homedir
golang-github-mitchellh-go-wordwrap
golang-github-mitchellh-goamz
golang-github-mitchellh-mapstructure
golang-github-mitchellh-reflectwalk
golang-github-mvo5-goconfigparser
golang-github-mvo5-uboot-go
golang-github-mxk-go-flowrate
golang-github-ncw-swift
golang-github-noahdesu-go-ceph
golang-github-ojii-gettext.go
golang-github-olekukonko-tablewriter
golang-github-olekukonko-ts
golang-github-olivere-elastic
golang-github-onsi-ginkgo
golang-github-onsi-gomega
golang-github-opencontainers-runtime-spec
golang-github-opencontainers-specs
golang-github-oschwald-geoip2-golang
golang-github-oschwald-maxminddb-golang
golang-github-pelletier-go-buffruneio
golang-github-pelletier-go-toml
golang-github-petar-GoLLRB
golang-github-peterh-liner
golang-github-petermattis-goid
golang-github-pkg-errors
golang-github-pkg-profile
golang-github-pkg-sftp
golang-github-pmezard-go-difflib
golang-github-prometheus-client_golang
golang-github-prometheus-common
golang-github-prometheus-procfs
golang-github-rackspace-gophercloud
golang-github-rakyll-pb
golang-github-remyoudompheng-bigfft
golang-github-russross-blackfriday
golang-github-sasha-s-go-deadlock
golang-github-seccomp-libseccomp-golang
golang-github-shiena-ansicolor
golang-github-shurcooL-sanitized_anchor_name
golang-github-smartystreets-assertions
golang-github-smartystreets-goconvey
golang-github-spacejam-loghisto
golang-github-spf13-afero
golang-github-spf13-cast
golang-github-spf13-cobra
golang-github-spf13-fsync
golang-github-spf13-jWalterWeatherman
golang-github-spf13-nitro
golang-github-spf13-pflag
golang-github-spf13-viper
golang-github-stevvooe-resumable
golang-github-stretchr-objx
golang-github-stretchr-testify
golang-github-syndtr-gosnappy
golang-github-tchap-go-patricia
golang-github-thejerf-suture
golang-github-ugorji-go
golang-github-urfave-cli
golang-github-vbatts-tar-split
golang-github-vishvananda-netlink
golang-github-vishvananda-netns
golang-github-vitrun-qart
golang-github-vjeantet-asn1-ber
golang-github-wsxiaoys-terminal
golang-github-xeipuuv-gojsonpointer
golang-github-xeipuuv-gojsonreference
golang-github-xeipuuv-gojsonschema
golang-github-xiang90-probing
golang-github-xtaci-kcp-go
golang-github-xtaci-smux
golang-github-yosssi-ace
golang-github-yosssi-gohtml
golang-github-yvasiyarov-go-metrics
golang-github-yvasiyarov-gorelic
golang-github-yvasiyarov-newrelic_platform_go
golang-github-zillode-notify
golang-google-golangorg-cloud
golang-googlecode-go-crypto
golang-googlecode-go-decimal-inf
golang-googlecode-go-exp
golang-googlecode-goauth2
golang-googlecode-gogoprotobuf
golang-googlecode-google-api-client
golang-googlecode-goprotobuf
golang-googlecode-net
golang-googlecode-text
golang-googlecode-tools
golang-googlecode-uuid
golang-gopkg-check
golang-gopkg-go-check-check
golang-gopkg-go-macaroon-macaroon
golang-gopkg-retry-v1
golang-gopkg-yaml
golint
gomtree
gotun
heketi
hub
kompose
mongo-tools
oci-register-machine
ocid
ocitools
runc
skopeo
snapd
source-to-image

Not all of listed require re-build as they might not ship binaries.

Contingency Plan

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

Documentation

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

Release Notes