v0.18.4: cargo --locked everywhere — hard-fail dependency races
This commit is contained in:
@@ -14,14 +14,14 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
components: clippy, rustfmt
|
components: clippy, rustfmt
|
||||||
- run: cargo fmt --check
|
- run: cargo fmt --check
|
||||||
- run: cargo clippy -- -D warnings
|
- run: cargo clippy --locked -- -D warnings
|
||||||
|
|
||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
- uses: dtolnay/rust-toolchain@1.86.0
|
- uses: dtolnay/rust-toolchain@1.86.0
|
||||||
- run: cargo test --tests
|
- run: cargo test --locked --tests
|
||||||
|
|
||||||
check-macos:
|
check-macos:
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
- uses: dtolnay/rust-toolchain@1.86.0
|
- uses: dtolnay/rust-toolchain@1.86.0
|
||||||
- run: cargo test
|
- run: cargo test --locked
|
||||||
|
|
||||||
publish:
|
publish:
|
||||||
needs: test
|
needs: test
|
||||||
@@ -37,7 +37,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
- uses: dtolnay/rust-toolchain@1.86.0
|
- uses: dtolnay/rust-toolchain@1.86.0
|
||||||
- name: Publish to crates.io
|
- name: Publish to crates.io
|
||||||
run: cargo publish
|
run: cargo publish --locked
|
||||||
env:
|
env:
|
||||||
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
|
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,23 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.18.4 (2026-05-09)
|
||||||
|
|
||||||
|
### Build / CI hardening — no library code changes
|
||||||
|
|
||||||
|
- All `cargo` invocations in `.github/workflows/*.yml` now use
|
||||||
|
`--locked`. Previously `cargo build` / `cargo test` could silently
|
||||||
|
re-resolve `Cargo.lock` if a lock-pinned version wasn't yet on
|
||||||
|
crates.io — masking dependency races between same-tag releases of
|
||||||
|
sibling crates. The 0.18.3 release hit this: autorip's docker image
|
||||||
|
built `libfreemkv v0.18.2` because libfreemkv 0.18.3 hadn't
|
||||||
|
published yet at the time autorip's CI ran, and cargo silently fell
|
||||||
|
back to the previous version. With `--locked`, that race now hard-
|
||||||
|
fails the build with a clear "package X is not in registry" error
|
||||||
|
and we retrigger after the upstream lands.
|
||||||
|
|
||||||
|
- `cargo publish --locked` in the release workflow guards against
|
||||||
|
publishing a lockfile-mismatched release.
|
||||||
|
|
||||||
## 0.18.3 (2026-05-09)
|
## 0.18.3 (2026-05-09)
|
||||||
|
|
||||||
### Behaviour change
|
### Behaviour change
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libfreemkv"
|
name = "libfreemkv"
|
||||||
version = "0.18.3"
|
version = "0.18.4"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version = "1.86"
|
rust-version = "1.86"
|
||||||
license = "AGPL-3.0-only"
|
license = "AGPL-3.0-only"
|
||||||
|
|||||||
Reference in New Issue
Block a user