SynBioDex / pySBOL2

A pure Python implementation of the SBOL standard.
Apache License 2.0
20 stars 6 forks source link

release of pySBOL2 as a conda package? #396

Open tduigou opened 3 years ago

tduigou commented 3 years ago

Hello,

Is there any plan to release [py]sbol2 as a conda package? As of today, people building conda packages that would require sbol2 will have to face with a dependency issue, as pySBOL2 is not available in public conda channels.

For the record, workarounds exist (see conda documentations), notably by building our own conda package of pySBOL2, so that it can be defined as a conda prerequisite. However, I believe it would be easier and increase compatibility if pySBOL2 conda releases are integrated within this repository.

Thanks for the great job.

tcmitchell commented 3 years ago

Hi @tduigou! Thanks for the kind words. We do not have plans to release a conda package, mainly because the developers do not use conda. We are open to contributions that would build a conda package. If you think this would be useful, and you are interested in making it happen, we encourage you to contribute whatever is needed to build a conda package.

If you have any questions, please let us know. Thanks!

tduigou commented 3 years ago

Hi @tcmitchell! Here a first step in a separate repo.

https://github.com/brsynth/pysbol2-conda-recipe

It provides instructions to build the conda package from the sbol2 pypi package (version 1.2), and provide example of how to publish it on anaconda.org.

Following this, I published the sbol2 conda package into the brsynth conda channel -- https://anaconda.org/brsynth/sbol2. This channel is managed to the BioRetroSynth academic research group, of which I belongs to. People can freely install the sbol2 package using conda with conda install --channelbrsynth sbol2.

Although this work "as it is", I believe it would be more convenient for people if the package is integrated into the "conda-forge" conda channel. From the authors, this channel is "A community-led collection of recipes, build infrastructure and distributions for the conda package manager" (link: https://conda-forge.org/). Integrating sbol2 into it will make life simpler for anyone as conda-forge is already trusted and used by lots of folk (there is more 13k conda package referenced in it).

I propose now to integrate pySBOL2 into this conda-forge channel by following conda-forge guidelines (https://conda-forge.org/#contribute). That's something I never did, but it looks rather straightforward and I'm willing to do set it up.

Please let me know you think.

Best wishes, Thomas

tcmitchell commented 3 years ago

We think this is great! 🎉

Thank you for the effort you are putting into making pySBOL2 a condo package! We are fully in favor of you proceeding to get the pySBOL2 package into the "conda-forge" channel. Please let us know if there's anything we need to do on our end to help.

Thank you! Merci beaucoup!

jakebeal commented 3 years ago

@tduigou If this works out, perhaps it could be done for pySBOL3 as well?

tduigou commented 3 years ago

Hi,

@tcmitchell, I had a look to the details for publishing in conda-forge. I think things are now clear but... it remains to decide the package name to be used on conda.

The package is named sbol2 on pypi. Since pypi is dedicated to python, no issue, that's fine. However, conda (can) cover(s) other environment such as r, ruby,... Hence, in this case -- to "let the room" for other implementations of SBOL libs in other languages -- it could be wiser IMO choosing a py- or python- prefix to the conda package name.

From my readings, python-sbol2 would make the match. pysbol2 is also acceptable. I will use the one you feel more comfortable, just let me know.

@jakebeal Yes, that could be done as well, for instance following the releases published on pypi.

For the record, here a discussion about naming convention in conda-forge : https://github.com/conda-forge/conda-forge.github.io/issues/18

jakebeal commented 3 years ago

Unless @tcmitchell or @bbartley thinks otherwise, I suspect that pysbol2 would be good, given that would match the name of this repository.

tcmitchell commented 3 years ago

I concur with @jakebeal , pysbol2 is probably the right choice.

bbartley commented 3 years ago

Fine with me.

tduigou commented 3 years ago

Hi there, it appears I totally forgot to mentioned: the pysbol2 (v1.2) is now an official conda package on conda-forge! https://anaconda.org/conda-forge/pysbol2, it appears it has been downloaded 433 times already. As of today I'm the only maintainer of the git repo behind the conda packaging processing (https://github.com/conda-forge/pysbol2-feedstock). For the future I can add maintainers/admin on request.

We can do the same for the pysbol3, I'll probably do it (if no one do it before) when I'll find the time.

Thanks for this useful python package! Thomas

tcmitchell commented 3 years ago

@tduigou Thank You! We appreciate your efforts on our behalf!