Skip to content

itos 8.3.3

Choose a tag to compare

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

itos 8.3.3

Cut by CI from the 9 commits since v8.3.2: 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.3.2...v8.3.3

What changed

Fixes

  • Read the footers as git reads trailers, the message's last paragraph (8b47336)

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.3.2 is a breaking change.
    Each Upgrading: footer since v8.3.2 (itos commit footers Upgrading v8.3.2 v8.3.3):

    • 8b47336 fix: read the footers as git reads trailers, the message's last paragraph:

      footers must be the message's last paragraph, after a blank line, as git reads trailers

  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):

    • 8b47336 fix: read the footers as git reads trailers, the message's last paragraph: @ID-HEADER-07 @ID-HEADER-08
    • 8b47336 fix: read the footers as git reads trailers, the message's last paragraph: messages.yaml: the built-in lint's warnings are printed and do not reject the message
    • 8b47336 fix: read the footers as git reads trailers, the message's last paragraph: messages.yaml: the footer-leading-blank warning names the line that starts the footer
    • 8b47336 fix: read the footers as git reads trailers, the message's last paragraph: messages.yaml: --json gives the footer-leading-blank warning with the line it names
  3. The config. No key, type, value or default changed since v8.3.2: a config it accepts, this release
    accepts and reads the same (tools/bin/schema-contract, T-070).

  4. Move the install script to 8.3.3. 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.3.3
    cd "$(git rev-parse --show-toplevel)"
    case "$(uname -s)-$(uname -m)" in
    Linux-x86_64) platform=linux-amd64 sum=df3a752de17ea14ba8d78ebc8a843671b03b0f2cfd6105c6a8d30b7e31f3687b ;;
    Linux-aarch64 | Linux-arm64) platform=linux-arm64 sum=5444a776ae420ce71937be9a3fbfa5dd1daaf3e99303397dc41cd481626e3420 ;;
    Darwin-x86_64) platform=darwin-amd64 sum=1734ddd56f67368b20bd07e7abe17ba535bb0e47d31738b7dba7185528c5fd50 ;;
    Darwin-arm64) platform=darwin-arm64 sum=3a4d030b84c5c155d8daa6746f19e4eaae9f5df53f6b781bd8cd304cc15497f1 ;;
    MINGW*-x86_64 | MSYS*-x86_64) platform=windows-amd64 sum=6f2d64246ef404b72d6a7b1b3bb24c895bbb799c82b35d2892cd3420b72e0fcd ;;
    *) 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.3.3. 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.3.3
      checksums: c5138e7d52ec0772112e43bf89faa60ef0ae5515fec5713af8d47a03e2f08e99

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

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

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