Skip to content

Releases: palantir/godel

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

0.17.1

20 Jun 18:54
Compare
Choose a tag to compare
  • Reverts novendor update in 0.17.0 that introduced regression

0.17.0

20 Jun 00:55
Compare
Choose a tag to compare
  • gödel binary is now generated using Go 1.8.3
  • check
    • Updated errcheck dependency
    • Updated novendor dependency
  • docker
    • Add ability to publish SLS docker images

0.16.1

02 May 18:06
Compare
Choose a tag to compare
  • dist
    • Fixed bug where manual distribution type could not be specified in configuration

0.16.0

02 May 06:07
Compare
Choose a tag to compare
  • check
    • Updated novendor dependency to include fix that ignores vendor directories in hidden directories and adds flags for debugging behavior
    • Added nobadfuncs check, which allows specific functions to be blacklisted
  • build
    • Added skip parameter to configuration which, when set to true, specifies that the product should not be built
  • dist
    • Added new default to os-arch-bin dist type -- if os-archs is not specified, then current is used as the default. This mirrors the default behavior of the os-archs configuration for build.
    • Added manual as a distribution type
      • Allows a product to manage its own distribution process -- the script should create a single output with the expected name with an extension specified in configuration and that output is used as the dist output
  • publish
    • GitHub upload URI is now automatically determined based on response from API
    • Removed --github-upload-url flag because it is no longer needed
  • test
    • Fixed bug where listing packages could fail with permission denied even if the directory was excluded using configuration

0.15.0

24 Apr 08:35
Compare
Choose a tag to compare
  • dist
    • Added os-arch-bin as a dist type
      • Packages only the generated executable (and any dependent executables if specified)
      • Supports generating multiple artifacts (one per OS/Arch combination)
      • When published, all artifacts for the distribution are uploaded with a single POM file (the OS/Arch suffix acts as a classifier)
    • Added general support for dist types that generate more than one output
  • publish
    • Added github publish type
      • Supports generating a new GitHub release using the product version and uploading artifacts to the release
  • Refactored parts of the dist and publish code

0.14.0

19 Apr 18:28
Compare
Choose a tag to compare
  • Added docker command
    • Can be used to build and publish Docker images as part of a project
    • Is a task provided and configured by distgo
  • check
    • Updated novendor dependency so that it ignores hidden directories
  • run
    • Added ability to pass flags to program being run by prepending flag arguments with flag:
    • Fixed so that stdin for program being run is properly connected to the invoking process's stdin
  • Updated version of Go used to build gödel to 1.8.1