Skip to content

Commit 0840685

Browse files
committed
Restore lockfile and cut v0.2.20
1 parent 2866de1 commit 0840685

7 files changed

Lines changed: 186 additions & 184 deletions

File tree

Cargo.lock

Lines changed: 24 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ members = ["crates/*"]
44
exclude = ["support/m80-close-range"]
55

66
[workspace.package]
7-
version = "0.2.19"
7+
version = "0.2.20"
88
edition = "2021"
99
license = "Apache-2.0 OR MIT"
1010
repository = "https://github.com/nathanp/m80"

crates/m80-cli/tests/release/current_latest_version_cutover.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@ fn current_latest_version_cutover_names_real_repair_tag() {
2828
.expect("read installer layout fixture");
2929

3030
assert!(
31-
cargo_toml.contains("version = \"0.2.19\""),
31+
cargo_toml.contains("version = \"0.2.20\""),
3232
"workspace package version must match the current repair tag"
3333
);
3434
assert!(
35-
runbook.contains("workspace package version `0.2.19`")
36-
&& runbook.contains("expected release tag is `v0.2.19`"),
35+
runbook.contains("workspace package version `0.2.20`")
36+
&& runbook.contains("expected release tag is `v0.2.20`"),
3737
"release runbook must document the real current repair version"
3838
);
3939
assert!(
40-
behavior.contains("matching stable tag is `v0.2.19`")
40+
behavior.contains("matching stable tag is `v0.2.20`")
4141
&& behavior.contains("`v0.2.7` installer handoff"),
4242
"behavior doc must name the repaired tag and the superseded latest state"
4343
);

docs/behaviors/release/current-latest-version-cutover.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,22 @@ GitHub-hosted latest-promotion gate. `v0.2.18` preserves the public installer's
3232
configured command directory inside its sanitized child environment, then
3333
published and promoted latest but failed while writing the anonymous
3434
public-access receipt because GitHub's latest API lagged the latest promotion.
35-
`v0.2.19` keeps the installer fix and retries only those transient stale-latest
36-
observations before declaring the public-access receipt failed.
35+
`v0.2.19` carried that retry but failed before release mutation because the
36+
version bump accidentally rewrote the locked `libc 0.2.186` entry. `v0.2.20`
37+
keeps the installer fix, restores the lockfile, and retries only transient
38+
stale-latest observations before declaring the public-access receipt failed.
3739

38-
The current repair source therefore uses workspace package version `0.2.19`.
39-
The matching stable tag is `v0.2.19`; tags at or before the existing public
40+
The current repair source therefore uses workspace package version `0.2.20`.
41+
The matching stable tag is `v0.2.20`; tags at or before the existing public
4042
latest `v0.2.11` are intentionally rejected as old-release backfill candidates
4143
by `scripts/current_latest_repair_preflight.py`.
4244

4345
The release runbook documents this as the real source-state expectation rather
4446
than a fixture-only value. Dev builds still render as `<package-version>-dev`,
45-
so an unreleased local build now reports `0.2.19-dev` and remains barred from
47+
so an unreleased local build now reports `0.2.20-dev` and remains barred from
4648
using mutable `releases/latest` implicitly.
4749

48-
Fixture and release-script coverage uses `v0.2.19` as the packageable release
50+
Fixture and release-script coverage uses `v0.2.20` as the packageable release
4951
tag. Rust installer-layout fixtures derive their release tag from
5052
`CARGO_PKG_VERSION`, so the bundled layout tests also follow the same cutover.
5153
Tests may still use other tags only when they are explicitly testing mismatch,

docs/runbook/release.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ M80_RELEASE_TAG=vX.Y.Z \
1616
```
1717

1818
The injected tag must be the exact `v<workspace package version>` tag. For the
19-
workspace package version `0.2.19`, the expected release tag is `v0.2.19`.
19+
workspace package version `0.2.20`, the expected release tag is `v0.2.20`.
2020
The injected source commit must be the exact commit used by the release build
2121
manifest and signed release integrity material.
2222
The injected Rust target triple must be one of the target triples recorded in

scripts/test-current-latest-repair-preflight.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ def test_accepts_clean_new_stable_tag_that_supersedes_current_latest(self) -> No
2222
artifact = accepted_fixture()
2323

2424
self.assertTrue(artifact["decision"]["ok"])
25-
self.assertEqual(artifact["target_tag"], "v0.2.19")
26-
self.assertEqual(artifact["expected_release_tag"], "v0.2.19")
25+
self.assertEqual(artifact["target_tag"], "v0.2.20")
26+
self.assertEqual(artifact["expected_release_tag"], "v0.2.20")
2727
self.assertFalse(artifact["dirty_tree"]["dirty"])
2828
self.assertEqual(artifact["existing_latest"]["tag"], "v0.2.11")
2929
self.assertFalse(artifact["supersedes_missing_installer_latest_state"])
@@ -51,7 +51,7 @@ def test_rejects_tag_version_mismatch(self) -> None:
5151

5252
diagnostic = only_diagnostic(artifact)
5353
self.assertEqual(diagnostic["field"], "target_tag")
54-
self.assertEqual(diagnostic["expected"], "v0.2.19")
54+
self.assertEqual(diagnostic["expected"], "v0.2.20")
5555
self.assertEqual(diagnostic["observed"], "v0.2.14")
5656
self.assertIn("Cargo.toml workspace.package.version", diagnostic["safe_repair_action"])
5757

@@ -92,7 +92,7 @@ def test_cli_accepts_current_workspace_version_without_override(self) -> None:
9292
"python3",
9393
str(SCRIPT),
9494
"--release-tag",
95-
"v0.2.19",
95+
"v0.2.20",
9696
"--source-commit",
9797
SOURCE_COMMIT,
9898
"--tag-commit",
@@ -116,8 +116,8 @@ def test_cli_accepts_current_workspace_version_without_override(self) -> None:
116116

117117
self.assertEqual(result.returncode, 0, result.stderr)
118118
payload = json.loads(out.read_text())
119-
self.assertEqual(payload["workspace_package_version"], "0.2.19")
120-
self.assertEqual(payload["expected_release_tag"], "v0.2.19")
119+
self.assertEqual(payload["workspace_package_version"], "0.2.20")
120+
self.assertEqual(payload["expected_release_tag"], "v0.2.20")
121121
self.assertEqual(payload["decision"]["status"], "accepted")
122122

123123
def test_cli_writes_rejected_artifact_before_exiting_nonzero(self) -> None:
@@ -128,9 +128,9 @@ def test_cli_writes_rejected_artifact_before_exiting_nonzero(self) -> None:
128128
"python3",
129129
str(SCRIPT),
130130
"--release-tag",
131-
"v0.2.19",
131+
"v0.2.20",
132132
"--workspace-version",
133-
"0.2.19",
133+
"0.2.20",
134134
"--source-commit",
135135
SOURCE_COMMIT,
136136
"--tag-commit",
@@ -161,9 +161,9 @@ def test_cli_writes_rejected_artifact_before_exiting_nonzero(self) -> None:
161161

162162
def accepted_fixture(**overrides: object) -> dict:
163163
values = {
164-
"release_tag": "v0.2.19",
164+
"release_tag": "v0.2.20",
165165
"source_commit": SOURCE_COMMIT,
166-
"workspace_package_version": "0.2.19",
166+
"workspace_package_version": "0.2.20",
167167
"tag_commit": SOURCE_COMMIT,
168168
"existing_latest_tag": "v0.2.11",
169169
"existing_latest_url": "https://github.com/moradology/m80/releases/tag/v0.2.11",

0 commit comments

Comments
 (0)