Skip to content

7.4.2

Choose a tag to compare

@github-actions github-actions released this 29 Aug 13:51
· 6 commits to master since this release

Needs PHP 8.3 or newer. Download both assets, keep the binary
named wback-7.4.2 so the checksum matches, and verify with
sha256sum --ignore-missing -c SHA256SUMS before installing it.
See the README for the .env it then needs.

Added

  • Continuous integration, and with it an automated release. .github/workflows/ci.yml
    runs the test suite and compiles the binary on every push and pull request; pushing
    a tag builds the artefact, generates SHA256SUMS and publishes the GitHub release
    with that version's changelog section as its notes. The asset names are unchanged —
    wback-<version> and SHA256SUMS — so the documented install and the pyinfra
    checksum pin both keep working. The README carries the run status as a badge.
  • The two release traps are now structural rather than remembered. A tag-triggered
    build cannot compile a stale git describe, and the release job refuses to publish
    a binary whose --version does not equal the tag; the build runs composer build
    from a clean checkout, so a fat artefact like 7.0.0–7.4.0's cannot be produced by
    forgetting a step. The compiled binary is also smoke-tested — it runs, reports its
    own version, and exits non-zero on a mistyped command, which is the one behaviour
    the suite cannot check on the artefact that actually ships.

Changed

  • app:validate draws its six group headings through hampel/console-report's
    new checkSection() (2.1.0) rather than the app's own section(). They move
    to the two-column margin, so a heading now lines up with the [ ok ] markers
    beneath it instead of hanging to their left, and the rule under it goes. The
    check rows themselves are unchanged.
  • Backup runs keep the ruled cyan heading: section() stays in LogsToConsole
    for cron and the per-site headings, where a rule across a scrolling run log
    is doing a different job to a heading over a report you read top to bottom.

Fixed

  • An unrecognised log level passed to log() now renders at normal verbosity as
    intended. The fallback was the string 'warning' where a VERBOSITY_* integer
    belongs, which line() does not recognise and quietly replaces with whatever
    verbosity was last set. Latent — every current caller passes a level the map
    knows.