Skip to content

Releases: palantir/godel

0.26.0

02 Sep 23:28
Compare
Choose a tag to compare
  • distgo
    • Adds verbose flag to docker build and docker publish commands that prints output of commands
    • Adds ability to specify products that should be run for docker build and docker publish

0.25.0

26 Aug 00:35
Compare
Choose a tag to compare
  • Updated Go version to 1.9

This version of gödel is functionally equivalent to 0.24.1, but is built using Go 1.9.

0.24.1

25 Aug 23:57
Compare
Choose a tag to compare

This release is functionally equivalent to 0.24.0 and fixes and issue with the CircleCI 2.0 publish logic for the project itself (due to a misconfiguration, artifacts for 0.24.0 were never published).

This is the last release of gödel built using Go 1.8.

0.24.0

25 Aug 23:13
Compare
Choose a tag to compare
  • github-wiki
    • Updated error output to include output of git command
  • 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

25 Aug 21:44
Compare
Choose a tag to compare
  • dist
    • Fix regression in value of 'unspecified' string
  • check-path
    • Updated command output
  • generate
    • Update checks dependency to change output of gogenerate

0.22.0

22 Aug 04:01
Compare
Choose a tag to compare
  • clean
    • Fixed bug where clean would fail if build output directory did not exist
  • 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
  • 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 by verify
  • 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)

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

17 Aug 21:42
Compare
Choose a tag to compare
  • publish
    • URL provided to --url flag of github 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
  • generate
    • The generate task configuration now has an environment map that can be used to specify environment variables that should be set for a particular go generate task

0.20.0

14 Aug 21:04
Compare
Choose a tag to compare
  • clean
    • Added a new clean command (./godelw clean) that removes the output os build and dist
      • 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
  • 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 for build (previously, it would always default to the host OS/architecture regardless of the build configuration)
    • The bin dist type will now use a default value of true for omit-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

27 Jul 03:39
Compare
Choose a tag to compare
  • check
    • Updated novendor dependency to fix issue where it could infinitely loop on certain dependencies
  • distgo
    • Updated docker task so that it only creates distributions if they do not exist or are not up-to-date
  • idea
    • Added idea gogland command to generate Gogland-compatible IDEA files
    • Added idea intellij command for symmetry

0.18.0

18 Jul 15:21
Compare
Choose a tag to compare
  • Adds option to specify build args script for Docker
  • Updates novendor dependency
  • Changes organization of vendor directories in project