golang-bitbucket-bertimus9-systemstat golang-bitbucket-creachadair-shell golang-code-cloudfoundry-bytefmt golang-code-cloudfoundry-clock golang-collectd golang-contrib-opencensus-exporter-stackdriver golang-contrib-opencensus-resource golang-github-abbot-http-auth golang-github-abourget-teamcity golang-github-acme-lego golang-github-adroll-goamz golang-github-afex-hystrix golang-github-ajstarks-deck golang-github-akamai-akamaiopen-edgegrid golang-github-akavel-rsrc golang-github-alexflint-filemutex golang-github-aliyun-alibaba-cloud-sdk golang-github-aliyun-oss-sdk golang-github-andreyvit-diff golang-github-andy-kimball-arenaskl golang-github-apache-arrow golang-github-apache-thrift golang-github-apex-log golang-github-aphistic-sweet golang-github-appc-docker2aci golang-github-appc-goaci golang-github-armon-metrics golang-github-armon-proxyproto golang-github-armon-radix golang-github-asn1-ber golang-github-audriusbutkevicius-cli golang-github-audriusbutkevicius-nat-pmp golang-github-auth0-go-jwt-middleware golang-github-aws-sdk-2 golang-github-aws-sdk golang-github-axiomhq-hyperloglog golang-github-aybabtme-rgbterm golang-github-azure-ansiterm golang-github-azure-sdk golang-github-backtrace-labs-bcd golang-github-baiyubin-aliyun-sts-sdk golang-github-benesch-cgosymbolizer golang-github-benlaurie-objecthash golang-github-bfirsh-funker golang-github-bgentry-netrc golang-github-bifurcation-mint golang-github-biogo-store golang-github-bouk-httprouter golang-github-bshuster-repo-logrus-logstash-hook golang-github-bsphere-le golang-github-bugsnag golang-github-burntsushi-graphics golang-github-burntsushi-toml golang-github-burntsushi-toml-test golang-github-burntsushi-xgb golang-github-burntsushi-xgbutil golang-github-cactus-statsd-client golang-github-casbin golang-github-c-bata-prompt golang-github-cbroglie-mapstructure golang-github-ceph golang-github-certifi-gocertifi golang-github-chai2010-gettext golang-github-checkpoint-restore-criu golang-github-cheekybits-genny golang-github-chi golang-github-chrismalek-oktasdk golang-github-circonus-labs-apiclient golang-github-clbanning-x2j golang-github-client9-plaintext golang-github-cloudflare-backoff golang-github-cloudflare-cfssl golang-github-cloudflare-metrics golang-github-cloudflare-redoctober golang-github-clusterhq-flocker golang-github-cockroachdb-apd golang-github-cockroachdb-circuitbreaker golang-github-cockroachdb-cockroach-go golang-github-cockroachdb-cockroach golang-github-cockroachdb-returncheck golang-github-cockroachdb-ttycolor golang-github-codegangsta-inject golang-github-containerd-aufs golang-github-containerd-btrfs golang-github-containerd-cgroups golang-github-containerd-cni golang-github-containerd-console golang-github-containerd-continuity golang-github-containerd-cri golang-github-containerd-fifo golang-github-containerd-runc golang-github-containerd-ttrpc golang-github-containerd-typeurl golang-github-containerd-zfs golang-github-containernetworking-cni golang-github-containernetworking-plugins golang-github-container-storage-interface-spec golang-github-coreos-ioprogress golang-github-coreos-iptables golang-github-coreos-log golang-github-coreos-oidc golang-github-coreos-semver golang-github-coreos-semver golang-github-coreos-systemd golang-github-cpuguy83-md2man golang-github-crossdock golang-github-cyphar-filepath-securejoin golang-github-d2g-dhcp4server golang-github-daaku-zipexe golang-github-DataDog-datadog golang-github-data-dog-sqlmock golang-github-davecgh-go-spew golang-github-davecgh-xdr golang-github-dave-jennifer golang-github-daviddengcn-colortext golang-github-deckarep-set golang-github-decker502-dnspod golang-github-denisenkom-go-mssqldb golang-github-dgrijalva-jwt golang-github-dgryski-metro golang-github-disintegration-gift golang-github-djherbis-buffer golang-github-djherbis-nio golang-github-dnsimple golang-github-docker-compose-on-kubernetes golang-github-docker-connections golang-github-docker-credential-helpers golang-github-docker-distribution golang-github-docker-events golang-github-docker-libnetwork golang-github-docker-libtrust golang-github-docker-licensing golang-github-docker-metrics golang-github-docker-swarmkit golang-github-docker-units golang-github-duosecurity-duo-api golang-github-dustin-broadcast golang-github-dustin-humanize golang-github-eapache-resiliency golang-github-edsrzf-mmap golang-github-elastic-gosigar golang-github-elazarl-bindata-assetfs golang-github-elazarl-goproxy golang-github-emicklei-restful golang-github-emicklei-restful-swagger12 golang-github-erikstmartin-testdb golang-github-errors golang-github-exponent-io-jsonpath golang-github-facebookgo-clock golang-github-facebookgo-httpdown golang-github-facebookgo-stats golang-github-fatih-camelcase golang-github-fernet golang-github-fluent-logger golang-github-flynn-shlex golang-github-franela-goblin golang-github-franela-goreq golang-github-freetype golang-github-fsnotify golang-github-fsouza-dockerclient golang-github-gddo golang-github-geertjohan-incremental golang-github-geertjohan-rice golang-github-getkin-kin-openapi golang-github-getsentry-raven golang-github-ghemawat-stream golang-github-gin-contrib-sse golang-github-gin-gonic-autotls golang-github-gin-gonic golang-github-gocql golang-github-gofrs-uuid golang-github-gogo-googleapis golang-github-gogo-protobuf golang-github-goji-httpauth golang-github-goji-param golang-github-golangplus-bytes golang-github-golangplus-fmt golang-github-gomarkdown-markdown golang-github-googleapis-gax golang-github-googleapis-gnostic golang-github-google-cmp golang-github-google-flatbuffers golang-github-google-querystring golang-github-google-shlex golang-github-google-subcommands golang-github-google-trillian golang-github-google-tspi golang-github-gophercloud golang-github-gorilla-schema golang-github-graylog2-gelf golang-github-grpc-ecosystem-gateway golang-github-grpc-ecosystem-opentracing golang-github-grpc-ecosystem-prometheus golang-github-gucumber golang-github-h2non-gock golang-github-h2non-parth golang-github-hailocab-go-hostpool golang-github-hashicorp-checkpoint golang-github-hashicorp-cleanhttp golang-github-hashicorp-consul-api golang-github-hashicorp-consul-sdk golang-github-hashicorp-gcp-common golang-github-hashicorp-go-memdb golang-github-hashicorp-go-multierror golang-github-hashicorp-go-sockaddr golang-github-hashicorp-hclog golang-github-hashicorp-immutable-radix golang-github-hashicorp-lru golang-github-hashicorp-msgpack golang-github-hashicorp-nomad golang-github-hashicorp-plugin golang-github-hashicorp-retryablehttp golang-github-hashicorp-rootcerts golang-github-hashicorp-syslog golang-github-hashicorp-uuid golang-github-hashicorp-vault golang-github-hawkular-client golang-github-heketi golang-github-hudl-fargo golang-github-hydrogen18-stoppablelistener golang-github-ianlancetaylor-cgosymbolizer golang-github-iij-doapi golang-github-ijc-gotty golang-github-inconshreveable-vhost golang-github-influxdata-flux golang-github-influxdata-influxdb1-client golang-github-influxdata-influxql golang-github-influxdata-line-protocol golang-github-influxdata-roaring golang-github-influxdata-tdigest golang-github-influxdata-usage-client golang-github-influxdb-cache golang-github-ishidawataru-sctp golang-github-jackc-fake golang-github-jackc-pgx golang-github-jaguilar-vt100 golang-github-jamesclonk-vultr golang-github-jeffail-gabs golang-github-jessevdk-assets golang-github-jessevdk-flags golang-github-jimstudt-http-authentication golang-github-jinzhu-inflection golang-github-j-keck-arping golang-github-jmespath-jmespath golang-github-jmhodges-clock golang-github-jmoiron-sqlx golang-github-joho-godotenv golang-github-json-iterator golang-github-jsternberg-zap-logfmt golang-github-jung-kurt-gofpdf golang-github-jwilder-encoding golang-github-k0kubun-ansi golang-github-kardianos-osext golang-github-karrick-godirwalk golang-github-kballard-shellquote golang-github-keybase-crypto golang-github-kisielk-sqlstruct golang-github-kisom-goutils golang-github-kit golang-github-klauspost-pgzip golang-github-knetic-govaluate golang-github-knz-libedit golang-github-knz-strtime golang-github-kr-logfmt golang-github-leveldb golang-github-libopenstorage-openstorage golang-github-lightstep-tracer-common golang-github-lightstep-tracer golang-github-linkedin-goavro golang-github-linuxkit-virtsock golang-github-logfmt golang-github-logr golang-github-lucas-clemente-aes12 golang-github-lucas-clemente-quic-certificates golang-github-lucas-clemente-quic golang-github-lusis-slack-test golang-github-m3db-prometheus-client-model golang-github-m3db-prometheus-client golang-github-macaron-inject golang-github-mailru-easyjson golang-github-makenowjust-heredoc golang-github-manucorporat-stats golang-github-marten-seemann-qtls golang-github-martini-contrib-render golang-github-martini golang-github-maruel-panicparse golang-github-marusama-semaphore golang-github-masterminds-semver golang-github-masterminds-vcs golang-github-mattn-colorable golang-github-mattn-isatty golang-github-mattn-runewidth golang-github-mattn-sqlite3 golang-github-matttproud-protobuf-extensions golang-github-mesos golang-github-mholt-caddy golang-github-mholt-certmagic golang-github-michaeltjones-walk golang-github-microsoft-opengcs golang-github-mindprince-gonvml golang-github-mistifyio-zfs golang-github-mitchellh-colorstring golang-github-mitchellh-homedir golang-github-mitchellh-testing-interface golang-github-mitchellh-vnc golang-github-mitchellh-wordwrap golang-github-mjibson-appstats golang-github-mmarkdown-mmark golang-github-moby-buildkit golang-github-mock golang-github-modern-concurrent golang-github-modern-reflect2 golang-github-morikuni-aec golang-github-mreiferson-httpclient golang-github-mrunalp-fileutils golang-github-mvo5-uboot golang-github-mwitkow-conntrack golang-github-mxk-flowrate golang-github-naoina-stringutil golang-github-naoina-toml golang-github-nats-io-jwt golang-github-nats-io-nkeys golang-github-nats-io-nuid golang-github-nats-io-streaming-server golang-github-nbio-st golang-github-nkovacs-streamquote golang-github-nlopes-slack golang-github-nrdcg-goinwx golang-github-nytimes-gziphandler golang-github-oklog-ulid golang-github-oneofone-xxhash golang-github-openapi-errors golang-github-openapi-jsonpointer golang-github-openapi-jsonreference golang-github-openapi-loads golang-github-openapi-spec golang-github-openapi-strfmt golang-github-openapi-swag golang-github-openapi-validate golang-github-opencontainers-digest golang-github-opencontainers-image-spec golang-github-opencontainers-runc golang-github-opencontainers-selinux golang-github-opentracing-basictracer golang-github-opentracing-contrib-grpc golang-github-opentracing-contrib-observer golang-github-opentracing-contrib-stdlib golang-github-openzipkin-contrib-zipkin-opentracing golang-github-op-logging golang-github-oracle-oci-sdk golang-github-oschwald-geoip2 golang-github-oschwald-maxminddb golang-github-oxtoacart-bpool golang-github-pact-foundation golang-github-patrickmn-cache golang-github-paulbellamy-ratecounter golang-github-paulrosania-charset golang-github-pborman-getopt golang-github-pborman-uuid golang-github-pelletier-buffruneio golang-github-pelletier-toml golang-github-performancecopilot-speed golang-github-petar-gollrb golang-github-peterbourgon-g2s golang-github-phayes-permbits golang-github-pmezard-difflib golang-github-posener-complete golang-github-pquerna-ffjson golang-github-prometheus-client golang-github-prometheus golang-github-prometheus-tsdb golang-github-protobuf golang-github-puerkitobio-goquery golang-github-puerkitobio-purell golang-github-puerkitobio-urlesc golang-github-quobyte-api golang-github-racksec-srslog golang-github-rancher golang-github-rasky-xdr golang-github-rcrowley-metrics golang-github-remyoudompheng-bigfft golang-github-renstrom-dedent golang-github-retailnext-hllpp golang-github-revel-config golang-github-revel-log15 golang-github-revel-pathtree golang-github-revel golang-github-rogpeppe-charset golang-github-rogpeppe-internal golang-github-rs-cors golang-github-rs-xid golang-github-rs-zerolog golang-github-rubiojr-vhd golang-github-rwcarlsen-goexif golang-github-ryanuber-glob golang-github-sacloud-libsacloud golang-github-safchain-ethtool golang-github-sap-hdb golang-github-schollz-progressbar-2 golang-github-seandolphin-bqschema golang-github-sean-seed golang-github-seccomp-libseccomp golang-github-segmentio-kafka golang-github-sendgrid-rest golang-github-sendgrid golang-github-sergi-diff golang-github-serialx-hashring golang-github-sermodigital-jose golang-github-shogo82148-shuffle golang-github-shopify-logrus-bugsnag golang-github-shopify-sarama golang-github-shopify-toxiproxy golang-github-shurcool-sanitized-anchor-name golang-github-shurcool-vfsgen golang-github-sigma-inotify golang-github-simonpasquier-klog-gokit golang-github-sirupsen-logrus golang-github-skratchdot-open golang-github-smartystreets-aws-auth golang-github-smartystreets-gunit golang-github-sony-gobreaker golang-github-sql-driver-mysql golang-github-sstarcher-okta golang-github-stathat golang-github-storageos-api golang-github-streadway-handy golang-github-t3rm1n4l-mega golang-github-tchap-patricia golang-github-tcnksm-input golang-github-tent-http-link golang-github-thecodeteam-goscaleio golang-github-theupdateframework-notary golang-github-thinkerou-favicon golang-github-tomasen-realip golang-github-tonistiigi-fsutil golang-github-tonistiigi-immutable-radix golang-github-tonistiigi-units golang-github-twinj-uuid golang-github-uber-jaeger-client golang-github-uber-tally golang-github-ugorji golang-github-urfave-negroni golang-github-valyala-bytebufferpool golang-github-valyala-fasttemplate golang-github-vdemeester-shakers golang-github-vividcortex-gohistogram golang-github-vmware-govmomi golang-github-vmware-photon-controller-sdk golang-github-vmware-vmw-guestinfo golang-github-xanzy-cloudstack golang-github-xdg-scram golang-github-xeonx-timeago golang-github-xi2-xz golang-github-xlab-treeprint golang-github-xorm-sqlfiddle golang-github-yvasiyarov-metrics golang-github-yvasiyarov-newrelic-platform golang-github-zenazn-goji golang-github-ziutek-mymysql golang-gitlab-commonmark-html golang-gitlab-commonmark-linkify golang-gitlab-commonmark-markdown golang-gitlab-commonmark-mdurl golang-gitlab-commonmark-puny golang-gitlab-opennota-wd golang-golang-sys golang-gonum-1-plot golang-gonum-1 golang-google-api golang-googlecode-tools golang-google-genproto golang-gopkg-alecthomas-kingpin-2 golang-gopkg-alexcesaro-quotedprintable-3 golang-gopkg-aphistic-golf-0 golang-gopkg-bufio-1 golang-gopkg-check-1 golang-gopkg-cheggaaa-pb-1 golang-gopkg-errgo-2 golang-gopkg-fatih-pool-2 golang-gopkg-fsnotify-0 golang-gopkg-gcfg-1 golang-gopkg-gorethink-3 golang-gopkg-inf-0 golang-gopkg-ini-1 golang-gopkg-ldap-3 golang-gopkg-logex-1 golang-gopkg-macaron-1 golang-gopkg-macaroon-1 golang-gopkg-mail-2 golang-gopkg-mcuadros-syslog-2 golang-gopkg-mgo-2 golang-gopkg-olivere-elastic-2 golang-gopkg-playground-assert-1 golang-gopkg-playground-validator-8 golang-gopkg-redis-2 golang-gopkg-retry-1 golang-gopkg-robfig-cron-2 golang-gopkg-robfig-cron-3 golang-gopkg-russross-blackfriday-1 golang-gopkg-russross-blackfriday-2 golang-gopkg-src-d-billy-4 golang-gopkg-src-d-git-4 golang-gopkg-stack-0 golang-gopkg-tomb-1 golang-gopkg-tomb-2 golang-gopkg-tylerb-graceful-1 golang-gopkg-validator-2 golang-gopkg-vmihailenco-msgpack-2 golang-gopkg-warnings-0 golang-gopkg-yaml-1 golang-gopkg-yaml-2 golang-gopkg-yaml-3 golang-gopkg-yaml golang-gotest golang-k8s-apiextensions-apiserver golang-k8s-apimachinery golang-k8s-apiserver golang-k8s-api golang-k8s-client golang-k8s-cli-runtime golang-k8s-cloud-provider golang-k8s-cluster-bootstrap golang-k8s-code-generator golang-k8s-component-base golang-k8s-csi-api golang-k8s-gengo golang-k8s-heapster golang-k8s-klog golang-k8s-kube-aggregator golang-k8s-kube-controller-manager golang-k8s-kubelet golang-k8s-kube-openapi golang-k8s-kube-proxy golang-k8s-kube-scheduler golang-k8s-metrics golang-k8s-sample-apiserver golang-k8s-sample-cli-plugin golang-k8s-sample-controller golang-k8s-utils golang-modernc-b golang-modernc-db golang-modernc-file golang-modernc-fileutil golang-modernc-golex golang-modernc-internal golang-modernc-lexer golang-modernc-lex golang-modernc-lldb golang-modernc-mathutil golang-modernc-ql golang-modernc-sortutil golang-modernc-strutil golang-modernc-zappy golang-mvdan-xurls golang-nats-io-gnatsd golang-pedge-env golang-pedge-lion golang-rsc-letsencrypt golang-sigs-k8s-structured-merge-diff golang-sigs-k8s-yaml golang-sourcegraph-appdash-data golang-sourcegraph-appdash golang-uber-ratelimit golang-vitess golang-x-crypto golang-x-exp golang-x-image golang-x-lint golang-x-mobile golang-x-oauth2 golang-x-text golang-x-time
(maybe a few more later)
I'd like to request an exception for all packages needed to be renamed and added as part of Adopt new Go Packaging Guidelines.
All the above packages have been written according to the new guidelines and autogenerated with go2rpm. Licenses are autodetected, tests are mostly passing (failing tests are documented), everything have been built in COPR: https://copr.fedorainfracloud.org/coprs/eclipseo/golang-ng/builds/
+1
I still don't think that the go macros should be case insensitive. After all, both the GitHub project and repo, and the import paths, preserve case sensitivity. So in my opinion, the package names should reflect that as well. So, a lot of these package renamings are only necessary because the new %goname macro replaces upper case letters with lower case ones ....
For the record, I would +1 a review process exception for any package rename that merely downcases an existing name. But of course the package maintainers should actually coordinate to make sure that those involved actually want it to happen.
In fact, I'd welcome a more general discussion on whether we still need re-review on package renames. But that would be for a separate ticket.
In any case, please make sure that the maintainers actually want this to happen. If this is just to placate some macro thing somewhere, then it is probably prudent to ensure that the macro is actually doing the right thing.
Can this be reviewed next meeting, all the building blocks are in place for us to start the rebuilding, which will take a long time to do.
@tibbs as a not a FPC member, just a Go SIG member I share some worries as you do. @eclipseo Please make sure that this is widely communicated prior to it happening.
I have one question what is being used to do automatic license detection?
@tibbs as a not a FPC member, just a Go SIG member I share some worries as you do. @eclipseo Please make sure that this is widely communicated prior to it happening. I have one question what is being used to do automatic license detection?
Askalono: https://github.com/amzn/askalono
The renamings are just a side-effect of refreshing and streamlining all this huge mass of specs. Sure one could special-case all the packages that were named using other rules in the past, but that would only entrench technical debt with ongoing long-term management costs.
Some existing names reflect namings upstream abandoned a long time ago, others are not regular, casing causes problems upstream so any successful project will lowercase after a while, which will add to the Fedora Package renaming churn.
Here is upstream’s design for serving cased Go project names safely:
To avoid problems when serving from case-sensitive file systems, the <module> and <version> elements are case-encoded, replacing every uppercase letter with an exclamation mark followed by the corresponding lower-case letter: github.com/Azure encodes as github.com/!azure.
https://tip.golang.org/cmd/go/#hdr-Module_proxy_protocol
I really don't think we want to go there for package names however
We can have the best of all worlds by lower-casing package names (that would otherwise produce case-unsafe file server artifacts), while preserving upstream casing in golang(foo) virtual provides. Which is what is being done here.
golang(foo)
Should we vote in the ticket, or discuss this on Thursday, since the meeting last week didn't happen and we didn't finish our discussion on this the week before?
IMO, the benefits of this cleanup are massive, and the case insensitive package names aren't a big enough deal for me to oppose this.
So, FWIW, this will get a +1 vote from me
Let's vote on this week's meeting.
Metadata Update from @ignatenkobrain: - Issue tagged with: meeting
I really would rather see case sensitivity preserved in package names. We do this for Perl for the same reason. Ecosystems with case sensitive name canonicalization should have that preserved in packaging too. We even do it to some extent with C/C++ (though some people ignore it when IMO they should not).
We can have the best of all worlds by lower-casing package names (that would otherwise produce case-unsafe file server artifacts), while preserving upstream casing in golang(foo) virtual provides. Which is what is being done here. I really would rather see case sensitivity preserved in package names. We do this for Perl for the same reason. Ecosystems with case sensitive name canonicalization should have that preserved in packaging too. We even do it to some extent with C/C++ (though some people ignore it when IMO they should not).
I agree, especially since this is a regression compared to the original go macros and gofed, which preserved upper case letters in names.
Just to make things clear: that is your personal wish, not upstream’s wish. Those are Go packages not Perl packages. Perl is not known for clear and regular syntax habits other languages wish to emulate. (not to say that either your opinions or Perl choices are worthless, they may just be less relevant than Go project choices when packaging Go software).
The Go project states in its official design documents, that making Go deployments immune from problems on case-sensitive file servers takes precedence, over preserving the original casing in filesystem artifacts (the case encoding defined there produces lowercase names)
And even if there was some doubt on upstream’s wishes, which is not the case here, it is awfully late in the process to invalidate the months/years of Fedora work that led to the packageset eclipseo is asking an exemption for.
Practically, missing the FC31 mark, will mean processing both this change and migration to Go modules for FC32, making it an even more disruptive, and difficult to achieve change point. Assuming contributors still have some energy left to retry in a few months.
We talked about this at this weeks meeting:
https://meetbot-raw.fedoraproject.org/fedora-meeting-1/2019-06-20/fpc.2019-06-20-16.01.txt
Metadata Update from @james: - Issue close_status updated to: accepted - Issue status updated to: Closed (was: Open)
Login to comment on this ticket.