Skip to content

itos 8.1.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 10:02

itos 8.1.0

Cut by CI from the 51 commits since v8.0.1: 1 feat, 0 fixes 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.1...v8.1.0

What changed

Features

  • Run only a range's run of named tests with ci run --tests (00392ea)

Refactoring

  • Name no node_modules in the built-in header lint's comment (28e966e)
  • Leave the id counter no error path a test cannot reach (05fa40a)

Tests

  • Hold init to naming the project's settings only for a project install (0d9e2bd)
  • Run the changed statements no test ran since the 2026-10-08 nightly (d001ba4)
  • Add the step that runs CI's named tests over a range (d7b0543)

Build

  • Delete package.json, its lockfile, tsconfig.json and the changelog script (d253b04)
  • Build the devcontainer without Node, pnpm or npm's registry (5c2e803)
  • Take the deleted parity records out of the gates path set (d1026c3)
  • Stop naming the paths T-149 deleted in the config set (d648987)

CI

  • Set up no Node or vp in CI and the nightly, and run no changelog step (04c6f43)
  • Delete the parity records and tools/bin/parity (0439ca8)
  • Read the nightly's changed-sites base from the last green nightly (3682394)
  • Judge the nightly's changed sites since the last green nightly (27ae132)
  • Judge only the files a Linux build compiles in the nightly's changed sites (6baa977)

Documentation

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.1 is a breaking change. Every feat and fix since v8.0.1 says Upgrading: none.

  2. What it changes on purpose. No fix since v8.0.1 names an old scenario or case it changes (Changes:).

  3. The config. No key, type, value or default changed since v8.0.1: a config it accepts, this release
    accepts and reads the same (tools/bin/schema-contract, T-070).

  4. Move the install script to 8.1.0. 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.1.0
    cd "$(git rev-parse --show-toplevel)"
    case "$(uname -s)-$(uname -m)" in
    Linux-x86_64) platform=linux-amd64 sum=a49624ea8759bf40a05be39476c4eefd6bc10e71ce6f3284d97fc7320b96cd2c ;;
    Linux-aarch64 | Linux-arm64) platform=linux-arm64 sum=10a68b6d1513d7520f57830aefeab7d3e82f3db708d8106ae298fdf7218cc17b ;;
    Darwin-x86_64) platform=darwin-amd64 sum=eb76cf5db8d9f8c32e3a9fc88230d9225fdc78c73561bc3662ac38c90d439fcc ;;
    Darwin-arm64) platform=darwin-arm64 sum=9cfc6a34292275f57a1e318b924706137c49f8715f0ada8f3f52f2ee80952da0 ;;
    MINGW*-x86_64 | MSYS*-x86_64) platform=windows-amd64 sum=713cd7e005e8091f0bf18a50a618674b71e04acc385ce812aef1863862018d06 ;;
    *) 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.1.0. 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.1.0
      checksums: 2eda480534bbecbd32fbe022286fc78982fbbc2d47f5ccd05be6d5d24d7255bd

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

  6. Point the schema line at v8.1.0'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.1.0/itos.schema.json.

  7. Check: tools/bin/itos version (or itos version in the repository, with a pin)
    prints itos 8.1.0, tools/bin/itos version --check exits 0 (widen a cap in
    requires that 8.1.0 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.