Make source updates atomic - #63
Conversation
| [testenv:{unit,test,py3}] | ||
| description = Run all non-Ansible tests through stdlib unittest | ||
| commands = | ||
| python -m unittest discover -s {toxinidir}/tests -p 'test_*.py' -v {posargs} |
There was a problem hiding this comment.
I'm not sure about moving tests to python for the same reasons that having build.sh itself in bash. I think we should move testing framework to python when/if we move build.sh to python.
|
BTW, Wrong branch too. |
0a14e6a to
e3ffe11
Compare
e3ffe11 to
5221408
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Dependency markers are evaluated by the Python interpreter running the resolver. Allowing different Python minor versions and unpinned generator tools therefore produces host-dependent lock files and noisy generator metadata. Require Python 3.12 for source and lock generation, pin the resolver tools, and normalize annotations, headers, and index configuration from generated locks. Add a pinned-source reproducibility workflow and architecture checks, then regenerate the tracked lock files with the canonical environment. Assisted-By: Pi gpt-5.6-sol Signed-off-by: Sean Mooney <work@seanmooney.info> (cherry picked from commit d28af26)
Source maintenance currently resolves and applies repositories one at a time. A late failure can therefore leave tracked source pins partially updated, and a moving branch can provide different content during one invocation. Preflight every selected source record and freeze each effective commit before tracked mutation. Retain the fetched objects for the complete run, record their authority in a deterministic manifest, and install source updates atomically. Replace the shell test harness with the existing stdlib unittest coverage for failure isolation, stream safety, checkout ownership, and multi-target scope. Assisted-By: Pi gpt-5.6-sol Signed-off-by: Sean Mooney <work@seanmooney.info> (cherry picked from commit 0a14e6a)
5221408 to
40b6f2b
Compare
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Summary
Validation
uvx --python 3.13 tox -e unit(24 passed)git diff --checkDependency
Depends on replacement PR #80. This PR targets
maindirectly and temporarily shows #80's prerequisite commit until #80 merges.tests/test_reproducibility_architecture.pyremains absent, matching the corrected #80 boundary.