jekyll-theme-zer0 1.12.2 → 1.13.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 +4 -4
- data/CHANGELOG.md +26 -18
- data/README.md +4 -4
- data/_data/backlog.yml +34 -2
- data/scripts/lib/changelog.sh +11 -5
- data/scripts/test/lib/test_changelog.sh +9 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 300fd839d62b5d716dc62bde6853834fecca0b431871d818511f83b3b118586e
|
|
4
|
+
data.tar.gz: 7faf9a32a6709bb8bd4cc5c9681910b9595c81761c2582224f71f6623e5573d7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5c41e56c171902d054122a1288a10e2a45998cfabd06231d28e78e027ffaa9fc79b7511a3c34a50d7b81ab4f4911797fed2be78891bb45bd0e977aa28d298634
|
|
7
|
+
data.tar.gz: 143441cff23b9bec1bbf3222d4fcf21fb4949d4a9bf6394aff67c4cefb56e8da1bd71871c76ccdb900a78cc8f8623ce28c4bbcb7004357171e4f032bc02c8242
|
data/CHANGELOG.md
CHANGED
|
@@ -1,33 +1,42 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.13.0] - 2026-06-11
|
|
4
9
|
|
|
5
10
|
### Changed
|
|
6
|
-
- Version bump:
|
|
11
|
+
- Version bump: minor release
|
|
7
12
|
|
|
8
13
|
### Commits in this release
|
|
9
|
-
-
|
|
10
|
-
- 33a727c0 docs: expand CLAUDE.md into a comprehensive Claude Code guide (#131)
|
|
14
|
+
- cee6f379 feat(ci): gate PRs on the full canonical test entrypoint (T-012) (#138)
|
|
11
15
|
|
|
16
|
+
### Added
|
|
17
|
+
- **CI gate parity (T-012)**: the `ci.yml` test job now runs every non-Playwright theme suite (core, deployment, quality, installation, installer, site_generation, obsidian) plus the canonical `./scripts/bin/test` script suites (lib unit, theme validate, integration, installer e2e) on every code PR — previously only `core,quality,installation` gated, which is how three suites rotted unnoticed before PR #132; a "Gate Coverage — What Enforces What" table in `.github/workflows/README.md` now documents the controls contract
|
|
12
18
|
|
|
13
|
-
|
|
19
|
+
### Fixed
|
|
20
|
+
- **Release changelog path**: `version-bump.yml` now inserts release entries via the shared `update_changelog_file` library instead of an inline `head`/`tail` prepend that duplicated (and regressed) the insertion logic — the 1.12.1 release had pushed the file preamble below its entry and stranded the pending `[Unreleased]` notes; both repaired in this file
|
|
21
|
+
|
|
22
|
+
## [1.12.2] - 2026-06-10
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
- **Zer0-Mistake Quality Framework (planning)**: new roadmap milestone v1.13 and backlog tasks T-012–T-015 to close the gap between the repo's quality gates and what CI enforces — CI gate parity with the canonical `./scripts/bin/test` entrypoint (whose integration suites previously rotted unnoticed), re-armed pixel-snapshot and docs link-check gates, and a locale-independence regression guard; coverage baseline task T-005 repointed at the new milestone
|
|
14
26
|
|
|
15
27
|
### Changed
|
|
16
28
|
- Version bump: patch release
|
|
17
29
|
|
|
18
30
|
### Commits in this release
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
All notable changes to this project will be documented in this file.
|
|
23
|
-
|
|
24
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
25
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
31
|
+
- 846bd9ff chore(backlog): plan the Zer0-Mistake Quality Framework (roadmap v1.13, T-012–T-015) (#133)
|
|
32
|
+
- 33a727c0 docs: expand CLAUDE.md into a comprehensive Claude Code guide (#131)
|
|
26
33
|
|
|
27
|
-
## [
|
|
34
|
+
## [1.12.1] - 2026-06-10
|
|
28
35
|
|
|
29
|
-
###
|
|
30
|
-
-
|
|
36
|
+
### Changed
|
|
37
|
+
- Version bump: patch release
|
|
38
|
+
- **Roadmap**: advanced to track the shipped gem — v1.9 marked completed, v1.10 (Roadmap Validation) and v1.11 (Continuous-Evolution Loop) recorded, v1.12 (Headless Endpoints) is the active milestone (closes backlog T-001, T-002)
|
|
39
|
+
- **Changelog**: restored the Keep a Changelog preamble at the top of this file
|
|
31
40
|
|
|
32
41
|
### Fixed
|
|
33
42
|
- **Tooling encoding**: `generate-roadmap.rb`, `sync-backlog.rb`, and `scripts/bin/validate` now read repo files as UTF-8 explicitly, fixing `invalid byte sequence in US-ASCII` crashes in environments without a UTF-8 locale (minimal containers, some CI runners) — `generate-roadmap.sh --check` and `validate --quick` both crashed in such environments
|
|
@@ -37,9 +46,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
37
46
|
- `_layouts/search.html` given a front matter block so theme layout validation passes
|
|
38
47
|
- **Changelog tooling**: `update_changelog_file` now folds any pending `## [Unreleased]` section into the new release entry and inserts before the first release heading (preserving the file preamble) — stale Unreleased blocks no longer accumulate mid-file; the eight historical stray blocks were folded into the releases that shipped them
|
|
39
48
|
|
|
40
|
-
###
|
|
41
|
-
-
|
|
42
|
-
- **Changelog**: restored the Keep a Changelog preamble at the top of this file
|
|
49
|
+
### Commits in this release
|
|
50
|
+
- 0c04f703 fix: repair failing test suites, validator crashes, and roadmap/changelog drift (#132)
|
|
43
51
|
|
|
44
52
|
## [1.12.0] - 2026-06-03
|
|
45
53
|
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: zer0-mistakes
|
|
3
3
|
sub-title: AI-Native Jekyll Theme
|
|
4
4
|
description: AI-native Jekyll theme for GitHub Pages — Docker-first development, AI-powered installation, multi-agent integration (Copilot, Codex, Cursor, Claude), AI preview-image generation, and AIEO content optimization with Bootstrap 5.3.
|
|
5
|
-
version: 1.
|
|
5
|
+
version: 1.13.0
|
|
6
6
|
layout: landing
|
|
7
7
|
tags:
|
|
8
8
|
- jekyll
|
|
@@ -20,7 +20,7 @@ categories:
|
|
|
20
20
|
- bootstrap
|
|
21
21
|
- ai-tooling
|
|
22
22
|
created: 2024-02-10T23:51:11.480Z
|
|
23
|
-
lastmod: 2026-06-
|
|
23
|
+
lastmod: 2026-06-11T04:16:44.000Z
|
|
24
24
|
draft: false
|
|
25
25
|
permalink: /
|
|
26
26
|
slug: zer0
|
|
@@ -909,7 +909,7 @@ git push origin feature/awesome-feature
|
|
|
909
909
|
|
|
910
910
|
| Metric | Value |
|
|
911
911
|
|--------|-------|
|
|
912
|
-
| **Current Version** | 1.
|
|
912
|
+
| **Current Version** | 1.13.0 ([RubyGems](https://rubygems.org/gems/jekyll-theme-zer0), [CHANGELOG](/CHANGELOG)) |
|
|
913
913
|
| **Documented Features** | 43 ([Feature Registry](https://github.com/bamr87/zer0-mistakes/blob/main/_data/features.yml)) |
|
|
914
914
|
| **Setup Time** | 2-5 minutes ([install.sh benchmarks](https://github.com/bamr87/zer0-mistakes/blob/main/install.sh)) |
|
|
915
915
|
| **Documentation Pages** | 70+ ([browse docs](https://zer0-mistakes.com/pages/)) |
|
|
@@ -964,6 +964,6 @@ And these AI partners that make zer0-mistakes truly AI-native:
|
|
|
964
964
|
|
|
965
965
|
**Built with ❤️ — and a little help from our AI partners — for the Jekyll community**
|
|
966
966
|
|
|
967
|
-
**v1.
|
|
967
|
+
**v1.13.0** • [Changelog](CHANGELOG.md) • [License](LICENSE) • [Contributing](CONTRIBUTING.md) • [AI Agent Guide](AGENTS.md)
|
|
968
968
|
|
|
969
969
|
|
data/_data/backlog.yml
CHANGED
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
meta:
|
|
57
57
|
title: "zer0-mistakes Backlog"
|
|
58
58
|
updated: 2026-06-10
|
|
59
|
-
next_id:
|
|
59
|
+
next_id: 17
|
|
60
60
|
|
|
61
61
|
tasks:
|
|
62
62
|
# --- Housekeeping (seeded so the loop has work on day one) ------------------
|
|
@@ -287,7 +287,7 @@ tasks:
|
|
|
287
287
|
|
|
288
288
|
- id: T-012
|
|
289
289
|
title: "CI gate parity: run the full canonical test entrypoint on PRs"
|
|
290
|
-
status:
|
|
290
|
+
status: done
|
|
291
291
|
priority: P1
|
|
292
292
|
area: infra
|
|
293
293
|
risk: standard
|
|
@@ -300,6 +300,13 @@ tasks:
|
|
|
300
300
|
PR #132), the obsidian suite, and the installer e2e suites that
|
|
301
301
|
`./scripts/bin/test` runs locally. PRs must gate on the same entrypoint
|
|
302
302
|
contributors are told to run.
|
|
303
|
+
Done 2026-06-10: test job expanded to all seven non-Playwright theme
|
|
304
|
+
suites plus a `./scripts/bin/test` step; gate-coverage table added to
|
|
305
|
+
the workflows README. Canary experiment: a deliberately failing
|
|
306
|
+
integration test was committed and reverted on the implementing PR;
|
|
307
|
+
GitHub did not schedule the CI pipeline on the canary push, so the
|
|
308
|
+
gate failure was verified locally (`./scripts/bin/test` exit 1) and
|
|
309
|
+
the new gate is exercised for real by the PR's final CI run.
|
|
303
310
|
acceptance:
|
|
304
311
|
- "The `ci.yml` test job executes `./scripts/bin/test` (or an explicit suite list that includes lib, integration, obsidian, and installer e2e) on every code PR."
|
|
305
312
|
- "A deliberately broken integration test fails CI in a draft PR experiment (then reverted)."
|
|
@@ -371,3 +378,28 @@ tasks:
|
|
|
371
378
|
links: { issue: null, pr: null, roadmap: "1.13" }
|
|
372
379
|
created: 2026-06-10
|
|
373
380
|
updated: 2026-06-10
|
|
381
|
+
|
|
382
|
+
- id: T-016
|
|
383
|
+
title: "site_generation suite: fail on Jekyll build errors instead of warning"
|
|
384
|
+
status: open
|
|
385
|
+
priority: P2
|
|
386
|
+
area: tests
|
|
387
|
+
risk: standard
|
|
388
|
+
effort: S
|
|
389
|
+
source: audit
|
|
390
|
+
summary: >-
|
|
391
|
+
`test/test_site_generation.sh` downgrades `bundle exec jekyll build`
|
|
392
|
+
failures to a warning ("Don't fail the test for build issues (may be
|
|
393
|
+
environment)"), so the suite reports success even when every mode's
|
|
394
|
+
build fails — a masked gate discovered while implementing T-012. With
|
|
395
|
+
the suite now gating PRs in CI (working bundler guaranteed), build
|
|
396
|
+
failures should fail the suite; keep the skip only for genuinely
|
|
397
|
+
missing toolchain (no bundler).
|
|
398
|
+
acceptance:
|
|
399
|
+
- "A non-zero `jekyll build` exit fails the suite when bundler is available."
|
|
400
|
+
- "The bundler-missing path still skips with a warning (local minimal environments)."
|
|
401
|
+
- "Suite passes in CI and via `./test/test_runner.sh --suites site_generation` locally."
|
|
402
|
+
links: { issue: null, pr: null, roadmap: "1.13" }
|
|
403
|
+
created: 2026-06-10
|
|
404
|
+
updated: 2026-06-10
|
|
405
|
+
|
data/scripts/lib/changelog.sh
CHANGED
|
@@ -331,27 +331,33 @@ update_changelog_file() {
|
|
|
331
331
|
} > "${CHANGELOG_FILE}.tmp"
|
|
332
332
|
mv "${CHANGELOG_FILE}.tmp" "$CHANGELOG_FILE"
|
|
333
333
|
|
|
334
|
-
# Append the pending notes to the new entry (if any are non-blank)
|
|
334
|
+
# Append the pending notes to the new entry (if any are non-blank),
|
|
335
|
+
# separated by a blank line so section headings don't collide.
|
|
335
336
|
if [[ -n "${unreleased_body//[[:space:]]/}" ]]; then
|
|
336
337
|
debug "Folding pending [Unreleased] notes into the new entry"
|
|
337
|
-
entry
|
|
338
|
+
entry="${entry%$'\n'}"$'\n\n'"$(echo "$unreleased_body" | sed -e '/./,$!d')"$'\n'
|
|
338
339
|
fi
|
|
339
340
|
fi
|
|
340
341
|
|
|
341
342
|
# Insert the new entry before the first release heading so the file
|
|
342
343
|
# header/preamble (title, Keep a Changelog blurb) stays at the top.
|
|
344
|
+
# Normalize the entry's trailing newlines first: callers that build the
|
|
345
|
+
# entry via command substitution (e.g. version-bump.yml's
|
|
346
|
+
# `"$(cat "$TEMP_FILE")"`) lose them, so guarantee exactly one blank
|
|
347
|
+
# line between the entry and the next release block here.
|
|
348
|
+
while [[ "$entry" == *$'\n' ]]; do entry="${entry%$'\n'}"; done
|
|
349
|
+
|
|
343
350
|
local first_release
|
|
344
351
|
first_release=$(grep -n '^## ' "$CHANGELOG_FILE" | head -1 | cut -d: -f1)
|
|
345
352
|
|
|
346
353
|
{
|
|
347
354
|
if [[ -n "$first_release" ]]; then
|
|
348
355
|
head -n "$((first_release - 1))" "$CHANGELOG_FILE"
|
|
349
|
-
|
|
356
|
+
printf '%s\n\n' "$entry"
|
|
350
357
|
tail -n +"$first_release" "$CHANGELOG_FILE"
|
|
351
358
|
else
|
|
352
359
|
cat "$CHANGELOG_FILE"
|
|
353
|
-
|
|
354
|
-
echo "$entry"
|
|
360
|
+
printf '\n%s\n' "$entry"
|
|
355
361
|
fi
|
|
356
362
|
} > "${CHANGELOG_FILE}.tmp"
|
|
357
363
|
|
|
@@ -152,6 +152,15 @@ _v100_line=$(grep -n '^## \[1.0.0\]' CHANGELOG.md | cut -d: -f1)
|
|
|
152
152
|
assert_true "[[ $_v101_line -lt $_v100_line ]]" "New entry inserted before previous release"
|
|
153
153
|
assert_true "grep -q 'All notable changes' CHANGELOG.md" "Preamble preserved without Unreleased"
|
|
154
154
|
|
|
155
|
+
# Case 3: entries passed via command substitution lose trailing newlines
|
|
156
|
+
# (e.g. version-bump.yml's "$(cat "$TEMP_FILE")"); the insert must still
|
|
157
|
+
# leave exactly one blank line before the next release block.
|
|
158
|
+
printf '## [1.0.2] - 2026-06-11\n\n### Fixed\n- Another bug\n\n' > entry.txt
|
|
159
|
+
update_changelog_file "$(cat entry.txt)" >/dev/null 2>&1
|
|
160
|
+
_v101_line=$(grep -n '^## \[1.0.1\]' CHANGELOG.md | cut -d: -f1)
|
|
161
|
+
assert_true "[[ -z \"\$(sed -n $((_v101_line - 1))p CHANGELOG.md)\" ]]" "Blank line separates entry from next release block"
|
|
162
|
+
assert_true "[[ -n \"\$(sed -n $((_v101_line - 2))p CHANGELOG.md)\" ]]" "Exactly one blank line (no double spacing)"
|
|
163
|
+
|
|
155
164
|
popd >/dev/null
|
|
156
165
|
rm -rf "$_changelog_tmp"
|
|
157
166
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jekyll-theme-zer0
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.13.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Amr Abdel
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-06-
|
|
11
|
+
date: 2026-06-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|