question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Package naming policies

See original GitHub issue

My 2-cents:

  1. First try the package original name 😁 A possible conflict would be packages like beautifulsoup4 (pypi) and beautiful-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.
  2. When conflicts arise, like a c-lib and its python bindings with the same name, add a py<c-libname>. For example: cdo and pycdo. (Or maybe python-cdo?)
  3. 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:closed
  • Created 8 years ago
  • Comments:46 (44 by maintainers)

github_iconTop GitHub Comments

2reactions
jakirkhamcommented, Jun 30, 2016

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.

2reactions
jankatinscommented, Jun 27, 2016

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 whether jq is the native package, the python lib or the r lib, depending who was first? IMO it should be jq the commandline app, libjq the library part and r-jq and python-jq the r and python packages which wrap libjq?

Edit:

lots of folks expect the conda package name to match what you import in python…(or at least the pypi name)

This is an expectation which has to change and probably will change if users use conda for other ecosystems.

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found