Skip to content

itos 8.2.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 15:55

itos 8.2.0

Cut by CI from the 36 commits since v8.1.0: 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.1.0...v8.2.0

What changed

Features

  • Go on past a failing step in the nightly, naming every failure (ecc1ba8)

Tests

  • Add the nightly steps and the nightly run for slice 133's scenarios (06c9828)

CI

  • Run a push's named tests on each platform, every feature nightly (d51c9c9)
  • Hold the nightly to its shape after T-163 in the features-scope self-test (915464f)

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.1.0 is a breaking change. Every feat and fix since v8.1.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):

    • ecc1ba8 feat: go on past a failing step in the nightly, naming every failure: ci-run.yaml: with ci.stop_at_first_failure false every step and check runs
    • ecc1ba8 feat: go on past a failing step in the nightly, naming every failure: ci-run.yaml: the same as --json, its verdict the first failure
    • ecc1ba8 feat: go on past a failing step in the nightly, naming every failure: ci-run.yaml: a code proof that finds a survivor fails the run
    • ecc1ba8 feat: go on past a failing step in the nightly, naming every failure: ci-run.yaml: --json keeps stdout for the verdict
  3. The config. No key, type, value or default changed since v8.1.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.2.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.2.0
    cd "$(git rev-parse --show-toplevel)"
    case "$(uname -s)-$(uname -m)" in
    Linux-x86_64) platform=linux-amd64 sum=534ba5ca053d41e4f47999ace8aa262ef4aaed6a42fa7c0fbc243a0b15c6fa44 ;;
    Linux-aarch64 | Linux-arm64) platform=linux-arm64 sum=a203b5b59cd53e8f2fecc01bf154fb3429dd6a1b3898accd30357de5565eb251 ;;
    Darwin-x86_64) platform=darwin-amd64 sum=61eda01fd8f5ab65e8ff8a5ea6211d941e4ac3b0d3ba48883c991175d09f733f ;;
    Darwin-arm64) platform=darwin-arm64 sum=fea02116a7a79f1cc2e6df8211fbb2efb02932e9289ce0d85967379e8c078f77 ;;
    MINGW*-x86_64 | MSYS*-x86_64) platform=windows-amd64 sum=223da897edf3df082b7ae08bb837d7e3bea1c9a2ee9699463b1f87984a6e70ee ;;
    *) 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.2.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.2.0
      checksums: 77cc8f76bfaead2f5214b8f842b166233bbcd31d5b50eb9023072c1a0d486747

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

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

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