Add runtime dependency validation#498
Merged
Merged
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #498 +/- ##
==========================================
- Coverage 83.80% 83.30% -0.50%
==========================================
Files 30 32 +2
Lines 4389 4492 +103
Branches 881 903 +22
==========================================
+ Hits 3678 3742 +64
- Misses 471 499 +28
- Partials 240 251 +11 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
why: Runtime installs on newer Python versions should not need a compatibility package solely for vcspull's TypedDict annotations. what: - Replace NotRequired fields with total=False TypedDict mixins - Preserve existing worktree, pin, and config option fields
why: Release checks need a direct way to catch imports that only work because dev or test dependencies are installed locally. what: - Add a script that imports vcspull modules from a runtime install - Probe the base CLI and each subcommand with --help - Report import and CLI failures with actionable output
why: Contributors and CI need an opt-in pytest entry point for the network-dependent runtime dependency smoke check. what: - Add a marked pytest wrapper around the uvx isolated install check - Collect scripts tests without running the smoke marker by default - Register the scripts__runtime_dep_smoketest marker
why: Contributors need the exact command for the isolated runtime smoke check and the matching opt-in pytest marker. what: - Add the uvx no-cache smoke-test command - Document the pytest marker invocation - Note the network dependency of the isolated install check
why: Pull-request checks should fail when the package imports only work because development dependencies are present in the test environment. what: - Run the runtime dependency smoke script after pytest - Use uvx with an isolated no-cache runtime install
why: The runtime smoke branch needs a product-level changelog note that explains the install-path benefit without exposing implementation churn. what: - Add a What's new entry for runtime-only install checks - Describe the user-facing dependency assurance
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
Motivation
vcspull's development environment can mask imports that only work because dev/test dependencies are installed. The branch verifies the package the way users install it, so missing runtime dependencies are caught before release without adding
typing_extensionsto standard package dependencies.Test plan
uv run ruff format . --checkuv run ruff check .uv run mypyuv run py.test— 1415 passed, 1 skippeduv run py.test -m scripts__runtime_dep_smoketest -suvx --python 3.14 --isolated --no-cache --from . python scripts/runtime_dep_smoketest.pyuvx --python 3.10 --isolated --no-cache --from . python scripts/runtime_dep_smoketest.pyjust build-docs