Repository navigation
Conversation
The tests for devlaunch#638 push a clone's commits "by URL" and expect the clone's refs/remotes/origin/* to stay stale. They pushed to the bare path, which is exactly origin's configured URL. git 2.56 matches a push URL against the configured remotes and, on an exact match, updates that remote's tracking refs. So on git 2.56 the clone read clean before rm ran, and five tests failed on their own precondition. git 2.43 (CI's ubuntu image) does not do this, so CI stayed green. Push to the file:// URL of the same repository instead. That is a different spelling of origin, the way an agent's HTTPS fallback is a different spelling of an SSH origin, and both git versions leave the tracking refs stale. No assertion changes.
Reviewer's GuideUpdates five by-URL push test fixtures to use a distinct File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
This branch has not been deployed
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.
What this changes
Five tests failed on a host with git 2.56. They passed in CI, which has git 2.55.
The tests for #638 push a clone's commits "by URL". They expect the clone's
refs/remotes/origin/*to stay stale. The fixture pushed to the bare repo's path. That path is exactly the URL oforigin. git 2.56 matches a push URL against the configured remotes. On an exact match, it updates that remote's tracking refs. So the clone read clean beforermran, and the tests failed on their own setup.The fixture now pushes to the
file://URL of the same repo. That is a different spelling oforigin. An agent's HTTPS fallback is also a different spelling of an SSHorigin, so the fixture now matches the real case better. No assertion changes. No product code changes.The tests that failed:
flows::lifecycle::tests::commits_pushed_by_url_do_not_stop_a_plain_rmflows::lifecycle::tests::a_site_pushed_by_url_does_not_stop_a_plain_rmflows::lifecycle::tests::a_remote_that_cannot_be_reached_leaves_the_refusal_standingflows::lifecycle::tests::a_host_that_prunes_on_fetch_does_not_turn_a_merged_branch_into_unpushed_workdl --test lifecycle a_commit_pushed_by_url_does_not_stop_rmNote: the commit message says CI has git 2.43. That is wrong. CI's
ubuntu-latesthas git 2.55.0, and 2.43 is the host's/usr/bin/git. The cause in the message is correct.How I checked it
GIT_CONFIG_GLOBAL=/dev/null, and underenv -i HOME=<empty> PATH=$PATH. So the cause is not config or env./usr/bin/git(2.43) first onPATH, the test passed. The host's default git is pixi's 2.56.0.git push <bare path> HEAD:main. Thengit rev-list --count origin/main..HEADgives 1 on git 2.43 and 0 on git 2.56. With afile://URL, both give 1.dltest pass on git 2.56 and on git 2.43. They also pass in a clean env (env -i,GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_NOSYSTEM=1).cargo test --workspace --no-fail-fast: 3006 passed, 0 failed.cargo clippy --locked --all-targets -- -D warningsandcargo fmt --check: clean.prek run --from-ref origin/main --to-ref HEAD: passed.pixi run test: 838 passed, 7 skipped.Merge danger
Door: two-way. It is a test-fixture change and a revert undoes it.
Blast radius: test code only, in
rust/devlaunch-core/src/flows/lifecycle/tests.rsandrust/dl/tests/lifecycle.rs. No shipped behaviour changes.🤖 Generated with Claude Code
Summary by Sourcery
Make URL-based lifecycle tests use a distinct repository URL spelling so their stale-tracking-ref scenarios remain valid across Git versions.
Bug Fixes:
Tests: