ethos-gemkit 0.2.0 → 0.3.0

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: 248ba6ddb45bb0374b8d8fb4a59a987606ce2c2494a5b74d45b5f1c70911c84c
4
- data.tar.gz: 0fd71c3766c11333163d12bf77399dc0b16748a0743aeed9b0cd5d09cc4c560e
3
+ metadata.gz: b4df86371c7d4ec7fff974c09607c9c9913619c43a346fbeb942b15e1f2cd459
4
+ data.tar.gz: 6714316c9084400d143c62eac48fc8396f8bc12341cf456a3b13926782d4dfae
5
5
  SHA512:
6
- metadata.gz: 0c18eed79a4fdc2482c4d24addd491c2c663c2db3aa48f8188c02af3e0032b763c8568f651b7a0be9b72a2f84417fc982b72b3fec2f551fd9aedf66d7c870d05
7
- data.tar.gz: 756aaa36df80a27b01f14e87093b4849f973ad690c6af486b38a948a7762e6028c5b9f9b2baf0034ccb8bda805525da7810912401398bf1e848dc35abfd1a8d5
6
+ metadata.gz: ba5baf95b85294435d3cc4b833ca5a9279411a4678a39596b26208c397db544ff76e674fd90e9d2999908d602f90d41e919574818d101cd45b56830aa9658c0e
7
+ data.tar.gz: 035744fbe210f66bc5b02d4f1eceb10b0470afd8d18b1fdda6505fdefdd176242f00155ae36fd5b1c042bfb4c912e5fc1d1f82df179e59e622065fcd117a2a7c
data/CHANGELOG.md CHANGED
@@ -5,145 +5,68 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [0.2.0] - 2026-11-04
9
-
10
-
11
- ### Added
12
-
13
- - support native private publishing and project setup
8
+ ## [0.3.0] - 2026-11-05
14
9
 
10
+ ### Changed
15
11
 
12
+ - remove unused package and changelog entries
13
+ - provision consumer dependencies before checks
16
14
 
15
+ ## [0.2.1] - 2026-11-05
17
16
 
18
17
  ### Documentation
19
18
 
20
- - document the published Gemkit release
21
-
22
- - clarify per-gem publishers and safe retries
23
-
24
-
25
-
19
+ - clarify current setup
20
+ - document checksums for frozen installs
21
+ - distinguish source fixes from workflow retries
26
22
 
27
23
  ### Fixed
28
24
 
29
- - show preparation progress and live command output
30
-
31
-
32
-
33
- ## [0.1.0] - 2026-11-04
25
+ - preserve checksums during preparation
34
26
 
27
+ ## [0.2.0] - 2026-11-04
35
28
 
36
29
  ### Added
37
30
 
38
- - bootstrap shared gem development contracts
39
-
40
- - enforce the shared commit message policy
41
-
42
- - centralize verified gem release orchestration
43
-
44
- - prepare release PRs and publish after merging
45
-
46
-
47
-
48
-
49
- ### Changed
50
-
51
- - exercise standalone core operations
52
-
53
- - expose shared commit message validation
54
-
55
- - replace release orchestration with native workflows
56
-
57
- - remove the redundant bootstrap fixture
58
-
31
+ - support native private publishing and project setup
59
32
 
33
+ ### Documentation
60
34
 
35
+ - document the published Gemkit release
36
+ - clarify per-gem publishers and safe retries
61
37
 
62
38
  ### Fixed
63
39
 
64
- - lock toolkit development to patched Active Support
65
-
66
- - disable inherited publishing tasks
67
-
68
- - complete checksums for frozen hosted installs
69
-
70
- - declare and isolate framework fixture dependencies
71
-
72
- - bind package files to the verified tag tree
73
-
74
- - expose scoped bundle executables to subprocesses
75
-
76
- - retain confirmed publication evidence for recovery
77
-
78
- - scope source fetch authentication to GitHub
79
-
80
- - select the current artifact run explicitly
81
-
82
- - prevent implicit pushes of unrelated tags
83
-
84
- - bootstrap Bundler for plain rake commands
85
-
86
- - keep Bundler's CI cache out of release source
87
-
88
- - recycle fully merged local release branches
89
-
90
-
40
+ - show preparation progress and live command output
91
41
 
92
42
  ## [0.1.0] - 2026-11-04
93
43
 
94
-
95
44
  ### Added
96
45
 
97
46
  - bootstrap shared gem development contracts
98
-
99
47
  - enforce the shared commit message policy
100
-
101
48
  - centralize verified gem release orchestration
102
-
103
49
  - prepare release PRs and publish after merging
104
50
 
105
-
106
-
107
-
108
51
  ### Changed
109
52
 
110
53
  - exercise standalone core operations
111
-
112
54
  - expose shared commit message validation
113
-
114
55
  - replace release orchestration with native workflows
115
-
116
56
  - remove the redundant bootstrap fixture
117
57
 
118
-
119
-
120
-
121
58
  ### Fixed
122
59
 
123
60
  - lock toolkit development to patched Active Support
124
-
125
61
  - disable inherited publishing tasks
126
-
127
62
  - complete checksums for frozen hosted installs
128
-
129
63
  - declare and isolate framework fixture dependencies
130
-
131
64
  - bind package files to the verified tag tree
132
-
133
65
  - expose scoped bundle executables to subprocesses
134
-
135
66
  - retain confirmed publication evidence for recovery
136
-
137
67
  - scope source fetch authentication to GitHub
138
-
139
68
  - select the current artifact run explicitly
140
-
141
69
  - prevent implicit pushes of unrelated tags
142
-
143
70
  - bootstrap Bundler for plain rake commands
144
-
145
-
146
-
147
- # Changelog
148
-
149
- Changes are generated from Conventional Commits when preparing a release.
71
+ - keep Bundler's CI cache out of release source
72
+ - recycle fully merged local release branches
data/README.md CHANGED
@@ -7,14 +7,14 @@ belongs in the development/test Gemfile, never a consumer's runtime gemspec.
7
7
  Install the published gem in the development/test Gemfile:
8
8
 
9
9
  ```ruby
10
- gem "ethos-gemkit", "0.2.0", group: [:development, :test], require: false
10
+ gem "ethos-gemkit", "0.2.1", group: [:development, :test], require: false
11
11
  ```
12
12
 
13
13
  Pin workflow callers to the full commit behind the installed Gemkit release tag.
14
14
  Resolve that commit with:
15
15
 
16
16
  ```sh
17
- git ls-remote https://github.com/ethos-link/ethos-gemkit.git 'refs/tags/v0.2.0^{}'
17
+ git ls-remote https://github.com/ethos-link/ethos-gemkit.git 'refs/tags/v0.2.1^{}'
18
18
  ```
19
19
 
20
20
  Upgrade the gem version and workflow pins together. Consumer READMEs should cover
@@ -53,6 +53,26 @@ release tasks while a repository is adopting the toolkit.
53
53
  `bundle exec rake verify` runs lint, registered checks, a disposable native gem
54
54
  build, and git-cliff validation.
55
55
 
56
+ Ordinary pull requests call `.github/workflows/consumer.yml`. Its optional
57
+ `build-setup` input provisions system dependencies before verification, such as
58
+ browser packages or a disposable database. Keep the caller's permissions at
59
+ `contents: read`; this workflow does not need publishing credentials.
60
+
61
+ ## Private gem access
62
+
63
+ To install private gems locally, use a GitHub personal access token (classic)
64
+ with `read:packages` and access to the package. Configure Bundler once, replacing
65
+ `USERNAME` and `TOKEN` with your credentials:
66
+
67
+ ```sh
68
+ bundle config set --global https://rubygems.pkg.github.com/ethos-link USERNAME:TOKEN
69
+ ```
70
+
71
+ Keep credentials out of Gemfiles. Each gem documents its scoped source block.
72
+ Actions publishing uses `GITHUB_TOKEN`; installing another private repository's
73
+ package requires that repository to grant the workflow access or an explicit
74
+ token. See [GitHub's registry guide](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry).
75
+
56
76
  ## Releasing a gem
57
77
 
58
78
  **Run `release:prepare` from clean, up-to-date `main`.** It creates the conventional
@@ -62,6 +82,9 @@ Ordinary feature/fix PRs run verification; only a release PR starts publication.
62
82
 
63
83
  ### One-time prerequisites
64
84
 
85
+ - Commit `Gemfile.lock`. Before its first commit, run
86
+ `bundle lock --add-checksums`; frozen CI installs reject empty registry
87
+ checksum entries, even when the gems are already installed locally.
65
88
  - Ignore `/.bundle/`, `/vendor/bundle/` and `/pkg/` in `.gitignore`. The shared
66
89
  workflows use Ruby setup's native `vendor/bundle` cache; generated files must
67
90
  leave the release checkout clean.
@@ -146,8 +169,8 @@ setup.
146
169
  The task prints each step and streams command output as it runs. It checks the
147
170
  working tree, canonical origin, current main, installed hooks and target tag.
148
171
  It creates `chore/release-vX.Y.Z`, updates the version and
149
- changelog, runs `bundle lock --local` and the full `rake verify`, then commits the
150
- three metadata files with hooks enabled, pushes the branch, and opens a
172
+ changelog, runs `bundle lock --add-checksums` and the full `rake verify`, then
173
+ commits the three metadata files with hooks enabled, pushes the branch, and opens a
151
174
  `chore(release): prepare vX.Y.Z` PR. Main stays unchanged. You can also start on
152
175
  that exact pre-created release branch if its HEAD still equals `origin/main`.
153
176
  When starting from main, a leftover local release branch is recreated only if
@@ -200,7 +223,14 @@ workflow run. This reuses its verified artifact and existing tag; do not run
200
223
  gh run rerun RUN_ID --repo OWNER/REPOSITORY --failed
201
224
  ```
202
225
 
203
- For CI failures, retry **failed jobs in the original run** within GitHub's 30-day
226
+ If a failed build needs a source fix and no tag or upload exists, keep the
227
+ prepared version and notes. Update its `chore/release-vX.Y.Z` branch from main,
228
+ commit the fix, run verification and open a replacement release PR. Merge that
229
+ PR to run the corrected source. The original run stays pinned to its original
230
+ commit; rerunning it cannot pick up a source fix. Do not replace an existing tag
231
+ or reuse a version that was already published.
232
+
233
+ For transient CI failures, retry **failed jobs in the original run** within GitHub's 30-day
204
234
  retry window. Artifacts are retained for 90 days. A failed tag step can reuse an
205
235
  existing annotated tag only when it points to the same verified commit. A failed
206
236
  notes job reuses the original artifact without uploading again. Ambiguous uploads,
data/UPGRADE.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Upgrading Gemkit
2
2
 
3
+ ## 0.2.1
4
+
5
+ Release preparation now fetches registry checksums with Bundler instead of
6
+ using local-only resolution. Network access to configured gem sources is
7
+ required. Existing compatible dependency versions stay locked; complete
8
+ checksums prevent frozen CI installs from rejecting local cache metadata.
9
+
3
10
  ## 0.2.0
4
11
 
5
12
  Update the gem version and pin each workflow caller to the commit behind the
@@ -69,7 +69,7 @@ module Ethos
69
69
  File.write(file, text.sub(literal, %(VERSION = "#{target}")))
70
70
  run("git-cliff", "--config", "cliff.toml", "--unreleased", "--tag", "v#{target}", "--prepend", "CHANGELOG.md", live: true)
71
71
  progress "Updating Gemfile.lock"
72
- run("bundle", "lock", "--local", live: true)
72
+ run("bundle", "lock", "--add-checksums", live: true)
73
73
  progress "Running verification (lint, tests, package, changelog)"
74
74
  run("bundle", "exec", "rake", "verify", live: true)
75
75
  files = [@config.data.fetch("version_file"), "CHANGELOG.md", "Gemfile.lock"]
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ethos
4
4
  module Gemkit
5
- VERSION = "0.2.0"
5
+ VERSION = "0.3.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ethos-gemkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethos Link