Skip to content

docs: restore stable Registryctl install URL - #638

Open
jeremi wants to merge 1 commit into
mainfrom
agent/simplify-registryctl-install
Open

docs: restore stable Registryctl install URL#638
jeremi wants to merge 1 commit into
mainfrom
agent/simplify-registryctl-install

Conversation

@jeremi

@jeremi jeremi commented Aug 1, 2026

Copy link
Copy Markdown
Member

Summary

  • publish the canonical Registryctl installer at https://docs.registrystack.org/install.sh
  • replace the version-specific multi-command install instructions with one stable command
  • generate the installer for current and archived docs builds and test byte-for-byte fidelity

Why

The documented quick install required readers to choose a tag, construct a release asset name, download it, and invoke it separately. The canonical docs root is already promoted from an exact released docs archive, so it can serve that release's installer at a stable first-party URL without relying on mutable source from main.

User impact

Readers can install the latest promoted Registryctl release with:

curl -fsSL https://docs.registrystack.org/install.sh | bash

The higher-assurance signature and provenance path remains available through the tag-frozen release/VERIFY.md link printed by the installer.

Validation

  • npm test: 269 passed
  • focused installer and tutorial tests: 16 passed
  • tutorial dry-run, content, Markdown, and style checks passed
  • Astro check and production build passed
  • built installer matched crates/registryctl/install.sh byte-for-byte
  • current built-link check passed for 38,860 links and assets
  • 177 release-script unit tests passed
  • current release manifest, 17 archived docsets, source model, and Debian image contract validated

Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ee966f4544

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

tag=vX.Y.Z
curl -fsSLO "https://github.com/registrystack/registry-stack/releases/download/${tag}/registryctl-${tag}-install.sh"
bash "./registryctl-${tag}-install.sh"
curl -fsSL https://docs.registrystack.org/install.sh | bash

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Publish the stable installer before directing users to it

Until a release containing this generator is promoted, this command returns 404: .github/workflows/docs-pages.yml copies the canonical root only from the exact released archive, docsets.yaml still identifies v0.15.2 as released, and that release's pinned tree contains neither public/install.sh nor another installer route. Because this README becomes public on main immediately, newcomers lose the previously working versioned-release installation path; retain that path until the stable asset is deployed or make publication atomic with this change.

Useful? React with 👍 / 👎.

Comment thread docs/site/package.json
"generate": "node scripts/generate-data.mjs && node scripts/generate-project-starters.mjs && node scripts/generate-registryctl-example-overlays.mjs && node scripts/generate-authoring-reference.mjs && node scripts/generate-diagnostic-references.mjs && node scripts/fetch-openapi.mjs && node scripts/sync-repo-docs.mjs && node scripts/generate-sidebar.mjs",
"generate:archive": "node scripts/generate-data.mjs && node scripts/generate-registryctl-example-overlays.mjs && node scripts/fetch-openapi.mjs && node scripts/sync-repo-docs.mjs && node scripts/generate-sidebar.mjs",
"generate": "node scripts/generate-data.mjs && node scripts/generate-project-starters.mjs && node scripts/generate-registryctl-installer.mjs && node scripts/generate-registryctl-example-overlays.mjs && node scripts/generate-authoring-reference.mjs && node scripts/generate-diagnostic-references.mjs && node scripts/fetch-openapi.mjs && node scripts/sync-repo-docs.mjs && node scripts/generate-sidebar.mjs",
"generate:archive": "node scripts/generate-data.mjs && node scripts/generate-registryctl-installer.mjs && node scripts/generate-registryctl-example-overlays.mjs && node scripts/fetch-openapi.mjs && node scripts/sync-repo-docs.mjs && node scripts/generate-sidebar.mjs",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the current installer out of historical archive builds

When build:archives or archive bootstrapping rebuilds an older docset, this command always copies the working tree's crates/registryctl/install.sh; unlike the other current-source artifacts, the installer is not staged from the docset's pinned source by stagePinnedGeneratedArtifacts. Consequently an old archive such as v0.15.2 gains a new /install.sh containing the current release version, changing its locked tree digest and making the documented immutable rebuild fail. The archive generator needs to source or omit this asset according to the selected docset rather than unconditionally using the current checkout.

AGENTS.md reference: AGENTS.md:L82-L84

Useful? React with 👍 / 👎.

Comment on lines +41 to +42
When your acceptance process requires publisher authentication, use the tag-frozen
`release/VERIFY.md` linked by the installer instead of this quick path.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Provide verification instructions before executing the installer

For users whose acceptance process requires publisher authentication, this replacement is circular: the page no longer exposes an exact tag or direct tag-frozen verification link and says to use the link printed by the installer, but its only command pipes the installer directly into Bash. install.sh prints that link and then continues without a pause into replacing the installed files, so the reader must execute unauthenticated code and complete the quick-install path before learning how to authenticate it. Preserve a pre-execution download and tag-frozen verification route for this scenario.

AGENTS.md reference: AGENTS.md:L79-L81

Useful? React with 👍 / 👎.

curl --proto '=https' --tlsv1.2 --fail --location \
--output "$installer" \
"https://github.com/registrystack/registry-stack/releases/download/${tag}/${installer}"
curl -fsSL https://docs.registrystack.org/install.sh | bash

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Pin installer commands in versioned tutorials

When this page is served from a historical /v/<version>/ docset after a newer release is promoted, the absolute canonical URL still downloads the newest root installer, while the tutorial's commands, fixtures, and expected output remain frozen to the older release. This makes archived tutorials install a potentially incompatible Registryctl version even though generate:archive emits a matching installer inside each versioned docset; render a docset-aware installer URL or retain an exact-tag installation command for archived builds.

Useful? React with 👍 / 👎.

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