Releases: palantir/godel
0.26.0
0.25.0
0.24.1
0.24.0
github-wiki
- Updated error output to include output of
git
command
- Updated error output to include output of
- Update project to use CircleCI 2.0 workflows for builds
Note
Due to an initial issue with the public logic, 0.24.0 did not publish artifacts. Use 0.24.1 (which is functionally equivalent) instead.
0.23.0
0.22.0
clean
- Fixed bug where
clean
would fail if build output directory did not exist
- Fixed bug where
test
- Changed behavior of tags
- Running
test
with no arguments runs all tests (tagged and untagged), whereas previous behavior would run only untagged tests - Running
test
with--tags=all
runs all tagged tests, whereas previous behavior would run all tests (tagged and untagged) - Running
test
with--tags=none
runs all untagged tests
- Running
- Changed behavior of tags
verify
- Default test behavior mirrors that of
test
, so now default behavior will run all tests (tagged and untagged) whereas previously it would run only untagged tests - Added the
--tags
flag, which can be used to configure the test tags what will be used for the tests run byverify
- Default test behavior mirrors that of
publish
- Add output for Almanac publish operations
check-path
- Changed default behavior to only output information and not apply changes (matches previous behavior using
--info
flag) - Removed
--info
flag - Added the
--apply
flag. When run with--apply
, the recommended changes will be applied (matches previous behavior with no arguments)
- Changed default behavior to only output information and not apply changes (matches previous behavior using
Breaking changes
test
and verify
tasks
If a project defines test tags, the behavior of calling test
and verify
with no arguments will change (the commands will run all tests instead of only untagged tests). The previous behavior can be matched by setting --tags=none
for the commands:
./godelw test
-->./godelw test --tags=none
./godelw verify
-->./godelw verify --tags=none
Conceptually, this means that ./godelw test
and ./godelw verify
now always runs all of the checks in the project, which seems more intuitive for the default behavior. Tags are now conceptually always a filtering operation -- providing tags will run only tests matching the tags, specifying all
runs the tests specified by all of the tags, and specifying none
runs all tests that do not match any tags.
check-path
task
check-path
-->check-path --apply
check-path --info
-->check-path
0.21.0
publish
- URL provided to
--url
flag ofgithub
publish task no longer needs to end in a/
(one will be added if it is not provided) github
publish task now requires the repository to be at a tagged version in order to publish
- URL provided to
generate
- The
generate
task configuration now has anenvironment
map that can be used to specify environment variables that should be set for a particulargo generate
task
- The
0.20.0
clean
- Added a new
clean
command (./godelw clean
) that removes the output osbuild
anddist
- The product(s) to clean can be specified as arguments. If no arguments are specified, the outputs for all products are cleaned.
- The
--dry-run
flag can be used to print the paths that would be removed without actually removing them
- Added a new
test
- Fixed issue where having capital letters in tag names for tagged test configuration would cause incorrect behavior
- Improved error message displayed when invalid tags are provided to the
test
command
dist
os-arch-bin
is used as the default distribution type if it is unspecified (previously,sls
was used)- If an
os-arch-bin
distribution does not specify target OS/architectures explicitly, the command now defaults to creating distributions for the same set of OS/architectures configured forbuild
(previously, it would always default to the host OS/architecture regardless of thebuild
configuration) - The
bin
dist type will now use a default value oftrue
foromit-init-sh
if it is not specified
New features
clean
./godelw clean
has been added as a command. The clean
command will remove all of the outputs generated by the build
and dist
commands for products. The --dry-run
flag can be used to print the paths that will be removed by the command. The arguments for clean
behave in the same manner as for build
and dist
, in that it accepts a set of products as inputs, and operates on all products defined for a project if no arguments are provided.
Back-compat
dist.yml
with no dist
block
If a product previously did not specify a distribution type, the dist
command will now use os-arch-bin
as the type (rather than sls
). To restore the previous behavior, update your configuration to explicitly set sls
as the distribution type.
The block that needs to be added is of the form:
dist:
dist-type:
type: sls
For example, configuration of the form:
products:
example-product:
build:
main-pkg: .
os-archs:
- os: darwin
arch: amd64
- os: linux
arch: amd64
version-var: main.version
group-id: com.palantir.example
Should be updated to:
products:
example-product:
build:
main-pkg: .
os-archs:
- os: darwin
arch: amd64
- os: linux
arch: amd64
version-var: main.version
dist:
dist-type:
type: sls
group-id: com.palantir.example
type: bin
distributions with no omit-init-sh
set
If a product previously specified a dist-type
with type: bin
but did not explicitly set a value for omit-init-sh
, the default value was false
and an initialization script would be generated. To restore the previous behavior, explicitly set omit-init-sh
to false
.
For example, configuration of the form:
dist:
dist-type:
type: bin
Should become:
dist:
dist-type:
type: bin
info:
omit-init-sh: false
If a product previously declared omit-init-sh: true
, that configuration can now be removed (however, doing so is not required).
0.19.0
check
- Updated
novendor
dependency to fix issue where it could infinitely loop on certain dependencies
- Updated
distgo
- Updated
docker
task so that it only creates distributions if they do not exist or are not up-to-date
- Updated
idea
- Added
idea gogland
command to generate Gogland-compatible IDEA files - Added
idea intellij
command for symmetry
- Added