You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/notes/2.25.x.md
+58-58
Original file line number
Diff line number
Diff line change
@@ -18,12 +18,13 @@ Thank you to [Klayvio](https://www.klaviyo.com/) and [Normal Computing](https://
18
18
19
19
### General
20
20
21
-
- Fixed a longstanding bug in the processing of [synthetic targets](https://www.pantsbuild.org/2.24/docs/writing-plugins/the-target-api/concepts#synthetic-targets-api). This fix has the side-effect of requiring immutability and hashability of scalar values in BUILD files, which was always assumed but not enforced. This may cause BUILD file parsing errors, if you have custom field types involving custom mutable data structures. See ([#21725](https://github.com/pantsbuild/pants/pull/21725)) for more.
22
-
-[Fixed](https://github.com/pantsbuild/pants/pull/21665) bug where `pants --export-resolve=<resolve> --export-py-generated-sources-in-resolve=<resolve>` fails (see [#21659](https://github.com/pantsbuild/pants/issues/21659) for more info).
21
+
- Fixed a longstanding bug in the processing of [synthetic targets](https://www.pantsbuild.org/2.25/docs/writing-plugins/the-target-api/concepts#synthetic-targets-api). This fix has the side-effect of requiring immutability and hashability of scalar values in BUILD files, which was always assumed but not enforced. This may cause BUILD file parsing errors, if you have custom field types involving custom mutable data structures. See ([#21725](https://github.com/pantsbuild/pants/pull/21725)) for more.
22
+
-[Fixed](https://github.com/pantsbuild/pants/pull/21665)a bug where `pants --export-resolve=<resolve> --export-py-generated-sources-in-resolve=<resolve>` fails (see [#21659](https://github.com/pantsbuild/pants/issues/21659) for more info).
23
23
-[Fixed](https://github.com/pantsbuild/pants/pull/21694) bug where an `archive` target is unable to produce a ZIP file with no extension (see [#21693](https://github.com/pantsbuild/pants/issues/21693) for more info).
24
24
-`[subprocess-environment].env_vars` and `extra_env_vars` (on many subsystems and targets) now supports a generalised glob syntax using Python [fnmatch](https://docs.python.org/3/library/fnmatch.html) to construct patterns like `AWS_*`, `TF_*`, and `S2TESTS_*`.
25
-
26
-
#### Remote Caching/Execution
25
+
- Suspicious values now generate a warning instead of hard error when using the `<PATH>` special value to inject shell `PATH` values to the `system-binaries` subsystem.
26
+
-[Fixed](https://github.com/pantsbuild/pants/pull/21943) a bug where negative target specs (e.g., `-folder::`) were not recognized on the command line.
27
+
### Remote Caching/Execution
27
28
28
29
Pants now sends a `user-agent` header with every request to a remote store or a remote execution service,
29
30
even when other headers are configured. If necessary, the user may override the user agent by specifying
@@ -43,7 +44,7 @@ The version of Python used by Pants itself has been updated to [3.11](https://do
43
44
- Use the package manager you used to install Pants. For example, with Homebrew: `brew update && brew upgrade pantsbuild/tap/pants`.
44
45
- Use its built-in self-update functionality: `SCIE_BOOT=update pants`.
45
46
46
-
That Pants itself happens to be partially writtin in Python has no bearing on the versions of Python that Pants can use to test and build your code.
47
+
Note: The fact that Pants happens to be partially written in Python has no bearing on the versions of Python that Pants can use to test and build your code.
47
48
48
49
### Goals
49
50
@@ -66,7 +67,13 @@ use_rust_parser = false
66
67
Strict adherence to the [schema of Docker registry configuration](https://www.pantsbuild.org/2.25/reference/subsystems/docker#registries) is now required.
67
68
Previously we did ad-hoc coercion of some field values, so that, e.g., you could provide a "true"/"false" string as a boolean value. Now we require actual booleans.
68
69
69
-
Fixed an error which was caused when the same tool appeaed in both the `--docker-tools` and `--docker-optional-tools` options.
70
+
Fixed an error which was caused when the same tool appeared in both the `--docker-tools` and `--docker-optional-tools` options.
71
+
72
+
Stages in multi-stage builds which only used a hash to identify the image version (that is, no tag) are now surfaced. They can now be used in the `docker_image.target_state` field.
73
+
74
+
#### Go
75
+
76
+
Fix a bug with the setup of the gRPC protobuf plugins where a `go install` invocation was prevented from accessing the Go module proxy during its build of those plugins, which caused those builds to fail.
70
77
71
78
#### Helm
72
79
@@ -83,6 +90,49 @@ The default "globs" for matching yaml in charts now matches more common structur
83
90
84
91
Fixed an issue where `pants run ...` commands only worked if the `package.json` file was in the root directory.
85
92
93
+
The dependency inference now considers `.ts` and `.tsx` file extensions.
94
+
95
+
The dependency inference now considers scoped npm packages.
96
+
97
+
The NodeJS subsystem now supports configuring additional tools that should be available in the NodeJS process execution. These tools can be configured via two options:
98
+
99
+
-[`[nodejs].tools`](https://www.pantsbuild.org/2.25/reference/subsystems/nodejs#tools): Specify additional executables required by nodejs processes.
100
+
-[`[nodejs].optional_tools`](https://www.pantsbuild.org/2.25/reference/subsystems/nodejs#optional_tools): Additional tools that may be needed but aren't required. Unlike `tools`, the build won't fail if these aren't found. Useful for tools that only exist in some environments.
101
+
102
+
The paths to these tools will be included in the PATH used in the execution sandbox, so that they may be used by NodeJS processes during execution.
103
+
104
+
##### TypeScript
105
+
106
+
The dependency inference now considers `.tsx` files.
107
+
108
+
#### nFPM
109
+
110
+
The nFPM backend has a new plugin hook that allows plugins to inject field values that are used to generate nfpm config. To use this, a plugin needs to implement `InjectNfpmPackageFieldsRequest`:
111
+
112
+
```python
113
+
from pants.backend.nfpm.fields.version import NfpmVersionField, NfpmVersionReleaseField
114
+
from pants.backend.nfpm.util_rules.inject_config import InjectedNfpmPackageFields, InjectNfpmPackageFieldsRequest
115
+
from pants.engine.internals.native_engine import Address, Field
The AWS Lambda backend now provides built-in complete platforms for the Python 3.13 runtime.
@@ -91,25 +141,20 @@ Constrained the transitive dependencies within the builtin lockfile for twine to
91
141
92
142
Several improvements to the Python Build Standalone backend (`pants.backend.python.providers.experimental.python_build_standalone`):
93
143
94
-
- The backend now supports filtering PBS releases via their "release tag" via [the new `--python-build-standalone-release-constraints` option](https://www.pantsbuild.org/2.25/reference/subsystems/python-build-standalone-python-provider#release_constraints). THe PBS "known versions" database now contains metadata on all known PBS versions, and not just the latest PBS release tag per Python patchlevel.
144
+
- The backend now supports filtering PBS releases via their "release tag" via [the new `--python-build-standalone-release-constraints` option](https://www.pantsbuild.org/2.25/reference/subsystems/python-build-standalone-python-provider#release_constraints). The PBS "known versions" database now contains metadata on all known PBS versions, and not just the latest PBS release tag per Python patchlevel.
95
145
96
146
- The backend will now infer metadata for a PBS release from a given URL if the URL conforms to the naming convention used by the PBS project. The inferred metadata is Python version, PBS release tag, and platform.
97
147
98
148
- The `--python-build-standalone-known-python-versions` option now accepts a three field format where each value is `SHA256|FILE_SIZE|URL`. All of the PBS release metadata will be parsed from the URL (which must use the naming convention used by the PBS project). (The existing five-field format is still accepted and will now allow the version and platform fields to be blank if that data can be inferred from the URL.)
99
149
100
150
- Metadata on PBS releases is current to PBS release 20250115.
101
151
102
-
Changed references to Python Build Standalone to not refer to the [GitHub organization](https://github.com/astral-sh/python-build-standalone) as described in [Transferring Python Build Standalone Stewardship to Astral](https://gregoryszorc.com/blog/2024/12/03/transferring-python-build-standalone-stewardship-to-astral/).
152
+
Changed references to Python Build Standalone to refer to the new[GitHub organization](https://github.com/astral-sh/python-build-standalone) as described in [Transferring Python Build Standalone Stewardship to Astral](https://gregoryszorc.com/blog/2024/12/03/transferring-python-build-standalone-stewardship-to-astral/).
103
153
104
154
The default version of the [Pex](https://docs.pex-tool.org/) tool has been updated from 2.20.3 to [2.32.1](https://github.com/pex-tool/pex/releases/tag/v2.32.1). Among many improvements and bug fixes, this unlocks support for pip [24.3.1](https://pip.pypa.io/en/stable/news/#v24-3-1) and Pip [25.0](https://pip.pypa.io/en/stable/news/#v25).
105
155
106
156
The `pants.backend.experimental.python.lint.ruff.check` backend [now supports](https://github.com/pantsbuild/pants/pull/21783) including [Ruff's output file as a report](https://www.pantsbuild.org/2.25/docs/python/overview/linters-and-formatters#bandit-flake8-pylint-and-ruff-report-files).
107
157
108
-
#### Go
109
-
110
-
Fix a bug with the setup of the gRPC protobuf plugins where a `go install` invocation was prevented from accessing the Go module proxy during its build of those plugins, which caused those builds to fail.
111
-
112
-
113
158
##### NEW: Python for OpenAPI
114
159
115
160
A new experimental `pants.backend.experimental.openapi.codegen.python` backend
@@ -158,51 +203,6 @@ Bugfix: fixed an issue with cache concurrency. This affected initialisation of m
158
203
159
204
The previously deprecated `[shell-setup].tailor` option has now been removed. See [`[shell-setup].tailor_sources`](https://www.pantsbuild.org/2.25/reference/subsystems/shell-setup#tailor_sources) and [`[shell-setup].tailor_shunit2_tests`](https://www.pantsbuild.org/2.25/reference/subsystems/shell#tailor_shunit2_tests) to update.
160
205
161
-
#### nFPM
162
-
163
-
The nFPM backend has a new plugin hook that allows plugins to inject field values that are used to generate nfpm config. To use this, a plugin needs to implement `InjectNfpmPackageFieldsRequest`:
164
-
165
-
```python
166
-
from pants.backend.nfpm.fields.version import NfpmVersionField, NfpmVersionReleaseField
167
-
from pants.backend.nfpm.util_rules.inject_config import InjectedNfpmPackageFields, InjectNfpmPackageFieldsRequest
168
-
from pants.engine.internals.native_engine import Address, Field
The dependency inference now considers `.ts` and `.tsx` file extensions.
192
-
193
-
The dependency inference now considers scoped npm packages.
194
-
195
-
The NodeJS subsystem now supports configuring additional tools that should be available in the NodeJS process execution. These tools can be configured via two options:
196
-
197
-
-[`[nodejs].tools`](https://www.pantsbuild.org/2.25/reference/subsystems/nodejs#tools): Specify additional executables required by nodejs processes.
198
-
-[`[nodejs].optional_tools`](https://www.pantsbuild.org/2.25/reference/subsystems/nodejs#optional_tools): Additional tools that may be needed but aren't required. Unlike `tools`, the build won't fail if these aren't found. Useful for tools that only exist in some environments.
199
-
200
-
The paths to these tools will be included in the PATH used in the execution sandbox, so that they may be used by NodeJS processes during execution.
201
-
202
-
#### TypeScript
203
-
204
-
The dependency inference now considers `.tsx` files.
205
-
206
206
### Plugin API changes
207
207
208
208
The version of Python used by Pants itself is now [3.11](https://docs.python.org/3/whatsnew/3.11.html) (up from 3.9).
0 commit comments