From 3b2a7f92095836eb70003d84e67c9fe652a11e42 Mon Sep 17 00:00:00 2001 From: Daniel Netzer Date: Wed, 4 Nov 2026 11:00:32 +0200 Subject: [PATCH] docs: point the install one-liner at v0.4.2 (#381) --- README.md | 10 +++++----- docs/install.md | 10 +++++----- scripts/test-native-installer.py | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index e34a9f7..a6dedb7 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ proposed improvements to the durable recipe that guides the next run. > **Early release.** The current Go source supports ticket analysis, approved execution, > verification and separately approved draft PRs, also available in the downloadable -> `v0.4.1` release. Merge, deployment and issue closure +> `v0.4.2` release. Merge, deployment and issue closure > remain manual. v0.4.0 also ships the plugin runtime with bundled GitLab (forge), Jira > (tracker) and `forgecomments` (reviewer) plugins; see [plugins](lab/plugins/README.md). @@ -66,14 +66,14 @@ No Node, Go or source checkout is required to install it. **[Installation guide →](docs/install.md)** — prerequisites, PATH, upgrades and rollback.
-One-line installer · pinned to v0.4.1 +One-line installer · pinned to v0.4.2 ```sh -sh -c 'set -eu; script=$(mktemp "${TMPDIR:-/tmp}/forgecell-bootstrap.XXXXXXXX") || { echo "Forgecell: cannot create bootstrap temporary file." >&2; exit 1; }; trap '"'"'rm -f "$script"'"'"' 0; trap '"'"'exit 1'"'"' HUP INT TERM; curl -fsSL --proto "=https" --proto-redir "=https" --connect-timeout 15 --max-time 30 https://github.com/DanielNetzer/forgecell/releases/download/v0.4.1/install.sh -o "$script" || { echo "Forgecell: bootstrap download failed." >&2; exit 1; }; [ -s "$script" ] || { echo "Forgecell: bootstrap download was empty." >&2; exit 1; }; sh "$script"' +sh -c 'set -eu; script=$(mktemp "${TMPDIR:-/tmp}/forgecell-bootstrap.XXXXXXXX") || { echo "Forgecell: cannot create bootstrap temporary file." >&2; exit 1; }; trap '"'"'rm -f "$script"'"'"' 0; trap '"'"'exit 1'"'"' HUP INT TERM; curl -fsSL --proto "=https" --proto-redir "=https" --connect-timeout 15 --max-time 30 https://github.com/DanielNetzer/forgecell/releases/download/v0.4.2/install.sh -o "$script" || { echo "Forgecell: bootstrap download failed." >&2; exit 1; }; [ -s "$script" ] || { echo "Forgecell: bootstrap download was empty." >&2; exit 1; }; sh "$script"' ``` The installer verifies the executable checksum and version before activation and -preserves local Lab data. This command pins the published public-core v0.4.1 release. +preserves local Lab data. This command pins the published public-core v0.4.2 release. Checksums share the binaries’ GitHub HTTPS endpoint; they are not independent signatures.
@@ -110,7 +110,7 @@ sample repository with a deterministic stub harness. It needs only Git and Go on no API key, no GitHub token, no network and no repository of your own, and it publishes nothing. -The `v0.4.1` release defaults to a distinct private Lab for each checkout +The `v0.4.2` release defaults to a distinct private Lab for each checkout under `~/.forgecell/labs/`; `forgecell doctor --json` reports the exact location. Existing preview.1 checkout Labs remain intact: use the same `--lab .forgecell` path for every command to keep using one. Labs and saved bindings are not automatically diff --git a/docs/install.md b/docs/install.md index 1d28c06..1a5d533 100644 --- a/docs/install.md +++ b/docs/install.md @@ -1,9 +1,9 @@ # Install Forgecell CLI -Public CLI `v0.4.1` release; core source licensed under the [MIT License](../LICENSE). No repository access, Node or Go is needed to install. +Public CLI `v0.4.2` release; core source licensed under the [MIT License](../LICENSE). No repository access, Node or Go is needed to install. ```sh -sh -c 'set -eu; script=$(mktemp "${TMPDIR:-/tmp}/forgecell-bootstrap.XXXXXXXX") || { echo "Forgecell: cannot create bootstrap temporary file." >&2; exit 1; }; trap '"'"'rm -f "$script"'"'"' 0; trap '"'"'exit 1'"'"' HUP INT TERM; curl -fsSL --proto "=https" --proto-redir "=https" --connect-timeout 15 --max-time 30 https://github.com/DanielNetzer/forgecell/releases/download/v0.4.1/install.sh -o "$script" || { echo "Forgecell: bootstrap download failed." >&2; exit 1; }; [ -s "$script" ] || { echo "Forgecell: bootstrap download was empty." >&2; exit 1; }; sh "$script"' +sh -c 'set -eu; script=$(mktemp "${TMPDIR:-/tmp}/forgecell-bootstrap.XXXXXXXX") || { echo "Forgecell: cannot create bootstrap temporary file." >&2; exit 1; }; trap '"'"'rm -f "$script"'"'"' 0; trap '"'"'exit 1'"'"' HUP INT TERM; curl -fsSL --proto "=https" --proto-redir "=https" --connect-timeout 15 --max-time 30 https://github.com/DanielNetzer/forgecell/releases/download/v0.4.2/install.sh -o "$script" || { echo "Forgecell: bootstrap download failed." >&2; exit 1; }; [ -s "$script" ] || { echo "Forgecell: bootstrap download was empty." >&2; exit 1; }; sh "$script"' ``` The command downloads the bootstrap over HTTPS before executing it. A failed download @@ -172,7 +172,7 @@ a Molecule's delivery and exits nonzero unless they passed. and authentication checks; it does not prove model access or repository policy readiness. `forgecell --help` lists every command and flag. -The `v0.4.1` release uses a distinct directory under `~/.forgecell/labs/` +The `v0.4.2` release uses a distinct directory under `~/.forgecell/labs/` for each checkout by default; `forgecell doctor --json` reports the exact location. Existing preview.1 checkout Labs in the ignored `.forgecell` directory are left intact. Use the same `--lab .forgecell` path for every command to continue using one; @@ -182,7 +182,7 @@ path such as the example above keeps records outside the checkout. ## Versions, upgrade and rollback -The command above pins `v0.4.1`. v0.4.0 adds plugins: other trackers, forges and reviewers through pinned MCP plugins, and the `plugin new`/`pin`/`test` contributor kit. v0.4.1 hardens them: plugin pin, the plugin new skeletons, forgecomments severity markers, and intake for new Markdown files. Repeating it safely reinstalls that version. For another GitHub release, use its matching versioned installer; `FORGECELL_VERSION` overrides require the generic `FORGECELL_RELEASE_BASE` layout. Review release notes before upgrading. +The command above pins `v0.4.2`. v0.4.0 adds plugins: other trackers, forges and reviewers through pinned MCP plugins, and the `plugin new`/`pin`/`test` contributor kit. v0.4.1 hardens them: plugin pin, the plugin new skeletons, forgecomments severity markers, and intake for new Markdown files. v0.4.2 makes `loop --watch` print only what changed after its first pass, and tells a later coding attempt which files an earlier attempt already changed. Repeating it safely reinstalls that version. For another GitHub release, use its matching versioned installer; `FORGECELL_VERSION` overrides require the generic `FORGECELL_RELEASE_BASE` layout. Review release notes before upgrading. `forgecell rollback` restores the previous verified installation when one exists. Installation preserves Formulas and ledgers, stores versioned executables under `~/.forgecell/releases`, and refuses conflicting unmanaged launchers. @@ -256,7 +256,7 @@ Native maintainers use [the distribution design](design/native-cli-distribution. ## Published public-core release and legacy provenance -The pinned installer uses `DanielNetzer/forgecell` and the `v0.4.1` tag. +The pinned installer uses `DanielNetzer/forgecell` and the `v0.4.2` tag. The earlier published [v0.2.0-preview.2 prerelease](https://github.com/DanielNetzer/forgecell/releases/tag/v0.2.0-preview.2) was built from public-core source `801a9846fc9066dde985bb678348cac2bc89a249`. Installation requires no GitHub token, Git, gh, Go or Node. diff --git a/scripts/test-native-installer.py b/scripts/test-native-installer.py index 821b4bf..d88df48 100755 --- a/scripts/test-native-installer.py +++ b/scripts/test-native-installer.py @@ -37,7 +37,7 @@ assert binary.with_name(binary.name + '.sha256').read_text().strip() == hashlib.sha256(binary.read_bytes()).hexdigest() assert (release_root / 'install.sh').read_bytes() == (release_root / versions[-1] / 'install.sh').read_bytes() print('PASS: all four packages, license, notices and rendered version/tag pins') -public_url = 'https://github.com/DanielNetzer/forgecell/releases/download/v0.4.1/install.sh' +public_url = 'https://github.com/DanielNetzer/forgecell/releases/download/v0.4.2/install.sh' def documented_command(path): commands = [block.strip() for block in re.findall(r'```sh\n(.*?)\n```', path.read_text(), re.S) if public_url in block] assert len(commands) == 1, f'{path}: expected one public install command'