ethos-gemkit 0.2.0 → 0.2.1
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 +4 -4
- data/CHANGELOG.md +20 -0
- data/README.md +30 -5
- data/UPGRADE.md +7 -0
- data/lib/ethos/gemkit/release.rb +1 -1
- data/lib/ethos/gemkit/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ea8ac801fd96cef32c35240e93271d04792235c4121c95f8261918f87795b2b1
|
|
4
|
+
data.tar.gz: 87a5464f90175cd5cf5f088f573ab2d47886ea2a702f5cb183f722081eb8bb47
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: eb7aef3f0ccab2964c6a318649f72fbdc0f9fe9615814828c4161c386463794f10bcffc2383f001bfe9d7ba12bb46ff53a3e2280dc18481508df6b768ac1d62c
|
|
7
|
+
data.tar.gz: 74ba19f731bbbcfaa9a113e5d138929636fab47e2c35120ba410ed40019f04a797546d43911e18ef5b1bc5cac37f2953e6df277c974300f9554df1a5a64134c3
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,26 @@ 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.1] - 2026-11-05
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Documentation
|
|
12
|
+
|
|
13
|
+
- clarify current setup
|
|
14
|
+
|
|
15
|
+
- document checksums for frozen installs
|
|
16
|
+
|
|
17
|
+
- distinguish source fixes from workflow retries
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- preserve checksums during preparation
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
8
28
|
## [0.2.0] - 2026-11-04
|
|
9
29
|
|
|
10
30
|
|
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.
|
|
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.
|
|
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,21 @@ 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
|
+
## Private gem access
|
|
57
|
+
|
|
58
|
+
To install private gems locally, use a GitHub personal access token (classic)
|
|
59
|
+
with `read:packages` and access to the package. Configure Bundler once, replacing
|
|
60
|
+
`USERNAME` and `TOKEN` with your credentials:
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
bundle config set --global https://rubygems.pkg.github.com/ethos-link USERNAME:TOKEN
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Keep credentials out of Gemfiles. Each gem documents its scoped source block.
|
|
67
|
+
Actions publishing uses `GITHUB_TOKEN`; installing another private repository's
|
|
68
|
+
package requires that repository to grant the workflow access or an explicit
|
|
69
|
+
token. See [GitHub's registry guide](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry).
|
|
70
|
+
|
|
56
71
|
## Releasing a gem
|
|
57
72
|
|
|
58
73
|
**Run `release:prepare` from clean, up-to-date `main`.** It creates the conventional
|
|
@@ -62,6 +77,9 @@ Ordinary feature/fix PRs run verification; only a release PR starts publication.
|
|
|
62
77
|
|
|
63
78
|
### One-time prerequisites
|
|
64
79
|
|
|
80
|
+
- Commit `Gemfile.lock`. Before its first commit, run
|
|
81
|
+
`bundle lock --add-checksums`; frozen CI installs reject empty registry
|
|
82
|
+
checksum entries, even when the gems are already installed locally.
|
|
65
83
|
- Ignore `/.bundle/`, `/vendor/bundle/` and `/pkg/` in `.gitignore`. The shared
|
|
66
84
|
workflows use Ruby setup's native `vendor/bundle` cache; generated files must
|
|
67
85
|
leave the release checkout clean.
|
|
@@ -146,8 +164,8 @@ setup.
|
|
|
146
164
|
The task prints each step and streams command output as it runs. It checks the
|
|
147
165
|
working tree, canonical origin, current main, installed hooks and target tag.
|
|
148
166
|
It creates `chore/release-vX.Y.Z`, updates the version and
|
|
149
|
-
changelog, runs `bundle lock --
|
|
150
|
-
three metadata files with hooks enabled, pushes the branch, and opens a
|
|
167
|
+
changelog, runs `bundle lock --add-checksums` and the full `rake verify`, then
|
|
168
|
+
commits the three metadata files with hooks enabled, pushes the branch, and opens a
|
|
151
169
|
`chore(release): prepare vX.Y.Z` PR. Main stays unchanged. You can also start on
|
|
152
170
|
that exact pre-created release branch if its HEAD still equals `origin/main`.
|
|
153
171
|
When starting from main, a leftover local release branch is recreated only if
|
|
@@ -200,7 +218,14 @@ workflow run. This reuses its verified artifact and existing tag; do not run
|
|
|
200
218
|
gh run rerun RUN_ID --repo OWNER/REPOSITORY --failed
|
|
201
219
|
```
|
|
202
220
|
|
|
203
|
-
|
|
221
|
+
If a failed build needs a source fix and no tag or upload exists, keep the
|
|
222
|
+
prepared version and notes. Update its `chore/release-vX.Y.Z` branch from main,
|
|
223
|
+
commit the fix, run verification and open a replacement release PR. Merge that
|
|
224
|
+
PR to run the corrected source. The original run stays pinned to its original
|
|
225
|
+
commit; rerunning it cannot pick up a source fix. Do not replace an existing tag
|
|
226
|
+
or reuse a version that was already published.
|
|
227
|
+
|
|
228
|
+
For transient CI failures, retry **failed jobs in the original run** within GitHub's 30-day
|
|
204
229
|
retry window. Artifacts are retained for 90 days. A failed tag step can reuse an
|
|
205
230
|
existing annotated tag only when it points to the same verified commit. A failed
|
|
206
231
|
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
|
data/lib/ethos/gemkit/release.rb
CHANGED
|
@@ -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", "--
|
|
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"]
|
data/lib/ethos/gemkit/version.rb
CHANGED