Skip to content

release(v0.34.4): bump 4 manifests + ratchet floors#85

Merged
priceflex merged 1 commit into
mainfrom
release/v0.34.4
May 31, 2026
Merged

release(v0.34.4): bump 4 manifests + ratchet floors#85
priceflex merged 1 commit into
mainfrom
release/v0.34.4

Conversation

@priceflex
Copy link
Copy Markdown
Owner

@priceflex priceflex commented May 31, 2026

What

Polyglot version bump across the 4 manifests so a tagged v0.34.4 release reports 0.34.4 at runtime (not the stale 0.34.3), plus a floor-guard ratchet so the version-pin tests are a live tripwire instead of decayed background noise.

File Before After
proto/Cargo.toml 0.34.3 0.34.4
ns/mix.exs 0.34.3 0.34.4
relay/mix.exs 0.34.3 0.34.4
gateway/mix.exs 0.34.3 0.34.4
proto/tests/version_pin_test.rs MINIMUM_VERSION 0.32.2 0.34.4
*/test/ztlp_*/release_test.exs floor 0.32.2 0.34.4

Why

Three feature PRs have landed on main since v0.34.3 and operators need compiled artifacts:

Per release-version-pinning skill pitfall 13 (floor decay): every release-bump PR ratchets the floor in the SAME commit. The v0.32.2 floor sat through four releases (v0.34.0/.1/.2/.3); that's exactly the decay pattern documented in the skill. Closing it now.

RED → GREEN

RED — floors ratcheted, manifests still at 0.34.3, ran cargo test --test version_pin_test:

test cargo_pkg_version_is_at_least_minimum_floor ... FAILED
proto/Cargo.toml version 0.34.3 is older than the v0.34.4 strict-routing tag.

GREEN — after bumping manifests:

Component Tests Result
proto (Rust) 2 / 2
ns (Elixir) 15 / 15
relay (Elixir) 15 / 15
gateway (Elixir) 15 / 15

Details

  • Inline manifest comments updated with the bump history (skill convention).
  • Floor message names both versions per skill pitfall 3.

Validation

  • Manifest semver shape: parseable in all 4 components
  • Runtime-vs-declared: passes (Application.spec/:vsn in Elixir, env!("CARGO_PKG_VERSION") in Rust)
  • Floor guard: passes at exactly v0.34.4 (eq case)

Follow-up

After merge:

  1. git tag v0.34.4 <merge-commit> and push the tag
  2. release.yml workflow fires and publishes Rust binaries (5 targets), Elixir OTP releases (3 components), desktop installers (Tauri NSIS/MSI/AppImage/deb), and eBPF source
  3. Run scripts/verify_release_artifact_version.sh priceflex/ztlp v0.34.4 0.34.4 to confirm embedded version strings actually match the tag (skill pitfall 11)

Summary by CodeRabbit

  • Chores

    • Bumped application version to 0.34.4 across all platform components (gateway, namespace services, protocol library, and relay services).
  • Tests

    • Updated version compatibility validation tests to enforce minimum version requirement of 0.34.4.

What
----
- proto/Cargo.toml: version 0.34.3 → 0.34.4
- ns/mix.exs:       version 0.34.3 → 0.34.4
- relay/mix.exs:    version 0.34.3 → 0.34.4
- gateway/mix.exs:  version 0.34.3 → 0.34.4
- proto/tests/version_pin_test.rs: floor 0.32.2 → 0.34.4
- {ns,relay,gateway}/test/ztlp_*/release_test.exs: floor 0.32.2 → 0.34.4

Why
---
Three feature PRs landed on main since v0.34.3 and need a tagged release so
operators can deploy compiled binaries to TRSDC and the broader fleet:

  - #82 D4 — Windows NRPT-based DNS interception for ZTLP zones
  - #83 D5 — Browser TLS green-lock (real X.509 chain + machine CA + SNI mint)
  - #84 D6 — UI Setup Wizard (5-click post-enrollment setup)

Per the release-version-pinning skill (pitfall 13, floor decay), every
release-bump PR ratchets the floor to the new version in the SAME commit so
the floor guard is a live tripwire, not a stale value sitting two minor
versions below current. v0.32.2 floor through three releases (v0.34.0/.1/.2/.3)
was the exact decay pattern documented in the skill.

Details
-------
- Floor in Cargo.toml + 3× mix.exs all moved together so a future tag cut
  on a pre-bump commit fails the floor guard with a clear "X.Y.Z is older
  than v0.34.4" message naming both versions (skill pitfall 3).
- Inline manifest comments updated with the bump history.

Tests
-----
- RED first: ratcheted floors WITHOUT bumping manifests; ran
  `cargo test --test version_pin_test` — got expected failure
  "proto/Cargo.toml version 0.34.3 is older than the v0.34.4 strict-routing tag"
- GREEN: bumped manifests; all 4 component test suites green:
  - proto:   2/2 (version_pin_test)
  - ns:      15/15 (release_test)
  - relay:   15/15 (release_test)
  - gateway: 15/15 (release_test)

Validation
----------
- Manifest semver shape: parseable in all 4 components
- Runtime-vs-declared: passes (Elixir Application.spec / Rust CARGO_PKG_VERSION)
- Floor guard: passes at exactly v0.34.4 (eq case)

Follow-up
---------
After merge, tag v0.34.4 on the merge commit. release.yml workflow fires on
the tag and publishes:
- Rust binaries for 5 targets (linux x86/arm, darwin x86/arm, windows-msvc)
- Elixir OTP releases for NS, relay, gateway (linux x86_64)
- Desktop installers (Tauri NSIS/MSI on Windows, AppImage/deb on Linux)
- eBPF source tarball
After workflow completes, run scripts/verify_release_artifact_version.sh
priceflex/ztlp v0.34.4 0.34.4 to confirm embedded version strings match.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 31, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f4d3f5db-dc27-495d-8494-ea5ab148d92d

📥 Commits

Reviewing files that changed from the base of the PR and between f1cd2a4 and 0d7aeb3.

📒 Files selected for processing (8)
  • gateway/mix.exs
  • gateway/test/ztlp_gateway/release_test.exs
  • ns/mix.exs
  • ns/test/ztlp_ns/release_test.exs
  • proto/Cargo.toml
  • proto/tests/version_pin_test.rs
  • relay/mix.exs
  • relay/test/ztlp_relay/release_test.exs

📝 Walkthrough

Walkthrough

This PR performs a coordinated version bump from 0.34.3 to 0.34.4 across the ZTLP multi-language project. It updates version declarations in all four manifests (gateway, ns, relay, proto) and ratchets release-floor regression tests to enforce a minimum version of 0.34.4, preventing accidental downgrades.

Changes

Version bump to 0.34.4

Layer / File(s) Summary
Version declarations in manifests
gateway/mix.exs, ns/mix.exs, relay/mix.exs, proto/Cargo.toml
Version field updated from 0.34.3 to 0.34.4 in all Mix and Cargo manifests.
Release-floor regression test updates
gateway/test/ztlp_gateway/release_test.exs, ns/test/ztlp_ns/release_test.exs, relay/test/ztlp_relay/release_test.exs, proto/tests/version_pin_test.rs
Version-floor assertions raised from 0.32.2 to 0.34.4 using Version.compare/2 logic; failure messages updated to reference the new minimum tag.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • priceflex/ztlp#14: Updates version-floor/regression-pin logic by bumping minimum versions in release_test.exs, mix.exs, and proto/tests/version_pin_test.rs.
  • priceflex/ztlp#32: Performs version-bump changes in the same manifest files (gateway/mix.exs, ns/mix.exs, relay/mix.exs, proto/Cargo.toml).
  • priceflex/ztlp#72: Adjusts the same version ratchet fields and release/floor regression tests by bumping minimum versions in manifests and test files.

Poem

🐰 Four homes all bumped with glee,
From point-three to point-four, you see—
The version ratchet clicks just so,
Regression tests keep downgrades low!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: bumping 4 manifests to v0.34.4 and updating version-floor constraints.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/v0.34.4

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@priceflex priceflex merged commit 5889b6f into main May 31, 2026
8 checks passed
@priceflex priceflex deleted the release/v0.34.4 branch May 31, 2026 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant