Releases: dogtools/dog
Releases · dogtools/dog
v0.5.0
Release Notes
- Registers are now implemented as previously described in the specification. Thanks to this, tasks can pass values to other tasks. Check Dog's own dogfile for examples of this.
- Dogfile.yml is now called dog.yml. It looks cleaner and it follows the convention that yaml files are normal definition files so they don't start with caps, different classification from Makefile/Dockerfile/etc.
- Removed most runners because no one was going to use them. I implemented them initially because it was easy but I wasn't interested in using them either.
sh
andbash
should be enough for now and they are pretty standard. I am not sure yet about Windows support so I removed it, modern Windows supportsbash
anyway. - Much better formatting for task duration time.
- Added binaries for NetBSD and for ARM architecture. None of this (including Solaris and other BSDs) is tested at this point, help needed.
- Dockerfile included. Dog container can run tasks if provided with a dogfile as a mounted volume.
- Listing tasks includes their pre/post tasks.
- Debug mode (
--debug
) shows dog version, loaded dogfiles, path and other runtime info. - Removed backwards compatibility, deprecation warnings, etc. It was cool as an experiment but this is v0.x so no need for it.
- Improved regular expressions for task names and dogfiles so implementation follows the specification.
- [Bugfix] Workdir directive works as documented now.
- License changed to Apache License Version 2.0.
- A lot of tests added.
v0.4.0
Release Notes
- The root of the repository now hosts the
dog
Go package, which implements logic for parsing and manipulating Dogfiles and for constructing and running task chains. The new packagedog/run
handles the low level execution of tasks. Dog (the cli tool) has been moved into thecmd/dog
subdirectory. More info on the reasons for this change can be found in this pull request. - GoDoc can be used to read the documentation of the new packages dog and dog/run.
- Changes in the Dogfile Spec: exec is now runner. run is now code. Backwards compatibility support has been added.
- Dog uses exit status 1 if the main program fails and exit status 2 if any of the task fails.
- Support for dotenv has been removed.
- Renamed status code to exit status. It was wrong.
- Some examples added into the
examples/
directory to show how to use dog as a library. - Stdout and Stderr can be configured when running a task chain. This way future dogtools can choose to write output to files or to the network instead of using the operating system's standard outputs.
- A Bash completion script has been added to
extras/dog.bashcompletion
.
v0.3.0
Release Notes
- Added option to specify Dogfile dir as a command line argument
- Improved documentation of the spec
- Fixed formatting errors introduced in previous release
- Fixed walking up filesystem when no Dogfile is found
- Removed option to provide environment variables using comand line arguments
- Removed Windows Support
v0.2.0
Release Notes
- Tasks without description are not listed. This is useful for tasks that are used as pre/post hooks for other tasks and are not meant to be called directly.
- Dog works from any subdirectory. When launched, it walks up the filesystem tree until a Dogfile is found. This is similar to how the git cli works.
- Users can override the task workdir at launch time. Example:
dog -w /path/to/dir taskname
. - Updated instructions on how to install Dog, including homebrew and go get.
- Now Dog works with interactive tasks that read user input.