Skip to content

refactor(registry)!: flat configs repo, signed registry.v1 bundles - #317

Draft
gildesmarais wants to merge 7 commits into
masterfrom
feat/flat-configs-repo-phase-2
Draft

refactor(registry)!: flat configs repo, signed registry.v1 bundles#317
gildesmarais wants to merge 7 commits into
masterfrom
feat/flat-configs-repo-phase-2

Conversation

@gildesmarais

@gildesmarais gildesmarais commented Aug 22, 2026

Copy link
Copy Markdown
Member

Stack (registry v1)

Land in order:

  1. html2rssfeat(registry): registry.v1 verify, catalog builder, and 0.28.0 hardening html2rss#476merge first (RubyGems 0.28.0)
  2. html2rss-configsrefactor(registry)!: flat configs repo, signed registry.v1 bundles #317this PR
  3. html2rss-webfeat(registry): index, signed sync, catalog API, and consolidation refactors html2rss-web#1097 (after first signed configs release)
  4. html2rss.github.iodocs: align feed-directory and AGENTS with registry sync catalog html2rss.github.io#1245 (docs; after #1097)

What changed

  • Layoutlib/html2rss/configs/**configs/**; Ruby gem removed; test/ replaces spec/
  • tool/validate — walks configs/**/*.yml via Html2rss::Config.validate_yaml
  • tool/registry-build — builds dist/registry-bundle.tar.gz (configs/, manifest.json, optional manifest.sig); duplicate registry.id check; archive limits from core Archive::MAX_*
  • .github/workflows/release.yml — tag push → make registry-build -- --sign → verify with Bundle.load(trust: :signed) → draft GitHub release
  • 144 configs — explicit registry.id on every feed YAML
  • MakefileBUNDLE_GEMFILE=tool/Gemfile; make registry-build, make ready
  • bin/rspec_changed_configs — fix ENV['BUNDLE_GEMFILE'] around system (no env: kwarg on Kernel#system)
  • tool/Gemfilehtml2rss from git feat/registry-v1 until 0.28.0 on RubyGems

Why

Stop shipping feed YAML as an embedded gem. Publish signed registry.v1 artifacts that #1097 syncs and verifies. Flat configs/ matches contributor mental model and registry-build layout.

Risk

  • Breaking — consumers must use signed tarball + Registry::Sync, not gem 'html2rss-configs'
  • Cross-repo — requires merged/released #476 0.28.0 (Html2rss::Registry::*)
  • Ops — first tag needs GitHub registry-release env secrets (public key must match #1097 config/registries.yml)
  • test_changed_configs — bulk migration touches all YAML; one-time maintainer waiver on merge (fix script only; no fetch-selection change)

Review map

  1. tool/registry-build — manifest build, sign, limits, duplicate-id gate
  2. .github/workflows/release.yml — signed release pipeline and post-build verify
  3. configs/ sample + registry.id slug rules in AGENTS.md
  4. tool/Gemfile + Makefile — bundle entrypoints and CI ready job
  5. bin/rspec_changed_configs — CI fetch helper fix

Validation

  • make ready — yamllint, rubocop, 144 configs validated, 1457 RSpec examples (fetch excluded), 0 failures
  • make registry-build — local unsigned build OK; release CI requires signing secrets
  • Pending push: bin/rspec_changed_configs fix + git html2rss pin refresh

Remove working-directory from setup-ruby so BUNDLE_GEMFILE=tool/Gemfile
resolves from the repo root instead of tool/tool/Gemfile.
Add explicit registry.id to all bundled configs, replace legacy bins with
tool/registry-build, and harden release CI with registry-release env,
draft tags, and signed bundle verification on Ruby 4.0.
Align tool/Gemfile.lock with feat/registry-v1 b32ec095 so CI registry-build uses manifest-only catalog and BundleRelativePath validation.
Set BUNDLE_GEMFILE around system calls in rspec_changed_configs and pin
html2rss from feat/registry-v1 for CI until 0.28.0 is on RubyGems.
@gildesmarais
gildesmarais force-pushed the feat/flat-configs-repo-phase-2 branch from b407aa2 to c37d918 Compare August 22, 2026 15:17
Align AGENTS, catalog reference, and README with release CI signing via
--sign so local make registry-build is not described as signed output.
@gildesmarais gildesmarais changed the title refactor!: flat configs repo, signed registry.v1 bundles, and CI fixes refactor(registry)!: flat configs repo, signed registry.v1 bundles Aug 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant