Closed Sierra-MC closed 1 month ago
Hi @Sierra-MC,
We would love to have rms-vax
(and about a dozen other packages we've released to the public) available on conda-forge. The only reason we haven't done so is because releasing them there seemed like a pretty complicated process, and we don't use conda in-house so it wasn't urgent. But with your assistance perhaps you can teach me how to do this and then I can also apply that knowledge to our other packages.
Below is the contents of a conda
recipe for rms-vax
. This was created by running the command grayskull pypi rms-vax
in a terminal (with grayskull
installed of course). You don't even need rms-vax
on your system to do it. Note the dependencies list leaves out any test/documentation related dependencies (as required by the conda-forge
maintainers). The only change I had to make manually was to the recipe-maintainers list at the bottom (which will autofill in with your computer username rather than github handles). For the particular recipe I've put you @rfrenchseti as the maintainer, I've also added myself to help you along with this process (we can remove me after you get accepted without issue and anyone else you want to add you can, but if you add them before the package is accepted they'll also need to comment on your pull request with conda-forge (see below) to consent). This way I'll be able to help you set up automatic updates on your conda-forge feedstock so that when you make a new release to PyPi a helpful robot script will update your conda build and send you an email to let you know it did it's job.
{% set name = "rms-vax" %}
{% set version = "1.0.4" %}
package:
name: {{ name|lower }}
version: {{ version }}
source:
url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/rms_vax-{{ version }}.tar.gz
sha256: 476c6a90fa5b2366265dba44a54968e36d35ed078d37d7ef78f7334116e9fe7c
build:
noarch: python
script: {{ PYTHON }} -m pip install . -vv
number: 0
requirements:
host:
- python >=3.8
- setuptools
- setuptools-scm
- pip
run:
- python >=3.8
- numpy
test:
imports:
- rms_vax
commands:
- pip check
requires:
- pip
about:
summary: Routines for converting to and from vax single-precision floating-point values
dev_url: https://github.com/SETI/rms-vax
license: Apache-2.0
license_file: LICENSE
extra:
recipe-maintainers:
- rfrenchseti
- Sierra-MC
Next steps are to put this in a file name meta.yaml (github won't let me upload a document with that extension on an issue), fork this repository: https://github.com/conda-forge/staged-recipes, add a folder under their recipes
folder called rms-vax
, paste the meta.yaml file with the above recipe into that folder, and issue a pull request named something to the effect of "adding rms-vax recipe". Once the conda-linter bot tells you the recipe is in excellent condition you'll want to post a comment with the text "@conda-forge-admin, please ping team". And if the maintainers have no issues with the recipe to resolve, rms-vax
will be added to conda-forge
!
Let me know if you have any questions!
Wonderful instructions! Thanks. I will let you know how it goes.
@rfrenchseti What is the status of this? We would love to add rms-vax
to pdr
but we're kind of in a holding pattern with our code change for that until this is on conda-forge
. Thanks.
I’ll try to get this done today.
@Sierra-MC Please comment here: https://github.com/conda-forge/staged-recipes/pull/27752
@rfrenchseti thanks so much for your work on this. I opened an issue in the new rms-vax-feedstock repo. You can see the command in that issue here. This caused the bot to open a pull request you can see here. Once that pull request is merged (you do this manually) then any time you make an update to rms-vax on pip the conda-forge bot should autoupdate.
There have been times that it doesn't do it's job (you can check if it's working here). I usually set a reminder to check on the conda package a half a day to a day after I submit a pip package if I want to make sure the bot does its job. It should email you when it ticks a package.
If you ever want to manually update your recipe (which you'll need to do if you ever change dependencies) then you can use grayskull with the command in the above comment and you can just copy paste the sha code it generates and bump the version number in your recipe to do a tick. An example of this for pdr can be viewed here.
Thanks again for getting this up on conda
! We'll start merging the branches in pdr
to make this an official dependency now.
Thank you for notifying us of this package for use as a
pdr
dependency. We have tested it and the changes needed to use it are minimal and we especially appreciate that you already have vax64 reading implementation which we did not. This is extremely helpful as we had a small list of product types we were waiting on supporting due to this.However,
rms-vax
is not onconda
, so we can't have it as a dependency for our code onconda
without vendoring your code. Would you consider putting this package ontoconda
?The
conda-forge
repository doesn't allow external dependencies, because theconda
solver can't ensure application binary interface compatibility with pip-installed packages, so it makes it much harder for them to maintain their integrity. For the specificconda-forge
policy, see: https://conda-forge.org/docs/maintainer/adding_pkgs.html#avoid-external-dependenciesI'd be happy to help by creating a draft recipe (this can easily be done via
grayskull
with a few tweaks afterwards) or directing you towards resources (like this one) for how to get the package onconda
if you're not familiar.