Skip to content

build(release): migrate from release-plz to cargo-release#141

Draft
JustinKovacich wants to merge 5 commits into
mainfrom
chore/cargo-release-migration
Draft

build(release): migrate from release-plz to cargo-release#141
JustinKovacich wants to merge 5 commits into
mainfrom
chore/cargo-release-migration

Conversation

@JustinKovacich

Copy link
Copy Markdown
Contributor

Phase A of DFT→Kellnr: standardize simple_someip on cargo-release (tag v{version}, crates.io, publish=false, CI-owned), retiring release-plz. Examples + embassy-net stay publish=false; only simple-someip publishes.

Publish stays deliberate: the publish job only runs when vars.SIMPLE_SOMEIP_PUBLISH_ENABLED is set and a crates.io token is provisioned. Nothing publishes on merge.

⚠️ Heads-up for maintainers: main currently has ~12 failing lib tests (heapless event_group_ids capacity exceeded: 67 at src/server/mod.rs:370). They're unrelated to this CI/manifest change, but the pre-release-hook runs the test suite, so a real cargo release is blocked until they're fixed.

Note: cargo-release does not auto-generate a CHANGELOG / GitHub release the way release-plz did — intentional for this flow.

Part of the DFT→Kellnr Phase A program (per-repo release model).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 30, 2026 08:01
@JustinKovacich JustinKovacich self-assigned this Jun 30, 2026
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #141   +/-   ##
=======================================
  Coverage   81.13%   81.13%           
=======================================
  Files          45       45           
  Lines       15182    15182           
=======================================
  Hits        12318    12318           
  Misses       2864     2864           

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the repository’s release automation from release-plz to cargo-release, aligning with a tag-based (v*) release flow and introducing a gated crates.io publish job.

Changes:

  • Add cargo-release configuration via release.toml (including tag naming and a pre-release test hook).
  • Replace release-plz GitHub Actions workflow/config with a new Release workflow that runs semver checks and (optionally) publishes on tag pushes.
  • Mark simple-someip-embassy-net as non-publishable (publish = false) to ensure only the main crate is intended for publication.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
simple-someip-embassy-net/Cargo.toml Marks the adapter crate as publish = false to prevent accidental publishing.
release.toml Introduces cargo-release configuration (tagging, branch restriction, pre-release test hook).
release-plz.toml Removes legacy release-plz configuration.
.github/workflows/release.yml Adds new release workflow with semver checks and a gated publish job using cargo-release.
.github/workflows/release-plz.yml Removes legacy release-plz GitHub Actions workflow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/release.yml Outdated
Comment thread release.toml
JustinKovacich and others added 2 commits June 30, 2026 04:32
Two fixes to the new Release workflow:

1. Semver Checks failed because the action's default `all-features` group
   unions `bare-metal-runtime` (no-alloc, nightly) with the alloc features,
   tripping the mutual-exclusion `compile_error!` in lib.rs so rustdoc — and
   thus the whole check — aborts. Mirror ci.yml's SemVer Check: pin
   `feature-group: only-explicit-features` to the host/alloc feature set.

2. `cargo release publish --workspace` does NOT honor the `publish = false`
   manifest flags on the examples / embassy-net member (verified via dry-run:
   it plans to publish all 7 members); `cargo publish` then rejects the
   non-publishable ones. Scope to `--package simple-someip`. Also document
   in release.toml that only simple-someip is released, which makes the
   single `v{version}` tag/message unambiguous under `shared-version = false`.

Addresses both Copilot review threads on #141.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 30, 2026 18:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml
@JustinKovacich JustinKovacich marked this pull request as ready for review June 30, 2026 18:36
JustinKovacich and others added 2 commits June 30, 2026 14:44
- Drop the `pull_request` trigger: the PR-time semver gate duplicates
  `CI / SemVer Check` (ci.yml) with the same action and feature set. This
  workflow's semver-checks job is the publish gate, so it only needs to run
  on release-tag pushes.
- Narrow `permissions` to `contents: read`: no job creates tags/releases or
  pushes; publish uses CARGO_REGISTRY_TOKEN, not the GITHUB_TOKEN.

Addresses the two Copilot review threads on #141.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Drop the stale "once the publish proxy is live" precondition. Publishing to
crates.io needs only CARGO_REGISTRY_TOKEN + crates.io reachability; the Kellnr
crates.io proxy fronts crates.io for dft-side consumption of the published
crate, a separate concern. The real gate is the token + the decision to cut a
first version.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@JustinKovacich JustinKovacich marked this pull request as draft July 13, 2026 17:19
@JustinKovacich

Copy link
Copy Markdown
Contributor Author

Holding — as part of the protocol-stack reframe, this crate is slated to move to a dedicated public repo under a new MicroVision public org (built on the Automotive Wire Codec, consumed internally via the Kellnr proxy). Standing up publish tooling in its current home is therefore on hold pending the org/hosting decision (to be finalized with Zach).

Converting to draft rather than closing so the work is easy to resume once the target repo/org is settled.

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.

4 participants