-
Notifications
You must be signed in to change notification settings - Fork 68
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
Conda Package for Pypulseq #152
Comments
|
@btasdelen This wouldn't exist in this repo but in a conda-forge feedstock repository. You establish this by creating a PR in the conda-forge staged recipe repo. As such a PR doesn't really make sense for this. |
Oh, I get it now. Sorry for my confusion! |
@btasdelen Indeed, as @wtclarke mentioned, we should put it probably in a conda-forge feedstock. The alternative to build it in this repo as part of a CI pipeline that we will eventually implement, does exist, though, but it would mean that we will also have to publish to a dedicated conda channel. In my experience, conda channels are a frequent cause of confusion (take for example sigpy that exists on conda-forge and the frankong channel, notably with different versions). So, it's probably better to limit to conda-forge for the moment. The reason why I put all that here first is to park it while we discuss instead of just charging ahead :) |
Yes, unless you are a very large project, definitely stick with |
Any updates on this? Should take care of it @gabuzi? |
I think it would be great if you could get this implemented @lrlunin |
@lrunin, thanks for the push. Unfortunately, I haven't had too much time to focus on pypulseq recently. If you want you can give this a go, thanks! Feel free to use the recipe above as a starting point! It might need some tweaks to account for recent updates and changes in the ecosystem. |
I prepared the recipe for the conda-forge: conda-forge/staged-recipes#28052 The blocking issue is now the fact that the PyPi version of the So please publish a new release to PyPi. The conda-forge version would pull it from the PyPi and no additional changes in your repository are needed. To pass the checks of the conda-forge distrbution all mainternes listed need to leave a message in the pull request. Namely: @sravan953, @btasdelen , @FrankZijlstra and @schuenke. Best wishes |
Thanks for preparing this @lrlunin I already create a draft release for version v1.4.2.post1 here: I would at least wait for #200 to be merged before the release, but imo this can be done soon. |
Short reminder for @sravan953 @btasdelen and @FrankZijlstra to leave a comment here: conda-forge/staged-recipes#28052 |
Is your feature request related to a problem? Please describe.
Pypulseq is only available from PyPI. I frequently find myself using conda as a package manager because some performance critical, mostly GPU related packages are managed via conda environments in our organization.
While installing packages from PyPI via pip in a conda environment works generally ok, it is fragile and does not properly take dependencies into account. Thus, the recommended practice is to not run any
conda
commands afterpip
has been used.A requirement of building conda packages is that they can only list other conda packages as dependencies, not packages from PyPI.
Describe the solution you'd like
Build conda packages for every release. Conda-forge can be setup to automatically track PyPI releases. See e.g. conda-forge/sigpy-feedstock#3 contributed by @wtclarke for sigpy.
The following conda
meta.yaml
file was obtained with the grayskull tool (https://conda-forge.org/blog/posts/2020-03-05-grayskull/), setup to create a conda package from the pypulseq package on PyPI and can serve as a starting point.This can be built with
conda build -c conda-forge .
in the directory where you put thismeta.yaml
file.This builds on my macbook (arm), but there are errors and warnings from unit tests (annotated above).
All of this should obviously go together with a CI pipeline and more unit tests, including getting the matlab pulseq files for the current test suite into the repository (see #144).
The text was updated successfully, but these errors were encountered: