#31 Lower vs Upper case for package names
Opened 2 years ago by ignatenkobrain. Modified 2 years ago

As part of FPC discussion today about https://pagure.io/packaging-committee/issue/901, we would like to hear why you chose to have everything in lower-case. Why is it important to not have original upstream case?

It probably makes sense to preserve upstream case, since that's how imports work and our package names are derived from import paths.

  • first, our golang deps do not use the package name, they use raw upstream casing (with a golang namespace), so package name casing is irrelevant for go imports

  • second, upstream casing is not stable over time, key components like sirupsen/logrus changed their casing in the past, and it's a major PITA to rename Fedora packages every time an upstream wisens up to the fact kewl casing is just an interoperability problem, and lowercases everything

  • third, upstream naming is closely linked to URLs, and even though URLs are theoretically case-sensitive, in practical terms they are not, because too much of the web is created on windows systems which are case-insensitive. And while upstream can make its server accept any casing (or redirect all casing variants to the same page), and thinks casing changes are free, it's not true Fedora-side for the package names (virtual golang provides are something else, you can change them a lot more easily than package names)

  • and the same consideration applies to package names in dnf repos, since they may be mirrored or proxified by various case-insensitive systems

  • and, lastly, it's a lot more user friendly not to have to worry about the casing of the day in dnf commands

So, basically, upstream casing is not something that can be relied on, it's a mess like a lot of things in Go, and it's a lot easier for everyone involved Fedora-side not to propagate this mess in Fedora package names, since our infra does not permit the url aliasing of a github repo. Other kinds of renames are reflected in the package name, which is already going to cause quite a lot of churn, unless we restart accumulating technical debt by keeping old upstream names in our package names.

And BTW, @eclipseo is doing a lot more in this mass rebuild than just renaming a bunch of packages. It's a general multi-year technical debt cleanup, with massive removal of technical warts, long awaited updates (with the new deps those updates depend on), and so on. Package naming normalization is just the external observable part of this general cleanup.

Login to comment on this ticket.