Package naming policies
See original GitHub issueMy 2-cents:
- First try the package original name 😁
A possible conflict would be packages like
beautifulsoup4
(pypi) andbeautiful-soup
(anaconda name). I strongly believe that the majority of the users cannot find the anaconda package in a CLI search and end up installing the PyPI version. - When conflicts arise, like a c-lib and its python bindings with the same name, add a
py<c-libname>
. For example:cdo
andpycdo
. (Or maybepython-cdo
?) - When adding a new package that has libraries used by other packages avoid naming it
lib<package name>
.
Note that anaconda names the netcdf
package libnetcdf
. However, that package is more than just the netcdf libs. Same for gdal
and libdal
, but in that case gdal
is even more confusing because that is the python bindings only, and the libdal
is the rest of the package. To me this behavior is a bad mix of the Linux world, that splits packages into lib, dev, headers, etc and the python bias that we have when packaging non-python packages.
(See the issues raised on #16.)
Issue Analytics
- State:
- Created 8 years ago
- Comments:46 (44 by maintainers)
Top Results From Across the Web
Naming a Package (The Java™ Tutorials > Learning the Java ...
Naming Conventions. Package names are written in all lower case to avoid conflict with the names of classes or interfaces.
Read more >Package name guidelines - npm Docs
Package name guidelines. When choosing a name for your package, choose a name that. is unique; is descriptive; meets npm policy guidelines.
Read more >Package naming conventions - Conda
The name of a package, without any reference to a particular version. Conda package names are normalized and they may contain only lowercase...
Read more >Naming Guidelines - Fedora Docs
General Naming. Package names SHOULD be in lower case and use dashes in preference to underscores. You can take some cues from the...
Read more >Package names - The Go Programming Language
Go code is organized into packages. Within a package, code can refer to any identifier (name) defined within, while clients of the package...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
It is true that prefixing is nice. I have generally been an advocate, but I’m also a pragmatist. We are hurting the user experience.
For instance, one person had there Anaconda install go totally broken because of this. If we want to pursue prefixing, we need to do it with a transition period in mind. This could be with metapackages that share the old name, leaving
defaults
packages with the same name, or something else people would like to contribute.The most important point IMHO is we should not be spending precious cycles resolving issues that amount to us making a choice that does not accept the current state of affairs with
defaults
.Isn’t it easier to teach users to use prefixes on everythin apart from real user apps (aka
libsomething
for native packages,python-something
for pyhon packages than let users find out whetherjq
is the native package, the python lib or the r lib, depending who was first? IMO it should bejq
the commandline app,libjq
the library part andr-jq
andpython-jq
the r and python packages which wraplibjq
?Edit:
This is an expectation which has to change and probably will change if users use conda for other ecosystems.