Skip to content
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

Merged
merged 11 commits into from
Nov 3, 2023
Merged

Initial sketch of what's new in 2.18 #19999

merged 11 commits into from
Nov 3, 2023

Conversation

huonw
Copy link
Contributor

@huonw huonw commented Oct 7, 2023

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.

@huonw huonw marked this pull request as ready for review October 28, 2023 11:24
Copy link
Member

@kaos kaos left a 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.

Comment on lines +15 to +17
- 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.
Copy link
Contributor Author

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!

Comment on lines +80 to +101
#### 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`.
Copy link
Contributor Author

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.

Copy link
Sponsor Contributor

@benjyw benjyw left a 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!

@huonw
Copy link
Contributor Author

huonw commented Nov 3, 2023

I'm going to merge this, and we can iterate on it once it's in, if people have further feedback!

@huonw huonw merged commit 73c64b2 into main Nov 3, 2023
24 checks passed
@huonw huonw deleted the huonw/2.18-whats-new branch November 3, 2023 20:51
WorkerPants pushed a commit that referenced this pull request Nov 3, 2023
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.
@WorkerPants
Copy link
Member

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.x

Successfully opened #20147.


Thanks again for your contributions!

🤖 Beep Boop here's my run link

huonw added a commit that referenced this pull request Nov 3, 2023
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants