rbarrois / python-semanticversion

Semantic version comparison for Python (see http://semver.org/)
BSD 2-Clause "Simplified" License
281 stars 74 forks source link

Conda Package #136

Closed iamthebot closed 1 year ago

iamthebot commented 2 years ago

Can we add a conda package for this? We want to add it as a dependency to another conda package but that requires having a conda build for this (you can't reference pypi packages in a conda package's dependencies).

Happy to make a PR for a build on conda-forge.

rbarrois commented 2 years ago

I have no idea how conda works, nor where it is used; I don't mind having this package published on conda, as long as it's compatible with the project's license and policy.

In order to move forward, I would need to have some documentation, especially around conda's policy, upload process, package security, and maintenance process. Moreover, since I'm not using it myself, how would those builds be maintained in the future?

iamthebot commented 1 year ago

Hi @rbarrois-- Conda is the industry standard packaging/python ecosystem for data science and machine learning. Most packages are hosted in the conda-forge repository. Documentation for contributing a package is here.

tl;dr it consists of creating a PR against their repo which will need to be reviewed for the initial creation. Once created, maintenance involves bumping the version of the package when the upstream has published a new version and updating the checksums for the source. That triggers a new build of the package on their CI (seeing as this is a non-binary package the build is trivial). Unit tests can also be run.

As for licensing the original licensing of the package is maintained. Only the maintainer(s) of the package on conda-forge can approve changes to the package recipe (preventing someone rogue from pointing the package to malicious/unapproved source).

Let me know if you have any questions. Again, happy to make a PR to set it up for your review. This would be valuable to many users and should require minimal maintenance going forward.

rbarrois commented 1 year ago

@iamthebot Coming back to your suggestion, since I'm not a user of Conda I'm not sure I would be a good point of contact for that topic. Do they have the notion of "packaging maintainers" or "proxy maintainers", i.e. someone using Conda who would manage the specific packaging instructions there?

I would feel more comfortable pairing with someone who has experience with Conda, rather than taking that extra work upon myself…

iamthebot commented 1 year ago

@rbarrois yes maintainers for the conda-package can be specified. By the way I'm happy to pair with you on this. We use this package at Airbnb so happy to help.

It's actually all fairly lightweight and shouldn't really add major complexity to releases (just bumping a git SHA and version number) since this isn't a compiled package.

iamthebot commented 1 year ago

Actually looks like someone already submitted this package to conda-forge here. Closing this issue.