ANTsX / ANTsPy

A fast medical imaging analysis library in Python with algorithms for registration, segmentation, and more.
https://antspyx.readthedocs.io
Apache License 2.0
608 stars 161 forks source link

Releases prior to 0.3.8 yanked? #503

Closed kmannislands closed 11 months ago

kmannislands commented 11 months ago

Describe the bug It appears all releases prior to 0.3.8 have been yanked from PyPi: https://pypi.org/project/antspyx/#history

Discovered this when attempting to run install in a project using poetry that depends on 0.3.7.

Expected behavior Prior releases should not be yanked from PyPi without a pretty extreme scenario.

Was this intentional? If not, can the prior releases be restored? If so, what was the reasoning?

stnava commented 11 months ago

https://github.com/ANTsX/ANTsPy#note-old-pip-wheels-will-be-deleted

discussed several times but finally added to README

gdevenyi commented 11 months ago

Can wheels be built/attached to Github releases?

cookpa commented 11 months ago

@gdevenyi wheels are built on release now. I see the creation of version tags has got ahead of actual releases - will try to fix.

stnava commented 11 months ago

@cookpa - I attempted to get these wheels pushed to pypi but only succeeded for linux

gdevenyi commented 11 months ago

@gdevenyi wheels are built on release now. I see the creation of version tags has got ahead of actual releases - will try to fix.

Sorry, to clarify, I mean how the ANTs zip files are being attached to releases. Github doesn't enforce the same space limits so old wheels could be manually downloadable at least.

cookpa commented 11 months ago

Right, that was my plan, I implemented this for 0.3.8 but haven't made it retroactive. Going forward, wheels should be attached for new releases like this

https://github.com/ANTsX/ANTsPy/releases/tag/v0.3.8

It doesn't have all the desired features currently (like universal OSX binaries).

@stnava I agree that updating PyPI on release makes most sense, you can do this by changing if: ${{ (github.event_name == 'push') to if: ${{ (github.event_name == 'release').

The tag creation and release creation are separate. After making a release tag, I go to Github and click "create release from tag". This lets us review and edit release notes. When the user publishes the release, the release event happens and things get uploaded to Dockerhub, the Github release page, etc.

One can have an action that looks for a tag matching "vX.Y.Z" and creates the release automatically, but I've not tried doing it that way.