Release boundver 0.10.0 - #10
Conversation
Harden fingerprinting, Git/source handling, config and lock validation, providers, CLI gates, Action inputs, packaging, documentation, and release automation. Add focused regression coverage, deterministic v2 lockfiles, and release-candidate verification evidence.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8fca224ee7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| elif source == "working-tree" and not (repo_root / vendored_path).exists(): | ||
| errors.append( | ||
| f"Component '{name}' vendored copy not found: {vendored_path}" |
There was a problem hiding this comment.
Reject vendored copies absent from the selected snapshot
When using --source head or index, this existence check is skipped entirely; in working-tree mode it accepts an on-disk but untracked copy even though hashing enumerates tracked files only. In either case _content_only_digest() returns None, generation succeeds and writes that null into vendored_digests, but the newly generated lockfile is immediately rejected by _lockfile_structure_issues() and the v2 schema, which require string digest values. Validate the copy against the selected Git snapshot or treat a missing digest as a generation error.
Useful? React with 👍 / 👎.
Summary
boundary-lock/v2lockfilesverify --update, changed-path reporting, and atomic writesdocs/PROJECT_REVIEW.mdBreaking change
v1 fingerprints cannot be safely migrated because their framing was ambiguous. Users must regenerate locks with boundver 0.10.0.
Verification
61ad127e6ef93787fd59ead25b6a32ff77beefa6python -m boundver, validation, generation, verification, and status in an unrelated Git repositoryRelease gate
Keep this PR draft until the complete Python 3.9–3.14 Linux/Windows matrix, package smoke job, and public Action contract job are green. After merge, tag
v0.10.0; the publish workflow verifies and publishes the same artifacts, creates the GitHub Release, and advances stable tagv0.