-
Notifications
You must be signed in to change notification settings - Fork 641
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
Include prereleases from downstream projects in pip release links page. #19391
Conversation
I am not convinced that any non iree-org package should be included in the index. It might be reasonable to publish links for dependencies that are required but I don't know what those would be at the moment. The dependencies are available via PyPI and wheels like the ones provided via https://github.com/llvm/torch-mlir-release are not direct dependencies. Furthermore, it doesn't seem to be the right place to incclude downstream packages that make use of IREE. I would rather expect that those packages might include IREE in their index instead but here the other way around is proposed. I might miss the rational for this, so I am happy to discuss! |
I'm fine with just including iree-org/iree-turbine in addition to this iree-org/iree repository in this PR and seeing how far that gets us.
Here's my thinking for including other packages:
Sure, we could have each downstream project provide its own package index too, but I'd rather avoid the scenario where the nightly package install instructions are different depending on which downstream project(s) you are using. We've had #9532 open highlighting the issue with having multiple package indices:
That was two years ago, and today it looks something like this:
We could publish a downstream A more "final" fix would be to push pre-releases to the official package index on https://pypi.org/, but then we run into storage and bandwidth limits more quickly and the project release history looks messier. For example, see how stable releases are Some related discussions in other parts of the Python packaging ecosystem, mostly around having a warehouse (pypi) API to set retention policies on pre-releases pushed there, avoiding the need to maintain project-specific package indices:
All that being said, my gut feeling is "eh, why not create this upstream index for any projects that use IREE to use?". There's a similar precedent in https://anaconda.org/scientific-python-nightly-wheels hosting 29 packages, many from different organizations like:
If we were to do that, anchoring on IREE as the host makes sense to me, but I could see an argument for MLIR, LLVM, the Linux Foundation, or some other super-project / organization hosting. |
Switched to just |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for doing this @ScottTodd. Let us follow up on the discussion we just started here next week.
This simplification will help with #584. Nightly releases of iree-turbine are now being built thanks to iree-org/iree-turbine#314 and published at the same index as the other IREE packages thanks to iree-org/iree#19391.
This simplification will help with nod-ai#584. Nightly releases of iree-turbine are now being built thanks to iree-org/iree-turbine#314 and published at the same index as the other IREE packages thanks to iree-org/iree#19391.
This simplification will help with #584. Nightly releases of iree-turbine are now being built thanks to iree-org/iree-turbine#314 and published at the same index as the other IREE packages thanks to iree-org/iree#19391.
This fixes #19193.
Nightly releases of packages from https://github.com/iree-org/iree-turbine will now be available from https://iree.dev/pip-release-links.html with (for example)
Previously, this relied on its own index page at https://github.com/iree-org/iree-turbine/releases/expanded_assets/dev-wheels . While this link will continue to work, the consolidated page is more convenient for users.
Projects included
I'm starting with just iree-turbine. See the notes below about other packages.
We could still switch to a PEP 503-compliant package index (usable with
--extra-index-url
, not-f, --find-links
), like what PyTorch provides at https://download.pytorch.org/whl/cpu. Note the 50+ packages listed there, included mirrors of a few versions of all of PyTorch's dependencies.Testing
Publish action: https://github.com/ScottTodd/iree/actions/runs/12188757072/job/34002585332
Pushed to GitHub pages: https://scotttodd.github.io/iree/pip-release-links.html
Installed using the release links:
Other considerations
We may want to also include downstream packages like https://github.com/nod-ai/shark-ai (release index page: https://github.com/nod-ai/shark-ai/releases/expanded_assets/dev-wheels). I'm currently trying to simplify workflows for that project (example here).
I left some notes in the workflow file too, but I could see us extending this to also include torch-mlir and stablehlo packages. The extra release scraping doesn't cost us much CI time, git storage on the
gh-pages
branch, or network bandwidth on the website. I also don't foresee any issues with making it easier to install nightly versions of those packages. I would pause a bit if the list grows too much beyond that though.Note on the
shark-ai
packageThe
shark-ai
meta package (https://pypi.org/project/shark-ai/, https://github.com/nod-ai/shark-ai/tree/main/shark-ai) pins dependencies in ways that isn't currently compatible with this package installation flow. Specifically, the latest nightly releases pinshortfin==3.1.0
which can't be resolved by a release candidate like3.1.0rc20241205
, so this doesn't work as one might expect: