Repository navigation
Conversation
Every CI job installs with uv sync, which uses uv.lock and the dev group. That hid both problems fixed in darnitdevorg#573: a release of tree-sitter-language-pack that the lockfile pins away, and a dependency core imported without declaring it. The new job builds the wheels, installs them with pip into a clean environment, and runs one level 1 audit. It does this twice: core and baseline only, then everything darnit-mcp pulls in. The minimal install matters because a sibling package can declare what core forgot. The logic is in scripts/non-dev-install-smoke.sh so it can be run locally. Signed-off-by: Marc-cn <130138935+Marc-cn@users.noreply.github.com> Assisted-by: Claude:claude-fable-5-1
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.
Summary
Follow-up to #573, as discussed there. Adds a CI job that installs darnit the way a user does and runs one audit.
Every existing job, including "Plugin discovery smoke", installs with
uv sync. That usesuv.lockand the dev group, so it cannot see (a) a newly published release of a dependency that breaks a fresh install, or (b) a dependency darnit imports without declaring it.scripts/non-dev-install-smoke.sh: creates a clean virtual environment, installs the given wheels with pip (fresh resolve, no lockfile, no dev dependencies), audits a throwaway repository at level 1, and fails if the audit exits non-zero, prints a traceback or "not installed", or passes no control.ci.yml, new jobnon_dev_install_smoke: builds the five wheels and runs the script twice, once withdarnit-core+darnit-baselineonly and once with everythingdarnit-mcppulls in. Python 3.12, to match the container image.Where it lives. You asked
release-smoke.ymlor its own job. I put it inci.ymlbecauserelease-smoke.ymlruns onworkflow_runafter a release is published, which is too late for this. The script takes a dist directory, sorelease-smoke.ymlcan call it too if you want the same check there.Why two installs.
darnit-reproducibilitydeclarespackaging. A fulldarnit-mcpinstall therefore hadpackagingeven when core did not declare it, and only the minimal install shows that gap. This also corrects something I wrote in #573: thepackaginghalf did not affect "any install from a built wheel", only installs withoutdarnit-reproducibility(such as the quick install infrom-source.md). Thetree-sitterhalf affected all of them.Type of Change
CI only. No package code changes.
Testing
uv run pytest tests/ -v) (not re-run: no package or test code changed)shellcheckclean on the script;ci.ymlparses)The script, run on RHEL 10.2 against wheels built from current main and from 190e85c (the commit before #573). "held" means
tree-sitter-language-pack<1.6.3forced throughPIP_CONSTRAINT, to reproduce the cap-only state:AuthorityViolationcrash)AuthorityViolationcrash)packagingcame through reproducibility)Not verified locally:
uv build --wheel --package darnit-mcpunder the pinned uv 0.5.0 (I have 0.13; the existing Build job only builds core and baseline). CI on this PR is the test of that.AI assistance
Claude Fable 5.1 wrote the script and drafted this description. I ran every case in the table myself. The commit carries an
Assisted-by: Claude:claude-fable-5-1trailer.Additional Notes