ace-git 0.18.5 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c027540195a5081320ef9e440582480cd4b3682190e40c24d123b4a54dd41f9
4
- data.tar.gz: a2ae2188b33cb9762a9436c335da45903d8342f4531dd0a56a19522637bc3e81
3
+ metadata.gz: f1f4338a90a1289acd437a01c2ef439d3020123e9d915ed22c3eff4f8ec63055
4
+ data.tar.gz: 75fefab777b61d2abe6a1e5b5abf0692c19bf7fbec58d527bf12c536314c22a7
5
5
  SHA512:
6
- metadata.gz: a87fcd62b3731fdd3061621431b70ba3cb68c63fa17e8f353ddeef68f84dd603beb9e39e9a9d360a33e73b4160bd73097224995fcb8a4984372eca83751c3d17
7
- data.tar.gz: 73e2fc197ad8772004f7244e483434d1555e73cca95641a472900f007fc94a87ad9a044f294785e15003797915925d20e894842b70bc4f75bce2de2c89048392
6
+ metadata.gz: 81b8365e99bcb4b7026aa9d4b5eefe6e1e4a2d1f07f0e48ebdc2fc06eb1a2bc95425c5ac69f911b2342f01045da159f4bd4676bc8a918ad4bba2a09078c838f0
7
+ data.tar.gz: c2fb0f10917ff79992b517a6a7e74be8bf09fff4eecf343ca33e55e74a2a20be20f3700f7f170326c6eb5e8b421b87d5ee1539ec6b9e9153853fd29cbc03d67d
data/CHANGELOG.md CHANGED
@@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.19.2] - 2026-03-29
11
+
12
+ ### Technical
13
+ - Normalized published gem metadata so RubyGems and Ruby Toolbox use current release information instead of the 1980 fallback date.
14
+
15
+ ## [0.19.1] - 2026-03-29
16
+
17
+ ### Fixed
18
+ - Added an explicit `git push` step to `github/release-publish` after changelog finalization so release target commits exist on GitHub before `gh release create`.
19
+
20
+ ### Technical
21
+ - Added a stop-and-recover rule for GitHub API validation errors caused by local-only target commits (`tag_name is not a valid tag`, `target_commitish is invalid`) so the workflow pushes before retrying release creation.
22
+
23
+ ## [0.19.0] - 2026-03-29
24
+
25
+ ### Changed
26
+ - Defaulted `github/release-publish` to package-grouped release notes, with `--group-by date` now opting into the legacy layout.
27
+ - Switched live GitHub release creation guidance to `--notes-file` so markdown release bodies with inline code do not break shell execution.
28
+
10
29
  ## [0.18.5] - 2026-03-29
11
30
 
12
31
  ### Added
@@ -56,5 +56,6 @@ None
56
56
  - Run `ace-bundle wfi://github/release-publish` in the current project to load the workflow instructions.
57
57
  - Read the loaded workflow and execute it end-to-end in this project.
58
58
  - Follow the workflow as the source of truth.
59
+ - Unless the caller explicitly passes `--group-by date`, treat release body grouping as `package` by default.
59
60
  - Do the work described by the workflow instead of only summarizing it.
60
61
  - When the workflow requires edits, tests, or commits, perform them in this project.
@@ -18,7 +18,7 @@ Create GitHub releases from root `CHANGELOG.md` entries that have no correspondi
18
18
  - `$version`: explicit version like `v0.9.846`, or range like `v0.9.840..v0.9.846`
19
19
  - `$since`: time filter like `"3 days"` or `"this week"`
20
20
  - `$dry_run`: if set, print what would be created without creating anything
21
- - `$group_by`: optional mode switch. `date` (default) keeps legacy daily grouping. `package` enables package-first grouping inside each date bucket.
21
+ - `$group_by`: optional mode switch. `package` (default) enables package-first grouping inside each date bucket. `date` keeps the legacy daily grouping.
22
22
  - `$category_order`: optional ordered category list, e.g. `fixed,added,changed,technical` (defaults to fixed → added → changed → technical)
23
23
 
24
24
  ## Instructions
@@ -84,7 +84,13 @@ If `[Unreleased]` has content:
84
84
  ace-git-commit CHANGELOG.md -i "finalize changelog v0.9.933 from unreleased"
85
85
  ```
86
86
 
87
- 4. Proceed to step 2 with the newly created versioned entry available for publishing.
87
+ 4. **Push the finalization commit before creating releases:**
88
+ ```bash
89
+ git push
90
+ ```
91
+ The release target commit must exist on GitHub before `gh release create` can tag and publish it.
92
+
93
+ 5. Proceed to step 2 with the newly created versioned entry available for publishing.
88
94
 
89
95
  ### 2. Parse Root CHANGELOG
90
96
 
@@ -116,8 +122,17 @@ No unpublished versions found matching the given criteria.
116
122
 
117
123
  Use `$group_by` to choose the release body layout. Release tags/titles still use date-bucket grouping (highest version per date).
118
124
 
119
- - `date` (default): preserve current behavior, one release body per date in descending version order separated by `---`.
120
- - `package`: within each date bucket, group entries as package blocks and then categories.
125
+ - `package` (default): within each date bucket, group entries as package blocks and then categories.
126
+ - `date`: preserve legacy behavior, one release body per date in descending version order separated by `---`.
127
+
128
+ Mixed-release presentation rule:
129
+
130
+ - If a date bucket contains one or more clear primary changes plus follower packages that exist only because of
131
+ dependency-constraint propagation, render the primary package sections first.
132
+ - Collapse follower-only dependency fallout into one compact trailing `### Technical side effects` section instead
133
+ of expanding every follower into a full package block.
134
+ - Keep follower packages explicit by name/version, but prefer a short list over repeated full prose when the
135
+ release value is driven elsewhere.
121
136
 
122
137
  Date mode example:
123
138
 
@@ -164,6 +179,8 @@ Package-mode parse rules:
164
179
  - Track the most recent package version seen for each package in the date bucket for package headers.
165
180
  - Render categories in `fixed,added,changed,technical` unless `$category_order` overrides.
166
181
  - If a bullet does not match the package pattern, place it under a fallback package section `### 📦 other`.
182
+ - If `### Technical` contains a compact follower summary list, preserve it as a single trailing `### Technical side effects`
183
+ section rather than exploding it back into per-package blocks.
167
184
 
168
185
  ### 5. Resolve Target Commits
169
186
 
@@ -190,6 +207,12 @@ If no commit is found for a version group, skip it and report:
190
207
 
191
208
  Process each daily group from oldest date to newest:
192
209
 
210
+ Before each live release creation:
211
+
212
+ - Verify the chosen `${SHA}` exists on the remote branch you intend to tag.
213
+ - If the workflow created or committed the changelog entry locally during step 1.5, ensure that commit has already been pushed before continuing.
214
+ - If `gh release create` reports `tag_name is not a valid tag` or `target_commitish is invalid`, stop and push the missing commit instead of retrying the same release command unchanged.
215
+
193
216
  **Dry-run mode** (`--dry-run`):
194
217
 
195
218
  ```text
@@ -205,7 +228,7 @@ Process each daily group from oldest date to newest:
205
228
  ```bash
206
229
  gh release create "v${VERSION}" \
207
230
  --title "v${VERSION}" \
208
- --notes "${COMBINED_BODY}" \
231
+ --notes-file ".ace-local/github-release/v${VERSION}-notes.md" \
209
232
  --target "${SHA}"
210
233
  ```
211
234
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ace
4
4
  module Git
5
- VERSION = '0.18.5'
5
+ VERSION = '0.19.2'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ace-git
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.5
4
+ version: 0.19.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Czyz
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
10
+ date: 2026-03-29 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ace-support-config
@@ -180,7 +180,7 @@ licenses:
180
180
  metadata:
181
181
  allowed_push_host: https://rubygems.org
182
182
  homepage_uri: https://github.com/cs3b/ace/tree/main/ace-git
183
- source_code_uri: https://github.com/cs3b/ace
183
+ source_code_uri: https://github.com/cs3b/ace/tree/main/ace-git/
184
184
  changelog_uri: https://github.com/cs3b/ace/blob/main/ace-git/CHANGELOG.md
185
185
  rdoc_options: []
186
186
  require_paths: