You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(cargo-mono): always forward --no-verify on publish (#348)
## Summary
- always pass `--no-verify` to delegated `cargo publish` calls,
including dry-run mode
- update publish error context, CLI help text, and cargo-mono docs to
describe the new contract
- extend integration coverage to assert forwarded cargo publish flags in
execute and dry-run flows
## Testing
- cargo test -p cargo-mono
- cargo test
- Keep release-tag responsibility split: `bump` must not create tags, and `publish` may create tags only for packages listed in `[workspace.metadata.cargo-mono.publish.tag].packages`.
38
+
- Keep `publish` delegation aligned with the documented contract: `cargo mono publish` must invoke `cargo publish --no-verify` in both execute and dry-run modes.
`cargo mono publish` always delegates to `cargo publish --no-verify`, including `--dry-run`
15
+
execution.
16
+
14
17
## Publish Tag Configuration
15
18
16
19
`cargo mono publish` can create local Git tags for published crates when opt-in allowlist
@@ -40,7 +43,7 @@ Coverage highlights:
40
43
-`list`: workspace discovery and publishability reporting.
41
44
-`changed`: base override, include/exclude filters, invalid glob rejection, direct-only vs dependent expansion, include-uncommitted behavior, and global-impact file handling.
42
45
-`bump`: clean-tree preflight, non-publishable skip behavior, manifest/version/dependency updates, dependent patch propagation, and release commit creation (no tag creation).
43
-
-`publish`: clean-tree preflight, non-publishable skip behavior, unknown package validation, and allowlist-based publish tag creation.
46
+
-`publish`: clean-tree preflight, fixed `--no-verify` delegation (including dry-run), unknown package validation, and allowlist-based publish tag creation.
Copy file name to clipboardExpand all lines: docs/crates-cargo-mono-foundation.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,7 @@
19
19
- Publish and bump workflows must preserve scriptable output contracts for automation.
20
20
-`bump` must not create Git tags.
21
21
-`publish` is the only command allowed to create release tags, and only for packages listed in `[workspace.metadata.cargo-mono.publish.tag].packages`.
22
+
-`publish` must always delegate to `cargo publish --no-verify`, including when `cargo mono publish --dry-run` is used.
22
23
- Publish tag creation is opt-in by default (no config means no tags), must remain local-only (`git tag` without push), and must use `<crate>@v<version>` naming.
23
24
- Remote tag publication is owned by CI automation: `.github/workflows/auto-publish.yml` must run `git push --tags` after a successful `publish` command, with checkout credential persistence disabled and authentication bound to `secrets.GH_TOKEN` (non-`GITHUB_TOKEN`) so downstream tag-triggered workflows run.
24
25
- If `publish` tag configuration references unknown workspace packages, command execution must fail with `invalid-input`.
Copy file name to clipboardExpand all lines: docs/project-cargo-mono.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,7 @@ Provide a Cargo subcommand for Rust monorepo lifecycle management, including ver
16
16
- The binary must remain compatible with `cargo mono` invocation conventions.
17
17
- Release automation integration must keep stable command semantics.
18
18
- Release tagging responsibility is split by command: `bump` must not create Git tags, while `publish` may create local Git tags for configured packages.
19
+
-`publish` must delegate to `cargo publish --no-verify` for all package uploads and dry-run executions.
19
20
- Remote tag publication remains CI-owned: `auto-publish` pushes release tags with `git push --tags` after a successful `publish` run, with checkout credential persistence disabled and authentication bound to `secrets.GH_TOKEN` (non-`GITHUB_TOKEN`) so downstream tag-triggered workflows run.
20
21
- Publish tag configuration must be opt-in through `[workspace.metadata.cargo-mono.publish.tag].packages`, and tag naming must remain `<crate>@v<version>`.
21
22
- Tag release automation must detect `cargo-mono@v*` and produce signed multi-OS prebuilt artifacts without changing CLI command behavior.
0 commit comments