Skip to content

Releases: simplesurance/baur

v3.1.0

05 Jan 15:08
@fho fho
Compare
Choose a tag to compare

Release Notes

Changes

  • Binaries built with Go 1.21.5
  • Third-party packages updated

baur run

  • Significantly reduced memory consumption when running task commands that generate a lot of output
  • When --show-task-output is passed, the stderr output from the command is now colored red
  • On error only the first and last 8KB of output per stdout and stderr is shown, instead of the complete output
  • On error the stdout and stderr output of the task are shown consecutively instead of intermixed

Full changelog: v3.0.1...v3.1.0

v3.0.2

17 May 13:23
@fho fho
Compare
Choose a tag to compare

Release Notes

Changes

  • entries in the application_dirs list in the .baur.toml file are now
    deduplicated, to prevent that baur searches the same directory twice if it
    is listed multiple times
  • built with go 1.20
  • 3. party package updates:
    • github.com/aws/aws-sdk-go-v2
    • github.com/bmatcuk/doublestar/v4
    • github.com/containerd/containerd
    • github.com/docker/docker
    • github.com/fatih/color from 1.13.0 to 1.15.0
    • github.com/fsouza/go-dockerclient from 1.9.0 to 1.9.7
    • github.com/jackc/pgx/v4 from 4.17.2 to 4.18.1
    • github.com/spf13/cobra from 1.6.1 to 1.7.0
    • github.com/stretchr/testify from 1.8.1 to 1.8.2
    • golang.org/x/tools from 0.3.0 to 0.9.1

Bug Fixes

  • if an application was discovered by multiple application_dirs entries in
    the .baur.toml file, baur ls apps and baur status listed it multiple
    times, instead of once, when the commands were called without specifiers.

v3.0.1

13 Dec 11:16
@fho fho
Compare
Choose a tag to compare

Release Notes

Changes

  • built with go 1.19.4
  • 3. party package updates:
    • github.com/aws/aws-sdk-go-v2/service/s3
    • github.com/aws/aws-sdk-go-v2/feature/s3/manager

Bug Fixes

  • when the baur process got killed while it executed a command for a task, the task process continued to run.
    On Linux and FreeBSD the task process is now terminated via SIGKILL when the baur process gets killed.
    The issue still persists on other OSes (#403).

Full changelog: v3.0.0...v3.0.1

v3.0.0

05 Dec 14:36
@fho fho
Compare
Choose a tag to compare

Release Notes

The version brings support for environment variable inputs, excluding files from
inputs by glob patterns, better shell completion support and major performance
improvements when resolving input files.

The configuration files and the database schema is not compatible with
version 2. Upgrade instructions and documentation can be found in the Wiki.

Changes

New Features

Input Resolvers

  • Environment variables can be tracked as inputs of tasks in the new
    Input.EnvironmentVariables config section
  • Files can be excluded from inputs by specifying glob patterns in a
    Input.ExcludedFiles config file section

Command Line

  • support to generate shell completion scripts for
    • fish via baur init fishcomp,
    • zsh via: baur init zshcomp,
    • powershell via: baur init powershellcomp
  • shell completion completes arguments to app-names, task-names, task-ids and
    application directories, when the completion is done inside a baur repository.
    Arguments are not completed anymore to files or directories if those are not
    supported by the command.
  • baur upgrade db: is a new command to upgrade the database schema to the current
    version
  • baur init bashcomp got a --stdout parameter to write the completion script
    to stdout

Enhancements

  • Inputs:

    • the performance penalty of enabling git_tracked_only for file inputs is
      gone, resolving inputs with git_tracked_only enabled is now similar fast
      then without
    • performance of resolving and hashing input files was improved,
    • multiple ** patterns in an input file path can now be specified, instead
      of only 1 occurrence
  • Misc:

    • baur init bashcomp now prints how to load the written shell completion script
    • build with go 1.19.3
    • third party package updates
    • windows binaries are now provided in .zip instead of .tar.xz archives
    • windows/arm64 release binaries are created
    • a signed file containing release file checksum is provided

Bug fixes

  • input file paths are correctly calculated when baur is invoked in path were
    the repository root directory is a symlink

Full changelog: v2.2.0...v3.0.0

v3.0.0-rc2

24 Nov 11:30
@fho fho
Compare
Choose a tag to compare
v3.0.0-rc2 Pre-release
Pre-release

Release Notes

This is a pre-release of version 3.0.0.

The version brings support for environment variable inputs, excluding files from
inputs by glob patterns, better shell completion support and major performance
improvements when resolving input files.

The configuration files and the database schema is not compatible with
version 2. Upgrade instructions and documentation can be found in the Wiki.

Changes

New Features

Input Resolvers

  • Environment variables can be tracked as inputs of tasks in the new
    Input.EnvironmentVariables config section
  • Files can be excluded from inputs by specifying glob patterns in a
    Input.ExcludedFiles config file section

Command Line

  • support to generate shell completion scripts for
    • fish via baur init fishcomp,
    • zsh via: baur init zshcomp,
    • powershell via: baur init powershellcomp
  • shell completion completes arguments to app-names, task-names, task-ids and
    application directories, when the completion is done inside a baur repository.
    Arguments are not completed anymore to files or directories if those are not
    supported by the command.
  • baur upgrade db: is a new command to upgrade the database schema to the current
    version
  • baur init bashcomp got a --stdout parameter to write the completion script
    to stdout

Enhancements

  • Inputs:

    • the performance penalty of enabling git_tracked_only for file inputs is
      gone, resolving inputs with git_tracked_only enabled is now similar fast
      then without
    • performance of resolving and hashing input files was improved,
    • multiple ** patterns in an input file path can now be specified, instead
      of only 1 occurrence
  • Misc:

    • baur init bashcomp now prints how to load the written shell completion script
    • build with go 1.19.3
    • third party package updates
    • windows binaries are now provided in .zip instead of .tar.xz archives
    • windows/arm64 release binaries are created
    • a signed file containing release file checksum is provided

Bug fixes

  • input file paths are correctly calculated when baur is invoked in path were
    the repository root directory is a symlink

Changes since 3.0.0-rc1

Bug fixes:

  • input files: fix: git_tracked_only did not work for ignored and files in dirs
  • baur version printed 3.0.0 as version, the rc suffix was missing

Full changelog: v2.2.0...v3.0.0-rc2

v3.0.0-rc1

21 Nov 18:58
@fho fho
Compare
Choose a tag to compare
v3.0.0-rc1 Pre-release
Pre-release

Release Notes

This is a pre-release of version 3.0.0.

The version brings support for environment variable inputs, excluding files from
inputs by glob patterns, better shell completion support and major performance
improvements when resolving input files.

The configuration files and the database schema is not compatible with
version 2. Upgrade instructions and documentation can be found in the Wiki.

Changes

New Features

Input Resolvers

  • Environment variables can be tracked as inputs of tasks in the new
    Input.EnvironmentVariables config section
  • Files can be excluded from inputs by specifying glob patterns in a
    Input.ExcludedFiles config file section

Command Line

  • support to generate shell completion scripts for
    • fish via baur init fishcomp,
    • zsh via: baur init zshcomp,
    • powershell via: baur init powershellcomp
  • shell completion completes arguments to app-names, task-names, task-ids and
    application directories, when the completion is done inside a baur repository.
    Arguments are not completed anymore to files or directories if those are not
    supported by the command.
  • baur upgrade db: is a new command to upgrade the database schema to the current
    version
  • baur init bashcomp got a --stdout parameter to write the completion script
    to stdout

Enhancements

  • Inputs:

    • the performance penalty of enabling git_tracked_only for file inputs is
      gone, resolving inputs with git_tracked_only enabled is now similar fast
      then without
    • performance of resolving and hashing input files was improved,
    • multiple ** patterns in an input file path can now be specified, instead
      of only 1 occurrence
  • Misc:

    • baur init bashcomp now prints how to load the written shell completion script
    • build with go 1.19.3
    • third party package updates
    • windows binaries are now provided in .zip instead of .tar.xz archives
    • windows/arm64 release binaries are created
    • a signed file containing release file checksum is provided

Bug fixes

  • input file paths are correctly calculated when baur is invoked in path were
    the repository root directory is a symlink

Full changelog: v2.2.0...v3.0.0-rc1

v2.2.0

30 Mar 10:55
@fho fho
Compare
Choose a tag to compare

Release Notes

Enhancements

  • resolver/golangsources: results now include Go Embedded files]1
  • build with Go 1.18
  • 3. party packages updated
  • colors in the command output can be disabled by defining the NO_COLOR environment variable2

Bug fixes

  • postgres: deadlock in the database could happen when multiple baur processes where inserting input files in parallel
  • baur init app: generated example config file contained invalid template variable .gitcommit and .appname

Full Changelog

v2.1.1...v2.2.0


  1. https://pkg.go.dev/embed

  2. https://no-color.org/

v2.1.1

21 Feb 16:44
@fho fho
Compare
Choose a tag to compare

Release Notes

Enhancements

  • binaries build with Golang 1.17.7
  • linux/arm64 release binaries

v2.1.0

30 Jun 13:31
@fho fho
Compare
Choose a tag to compare

Release Notes

New Features

  • baur run: support for executing tasks in parallel, the number of tasks to run in parallel can be specified via the new --parallel-runs parameter, default is 1 (thanks @kostyay)
  • baur run: new parameter --show-task-output, if passed the output of the command that is executed for a task is shown

Enhancements

  • baur run now exits gracefully when an error happens, tasks that are already running will continue to run, tasks queued for execution will be skipped, uploads of successfully executed tasks will be finished and the results recorded in the database
  • baur run: when the --skip-upload parameter is passed, the message task execution finished, waiting for uploads to finish... is not shown anymore, it was misleading

v2.0.0

03 May 15:27
@fho fho
Compare
Choose a tag to compare

baur 2.0.0

This release is the direct successor of baur version 0.
Because of issues with go-modules, the major version 1 is skipped.

The configuration files and database schema from baur 0.x versions are
incompatible.
Upgrade instructions from version 0 can be found in the Wiki.

Changes

Tasks

Tasks replace the concept of builds.
Per application multiple tasks can be specified that are run and tracked by baur.
Tasks that do not produce any output are supported. This allows to define for
example tasks that run unit-tests.

Includes

Includes are now referenced in the format PATH#INCLUDE_ID.
The INCLUDE_ID is specified in the section of the include definition.
This allows to specify multiple include sections per file.
Include files can contain Task definitions, which can reference input or
output include sections.

Input Resolvers

  • Input resolver results are cached per baur execution.

GolangSources Resolver

  • GolangSources are specified by queries instead of by path. The
    queries are passed to go list. It supports the same query syntax then the
    official Golang tools.
  • The new tests option in the config section controls if a query includes
    testcases in the result,
  • BuildFlags that are forwarded to the Gosource resolver (go list) can be
    defined in the config section.
  • non-vendored dependencies do not resolve to local paths outside of the baur
    repository anymore

Files

  • The GitFiles input section is gone. The Input File section has a
    git_tracked_only option instead. If it is set to true, paths are only
    resolved to files that are tracked in the git repository.
  • The Input.Files section has an optional setting to specify that paths
    are allowed to resolve to 0 files.

Command-Line

New Commands

  • baur status lists all tasks in the repository with their status. It
    replaces the previous baur ls apps command.
  • baur run replaces baur build
  • baur diff shows the difference of the inputs between 2 tasks or recorded
    tasks runs (thanks to @StephenDiligent and @dbrougham).
  • baur upgrade configs: converts configuration files from baur version 0 to
    version 2.
  • baur ls runs replaces baur ls builds

Misc

  • A new syntax for specifying tasks, supported are:
    • a path to an application directory to match all tasks of the application,
    • the name of an application, to match all it's tasks,
    • a string in the format APP.TASK:
      • to reference a specific task of an app, e.g: the build task of the shop
        app: shop.build
      • to reference all tasks of an app or tasks across apllications,
        APP and TASK can be a wildcard:
        • *.build to run tasks named build of all applications,
        • shop.* to run all tasks of an application named shop
  • Input Strings can be specified via the --input-str and --lookup-input-str
    parameters. Input strings are hashed and tracked as inputs of task runs.
    (thanks to @StephenDiligent).
  • baur ls runs got a new query parameter --limit, to limit the number of
    returned results (thanks to @StephenDiligent).
  • baur ls runs got new query parameter --has-input to list all builds that
    have a specific input (thanks to @StephenDiligent).
  • new global parameter --no-color
  • baur ls apps only lists the applications with their paths in the
    repository. It does not show the status anymore.
  • baur ls inputs supports to show the inputs of recorded task runs
  • baur show list the config files (including includes) in that the application
    is defined
  • baur show also prints the directory of the application

OS Support

  • baur is build and tested on Windows, Windows binaries are provided
    (thanks to @StephenDiligent).
  • Release binaries for Darwin (MacOS)/ARM64 are provided

Misc

  • Support for variables in configuration files is replaced with full support for
    go templating (thanks to @kostyay).
    Go templating syntax can be used in the values of configuration fields.
    Further information can be found in the
    Wiki.
  • The command of a task is executed directly and not run via the sh shell.
  • The command in the application config is specified as a string list
    instead of a single string.
  • Multiple RegistryUpload sections can be defined per Output.DockerImage
  • Multiple S3Upload and Filecopy sections can be defined per Output.File
  • The S3Upload.dest_file field is renamed to key
  • Environment variables can be referenced in configs via {{ env VARNAME }}