Skip to content

single-source installs: retire the dist-publish hop (install from iap/pstack-hermes/pstack) - #74

Merged
iap merged 1 commit into
mainfrom
single-source-install
Oct 6, 2026
Merged

iap merged 1 commit into
mainfrom
single-source-install

Conversation

@iap

@iap iap commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Pull request

What changed

Single-source installs: the dist-publish hop is retired — users install directly from this repo's pstack/ subdir (hermes plugins install iap/pstack-hermes/pstack).

Affected surface

  • tooling (tools/, CI, docs)
  • generated package (pstack/) — requires a rebuild from the current pin

Provenance — required if pstack/ changed

source_commit: c47b12849e43f18d5c374c7069c744cc55b0ea00
converter: convert.py (sha256[:16]=d34c83cfd816fbea)

Verification

  • uv run --frozen ruff check tools
    All checks passed!
  • uv run --frozen pytest -q
    94 passed in 14.75s
  • rebuilt from the pin; pstack/ diff contains the two doc templates + provenance
    19 paths total: workflows (delete publish-plugin.yml + comment updates), docs (README/AGENTS/CONTRIBUTING/USING/RUNBOOK/CHANGELOG/.gitattributes), tools (convert/check_pins/dist_checkout_check/tests), pstack/ (.build-provenance.txt, README.md, after-install.md)
  • poteto-mode scripts, if touched
    n/a - no script changes in this PR; the poteto-mode-scripts CI job still runs the suite against the rebuilt package on this branch.

Notes for reviewers

  • Deleted .github/workflows/publish-plugin.yml; UPSTREAM_PIN lock-step is now three workflows (ci.yml/release.yml/upstream-drift-watch.yml) — tools/check_pins.py + tests + all docs updated in the same commit.
  • The EOL contract now rides the repository root .gitattributes (what an install clone actually receives); dist_checkout_check --source-tree stages with the root rules, and the root pins *.png binary.
  • Update path is documented as a reinstall (--force); immutable installs via --ref <40-character SHA> — after-install.md + README teach it. hermes plugins update does not apply to subdir installs (hermes keeps .git only for root installs) — stated plainly in the docs.
  • iap/pstack dist repo: retired; no further publishes.
  • Live-verified in a scratch HERMES_HOME against hermes v0.21.0 (WSL): subdir install works end-to-end, metadata records source=https://github.com/iap/pstack-hermes.git#pstack, --force reinstall works, plugins update refuses with a clear message (expected).

Installs now come directly from this repo's pstack/ subdir
(`hermes plugins install iap/pstack-hermes/pstack`); the separate dist repo
(iap/pstack) is retired.

- publish-plugin.yml deleted; UPSTREAM_PIN lock-step narrowed to three
  workflows (tools/check_pins.py + its tests + all docs updated).
- after-install.md / README templates now teach the single-source route:
  updates are reinstalls (`--force`), immutable installs via `--ref`; docs
  pointers moved to this repo.
- EOL contract now rides the repository root .gitattributes (what an install
  clone actually receives); dist_checkout_check stages source-tree copies
  with the root rules and the root pins *.png binary.
- Compatibility fixes along the way: AGENTS/USING/RUNBOOK rows unified on
  the single route; README version references refreshed to v0.15.5.
- pstack/ rebuilt (converter doc templates changed); all gates green:
  pytest 94, ruff, actionlint, check_pins, check_action_shell, validate,
  scanner, dist-checkout.

Co-authored-by: Hermes <iap@users.noreply.github.com>
@github-actions github-actions Bot added documentation Documentation tooling Converter, validator, CI tooling labels Oct 6, 2026
@iap
iap merged commit 09fb49e into main Oct 6, 2026
11 checks passed
@iap
iap deleted the single-source-install branch October 6, 2026 03:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Documentation tooling Converter, validator, CI tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant