Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

`stack-sh/cli` is the open-source native Rust `stack` command for Stack architecture diagrams.

The repository contains native validation, formatting, and rendering commands. [Stack CLI 0.5.1](https://github.com/stack-sh/cli/releases/tag/v0.5.1) is the supported native binary release for macOS 13 or newer and glibc-based Linux 2.31 or newer, on arm64 and x86_64. GitHub Releases, Homebrew, the owner-maintained Aqua registry, and Cargo are available. Self-update was removed in 0.5.0; use the installation owner to upgrade. The target matrix, artifact names, verification material, channel ownership, and rollback rules are defined by the [distribution contract](./docs/distribution.md), with signing and verification procedures in the [supply-chain guide](./docs/supply-chain.md).
The repository contains native validation, formatting, and rendering commands. [Stack CLI 0.5.2](https://github.com/stack-sh/cli/releases/tag/v0.5.2) is the supported native binary release for macOS 13 or newer and glibc-based Linux 2.31 or newer, on arm64 and x86_64. GitHub Releases, Homebrew, the owner-maintained Aqua registry, and Cargo are available. Self-update was removed in 0.5.0; use the installation owner to upgrade. The target matrix, artifact names, verification material, channel ownership, and rollback rules are defined by the [distribution contract](./docs/distribution.md), with signing and verification procedures in the [supply-chain guide](./docs/supply-chain.md).

## Install

Expand All @@ -15,7 +15,7 @@ brew install stack-sh/tap/stack
With Rust 1.85 or newer and a native linker, install from crates.io:

```sh
cargo install stack-diagram-cli --version 0.5.1 --locked
cargo install stack-diagram-cli --version 0.5.2 --locked
stack --version
```

Expand All @@ -30,7 +30,7 @@ aqua install
stack --version
```

For a direct installation, download the archive for your target and its verification material from [GitHub Releases](https://github.com/stack-sh/cli/releases/tag/v0.5.1). Verify the checksum signature and both attestations by following the [supply-chain guide](./docs/supply-chain.md), then follow the [direct installation steps](./docs/distribution.md#direct-installation). The macOS artifacts are reproducibly ad-hoc signed, not Apple-notarized; Sigstore and GitHub attestations provide the publisher-identity check.
For a direct installation, download the archive for your target and its verification material from [GitHub Releases](https://github.com/stack-sh/cli/releases/tag/v0.5.2). Verify the checksum signature and both attestations by following the [supply-chain guide](./docs/supply-chain.md), then follow the [direct installation steps](./docs/distribution.md#direct-installation). The macOS artifacts are reproducibly ad-hoc signed, not Apple-notarized; Sigstore and GitHub attestations provide the publisher-identity check.

## Create your first SVG

Expand All @@ -43,13 +43,13 @@ stack check diagram.stack
stack render diagram.stack -o diagram.svg
```

Expect `stack 0.5.1`, a new `diagram.stack`, no check errors, and a non-empty `diagram.svg`. Open the SVG in a browser or include it in your README. Edit the source and repeat check/render; `stack init` refuses to overwrite existing work.
Expect `stack 0.5.2`, a new `diagram.stack`, no check errors, and a non-empty `diagram.svg`. Open the SVG in a browser or include it in your README. Edit the source and repeat check/render; `stack init` refuses to overwrite existing work.

The [four-language getting-started guide](https://stack-diagram.com/docs/guide/getting-started) keeps every installer, this walkthrough, and upgrade/uninstall guidance together. It is maintained in `stack-sh/docs` and verified against the published binary.

## Commands

The command inventory below is available in the published 0.5.1 binaries, including `stack doctor`, `stack config`, and structured JSON output for automation.
The command inventory below is available in the published 0.5.2 binaries, including `stack doctor`, `stack config`, and structured JSON output for automation.

```text
stack help
Expand Down Expand Up @@ -98,7 +98,7 @@ stack manpage

`stack update` is removed in 0.5.0. Homebrew, Aqua, and Cargo installations are updated through their package manager; direct downloads are updated manually after verification. See the [upgrade and migration guide](./docs/self-update.md).

`stack completions <bash|zsh|fish>` and `stack manpage` generate deterministic shell integration and an offline roff manual from the CLI command metadata. The 0.5.1 release archives carry the exact generated files; Homebrew installs them into its managed completion and manual paths, while direct, Aqua, and Cargo users can generate them into user-owned locations without modifying shell startup files. See the [completion and manual guide](./docs/completions.md).
`stack completions <bash|zsh|fish>` and `stack manpage` generate deterministic shell integration and an offline roff manual from the CLI command metadata. The 0.5.2 release archives carry the exact generated files; Homebrew installs them into its managed completion and manual paths, while direct, Aqua, and Cargo users can generate them into user-owned locations without modifying shell startup files. See the [completion and manual guide](./docs/completions.md).

`stack icons list [PROVIDER] [QUERY]` searches the asset-free catalog by ID, product name, or category. The catalog currently contains 1,051 IDs: 305 AWS, 45 Google Cloud, 639 Azure, and 62 curated developer and collaboration tool icons. This command reads only metadata embedded in the CLI.

Expand Down
4 changes: 2 additions & 2 deletions distribution/distribution-contract.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
"sourceVersionFile": "Cargo.toml",
"currentSourceVersion": "0.5.2",
"minimumRustVersion": "1.85",
"currentReleaseVersion": "0.5.1"
"currentReleaseVersion": "0.5.2"
},
"availability": {
"state": "available",
"message": "Stack CLI 0.5.1 is available through GitHub Releases, Homebrew, Aqua, and Cargo. Cargo installs the stack-diagram-cli source package using Rust 1.85 or newer and registry-only dependencies."
"message": "Stack CLI 0.5.2 is available through GitHub Releases, Homebrew, Aqua, and Cargo. Cargo installs the stack-diagram-cli source package using Rust 1.85 or newer and registry-only dependencies."
},
"versioning": {
"scheme": "Semantic Versioning",
Expand Down
20 changes: 10 additions & 10 deletions docs/distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This document defines the shared release contract for the Stack CLI. It is normative for GitHub Releases, Homebrew, Cargo, and Aqua implementations. The machine-readable source is [`distribution/distribution-contract.json`](../distribution/distribution-contract.json).

[Stack CLI 0.5.1](https://github.com/stack-sh/cli/releases/tag/v0.5.1) is available as a supported GitHub Release for every target below, through the owner-maintained Homebrew tap for the hosts marked below, and through the checksum-locked owner Aqua registry. The registry-only Cargo source package is also available. Version 0.5.0 removes self-update; see the [upgrade guide](./self-update.md).
[Stack CLI 0.5.2](https://github.com/stack-sh/cli/releases/tag/v0.5.2) is available as a supported GitHub Release for every target below, through the owner-maintained Homebrew tap for the hosts marked below, and through the checksum-locked owner Aqua registry. The registry-only Cargo source package is also available. Version 0.5.0 removes self-update; see the [upgrade guide](./self-update.md).

## Supported platform matrix

Expand Down Expand Up @@ -72,7 +72,7 @@ The release manifest records the tag, commit, source version, `minimumSupportedC
Install the official source package with Rust 1.85 or newer and a working native linker:

```sh
cargo install stack-diagram-cli --version 0.5.1 --locked
cargo install stack-diagram-cli --version 0.5.2 --locked
stack --version
```

Expand All @@ -98,7 +98,7 @@ brew uninstall stack-sh/tap/stack

For releases carrying the generated assets, the formula installs bash, zsh, and fish completions plus `stack.1` through Homebrew's standard path helpers. It does not edit shell startup files. The formula does not remove or replace Stack configuration and icon stores during an upgrade or uninstall. Formula updates verify release checksums, provenance, and SBOM attestations before changing the archive mapping. The fail-closed update and recovery procedure is maintained in the tap's [maintainer guide](https://github.com/stack-sh/homebrew-tap/blob/main/docs/maintaining.md).

The Homebrew v0.5.1 formula was activated after the immutable release assets were published. Its macOS ARM64, Linux ARM64, and Linux x86_64 lifecycle tests verify the archived completion and manual bytes during install, upgrade, and uninstall. The release manifest remains the publication-time record with only `github-release` in `verifiedChannels`; this contract and the tap CI record the later channel verification without replacing any release asset.
The Homebrew v0.5.2 formula was activated after the immutable release assets were published. Its macOS ARM64, Linux ARM64, and Linux x86_64 lifecycle tests verify the archived completion and manual bytes during install, upgrade, and uninstall. The release manifest remains the publication-time record with only `github-release` in `verifiedChannels`; this contract and the tap CI record the later channel verification without replacing any release asset.

## Aqua installation

Expand All @@ -118,7 +118,7 @@ registries:
ref: 42702cda91a4156901b9a601bd143c43dcf05766
path: aqua/registry.yaml
packages:
- name: stack-sh/cli@v0.5.1
- name: stack-sh/cli@v0.5.2
registry: stack-sh
```

Expand Down Expand Up @@ -149,24 +149,24 @@ stack --version

Commit `aqua-checksums.json` with the configuration. To upgrade after a new stable Stack release, run `aqua update`, review the version change, then run `aqua update-checksum` and `aqua install`. Aqua owns the replacement; Stack never replaces its own executable. The registry maintainer procedure and four-target test command are in [`aqua/README.md`](../aqua/README.md).

Aqua installs the executable declared by its registry mapping and does not own shell startup files or a global manual database. Stack CLI 0.5.1 includes the generators; use `stack completions` and `stack manpage` to write the desired user-owned files as documented in the [completion guide](./completions.md).
Aqua installs the executable declared by its registry mapping and does not own shell startup files or a global manual database. Stack CLI 0.5.2 includes the generators; use `stack completions` and `stack manpage` to write the desired user-owned files as documented in the [completion guide](./completions.md).

The Aqua v0.5.1 pin was activated after the immutable release assets were published. CI verifies all four target mappings without executing foreign binaries, then installs the native archive and compares all completion and manual generator bytes with the matching checksum-locked canonical release archive. This keeps the published release check independent from later source-tree command additions. The release manifest remains the publication-time record; the pinned registry commit, generated checksum lock, contract, and CI runs are the later verification evidence. No release asset is replaced.
The Aqua v0.5.2 pin was activated after the immutable release assets were published. CI verifies all four target mappings without executing foreign binaries, then installs the native archive and compares all completion and manual generator bytes with the matching checksum-locked canonical release archive. This keeps the published release check independent from later source-tree command additions. The release manifest remains the publication-time record; the pinned registry commit, generated checksum lock, contract, and CI runs are the later verification evidence. No release asset is replaced.

## Direct installation

Download [Stack CLI 0.5.1](https://github.com/stack-sh/cli/releases/tag/v0.5.1), select the archive whose target matches the supported platform table, and obtain all matching verification material. Complete the [supply-chain verification](./supply-chain.md), then extract and install the verified binary. Replace `{target}` with the exact release target:
Download [Stack CLI 0.5.2](https://github.com/stack-sh/cli/releases/tag/v0.5.2), select the archive whose target matches the supported platform table, and obtain all matching verification material. Complete the [supply-chain verification](./supply-chain.md), then extract and install the verified binary. Replace `{target}` with the exact release target:

```sh
tar -xzf "stack-v0.5.1-{target}.tar.gz"
tar -xzf "stack-v0.5.2-{target}.tar.gz"
mkdir -p "$HOME/.local/bin"
install -m 0755 "stack-v0.5.1-{target}/stack" "$HOME/.local/bin/stack"
install -m 0755 "stack-v0.5.2-{target}/stack" "$HOME/.local/bin/stack"
"$HOME/.local/bin/stack" --version
```

Add `$HOME/.local/bin` to `PATH` if it is not already present. Repeat the verified manual installation to update a directly downloaded binary; never overwrite a package-manager-owned binary. No receipt is created or required. See the [upgrade guide](./self-update.md).

The 0.5.1 archive carries completion and manual assets. Either copy its verified `share/` files into the matching system prefix or use the installed binary to generate user-owned files following the [completion guide](./completions.md). Do not copy these files from a different Stack version; CI and release verification require them to match the binary's command definition.
The 0.5.2 archive carries completion and manual assets. Either copy its verified `share/` files into the matching system prefix or use the installed binary to generate user-owned files following the [completion guide](./completions.md). Do not copy these files from a different Stack version; CI and release verification require them to match the binary's command definition.

## Channel ownership

Expand Down
4 changes: 2 additions & 2 deletions skills/docs-source.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"repository": "stack-sh/docs",
"revision": "86c51be1ddcabd48b326bacdb6088eb2a2ff79bf",
"manifestSha256": "9e41cdce9df59d8b63e81691cce3da595df206d02c6ed79c7a1adec8e0f6d500"
"revision": "1a3085d27fae1cf0995e1e6bc0ce55b438791f69",
"manifestSha256": "22b0dfca62de756728ead25c8113ffbbefdb3d252136b9d1dcf8aef75accb085"
}
4 changes: 2 additions & 2 deletions skills/stack-diagrams/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ Deliver editable `.stack` source and, when rendering is available, an SVG. Prese

## Start with the available tools

Run `stack --version` and `stack help` before selecting commands. Use the installed binary's help, not unreleased repository instructions. This workflow is tested with published CLI 0.5.1. The commands below use human-readable output; `check`, `fmt`, and `render` also accept `--json` for structured diagnostics, artifacts, and operational errors. Read the [versioned JSON output contract](https://github.com/stack-sh/cli/blob/v0.5.1/docs/machine-readable-output.md) before parsing it, and verify options using `stack help <command>`.
Run `stack --version` and `stack help` before selecting commands. Use the installed binary's help, not unreleased repository instructions. This workflow is tested with published CLI 0.5.2. The commands below use human-readable output; `check`, `fmt`, and `render` also accept `--json` for structured diagnostics, artifacts, and operational errors. Read the [versioned JSON output contract](https://github.com/stack-sh/cli/blob/v0.5.2/docs/machine-readable-output.md) before parsing it, and verify options using `stack help <command>`.

If the CLI is missing, consult the [installation guide](https://stack-diagram.com/docs/guide/getting-started.md) and [release distribution contract](https://github.com/stack-sh/cli/blob/v0.5.1/docs/distribution.md). Install only when the user's authorization allows it. Otherwise provide source with an explicit validation gap; do not report it as checked. No remote source upload is required. Upgrade with the package manager that installed Stack, or verify and manually replace a direct download; `stack update` has been removed. For local configuration problems, `stack doctor` and `stack config path` provide read-only diagnosis.
If the CLI is missing, consult the [installation guide](https://stack-diagram.com/docs/guide/getting-started.md) and [release distribution contract](https://github.com/stack-sh/cli/blob/v0.5.2/docs/distribution.md). Install only when the user's authorization allows it. Otherwise provide source with an explicit validation gap; do not report it as checked. No remote source upload is required. Upgrade with the package manager that installed Stack, or verify and manually replace a direct download; `stack update` has been removed. For local configuration problems, `stack doctor` and `stack config path` provide read-only diagnosis.

## Read only the relevant reference

Expand Down
16 changes: 8 additions & 8 deletions tests/aqua/aqua-checksums.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
{
"checksums": [
{
"id": "github_release/github.com/stack-sh/cli/v0.5.1/stack-v0.5.1-aarch64-apple-darwin.tar.gz",
"checksum": "00572032C4DCF54602E41C23FFEB2FA189709D16A8939FE3549DE335F2DE811E",
"id": "github_release/github.com/stack-sh/cli/v0.5.2/stack-v0.5.2-aarch64-apple-darwin.tar.gz",
"checksum": "3290449B4897DA9C6433AD9CF1679DF5FD7AF33A9E1CFE7B16E26718CABD5FD5",
"algorithm": "sha256"
},
{
"id": "github_release/github.com/stack-sh/cli/v0.5.1/stack-v0.5.1-aarch64-unknown-linux-gnu.tar.gz",
"checksum": "4FA61751A4BDD7D066255751549459B6303CFCED9243F78A2BAA41844719C0CF",
"id": "github_release/github.com/stack-sh/cli/v0.5.2/stack-v0.5.2-aarch64-unknown-linux-gnu.tar.gz",
"checksum": "6BE14C2105D49D1C38382D63DEAE7BC6CE3268CACD33FE5E44A53117627659B0",
"algorithm": "sha256"
},
{
"id": "github_release/github.com/stack-sh/cli/v0.5.1/stack-v0.5.1-x86_64-apple-darwin.tar.gz",
"checksum": "D60F57A7A8F4FD1280FDD3B7C0871E9DBB53DF23F4A5A168D843E469C9A05984",
"id": "github_release/github.com/stack-sh/cli/v0.5.2/stack-v0.5.2-x86_64-apple-darwin.tar.gz",
"checksum": "08944C2009C885CE7C26D75C8EA62A4A373F2D46ED0AB16F0BE63E65C1BF5D2C",
"algorithm": "sha256"
},
{
"id": "github_release/github.com/stack-sh/cli/v0.5.1/stack-v0.5.1-x86_64-unknown-linux-gnu.tar.gz",
"checksum": "A551F526501AC051457AC354F67D56A14817D59B7DB37DA103DF30DA4E7C96A9",
"id": "github_release/github.com/stack-sh/cli/v0.5.2/stack-v0.5.2-x86_64-unknown-linux-gnu.tar.gz",
"checksum": "08EEE2C7E31E9EC4620BD7315C2C7AEA95A64EA49C50C1422486D0C8340FF383",
"algorithm": "sha256"
},
{
Expand Down
2 changes: 1 addition & 1 deletion tests/aqua/aqua.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ registries:
ref: 42702cda91a4156901b9a601bd143c43dcf05766
path: aqua/registry.yaml
packages:
- name: stack-sh/cli@v0.5.1
- name: stack-sh/cli@v0.5.2
registry: stack-sh
Loading