A release with breaking changes as the dependency engine was reworked to handle even more cases
and make future improvements easier.
New Features
-
Respect
publish=false
in cargo manifest -
Perform safety bumps without forcing a publish.
This is what's required to assure that future publishes of such
transitively dependent crates won't cause downstream breakage the next time the tool is run. -
Inform about safety bumps more explicitly,
and generally greatly improve the way the course of action is described.
Bug Fixes
-
Dependency resolution.
Previously the ordering of crates for release might not have been
correct due to this issue that is now fixed.We need depth-first traversals and previously it would extend skipped
dependencies, effectively putting them into their own ordering.Previously it would restore that ordering, but not anymore, causing
this bug that was entirely unnecessary. -
--no-changelog
during smart-release is now actually workingPreviously the flag had no effect and changelogs would always be
generated, possibly stopping the release as at least one of them
needed manual work. -
Pin version of clap to beta 5.
This assures we don't get broken automatically in future.
Previously that wasn't possible as the dependency ofclap
,
clap-derive
was also using a beta verion and wasn't constrained,
hence it would be updated and cause breaking changes with pinned
versions of consumers ofclap
.
Changed (BREAKING)
-
changelog
subcommand inverts--dependencies
to--no-dependencies
-
Remove
--no-multi-crate-release
support entirelyAs the default is to do multi-crate releases and now having to deal
with single-create releases reduces maintenance burden.The solution to this problem is to not specify version constraints in
dev-dependencies to workspace crates.We also don't check for this anymore, which might be re-added
at some point if there is demand.This makes dependency resolution similar to cargo smart-release by default and is less surprising.
Commit Statistics
- 81 commits contributed to the release over the course of 3 calendar days.
- 10 commits where understood as conventional.
- 4 unique issues were worked on: #198, #221, #222, #224
Thanks Clippy
Clippy helped 3 times to make code idiomatic.
Commit Details
view details
- #198
- #221
- #222
- refactor (72bda30)
- refactor (c8c0dcd)
- refactor (f7a8847)
- fix merging of dependency graphs for multiple crates (d332cdf)
- Revert "FAIL: try to assure that breaking changes are always published in correct order" (f25e7c7)
- try to assure that breaking changes are always published in correct order (3519f9a)
- update changelogs prior to release (9a493d0)
- Respect user selection when re-adding crates for manifest change (72d16bf)
- dependency resolution (501c1d1)
- --no-changelog during smart-release is now actually working (5e98e55)
- replace TODO with runtime logging (f457e65)
- unify presentation even more (7c32409)
- adjust expectations in smart-release journey tests (1f96a72)
- group skipped items by skipped reason (ba28746)
- unify reporting style (99be2e1)
- fix reporting of skipped crates, consider adjustment (ac91016)
- Abort if not a single provided crate would need publishing (478c4ea)
- improved reporting of skipped/refused crates; abort operation if there is nothing to publish (f9358f1)
- better reporting of crates that where refused to be published (1d7142a)
- 'changelog' subcommand change --dependencies to --no-dependencies (59302ae)
- Properly resolve breaking propagation through the graph (4f25236)
- multi-round discovery of breaking changes from published packages (dc93e1a)
- Verify and partially fix journey tests (e53a7f6)
- remove all now unused items (40f2da2)
- use Dependency in manifest editor (d5c905a)
- upgrade to clap 3 beta 5 (2ddc4ed)
- Show only changelogs that would be published (e20f498)
- refactor (244431f)
- Fix reporting of skipped crates (a305232)
- Respect publish=false in cargo manifest (6d4edfa)
- more consistent reporting of what would be done (47ce4b0)
- refactor (369fa93)
- don't try to change crates that are already at the correct version (561aac3)
- keep ordering of causes for breaking changes when printing (f4a0970)
- better safety bumps to be more concise (7c8335a)
- Perform safety bumps without forcing a publish (7648bf3)
- refactor (ebec001)
- inform about the crates seeing a mnifest update too; only show fully-skipped crates (7f2a927)
- fix:! breaking changes cause intermediate (otherwise skipped) crates to be published. (fb6b909)
- reverse-bumping for safety works, including publishing :) (5e1713c)
- track root-cause as well (7f8e720)
- sketch backwards search for lifting crates to be published (0b018c0)
- Realize that the search can't be 'flat' (13db698)
- start sketching backward traversal… (de1d7f7)
- sumarize manifest updates rather than spelling out each one (8cf00e0)
- update test expectations and formulate 'the algorithm' (c0693ae)
- refactor (0bfb1b1)
- assure changelog picks up safety bumps as well (f2a497b)
- Collect crates for manifest updates (56ccdd2)
- Remove --no-multi-crate-release support entirely (07372dd)
- remove performance measurements (37bacee)
- refactor (ac85cdf)
- no newlines in gh traces (afd9b9e)
- refactor (03c7dba)
- Simplify use of 'verbose' flag by using log::trace! as well (4dc5f4b)
- refactor (e256949)
- refactor (e4ffa71)
- try to represent safety-bump versions (9f3001f)
- refactor (6f84e0b)
- Simple version bumping logic based on what currently exists, with printout (81e5785)
- fully data-driven presentation of dependency tracking results… (fd53e22)
- refactor (51a5d36)
- refactor (b8a5fc8)
- refactor (10aa1eb)
- refactor (cfec54d)
- Remove
--only
alias and invert--no-dependencies
to--dependencies
(2f87196) - Keep track of skipped crate names for future use (f0a04c7)
- #224
- pin version of clap to beta 5 (dfc588b)
- Uncategorized
- changelog update (7fcd02e)
- Adjusting changelogs prior to release of cargo-smart-release v0.5.0 (11f55d3)
- Release git-hash v0.8.0, git-features v0.17.0, git-actor v0.6.0, git-object v0.15.0, git-diff v0.11.0, git-traverse v0.10.0, git-pack v0.13.0, git-odb v0.23.0, git-packetline v0.12.0, git-transport v0.13.0, git-protocol v0.12.0, git-ref v0.9.0, git-repository v0.11.0, git-commitgraph v0.6.0, gitoxide-core v0.12.0, gitoxide v0.10.0, cargo-smart-release v0.5.0, safety bump 16 crates (0e02953)
- thanks clippy (7496ba3)
- thanks clippy (b717323)
- thanks clippy (c4efd9d)