Skip to content

itos 8.0.1

Choose a tag to compare

@github-actions github-actions released this 12 Oct 07:29

itos 8.0.1

Cut by CI from the 94 commits since v8.0.0: 0 feats, 1 fix and 0 breaking changes, where a breaking change makes a major release, a feat a minor one and a fix a patch. Every change: v8.0.0...v8.0.1

What changed

Fixes

  • Print a task's why once in work show, and leave it out of task add's item (d8ef470)

Refactoring

  • Clear what staticcheck finds in the Go code (02dda42)
  • Name the Go build-go in internal/version's doc comment (c58b38f)

Tests

  • Read a registry whose items are absent or null as one with none (b0ef685)
  • Quote the question the decision cases pass, so every YAML reader takes it (78504a7)
  • Keep git from maintaining a scenario's repository in the background (cf9d61d)
  • Delete the TypeScript corpus runner, which a Go program replaced (fabb806)
  • Tell apart two whys of one word each in work show's comparison (1f660a9)

Build

  • Format Markdown and YAML with dprint, pinned by checksum (a0439c0)
  • Run the pre-commit hook from the git config, and drop vp (67d5f39)
  • Keep a hook's git environment from the unit tests it runs (7cbab77)
  • Let the devcontainer fetch dprint and its plugins (56d183e)
  • Say the devcontainer's pnpm serves the TypeScript tooling, not a hook (560b747)

CI

  • Seed the push proof's one mutation site by the range's start (f09e0f2)
  • Take .vite-hooks out of the gates, and hold dprint.json as one (a53681a)
  • Run staticcheck in CI's plan in place of fallow's audit (1349cb0)
  • Record what the gates' self-tests say, before Go tests replace them (debd75c)
  • Hold a tool's Go replacement to what the TypeScript said, with parity (b4feaeb)
  • Port the push steps' self-tests to Go tests beside what they test (3ac374f)
  • Port the nightly's self-tests to Go tests (41c85e4)
  • Run the gates' self-tests as Go tests, and delete their TypeScript (503695f)
  • Delete the seven self-tests no step runs, and say what guards each (66b23fe)
  • Keep git from maintaining the self-tests' scratch repositories (d65e5ee)
  • Record what the conformance runner says, before a Go runner replaces it (76a7cd3)
  • Run the conformance corpus with a Go program (bab4ddf)
  • Record what tools/bin's TypeScript programs say, before Go replaces them (0ced4bc)
  • Build a go run record's program, so parity sees its exit code (e4a052b)
  • Run tools/bin's inbox, build-go and itos-cc-tests as Go programs (86bfe11)
  • Delete tools/bin's TypeScript programs, which Go programs replaced (e3a7daf)
  • Write the inbox's JSON keys in the order gh's jq gives them (7f3d7f2)

Documentation

  • Take T-158 (56fcfb3)
  • Close T-158 (fd604e4)
  • Add p1-work-done-takes-unowned (91dc6d5)
  • Promote p1-push-proof-stable-site to T-159 (5d3ad1b)
  • Write T-159's ledger entry (372c816)
  • Take T-159 (29e696e)
  • Seed the local push proof by origin/main, as CI seeds by the range's start (3a40bcc)
  • Close T-159 (a1a4de4)
  • Take T-142 (35aa528)
  • Format the Markdown as dprint does (a100ccf)
  • Describe the pre-commit hook in the git config, and the commands vp ran (e47e0fb)
  • Drop p1-hook-env-unset-tracked (cfd1678)
  • Add p1-pre-commit-windows (eabe831)
  • Add p1-drop-vite-hooks-path (1174844)
  • Close T-142 (db73926)
  • Queue T-142 (f44b684)
  • Retire the vp staged lesson, since no hook runs vp staged (646729e)
  • Record T-148's pick, staticcheck in CI and no deadcode (2b95bd4)
  • Queue T-148 (60303fe)
  • Say what the nightly runs, which is no closed task's checks (b65f5ca)
  • Take T-148 (487db30)
  • Describe the hooks and checks without fallow, and staticcheck as CI's (110d73c)
  • Add p1-js-error-texts (8b0b24d)
  • Edit p1-js-error-texts (283ea6f)
  • Record that the plugin moves to its own repository if it grows (70a1c76)
  • Add p1-shellcheck-scripts (488007d)
  • Add p1-work-show-closing-checks (da7dab0)
  • Add p1-archive-closed (f592934)
  • Close T-148 (ecf9020)
  • Queue T-148 (dfec339)
  • Take T-143 (1085f16)
  • Describe the self-tests as Go tests, and the parity records (9dbb753)
  • Drop p1-drop-vite-hooks-path (2f0f91f)
  • Add p1-message-doc-header-agreement (8018e7c)
  • Add p1-gate-edit-without-task (b6ba80d)
  • Close T-143 (35168d4)
  • Queue T-143 (43a775f)
  • Take T-144 (5ae91ca)
  • Say the corpus is run by tools/bin/conformance (ca5e0d3)
  • Drop p1-corpus-runner-load-deadline (0b9dd50)
  • Close T-144 (8c58860)
  • Queue T-144 (e507309)
  • Take T-146 (0fbd16a)
  • Edit p2-no-workflow-labels-check (2c72f84)
  • Edit p1-targeted-coverage-reuse (b570757)
  • Edit p1-corpus-listed-suite (1c6273d)
  • Name tools/bin's Go programs where the TypeScript ones were (2ee0975)
  • Add p1-build-go-no-caller (91e2acd)
  • Add p1-work-edit-rename-ref (29656a5)
  • Add p1-lint-names-footer-line (2e0d2d8)
  • Add p1-asks-relink (fb67b41)
  • Add p1-upgrade-notes-tidy (d8cb848)
  • Edit p3-commit-long-text-footer (18a467f)
  • Add bug-107 (b88baff)
  • Edit p1-draft-checks-before-minting (58873bc)
  • Close T-146 (86c93dc)
  • Queue T-146 (daec6b3)
  • Edit T-149 (a1af797)
  • Edit p1-shellcheck-scripts (5522309)
  • Drop T-147 (250037c)
  • Queue bug-107 (180f542)
  • Edit p1-shellcheck-scripts (bed3140)
  • Specify bug-107, a task's why printed twice by work show (85b3477)
  • Take bug-107 (b9f26bd)

Upgrading

Commit these changes as your project's rules ask (the install script and the pin are build
commits, or whatever type your rules give itos.yaml and tools/bin/).

  1. What the commits ask. No commit since v8.0.0 is a breaking change. Every feat and fix since v8.0.0 says Upgrading: none.

  2. What it changes on purpose. The old scenarios and conformance cases the range's Changes: footers name,
    which a fix changes because they held the bug (T-071):

    • d8ef470 fix: print a task's why once in work show, and leave it out of task add's item: tasks.yaml: task add writes the task after the last
    • d8ef470 fix: print a task's why once in work show, and leave it out of task add's item: tasks.yaml: under a stealth config task add makes the file
  3. The config. No key, type, value or default changed since v8.0.0: a config it accepts, this release
    accepts and reads the same (tools/bin/schema-contract, T-070).

  4. Move the install script to 8.0.1. A project on the install script
    (tools/bin/install-itos, v2.0.0's Upgrading, step 1) changes its version= line and each
    platform's hash, from this release's checksums.txt; the whole script, for a project that has
    none yet:

    #!/bin/sh
    # tools/bin/install-itos: the pinned itos, into .tools/bin/
    set -eu
    version=8.0.1
    cd "$(git rev-parse --show-toplevel)"
    case "$(uname -s)-$(uname -m)" in
    Linux-x86_64) platform=linux-amd64 sum=1a5d070fcab531f9482dd2593b7cd1926652f76f6a9b70d5332d62286c5d9c50 ;;
    Linux-aarch64 | Linux-arm64) platform=linux-arm64 sum=a115d81c8e3762ddfbf741f0e3d22aabae73a7c510ae229ae88db5d8609cbe2f ;;
    Darwin-x86_64) platform=darwin-amd64 sum=7e96db58bec9817d952297c29c53280f9a01774f6ee9e86678f6c090e78bab72 ;;
    Darwin-arm64) platform=darwin-arm64 sum=ccd07d94eeac6a47b1652f89c29c3bd1560cfb644b1a9bf2c3b7a59e39ac2545 ;;
    MINGW*-x86_64 | MSYS*-x86_64) platform=windows-amd64 sum=110c9be05ba37f5f7a61bea5c07fb48f6624e4182204aecaf9c93d1d05fffdc1 ;;
    *) echo "install-itos: no itos archive for $(uname -s)-$(uname -m)" >&2 && exit 1 ;;
    esac
    case "$platform" in
    windows-*) archive="itos-$version-$platform.zip" bin=.tools/bin/itos.exe ;;
    *) archive="itos-$version-$platform.tar.gz" bin=.tools/bin/itos ;;
    esac
    # What was installed, so a call with nothing to do runs nothing.
    pin=".tools/bin/itos.pin"
    if [ -x "$bin" ] && [ "$(cat "$pin" 2>/dev/null)" = "$version $sum" ]; then exit 0; fi
    tmp=$(mktemp -d)
    trap 'rm -rf "$tmp"' EXIT
    curl -fsSL -o "$tmp/$archive" "https://github.com/donvargax/itos/releases/download/v$version/$archive"
    if command -v sha256sum >/dev/null; then check="sha256sum -c -"; else check="shasum -a 256 -c -"; fi
    (cd "$tmp" && echo "$sum  $archive" | $check)
    mkdir -p .tools/bin
    case "$archive" in
    *.zip) unzip -o -q "$tmp/$archive" itos.exe -d .tools/bin ;;
    *) tar -xzf "$tmp/$archive" -C .tools/bin itos ;;
    esac
    echo "$version $sum" > "$pin"
    echo "install-itos: itos $version in $bin"
  5. Or move the pin to 8.0.1. A repository that pins a release in itos.yaml
    (v2.1.0's Upgrading, step 2) changes its two lines; pin.checksums is the SHA-256 of this
    release's checksums.txt itself, one hash for every platform:

    pin:
      version: 8.0.1
      checksums: bb3bbff58783bfe511d5d0694dc99b8cb45e92ece721aa3b09456fa35f11357c

    A CI step that installs itos by go install moves to
    go install github.com/donvargax/itos/v8/cmd/itos@v8.0.1.

  6. Point the schema line at v8.0.1's. If itos.yaml's first line names a release's
    itos.schema.json, make it
    # yaml-language-server: $schema=https://github.com/donvargax/itos/releases/download/v8.0.1/itos.schema.json.

  7. Check: tools/bin/itos version (or itos version in the repository, with a pin)
    prints itos 8.0.1, tools/bin/itos version --check exits 0 (widen a cap in
    requires that 8.0.1 is past), and tools/bin/itos config check passes. To report a
    problem itos causes, open an issue on donvargax/itos with the label consumer-report
    (https://github.com/donvargax/itos/issues/new?template=consumer-report.yml).

The archives are attested by the workflow that built them:
gh attestation verify <archive> -R donvargax/itos checks one, and
sha256sum --ignore-missing -c checksums.txt checks the ones downloaded beside it.