History

Also parse 'style' if there are breaking changes (#198)

Sebastian Thiel committed 5 years ago

Commit bc9d85a1 parent 4eebaac2 files · +89 −46Browse files

Unified · Split

2 files
  1. cargo-smart-release/CHANGELOG.md +87 −45
  2. cargo-smart-release/src/changelog/parse.rs +2 −1
cargo-smart-release/CHANGELOG.md+87−45
@@ -7,17 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 6 unmodified lines
7 7
8## Unreleased8## Unreleased
9 9
10- Conservative pre-release version handling along with a flag to turn it off. See [this issue][194] for details.10<csr-id-3c0a6389fe5ff981dadca20e8a4a4a0d2ef66e13/>
11- Rename `--allow-auto-publish-of-stable-crates` to `--no-auto-publish-of-stable-crates`, inverting its meaning.11<csr-id-77ed17c703e502e132cda9a94eb8c63db0b627ad/>
12- Add `--no-multi-crate-release` flag to return to previous default behaviour. All crate manifest changes are put into one commit.12
13- automatically bump pre-release transient dependents of published crates to prevent breakage down the road unless 13### New Features
14 `--no-isolate-dependencies-from-breaking-change` is set.14
15 - <csr-id-ae8780e08303946412cedc19ea4d2679be49ec97/> smart-release with --changelog-without option…
16
17 …to allow disabling various changelog segments like clippy, or commit
18 statistics.
19
20 Note that it's always possible to delete individual sections afterwards.
21 - <csr-id-509550f8aa8210f3688c78167a56a21fc1817515/> changelog command learns the --without <section> option
22 With it one can omit auto-generated sections of the given name.
23
24### Fixed
25
26 - <csr-id-11eebdcc572a72b2e66a9db3cae0a01f12a81619/> don't claim to change manifest version if it's the same one
27
28### refactor (BREAKING)
29
30 - <csr-id-1cb41f81cffe19c75aadf49a5cc7ec390ec6cae7/> Use 'to_*' when converting `easy::Object` to specific object kind
31 This also makes the API more consistent while being more idiomatic.
32 - rename --skip-* flags to --no-* for consistency
33 - rename --skip-dependencies to --no-dependencies…
34
35 …to be more inline with existing terminology of other flags.
15 36
16### Commit Statistics37### Commit Statistics
17 38
18<csr-read-only-do-not-edit/>39<csr-read-only-do-not-edit/>
19 40
20 - 178 commits contributed to the release over the course of 19 calendar days.41 - 199 commits contributed to the release over the course of 31 calendar days.
21 - 14 commits where understood as [conventional](https://www.conventionalcommits.org).42 - 14 commits where understood as [conventional](https://www.conventionalcommits.org).
22 - 6 unique issues were worked on43 - 6 unique issues were worked on
23 44
@@ -25,7 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 1 unmodified line
25 46
26<csr-read-only-do-not-edit/>47<csr-read-only-do-not-edit/>
27 48
28[Clippy](https://github.com/rust-lang/rust-clippy) helped 16 times to make code idiomatic. 49[Clippy](https://github.com/rust-lang/rust-clippy) helped 18 times to make code idiomatic.
29 50
30### Commit Details51### Commit Details
31 52
@@ -52,41 +73,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 20 unmodified lines
52 - smart-release: an algorithm to collect dependencies by 'growing' (73794a4)73 - smart-release: an algorithm to collect dependencies by 'growing' (73794a4)
53 - smart-release: foundation for bumping versions (d1145d1)74 - smart-release: foundation for bumping versions (d1145d1)
54 * **#198**75 * **#198**
55 - smart-release with --changelog-without option… (7db19a8)76 - Allow 'refactor' and 'other' in conventional messages if they have breaking changes (4eebaac)
56 - changelog command learns the --without <section> option (1df3ad7)77 - Support writing whole bodies in conventional messages… (c1f3c9d)
57 - Easy removal of statistical sections, by just removing them… (dce113d)78 - Support for paragraphs in conventional items (7f52823)
58 - Rebuild all changelogs to assure properly ordered headlines (cfcaa66)79 - respect release-wide ignore list to allow removing entire conventional headlines (145103d)
59 - reorder headlines according to version ordering… (733d7f1)80 - Only write headlines that we can parse back… (d44369a)
60 - Sort all commits by time, descending… (7c37a3d)81 - handle all possible changelog headlines and add roundtrip tests (fda5ccf)
61 - greatly reduce changelog size now that the traversal fix is applied (3924c03)82 - First basic parsing of conventional user and generated messages (56cd4ac)
62 - Use most relevant parent tree for change comparison… (6d02ac8)83 - parsing of removed conventional messages from changelogs (c593252)
63 - Use hashmap based lookup for trees… (55d2d17)84 - first basic merging of conventional messages… (9af3248)
64 - refactor and improve path filtering to find relevant commits… (99db079)85 - Trivially emulate gits way of handling commit dates… (f58b30a)
65 - The first headline level controls all the other ones (302b267)86 - Also consider changes of changelogs themselves… (8a2042c)
66 - adapt to git-hash refactor (d881734)87 - Adjust date of upcoming version as well (fab4649)
67 - Fixup remaining changelogs… (0ac488a)88 - assure git-conventional is treated like user generated content for statistics (1fd5acb)
68 - Generate changelogs with details (fd0f3bd)89 - merge doesn't consider user generated sections, only the ones it would want to add (ebbebdd)
69 - Only use short hashes for logs, without detecting ambiguity for now (8d48d59)90 - Quick and dirty writing of conventional messages… (adfbd0d)
70 - boost allowed package sizes… (c1636e4)91 - basic generation of git-conventional information (77b0feb)
71 - Stable smart-release journey tests… (d5b3099)92 - Sketch out data structure for git-conventional segments (2713c02)
72 - Update all changelogs with details (0732699)93 - refactor (bcdec5e)
73 - Put commit details to the end of generated segments (bef2e0e)94 - smart-release with --changelog-without option… (ae8780e)
74 - Use message commit id instead of body… (2746d93)95 - changelog command learns the --without <section> option (509550f)
75 - fix md formatting on github (f90f3ce)96 - Easy removal of statistical sections, by just removing them… (91efd68)
76 - create details headline based on log message (4eaab37)97 - Rebuild all changelogs to assure properly ordered headlines (4a9a05f)
77 - Add details behind a fold, but… (3c711f4)98 - reorder headlines according to version ordering… (2ff0c20)
78 - Use the notion of 'changes after merge' only to drive previews… (fb0e46b)99 - Sort all commits by time, descending… (f536bad)
79 - Update changelogs (b30db3b)100 - greatly reduce changelog size now that the traversal fix is applied (a0bc98c)
80 - refactor (90c304e)101 - Use most relevant parent tree for change comparison… (5b9dd14)
81 - Also provide a duration in days for preparing a release as part of statistics (4d36844)102 - Use hashmap based lookup for trees… (48a0c76)
82 - Fix tests (ff15c1b)103 - refactor and improve path filtering to find relevant commits… (01b2466)
83 - refactor (bcec911)104 - The first headline level controls all the other ones (715ea54)
84 - More commit statistics (29a01d6)105 - adapt to git-hash refactor (925d668)
85 - Basic commit statistics with round-trip, more actual information to come (83e2b2d)106 - Fixup remaining changelogs… (2f75db2)
86 - refactor… (6edf196)107 - Generate changelogs with details (e1861ca)
87 - More robust parsing of read-only sections (252e84f)108 - Only use short hashes for logs, without detecting ambiguity for now (772525c)
88 - treat clippy as generated statistical section… (96df84d)109 - boost allowed package sizes… (1b21d71)
89 - Add new section type and write it out: clippy (37280cd)110 - Stable smart-release journey tests… (fc79188)
111 - Update all changelogs with details (58ab2ae)
112 - Put commit details to the end of generated segments (054d207)
113 - Use message commit id instead of body… (9b46f32)
114 - fix md formatting on github (262c000)
115 - create details headline based on log message (04bbcbb)
116 - Add details behind a fold, but… (3360b2e)
117 - Use the notion of 'changes after merge' only to drive previews… (634267c)
118 - Update changelogs (c857d61)
119 - refactor (7a83103)
120 - Also provide a duration in days for preparing a release as part of statistics (bd12cac)
121 - Fix tests (6c98afc)
122 - refactor (65fa0a4)
123 - More commit statistics (0840e7e)
124 - Basic commit statistics with round-trip, more actual information to come (6d097ae)
125 - refactor… (ce0dda2)
126 - More robust parsing of read-only sections (a3954f4)
127 - treat clippy as generated statistical section… (1cff425)
128 - Add new section type and write it out: clippy (6fca2ac)
90 - introduce notion of essential sections in a changelog… (be891e2)129 - introduce notion of essential sections in a changelog… (be891e2)
91 - Preview changelog support for smart-release as well (b9e6de1)130 - Preview changelog support for smart-release as well (b9e6de1)
92 - Detect changes after merge; add flag for controlling changelog preview (6beb734)131 - Detect changes after merge; add flag for controlling changelog preview (6beb734)
@@ -184,9 +223,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 91 unmodified lines
184 * **#67**223 * **#67**
185 - split data::output::count::objects into files (8fe4612)224 - split data::output::count::objects into files (8fe4612)
186 * **Uncategorized**225 * **Uncategorized**
187 - thanks clippy (738538c)226 - thanks clippy (ce48e18)
188 - thanks clippy (b693e62)227 - thanks clippy (af9d137)
189 - thanks clippy (11bd4a3)228 - Update changelogs just for fun (21541b3)
229 - thanks clippy (bf514a2)
230 - thanks clippy (ead04f2)
231 - thanks clippy (e4f1c09)
190 - thanks clippy (b856da4)232 - thanks clippy (b856da4)
191 - thanks clippy (31498bb)233 - thanks clippy (31498bb)
192 - thanks clippy (c55f909)234 - thanks clippy (c55f909)
cargo-smart-release/src/changelog/parse.rs+2−1
@@ -164,6 +164,7 @@ impl Section { · 163 unmodified lines
164 || title.starts_with(as_headline("perf").expect("valid"))164 || title.starts_with(as_headline("perf").expect("valid"))
165 || title.starts_with("refactor")165 || title.starts_with("refactor")
166 || title.starts_with("other")166 || title.starts_with("other")
167 || title.starts_with("style")
167 || title.starts_with(as_headline("fix").expect("valid")) =>168 || title.starts_with(as_headline("fix").expect("valid")) =>
168 {169 {
169 State::ParseConventional {170 State::ParseConventional {
@@ -230,7 +231,7 @@ fn parse_conventional_to_next_section_title( · 60 unmodified lines
230) -> Segment {231) -> Segment {
231 let is_breaking = title.ends_with(section::segment::Conventional::BREAKING_TITLE_ENCLOSED);232 let is_breaking = title.ends_with(section::segment::Conventional::BREAKING_TITLE_ENCLOSED);
232 let kind = [233 let kind = [
233 "fix", "add", "feat", "revert", "remove", "change", "docs", "perf", "refactor", "other",234 "fix", "add", "feat", "revert", "remove", "change", "docs", "perf", "refactor", "other", "style",
234 ]235 ]
235 .iter()236 .iter()
236 .find(|kind| title.starts_with(section::segment::conventional::as_headline(*kind).unwrap_or(*kind)))237 .find(|kind| title.starts_with(section::segment::conventional::as_headline(*kind).unwrap_or(*kind)))

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t