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
8 changes: 4 additions & 4 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.4.0](https://github.com/stack-sh/cli/releases/tag/v0.4.0) 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, and the owner-maintained Aqua registry are available; Cargo remains planned. Source for 0.5.0 removes self-update; 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.0](https://github.com/stack-sh/cli/releases/tag/v0.5.0) 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, and the owner-maintained Aqua registry are available; Cargo remains planned. 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 @@ -21,11 +21,11 @@ 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.4.0). 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.0). 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.

## Commands

The command inventory below follows the current source tree. `stack doctor` and `stack config` were added after 0.4.0 and are not present in the published 0.4.0 binaries; they will become available through installation channels in a later release.
The command inventory below is available in the published 0.5.0 binaries, including `stack doctor`, `stack config`, and structured JSON output for automation.

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

`stack update` is removed in 0.5.0. Homebrew, Aqua, and future 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.4.0 release archives carry the exact generated files; Homebrew installs them into its managed completion and manual paths, while direct, Aqua, and future 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.0 release archives carry the exact generated files; Homebrew installs them into its managed completion and manual paths, while direct, Aqua, and future 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.0",
"minimumRustVersion": "1.85",
"currentReleaseVersion": "0.4.0"
"currentReleaseVersion": "0.5.0"
},
"availability": {
"state": "available",
"message": "Stack CLI 0.5.0 is the next source release. GitHub Releases, Homebrew, and Aqua currently distribute 0.4.0. Cargo remains planned; self-update is removed from 0.5.0."
"message": "Stack CLI 0.5.0 is available through GitHub Releases, Homebrew, and Aqua. Cargo remains planned; self-update was removed in 0.5.0."
},
"versioning": {
"scheme": "Semantic Versioning",
Expand Down
2 changes: 1 addition & 1 deletion docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

`stack config` exposes the paths already used by rendering and provider import, while `stack doctor` diagnoses that configuration and its known-provider packs. Every command on this page is read-only: it does not create a configuration directory, config file, icon store, provider pack, receipt, or temporary file.

These commands were added to the source tree after Stack CLI 0.4.0. The published 0.4.0 GitHub, Homebrew, and Aqua binaries do not contain them. They will become available through those channels in a later release.
These commands are available in Stack CLI 0.5.0 through GitHub Releases, Homebrew, and Aqua. Older 0.4.0 binaries do not contain them.

## Discovery order

Expand Down
18 changes: 9 additions & 9 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, Aqua, implementations. The machine-readable source is [`distribution/distribution-contract.json`](../distribution/distribution-contract.json).

[Stack CLI 0.4.0](https://github.com/stack-sh/cli/releases/tag/v0.4.0) 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. Cargo remains **planned**. The 0.5.0 source removes self-update; see the [upgrade guide](./self-update.md).
[Stack CLI 0.5.0](https://github.com/stack-sh/cli/releases/tag/v0.5.0) 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. Cargo remains **planned**. Version 0.5.0 removes self-update; see the [upgrade guide](./self-update.md).

## Supported platform matrix

Expand Down Expand Up @@ -81,7 +81,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.4.0 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.0 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 @@ -101,7 +101,7 @@ registries:
ref: 42702cda91a4156901b9a601bd143c43dcf05766
path: aqua/registry.yaml
packages:
- name: stack-sh/cli@v0.4.0
- name: stack-sh/cli@v0.5.0
registry: stack-sh
```

Expand Down Expand Up @@ -132,24 +132,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.4.0 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.0 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.4.0 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.0 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.4.0](https://github.com/stack-sh/cli/releases/tag/v0.4.0), 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.0](https://github.com/stack-sh/cli/releases/tag/v0.5.0), 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.4.0-{target}.tar.gz"
tar -xzf "stack-v0.5.0-{target}.tar.gz"
mkdir -p "$HOME/.local/bin"
install -m 0755 "stack-v0.4.0-{target}/stack" "$HOME/.local/bin/stack"
install -m 0755 "stack-v0.5.0-{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.4.0 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.0 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
2 changes: 1 addition & 1 deletion docs/provider-icon-import.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ default_icons_path: /absolute/path/to/stack-icons
```

The configured path is used by both `stack icons import` and `stack render`.
Use `stack config get default_icons_path` to inspect the effective value and `stack doctor` to validate the store without changing it. These commands were added after the published 0.4.0 release; see the [configuration discovery and doctor contract](./configuration.md) for availability and failure behavior.
Use `stack config get default_icons_path` to inspect the effective value and `stack doctor` to validate the store without changing it. These commands are available in Stack CLI 0.5.0; see the [configuration discovery and doctor contract](./configuration.md) for availability and failure behavior.

## Keep icons with a project

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": "cd7ba0356de8a70d8932036b0e6ea37519577fd0",
"manifestSha256": "4187e92ff990702d53586db14658dc15a3721c69d42501a4d5b4c615a8e31552"
"revision": "d1c4db38fa858900f22a95fb9ff702ef9a8a0f3b",
"manifestSha256": "837070789c1e6474e3a92ecc39920830024a58d6999308ddd72cc5e2bacddc6f"
}
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.4.0 using `check`, `fmt`, and `render` without `--json` for compatibility. Before using additional options such as JSON output, verify them 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.0. 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.0/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.4.0/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.
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.0/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.4.0/stack-v0.4.0-aarch64-apple-darwin.tar.gz",
"checksum": "DD43CF3D966A3DC28DE3AC8752B6A98F19E4CB7CF6B04652AB73A013800CB015",
"id": "github_release/github.com/stack-sh/cli/v0.5.0/stack-v0.5.0-aarch64-apple-darwin.tar.gz",
"checksum": "CFA5E6459481DEC73C0ACA5B32D52293C977A4F5D72273F8EA9CE71C4F689EA2",
"algorithm": "sha256"
},
{
"id": "github_release/github.com/stack-sh/cli/v0.4.0/stack-v0.4.0-aarch64-unknown-linux-gnu.tar.gz",
"checksum": "A0D76BFA9ED9E767FCD06DBEB7140234DB865440210C7C3ABF6C3DB4F6983A6E",
"id": "github_release/github.com/stack-sh/cli/v0.5.0/stack-v0.5.0-aarch64-unknown-linux-gnu.tar.gz",
"checksum": "506A03D1B430497539BFC2C57FF4A97962A983D1343C983700BC85719E5740CB",
"algorithm": "sha256"
},
{
"id": "github_release/github.com/stack-sh/cli/v0.4.0/stack-v0.4.0-x86_64-apple-darwin.tar.gz",
"checksum": "48A72328FCF6D160A123A766D9701108F8EE9F633001581DAB533B93DDDF0827",
"id": "github_release/github.com/stack-sh/cli/v0.5.0/stack-v0.5.0-x86_64-apple-darwin.tar.gz",
"checksum": "D38E017C93A41855319FD583C4F0D6E62DC688B10EBEEDBE925D07BA6DBB7E2B",
"algorithm": "sha256"
},
{
"id": "github_release/github.com/stack-sh/cli/v0.4.0/stack-v0.4.0-x86_64-unknown-linux-gnu.tar.gz",
"checksum": "89D8A34C0DA5F67932EDFF2641FE0A0527AFBD120CFD5133CB38CDEFFCA55319",
"id": "github_release/github.com/stack-sh/cli/v0.5.0/stack-v0.5.0-x86_64-unknown-linux-gnu.tar.gz",
"checksum": "B159E58C899F77798196616DD1A33FC6A04026CDC582861EE8AC257211ABDB9D",
"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.4.0
- name: stack-sh/cli@v0.5.0
registry: stack-sh