-
-
Notifications
You must be signed in to change notification settings - Fork 284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consistent naming for library-packages #1073
Comments
I agree that we should have a general discussion of naming: not only in teh context of libraries, but also with bindings. E.g. should it be |
That's a valid point @wolfv, but IMO worth splitting into a separate discussion/issue (not least because it's partly intertwined with the naming choices that the upstream naming packages make themselves). |
I'm in favor of using |
So what's the plan for this? Slowly migrate packages (resp. feedstocks) from |
The need for shifting GH repos themselves makes these migrations a beyond its ken, although we could have a mini-migrator that updates the requirements to use the new names. The mini-migrator would provide the least disruption and be most effective if we could get this ready to go before the next python release. |
That's at the beginning of October. Depending on the number of feedstocks, this seems a bit ambitious (but not impossible). Should we just start modifying the output names of the various feedstocks (while maintaining Do we have a list of affected packages? |
Opened an RFC for arrow: conda-forge/arrow-cpp-feedstock#158 If this approach can be applied more generally, I'd be happy to chip in a few PRs for affected packages. |
Should the rename happen in-place or via introducing a new feedstock and the old will be archived? |
As outlined in my answer there, I think that all the feedstock-based operations are IMO much higher in terms of effort / complexity / possible disruption - not least the amount of mutex-packages that would be necessary to prevent parallel installation of the packages from the old & new feedstock. This can be much more easily achieved by keeping the old output names as compatibility, but depending exactly on the subpackage of the new output name. |
There is not need for mutex packages, setting the correct. I would though setup new repositories with fixed names for the libraries though. I don't think that our infrastructure supports renaming repositories (I tried that one and failed heavily). |
I've started to pick this up again (i.e. doing This is going to be a slow process (due to the involvement with the pinning), but I don't mind that. However, stumbling over conda-forge/staged-recipes#19764, there are cases that explicitly distinguish between the libraries built for C resp. C++. There is some prior art on this (both in c-f as well as upstream) where e.g. LLVM has both I'm wondering if we should "graduate" this to a general principle, of which I could imagine two flavours:
Thoughts? |
Why shouldn't package names should follow upstream naming conventions? If the developers of a package have named their package |
Because occasionally there are more relevant considerations, and having a consistent Our artefacts only "live" in the conda ecosystem anyway (where many python packages don't follow the PyPI names for various reasons either), and for very similar reasons, we can choose to make our lives easier on the library side, by enforcing (within reason) a consistent approach in our ecosystem. PS. Funnily enough, even for packages that call themselves Footnotes
|
I should perhaps word this more strongly than "make our lives easier". By having a consistent setup for libs (e.g. run-exports, cmake & pkgconfig stuff, static-vs-shared setup if applicable, etc.) that's also clearly recognizable by a common naming scheme, we'd make navigating / understanding / contributing to the respective feedstocks much easier for both new and experienced members. We could then go from "I have to figure out how this bespoke recipe works" to "ah, that's a feedstock following the library-pattern" (ideally accompanied by some documentation in the knowledge base, obviously). |
I think this is the best answer to my question of why we don't follow upstream naming. i.e. in most cases upstream developers don't have naming conventions for separating their artifacts into multiple outputs. The packages which you mention (see tensorflow, zlib, boost, arrow), all have strange output names because conda recipe maintainers are trying to indicate the contents of the output from the name or avoid collisions with other packages on the channel. I'm in favor of consistent naming scheme. However, I think |
I broadly agree with all of that (though there are already exceptions the other way around too, like libprotobuf containing |
I would prefer that in the cases where we have a binary, we should split it up into a separate output (if we are touching the package) and really keep packages with a |
In the context of moving pyarrow into the arrow-cpp-feedstock, there was some discussion of naming the outputs, and I brought up the following:
Following @isuruf's and @xhochy's input, I'm opening this issue here. Also note @isuruf's comment:
The text was updated successfully, but these errors were encountered: