From e01544e0739f11e71fee3ea94f6926e74a70ae17 Mon Sep 17 00:00:00 2001 From: Ivan Subotic <400790+subotic@users.noreply.github.com> Date: Fri, 20 Mar 2026 23:58:18 +0100 Subject: [PATCH 1/2] ci(release): fix duplicate tag error in multi-crate workspace release-plz was creating the same v{{ version }} tag for both loom-cli and loom-core, causing "Reference already exists" on the second crate. Fix: disable git_tag_enable at workspace level, enable it only on loom-cli (the primary package). loom-core inherits the disabled default. See: https://release-plz.ieni.dev/docs/extra/single-tag See: https://github.com/release-plz/release-plz/issues/2292 Co-Authored-By: Claude Opus 4.6 (1M context) --- release-plz.toml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/release-plz.toml b/release-plz.toml index d9c5120..e266bb7 100644 --- a/release-plz.toml +++ b/release-plz.toml @@ -1,8 +1,9 @@ [workspace] # Let cargo-dist create the GitHub Release (it attaches binaries) git_release_enable = false -# Tag format matching cargo-dist expectations -git_tag_name = "v{{ version }}" +# Disable tagging at workspace level — only loom-cli creates the single tag +# (prevents "Reference already exists" when both crates share the same tag name) +git_tag_enable = false # Disable per-package changelogs by default changelog_update = false # Check for semver-breaking changes @@ -28,11 +29,12 @@ commit_parsers = [ [[package]] name = "loom-cli" -# loom-cli owns the unified root changelog +# loom-cli owns the unified root changelog and the single git tag changelog_update = true changelog_path = "./CHANGELOG.md" -# Include loom-core commits in the same changelog changelog_include = ["loom-core"] +git_tag_enable = true +git_tag_name = "v{{ version }}" version_group = "loom" [[package]] From 43c0435aa0a0ebe8026b5e4f9ea305cf9b338c9e Mon Sep 17 00:00:00 2001 From: Ivan Subotic <400790+subotic@users.noreply.github.com> Date: Sat, 21 Mar 2026 00:04:30 +0100 Subject: [PATCH 2/2] build: add [profile.dist] required by cargo-dist 0.31.0 cargo-dist 0.31.0 expects a `dist` cargo profile for release builds. Without it, `dist build` fails with "profile `dist` is not defined". Co-Authored-By: Claude Opus 4.6 (1M context) --- Cargo.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 69b463e..9ace251 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -61,3 +61,8 @@ self_update = { version = "0.43", default-features = false, features = [ # Testing (used as dev-dependency in crates) insta = "1.42" + +# cargo-dist build profile +[profile.dist] +inherits = "release" +lto = "thin"