Skip to content

v4.0.0-rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@fho fho released this 11 Jun 11:07
· 65 commits to main since this release
da6bed7

Release Notes

This is a release candidate. The changes are not final.

This version brings support for managing releases, a new TaskInfo input type and
various smaller improvements.

The configuration files and the database schema are not compatible with
earlier versions. Please refer to the Upgrade instructions in the Wiki.

Changes

New Features

Releases

baur now supports managing releases.
Releases are named snapshot of existing task runs for a repository.
Arbitrary data, such as release notes, can be attached to a release.

New Commands:

  • baur release create RELEASE-NAME: creates a release
  • baur release show RELEASE-NAME: displays the applications, tasks,
    task-runs, their outputs, upload destinations and release metadata in JSON
    format
  • baur release download RELEASE-NAME DEST-DIR: downloads outputs stored on
    S3 of task runs belonging to the release

TaskInfo Inputs

A TaskInfo input can be defined via the following section in a .app.toml
file:

[[Task.Input.TaskInfos]]
  task_name = "check"
  env_var = "CHECK_TASK_INFO_FILEPATH"

All inputs of the dependent task (check in this example) are tracked for
changes.
task_name specifies the name of a task of the same application for which
information are provided.
env_var specifies the name of an environment variable, that is set, during
the execution of the task command, to a temporary file containing the
information. The information are in JSON format and are:

{
  "TotalInputDigest": "sha384:118cb50a647884f442deb9cc796f2590c443b8d2220b42e4502ffbc6f103f11a7ad2b3f0b8684d19f22bf704e7f599ae",
  "AppDir": "/tmp/baur-filesrc-test3814551359/app",
  "Outputs": [
    {
      "URI": "/tmp/TestRun_TaskInfoFileContent2435369936/001/out"
    }
  ]
}

Depending on the status of the dependent tasks, the listed output URIs might or
might not exist. If the status of the check tasks is exist, the outputs are
queried from the database for the existing run. If the task has not been run
yet, the output information are evaluated from the definition of the task. If
the output URI is deterministic and the check task is run later with the same
inputs run, the output will be created to the URI.
baur run does not order the execution depending on TaskInfos. That means if a
referenced TaskInfo task and the task itself is run, it is not guaranteed that
the Outputs in the TaskInfo file exist.

Enhancements

  • Config Validation: fail if multiple .app.toml files declare
    the same application name, the issue is only detected if all application
    files are loaded
  • upgrade db: the PostgreSQL URL can now be passed as command line argument
  • Usage Output: improved descriptions
  • Verbose Output: the redacted PostgreSQL URL is logged when establishing a
    database connection
  • Error Messages: improved error message when baur database does not exist
  • Release Binaries: built with Go 1.22.4
  • 3. Party packages: upgraded to new versions
  • Database: duplicate indices are deleted

Incompatible Changes

  • App and Task Name Validation: more strict validation:
  • CSV Output: the first printed line is now a header, containing the field
    names, printing the header can be suppressed by passing --quiet
  • --csv Parameter: the parameter is replaced with --format=csv
  • DB & Config Upgrade: support for upgrading baur configs and database for older baur versions
    than v3 is removed

Bug fixes

  • application and tasks are shown and run multiple times if they match
    multiple target specifiers (bug has been introduced in baur 3.4.2)
  • Memory Usage: fixed that more memory then required is preallocated for
    some PostgreSQL queries,
  • Error Messages: fixed missing "ERROR: " prefix and duplicate newlines in
    some messages

Full Changelog: v3.4.2...v4.0.0-rc1