pluggy: add pluggy==1.6.0 to site-packages-base + smoke test#176
Merged
Conversation
Adds pluggy 1.6.0 to the pure-Python manifest under # Core utilities and a smoke test exercising the HookspecMarker / HookimplMarker / PluginManager dispatch round-trip. Closes #95.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds the pure-Python pluggy dependency to the Nanvix Python sysroot and introduces a functional smoke test to validate that core pluggy hook registration/dispatch works under the Nanvix runtime.
Changes:
- Add
pluggy==1.6.0torequirements/site-packages-base.txt. - Add
tests/func/test_109_pluggy.pysmoke test covering HookspecMarker/HookimplMarker/PluginManager dispatch.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| tests/func/test_109_pluggy.py | Adds a pluggy functional smoke test that exercises hook spec/impl registration and invocation. |
| requirements/site-packages-base.txt | Adds pluggy==1.6.0 to the base site-packages manifest. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
6
to
8
| packaging==23.2 | ||
| pluggy==1.6.0 | ||
| schedule==1.2.2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ports
pluggy1.6.0 by appending one pinned line to the existing pure-Python manifest and adding a smoke test in the upstream convention. The smoke exercises theHookspecMarker/HookimplMarker/PluginManagerround-trip path (which transitively exercisesinspect.signature) and deliberately does not exerciseload_setuptools_entrypoints()— see the caveat below.Closes #95.
Decisions
requirements/site-packages-base.txt+ the existingpip --targetflow driven by.nanvix/z.py. No vendoring, noModules/Setup.local, no.nanvix/pluggy.py, nopatches/pluggy/.tests/func/test_NNN_<pkg>.pysmoke test in the upstream convention; pluggy's upstreamtesting/*.pysuite is not run (it requires pytest, whichpluggyis the prerequisite for).test_020_click.pyshape (module docstring, line-buffered stdout, singletry:block, PASS/FAIL+exit-1). Lands astest_109_pluggy.py.# Core utilitiesin-base.txt, alongsidetenacity/filelock/packaging(small standalone utility libraries; pluggy's runtime profile is zeroRequires-Dist). Alphabetically inserted betweenpackaging==23.2andschedule==1.2.2.nanvix/cpythonenablement issue filed. Positive recon oninspect.signatureandimportlib.metadata(both confirmed present and active in the 3.12.3 sysroot) plus a reactive failure stance: only file upstream if the smoke trips with a stdlib-surface signature, which it does not.Caveat: dist-info trim
_create_stripped_sysroot()in.nanvix/z.pyremovesentry_points.txtfrom*.dist-info/directories, sopluggy.PluginManager.load_setuptools_entrypoints()will silently return zero plugins on standalone-mode targets. The smoke routes around this by exercising the marker / register / dispatch path directly. Fixing the strip step (preservingentry_points.txt) is deferred — a future port that depends on entry-point discovery should drive that fix reactively.Test plan
Per
nanvix-python/AGENTS.md:for
MODE∈ {standalone,single-process,multi-process}. All three producepluggy: PASS. CI exercises all four platform configs perdoc/contributing.mdstep 5.Ramfs size increase
The ramfs grows by 114,688 bytes (+112.0 KiB, +0.135%) on standalone — see the table below.
Measured on a clean tree per the standard protocol (standalone mode;
./z distclean; ./z clean; NANVIX_DEPLOYMENT_MODE=standalone ./z setup; ./z buildbetween baseline and post).nanvix_rootfs.img)New ramfs paths:
lib/python3.12/site-packages/pluggy-1.6.0.dist-info/METADATAlib/python3.12/site-packages/pluggy/__init__.pyclib/python3.12/site-packages/pluggy/_callers.pyclib/python3.12/site-packages/pluggy/_hooks.pyclib/python3.12/site-packages/pluggy/_manager.pyclib/python3.12/site-packages/pluggy/_result.pyclib/python3.12/site-packages/pluggy/_tracing.pyclib/python3.12/site-packages/pluggy/_version.pyclib/python3.12/site-packages/pluggy/_warnings.pycThat is +0.135 % of an 81.1 MiB image.