Skip to content

Release nightly Python packages #385

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

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Release nightly Python packages #385

wants to merge 1 commit into from

Conversation

marbre
Copy link
Member

@marbre marbre commented Apr 9, 2025

Closes #369

@marbre
Copy link
Member Author

marbre commented Apr 9, 2025

Triggered to build a development release, https://github.com/ROCm/TheRock/actions/runs/14362396978, assets were pushed to https://github.com/ROCm/TheRock/releases/tag/dev-release. With this the core wheel can be installed via

pip install rocm_sdk-core -f https://github.com/ROCm/TheRock/releases/expanded_assets/dev-release --pre

For the non-GPU specific assets, the wheel that was build latest wins and overwrites the one pushed by a workflow in the matrix that finished earlier. This should be addressed in a follow up.

@marbre marbre requested a review from stellaraccident April 9, 2025 21:10
- name: Upload Nightly Release
if: ${{ inputs.build_type == 'rc' || inputs.build_type == '' }}
uses: ncipollo/release-action@440c8c1cb0ed28b9f43e4d1d670870f059653174 # v1.16.0
with:
artifacts: "${{ env.DIST_ARCHIVE }}"
artifacts: "${{ env.DIST_ARCHIVE }},${{ env.OUTPUT_DIR }}/wheels/dist/*.whl"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need a separate "dev-wheels" release or something since Python assets will otherwise be hard to distinguish from native assets (and they exist as part of a "namespace" that cannot be changed). If doing that, then you also need to upload the sdists (tar.gz files), not just the wheels.

Copy link
Member Author

@marbre marbre Apr 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A separate dev-wheels release sounds reasonable. Right now we have a dev-releaseand a nightly-release. I assume adding wheels for both of those release types to dev-weelsis resonable?

With the way sdists are currently produced there will be a name clash as name is the same for all architectures but dependencies differ.

  • Should the GPU architecture be included in the name of the sdist package? (Option a)
  • Another option is to define the GPU-architecture specific libraries as project.optional-dependencies in the pyprocet.toml instead of being restricted to one GPU-specific library via _dist_info.py. (Option b)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We discussed offline and will have separate releases for every supported GPU-family for now.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's discuss in our standup today: I'd like to come up with a name for these single target community builds and then document it.

In my mind, these single target community builds are things we will always produce as a precursor to official builds for a combination of selected targets that we either use for ongoing qa or for bootstrapping new official support for a target.

What we're missing in TheRock proper is where things go from there. We will eventually support/provide unity builds for some combined set of supported targets, and then of course ROCm overall will provide numbered official builds on a slower cadence.

I think if we spell out the first two tiers of single target and unity community builds, along with our roadmap of where specific target support is at on each, it will make more sense.

So keep doing what you are doing, but we should write it down and will likely tweak the release names.

@@ -0,0 +1,140 @@
#!/usr/bin/env python
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any chance we could extend linux_portable_build.py vs forking? We could add an --action arg that controlled what we are delegating to vs hard-coding to linux_portable_build_in_container.sh.

Reason is: we're going to need to add more controls to the image version, config options, and platform (arm vs x86 dockers), and I'd rather have all of the manylinux stuff trampoline through the same thing to keep config control manageable. I've had this stuff get out of control before...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I was considering this but wasn't sure if it would be worth it. I'll extend linux_portable_build.py with what is needed.

@marbre marbre marked this pull request as draft April 9, 2025 22:02
@marbre marbre force-pushed the users/marbre/wheels branch 2 times, most recently from 6c919c2 to b368b0d Compare April 10, 2025 14:34
@marbre marbre force-pushed the users/marbre/wheels branch from b368b0d to 2c8c95e Compare April 13, 2025 20:02
@marbre marbre changed the title Release nightly wheels Release nightly Python packages Apr 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: TODO
Development

Successfully merging this pull request may close these issues.

Extend nightly releases by Python packages
2 participants