-
-
Notifications
You must be signed in to change notification settings - Fork 607
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial sketch of what's new in 2.18 #19999
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❤️ this!
Thinking back on 2.18 I don't recall a fraction of all of this, so much good stuff packed into this release.
- The improvements to AWS Lambda and Google Cloud Function support in 2.17 have continued in 2.18, including simpler configuration and support for AWS Lambda Layers. | ||
- Many more options can now be controlled when building Docker images. | ||
- Significant feature work and bug fixes to "deploy" backends like Helm and Terraform. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is just my very quick summary of the "most major" features based on a very approximate estimate of how fundamental the changes are and how often people ask about them. Definitely up for debate!
#### Helm | ||
|
||
[The `helm_unittest_tests` target](https://www.pantsbuild.org/v2.18/docs/helm-overview#helm-unit-tests) has had several improvements: | ||
|
||
- support for being added by the `tailor` goal (this can be disabled with the new `[helm].tailor_unittests` option) | ||
- support for [snapshot testing](https://www.pantsbuild.org/v2.18/docs/helm-overview#snapshot-testing) via the new `generate-snapshots` goal | ||
|
||
[The new `pants.backend.experimental.helm.check.kubeconform` backend](https://www.pantsbuild.org/v2.18/docs/helm-kubeconform) allows running Kubeconform on `helm_chart` and `helm_deployment` targets as part of the `check` goal. | ||
|
||
**Deprecations**: | ||
|
||
- The `helm_deployment` target should now specify the [new `chart` field](https://www.pantsbuild.org/v2.18/docs/reference-helm_deployment#codechartcode) to explicitly indicate which chart is being deployed. | ||
- The `create_namespace` field for `helm_deployment` will not be supported in future, use the passthrough argument `--create-namespace` instead. | ||
- The `{env.VAR_NAME}` interpolation syntax some fields of `helm_deployment` has been replaced by the more [general `env` build file function](https://www.pantsbuild.org/v2.18/docs/targets#environment-variables); for instance `"text-{env.VAR_NAME}"` can become `f"text-{env('VAR_NAME')}"`. | ||
- The `[helm].tailor` option has been renamed to [`tailor_charts`](https://www.pantsbuild.org/v2.18/docs/reference-helm#tailor_charts). | ||
|
||
Additional features and bug fixes: | ||
|
||
- Relative target addresses for `docker_image`s can be passed like `helm_deployment(values={"some_image": ":target-name"})`, and are expanded in the same way as non-relative addreses `path/to:target-name`. | ||
- If the passthrough `--debug` argument is specified, like `pants experimental-deploy path/to:helm-deployment -- --debug`, that flag is now passed to all Helm invocations pants does. | ||
- The Helm binary has been upgraded to 3.12.3 by default. | ||
- [The new `version` field to `helm_chart`](https://www.pantsbuild.org/v2.18/docs/helm-overview#helm-chart-version) allows overriding the version in `Chart.yaml`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@alonsodomin I've estimated these notes based on the exciting work that seems to have happened for 2.18, please take a look and either suggest improvements here or iterate yourself once this PR lands.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great to me, thanks for compiling this!
I'm going to merge this, and we can iterate on it once it's in, if people have further feedback! |
This sketches (in rather extensive detail...) a "what's new" file for 2.18, up to https://github.com/pantsbuild/pants/commits/bd28f12623a57313486f9d2f834c0e78051aa8a7/ (bd28f12...2.18.x is what's happened since then). This basically lists everything from all the GitHub Releases, in human form, because I don't think there's another way for a user to get a sense of what's included in a single place. I'm hoping we can do a quick pass here, and then iterate once it's in, because there's so many sections that different people will know best about, rather than having to gate it all through me (as the author of this PR). A downside of this current framing is that it doesn't emphasise the breaking changes (user API changes) very well.
I tried to automatically cherry-pick this change back to each relevant milestone, so that it is available in those older releases of Pants. ✔️ 2.18.xSuccessfully opened #20147. Thanks again for your contributions! |
This sketches (in rather extensive detail...) a "what's new" file for 2.18, up to https://github.com/pantsbuild/pants/commits/bd28f12623a57313486f9d2f834c0e78051aa8a7/ (bd28f12...2.18.x is what's happened since then). This basically lists everything from all the GitHub Releases, in human form, because I don't think there's another way for a user to get a sense of what's included in a single place. I'm hoping we can do a quick pass here, and then iterate once it's in, because there's so many sections that different people will know best about, rather than having to gate it all through me (as the author of this PR). A downside of this current framing is that it doesn't emphasise the breaking changes (user API changes) very well. Co-authored-by: Huon Wilson <huon@exoflare.io>
This sketches (in rather extensive detail...) a "what's new" file for 2.18, up to https://github.com/pantsbuild/pants/commits/bd28f12623a57313486f9d2f834c0e78051aa8a7/ (bd28f12...2.18.x is what's happened since then).
This basically lists everything from all the GitHub Releases, in human form, because I don't think there's another way for a user to get a sense of what's included in a single place.
I'm hoping we can do a quick pass here, and then iterate once it's in, because there's so many sections that different people will know best about, rather than having to gate it all through me (as the author of this PR).
A downside of this current framing is that it doesn't emphasise the breaking changes (user API changes) very well.