Releases: simplesurance/baur
v3.1.0
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
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
andbaur status
listed it multiple
times, instead of once, when the commands were called without specifiers.
v3.0.1
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 thebaur
process gets killed.
The issue still persists on other OSes (#403).
Full changelog: v3.0.0...v3.0.1
v3.0.0
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
- fish via
- 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
versionbaur 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 withgit_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
- the performance penalty of enabling
-
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
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
- fish via
- 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
versionbaur 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 withgit_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
- the performance penalty of enabling
-
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
printed3.0.0
as version, therc
suffix was missing
Full changelog: v2.2.0...v3.0.0-rc2
v3.0.0-rc1
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
- fish via
- 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
versionbaur 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 withgit_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
- the performance penalty of enabling
-
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
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.1.0
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 databasebaur run
: when the--skip-upload
parameter is passed, the messagetask execution finished, waiting for uploads to finish...
is not shown anymore, it was misleading
v2.0.0
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 togo 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 anoptional
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 previousbaur ls apps
command.baur run
replacesbaur 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
replacesbaur 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
andTASK
can be a wildcard:*.build
to run tasks namedbuild
of all applications,shop.*
to run all tasks of an application named shop
- to reference a specific task of an app, e.g: the build task of the 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 runsbaur show
list the config files (including includes) in that the application
is definedbaur 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 thesh
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 tokey
- Environment variables can be referenced in configs via
{{ env VARNAME }}