[proposal] wheel_build_tag hook for unique wheel file names#1066
[proposal] wheel_build_tag hook for unique wheel file names#1066tiran wants to merge 1 commit intopython-wheel-build:mainfrom
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✅ Files skipped from review due to trivial changes (3)
📝 WalkthroughWalkthroughThis PR adds documentation: it registers a new proposal Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes 🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/proposals/wheel-build-tag-hook.md`:
- Around line 121-124: The example hook uses the variable parts when appending
CUDA tag but the accumulator defined earlier is named result, causing an
undefined variable error; update the CUDA branch to append to result (i.e.,
replace parts.append(...) with result.append(...)) and verify other branches
consistently use the same accumulator (referencing ctx.variant and Version(...)
in the function).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 243b235f-4791-4b2e-bff6-6ba1ef0f1db7
📒 Files selected for processing (3)
docs/proposals/index.rstdocs/proposals/wheel-build-tag-hook.mddocs/spelling_wordlist.txt
20d94ef to
f323ece
Compare
rd4398
left a comment
There was a problem hiding this comment.
This is a solid design and will really help us downstream as well!
I left a few comments, after addressing those we can merge this.
| req: Requirement, | ||
| version: Version, | ||
| wheel_tags: frozenset[Tag], | ||
| ) -> typing.Sequence[str]: |
There was a problem hiding this comment.
Says it returns Sequence[str] but example on ;ine 93-94 returns Sequence[tuple[int, str]]
def example_hook(...) -> typing.Sequence[tuple[int, str]]:
We should ensure the runner's signature matches the hook's return value, or clarify that the runner collects tuples and returns strings
| ... | ||
| ``` | ||
|
|
||
| Each registered hook returns `typing.Sequence[tuple[int, str]]`, a sequence |
There was a problem hiding this comment.
Clarification (Dumb) questions: What happens if:
- A hook raises an exception?
- Two hooks return the same sort order integer?
- A hook returns invalid characters (e.g., - which is forbidden)?
| platlib = any(tag.platform != "any" for tag in wheel_tags) | ||
| if platlib: | ||
| # fc43, el9.6, ... | ||
| result.append((1, get_distro_tag())) |
There was a problem hiding this comment.
Can we add how get_distro_tag( ) will look like? Perhaps a pseudocode?
| # fc43, el9.6, ... | ||
| result.append((1, get_distro_tag())) | ||
| pbi = ctx.package_build_info(req) | ||
| if pbi.annotations.get("accelerator-specific") == "true": |
There was a problem hiding this comment.
Can we document annotation requirements as well?
Add proposal document for a new stevedore hook point that injects platform, accelerator, and ABI suffixes into wheel build tags. See: python-wheel-build#1059 Co-Authored-By: Claude <claude@anthropic.com> Signed-off-by: Christian Heimes <cheimes@redhat.com>
f323ece to
e3af312
Compare
Pull Request Description
What
Add proposal document for a new hook point that injects platform, accelerator, and ABI suffixes into wheel build tags.
Why
See: #1059