-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
automatic dependency checking for python 3 modules #53326
Conversation
3439667
to
a010408
Compare
Is there no way to incorporate pip check rather than hand rolling the metadata verification? |
|
Closes: void-linux#53326 [via git-merge-pr]
Closes: void-linux#53326 [via git-merge-pr]
Closes: void-linux#53326 [via git-merge-pr]
First issue: what's the suggested approach to broken builds like
|
i think dropping a warning if it can't |
…n module metadata Closes: void-linux#53326 [via git-merge-pr]
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.
Notionally, this looks good. I'm running through full py3.13 rebuilds now and see the virtuals as expected. I can pull this patchset along with the final py3.13 merge, unless you see a reason to merge stuff piecemeal ahead of time.
I'm looking to merge py3.13 this weekend or next, and I'd like to get at least two other maintainers to sign off on this structural change before including it in the bump.
if this gets merged, I'd like to split off the xbps backport and merge that before the rest of the python bump to ensure the builders get it for their chroots |
I think you should go ahead with the xbps merge, and ideally have xtools ready this week so we can drop the throwaway commit in this PR. |
i have an idea for a way to do this without the xbps change |
to XBPS_STATEDIR. There's no need for them to pollute PKGDESTDIR. Keep INSTALL.msg/REMOVE.msg handling as-is for now because it's a little more complex. Keep the pkglints for these files because xbps still ignores them.
dependency of python3-{installer,packaging}-bootstrap
dependency of python3-packaging-bootstrap
needed for verifying python module dependencies
…otstrap ...if verifying python dependencies. needed for python module dependency verification hook
it's now used for python dependency verification too
python bootstrap several bootstrap python3 modules put packages in ${py3_sitelib}-bootstrap to prevent conflicts and keep them out of the normal PYTHONPATH. this allows the pycompile_module hook to work for those modules
a1158b8
to
b453a1a
Compare
this will allow provides to be generated from things like package contents and saved into the file for package generation.
b453a1a
to
3007532
Compare
Closes: void-linux#53326 [via git-merge-pr]
Closes: void-linux#53326 [via git-merge-pr]
…e metadata this script uses python3-packaging-bootstrap to extract information about python modules, including their names and dependencies for use by xbps-src hooks
compares rdeps and Python module metadata to find missing dependencies for python packages. this uses virtual packages to map python canonical package names to void packages.
3007532
to
11134aa
Compare
Closes: void-linux#53326 [via git-merge-pr]
Closes: void-linux#53326 [via git-merge-pr]
Goal: lower the incidence of missing dependencies for python module packages (like #53257), by checking what the upstream has indicated are dependencies and cross-referencing against what's been provided in the template.
Secondary goal: provide some infrastructure for decentralising shlibs tracking (working towards what paper started in #40698)
xbps: ignore /provides file in xbps-createneeded for new provides handlingpython3-packaging-bootstrap
andpython3-installer-bootstrap
python3-installer-bootstrap
parse-py-metadata
script${py3_sitelib}-bootstrap
to prevent conflicts and keep them out of the normalPYTHONPATH
. this allows thepycompile_module
hook to work for those modules.Manual.md
for usage notespython3-packaging-bootstrap
to extract information about python modules, including their names and dependencies for use by xbps-src hooksrdeps
and Python module metadata to find missing dependencies for python packages. this uses virtual packages to map python canonical package names to void packages.Testing the changes
Output
strict mode enabled:
strict mode disabled:
Related PRs
bin/xbps-create: ignore provides file xbps#605