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

[internal] Replace pkgutil.get_data with new read_resource API #16379

Merged
merged 5 commits into from
Aug 4, 2022

Conversation

chrisjrn
Copy link
Contributor

@chrisjrn chrisjrn commented Aug 3, 2022

Pants uses pkgutil.get_data() in all manner of places to load resource files that are included within the Pants Python package. get_data() is not supported in the PEP302 pluggable importer used by PyOxidizer. importlib.resources, however, is supported.

importlib.resources (as far as PyOxidizer is concerned, at the very least) has some caveats:

  • Resources can only be loaded from packages that contain an __init__.py file (i.e. are a non-namespace package)
  • Resources cannot be .py files

This adds a shim function called read_resource() that allows reading resource files with more-or-less the same API as pkgutil.get_data() (in particular, allowing read_resource(__name__, …), which is used commonly), but plugs into importlib.resources.read_binary() to allow for better portability.

A symlink to src/python/pants/VERSION is added at src/python/pants/_version, so that the resource can be loaded with the new API, without immediately breaking the hard-coded version file location required by our setup script.

Finally, the python dependency parser has been renamed to dependency_parser_py, so that it can be loaded as a resource, and still treated as a python_source for Pants linting purposes.

Addresses #7369.

Christopher Neugebauer added 2 commits August 2, 2022 17:30
# Rust tests and lints will be skipped. Delete if not intended.
[ci skip-rust]
…nts distribution

# Rust tests and lints will be skipped. Delete if not intended.
[ci skip-rust]

# Building wheels and fs_util will be skipped. Delete if not intended.
[ci skip-build-wheels]
@chrisjrn chrisjrn requested review from stuhood and benjyw August 3, 2022 00:41
@chrisjrn chrisjrn added the category:internal CI, fixes for not-yet-released features, etc. label Aug 3, 2022
@chrisjrn chrisjrn changed the title Replace pkgutil.get_data with new read_resource API [internal] Replace pkgutil.get_data with new read_resource API Aug 3, 2022
@benjyw
Copy link
Contributor

benjyw commented Aug 3, 2022

Specifically re the __init__.py issue, we can also make pants into an explicit namespace package by adding an __init__.py with the relevant invocation. Would that satisfy importlib.resources ?

@chrisjrn
Copy link
Contributor Author

chrisjrn commented Aug 3, 2022

@benjyw To the best of my knowledge, we can't add an __init__.py to the pants package, per conftest:

# The top-level `pants` module must be a namespace package, because we build two dists from it
# (pantsbuild.pants, and pantsbuild.pants.testutil) and consumers of these dists need to be
# able to import from both.
#
# In fact it is an *implicit* namespace package - that is, it has no __init__.py file.
# See https://packaging.python.org/guides/packaging-namespace-packages/ .
#
# Unfortunately, the presence or absence of __init__.py affects how pytest determines the
# module names for test code. For details see
# https://docs.pytest.org/en/stable/goodpractices.html#test-package-name .
#
# Usually this doesn't matter, as tests don't typically care about their own module name.
# But we have tests (notably those in src/python/pants/engine) that create @rules and
# expect them to have certain names. And @rule names are generated from the name of the module
# containing the rule function...
#
# To allow those tests to work naturally (with expected module names relative to `src/python`)
# we artificially create `src/python/pants/__init__.py` in the test sandbox, to force
# pytest to determine module names relative to `src/python` (instead of `src/python/pants`).
#
# Note that while this makes the (implicit) namespace package into a regular package,
# that is fine at test time. We don't consume testutil from a dist but from source, in the same
# source root (src/python). We only need `pants` to be a namespace package in the dists we create.

@benjyw
Copy link
Contributor

benjyw commented Aug 3, 2022

On the contrary if I remember this correctly, having an explicit namespace package incantation in an __init__.py would mean we could get rid of that bit of conftest magic, since there would then be an __init__.py in the right place, and we wouldn't have to create one on the fly in tests.

Comment on lines 17 to 18
# NB: We expect VERSION to always have an entry and want a runtime failure if this is false.
pkgutil.get_data(__name__, "VERSION").decode().strip() # type: ignore[union-attr]
read_resource("pants.bin", "VERSION").decode().strip()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding the relevant bit of the description as a comment here would be helpful. Re: Benjy's command, could probably also reference #16359. But I don't think that you should change that here... should be tackled independently.

@chrisjrn
Copy link
Contributor Author

chrisjrn commented Aug 3, 2022

@benjyw Per Python docs, it seems like using a namespace package incantation would be a generally bad idea:

Every distribution that uses the namespace package must include an identical init.py. If any distribution does not, it will cause the namespace logic to fail and the other sub-packages will not be importable. Any additional code in init.py will be inaccessible.

# Rust tests and lints will be skipped. Delete if not intended.
[ci skip-rust]

# Building wheels and fs_util will be skipped. Delete if not intended.
[ci skip-build-wheels]
Copy link
Contributor

@Eric-Arellano Eric-Arellano left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

in particular, allowing read_resource(name, …), which is used commonly)

I don't think it matters being able to use __name__. That seems more like a convenience. Notably, the dependency inference for assets added by @thejcannon works better when using the explicit package name.

},
)

python_test_utils(name="test_utils")

python_distribution(
name="pants-packaged",
dependencies=["./__main__.py", ":resources"],
dependencies=["./__main__.py", ":resources", ],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bad change

Suggested change
dependencies=["./__main__.py", ":resources", ],
dependencies=["./__main__.py", ":resources"],

package = ".".join(chain((package_,), resource_parts[:-1]))
resource = resource_parts[-1]

return resources.read_binary(package, resource)
Copy link
Contributor

@Eric-Arellano Eric-Arellano Aug 3, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deprecated in 3.11: https://docs.python.org/3.11/library/importlib.resources.html#importlib.resources.read_binary

Now it's the much more awkward:

files(package).joinpath(resource).read_bytes()

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Understood. Note that a deprecation won't go away until Python 4.x, so we're safe to use it for a while, and the new API will not be available to us without backporting a new version of importlib-resources.

The alternative here is vendoring in a new version of importlib-resources, which doesn't have an issue with namespace packages.

@benjyw
Copy link
Contributor

benjyw commented Aug 3, 2022

@benjyw Per Python docs, it seems like using a namespace package incantation would be a generally bad idea:

Every distribution that uses the namespace package must include an identical init.py. If any distribution does not, it will cause the namespace logic to fail and the other sub-packages will not be importable. Any additional code in init.py will be inaccessible.

I don't think this is a problem since we control the namespace.

@benjyw
Copy link
Contributor

benjyw commented Aug 3, 2022

Generally, given the amount of dancing that we have to do to avoid an explicit __init__.py, I'm wondering if that might just be easier. PEP 420 is well-intentioned, but so much tooling assumed the presence of __init__.py that I'm not sure it's worth it...

@benjyw
Copy link
Contributor

benjyw commented Aug 3, 2022

Doesn't block this change though.

@chrisjrn
Copy link
Contributor Author

chrisjrn commented Aug 3, 2022

Thanks for the feedback. I'm going to have to figure out how to make this change pass on 3.7, which I don't expect to get to for a few hours, but I imagine it's just going to be implementation details.

@thejcannon
Copy link
Member

I'm +1 on explicit namespace package too, if it's feasible.

Christopher Neugebauer added 2 commits August 4, 2022 10:34
…RSION` resource is reliably available.

# Rust tests and lints will be skipped. Delete if not intended.
[ci skip-rust]

# Building wheels and fs_util will be skipped. Delete if not intended.
[ci skip-build-wheels]
# Rust tests and lints will be skipped. Delete if not intended.
[ci skip-rust]

# Building wheels and fs_util will be skipped. Delete if not intended.
[ci skip-build-wheels]
@chrisjrn
Copy link
Contributor Author

chrisjrn commented Aug 4, 2022

@benjyw @stuhood Tests were previously failing because pants.bin did not fall into the dependency tree for most tests, so pants.bin didn't end up as a proper package when run under test conditions.

To fix this, I've added a new package called pants._version, which exists solely to provide the VERSION resource at runtime, and can be safely deleted in the future. The existence of the resource at runtime under tests is now guaranteed by dependency inference.

I'm not 100% sure on the best place to put the _version package. If you have a better preference, let me know.

# Copyright 2022 Pants project contributors (see CONTRIBUTORS.md).
# Licensed under the Apache License, Version 2.0 (see LICENSE).
# This package is used to provide a non-namespaced Python package from which
# `importlib.resources.read_binary` can read our `VERSION` file. The `VERSION` file is a
# symlink to the concrete `VERSION` file in `src/python/pants`. This creates a minimal package
# that can be imported by `pants.version` during tests, and inferred by Pants as a dependency.
# Future versions of `importlib.resources` will be able to read resources from namespace
# packages, at which point, this package will no longer need to exist.
python_sources(dependencies=["./VERSION:resources"])
resources(name="resources", sources=["VERSION"])

@chrisjrn chrisjrn requested review from stuhood and benjyw August 4, 2022 17:54
@chrisjrn
Copy link
Contributor Author

chrisjrn commented Aug 4, 2022

(One possibility was creating a package called pants.version, which is not possible, due to the existence of the VERSION file, which cannot coexist with a directory named version on Mac OS)

@Eric-Arellano
Copy link
Contributor

I think pants._version is fine, given that pants/VERSION is what matters

@chrisjrn chrisjrn merged commit a01f375 into pantsbuild:main Aug 4, 2022
@chrisjrn chrisjrn deleted the chrisjrn/7369-resource-loader branch August 4, 2022 19:51
illicitonion added a commit to illicitonion/pants that referenced this pull request Aug 5, 2022
Internal changes:

* [internal] Replace `pkgutil.get_data` with new `read_resource` API ([pantsbuild#16379](pantsbuild#16379))

* Bump bytes from 1.2.0 to 1.2.1 in /src/rust/engine ([pantsbuild#16389](pantsbuild#16389))

* Bump arc-swap from 1.5.0 to 1.5.1 in /src/rust/engine ([pantsbuild#16390](pantsbuild#16390))

* Bump console from 0.15.0 to 0.15.1 in /src/rust/engine ([pantsbuild#16392](pantsbuild#16392))

* Fix incorrect alpha sorting of a maintainer name ([pantsbuild#16401](pantsbuild#16401))

* Add Borja Lorente to Maintainers Emeritus ([pantsbuild#16382](pantsbuild#16382))

* Clarify limited logo usage rights granted by orgs ([pantsbuild#16384](pantsbuild#16384))

* Move Nora Howard to Maintainers Emeritus ([pantsbuild#16383](pantsbuild#16383))

* Include Chris Livingston in Maintainers Emeritus ([pantsbuild#16374](pantsbuild#16374))

* Bump clap from 3.2.14 to 3.2.15 in /src/rust/engine ([pantsbuild#16309](pantsbuild#16309))

* Bump crossbeam-channel from 0.5.5 to 0.5.6 in /src/rust/engine ([pantsbuild#16308](pantsbuild#16308))

* remove spurious quote mark ([pantsbuild#16361](pantsbuild#16361))

* A script to generate known versions data for the terraform binary ([pantsbuild#15958](pantsbuild#15958))

* Add more otel packages to default module mapping + fix to always use tuples ([pantsbuild#16345](pantsbuild#16345))

* [internal] upgrade `async-trait` crate ([pantsbuild#16347](pantsbuild#16347))

* Log dirtied nodes while backtracking. ([pantsbuild#16342](pantsbuild#16342))

* Added Opentelemetry to default Python module mapping ([pantsbuild#16337](pantsbuild#16337))

* Upgrade Toolchain Pants Plugin to 0.21.0 ([pantsbuild#16324](pantsbuild#16324))

* Bump bytes from 1.1.0 to 1.2.0 in /src/rust/engine ([pantsbuild#16245](pantsbuild#16245))

* Bump nix from 0.24.1 to 0.24.2 in /src/rust/engine ([pantsbuild#16307](pantsbuild#16307))

* Fix macos-10.15 brownout. ([pantsbuild#16317](pantsbuild#16317))

* Bump hyper from 0.14.19 to 0.14.20 in /src/rust/engine ([pantsbuild#16164](pantsbuild#16164))

* Bump clap from 3.2.8 to 3.2.14 in /src/rust/engine ([pantsbuild#16269](pantsbuild#16269))

* Don't break builds when pants.log upload fails ([pantsbuild#16294](pantsbuild#16294))

* [internal] Shell completion support ([pantsbuild#16200](pantsbuild#16200))

* Add debug output to help to differentiate retry cases ([pantsbuild#16277](pantsbuild#16277))
illicitonion added a commit to illicitonion/pants that referenced this pull request Aug 5, 2022
Internal changes:

* [internal] Replace `pkgutil.get_data` with new `read_resource` API ([pantsbuild#16379](pantsbuild#16379))

* Bump bytes from 1.2.0 to 1.2.1 in /src/rust/engine ([pantsbuild#16389](pantsbuild#16389))

* Bump arc-swap from 1.5.0 to 1.5.1 in /src/rust/engine ([pantsbuild#16390](pantsbuild#16390))

* Bump console from 0.15.0 to 0.15.1 in /src/rust/engine ([pantsbuild#16392](pantsbuild#16392))

* Fix incorrect alpha sorting of a maintainer name ([pantsbuild#16401](pantsbuild#16401))

* Add Borja Lorente to Maintainers Emeritus ([pantsbuild#16382](pantsbuild#16382))

* Clarify limited logo usage rights granted by orgs ([pantsbuild#16384](pantsbuild#16384))

* Move Nora Howard to Maintainers Emeritus ([pantsbuild#16383](pantsbuild#16383))

* Include Chris Livingston in Maintainers Emeritus ([pantsbuild#16374](pantsbuild#16374))

* Bump clap from 3.2.14 to 3.2.15 in /src/rust/engine ([pantsbuild#16309](pantsbuild#16309))

* Bump crossbeam-channel from 0.5.5 to 0.5.6 in /src/rust/engine ([pantsbuild#16308](pantsbuild#16308))

* remove spurious quote mark ([pantsbuild#16361](pantsbuild#16361))

* A script to generate known versions data for the terraform binary ([pantsbuild#15958](pantsbuild#15958))

* Add more otel packages to default module mapping + fix to always use tuples ([pantsbuild#16345](pantsbuild#16345))

* [internal] upgrade `async-trait` crate ([pantsbuild#16347](pantsbuild#16347))

* Log dirtied nodes while backtracking. ([pantsbuild#16342](pantsbuild#16342))

* Added Opentelemetry to default Python module mapping ([pantsbuild#16337](pantsbuild#16337))

* Upgrade Toolchain Pants Plugin to 0.21.0 ([pantsbuild#16324](pantsbuild#16324))

* Bump bytes from 1.1.0 to 1.2.0 in /src/rust/engine ([pantsbuild#16245](pantsbuild#16245))

* Bump nix from 0.24.1 to 0.24.2 in /src/rust/engine ([pantsbuild#16307](pantsbuild#16307))

* Fix macos-10.15 brownout. ([pantsbuild#16317](pantsbuild#16317))

* Bump hyper from 0.14.19 to 0.14.20 in /src/rust/engine ([pantsbuild#16164](pantsbuild#16164))

* Bump clap from 3.2.8 to 3.2.14 in /src/rust/engine ([pantsbuild#16269](pantsbuild#16269))

* Don't break builds when pants.log upload fails ([pantsbuild#16294](pantsbuild#16294))

* [internal] Shell completion support ([pantsbuild#16200](pantsbuild#16200))

* Add debug output to help to differentiate retry cases ([pantsbuild#16277](pantsbuild#16277))
illicitonion added a commit to illicitonion/pants that referenced this pull request Aug 6, 2022
Internal changes:

* [internal] Replace `pkgutil.get_data` with new `read_resource` API ([pantsbuild#16379](pantsbuild#16379))

* Bump bytes from 1.2.0 to 1.2.1 in /src/rust/engine ([pantsbuild#16389](pantsbuild#16389))

* Bump arc-swap from 1.5.0 to 1.5.1 in /src/rust/engine ([pantsbuild#16390](pantsbuild#16390))

* Bump console from 0.15.0 to 0.15.1 in /src/rust/engine ([pantsbuild#16392](pantsbuild#16392))

* Fix incorrect alpha sorting of a maintainer name ([pantsbuild#16401](pantsbuild#16401))

* Add Borja Lorente to Maintainers Emeritus ([pantsbuild#16382](pantsbuild#16382))

* Clarify limited logo usage rights granted by orgs ([pantsbuild#16384](pantsbuild#16384))

* Move Nora Howard to Maintainers Emeritus ([pantsbuild#16383](pantsbuild#16383))

* Include Chris Livingston in Maintainers Emeritus ([pantsbuild#16374](pantsbuild#16374))

* Bump clap from 3.2.14 to 3.2.15 in /src/rust/engine ([pantsbuild#16309](pantsbuild#16309))

* Bump crossbeam-channel from 0.5.5 to 0.5.6 in /src/rust/engine ([pantsbuild#16308](pantsbuild#16308))

* remove spurious quote mark ([pantsbuild#16361](pantsbuild#16361))

* A script to generate known versions data for the terraform binary ([pantsbuild#15958](pantsbuild#15958))

* Add more otel packages to default module mapping + fix to always use tuples ([pantsbuild#16345](pantsbuild#16345))

* [internal] upgrade `async-trait` crate ([pantsbuild#16347](pantsbuild#16347))

* Log dirtied nodes while backtracking. ([pantsbuild#16342](pantsbuild#16342))

* Added Opentelemetry to default Python module mapping ([pantsbuild#16337](pantsbuild#16337))

* Upgrade Toolchain Pants Plugin to 0.21.0 ([pantsbuild#16324](pantsbuild#16324))

* Bump bytes from 1.1.0 to 1.2.0 in /src/rust/engine ([pantsbuild#16245](pantsbuild#16245))

* Bump nix from 0.24.1 to 0.24.2 in /src/rust/engine ([pantsbuild#16307](pantsbuild#16307))

* Fix macos-10.15 brownout. ([pantsbuild#16317](pantsbuild#16317))

* Bump hyper from 0.14.19 to 0.14.20 in /src/rust/engine ([pantsbuild#16164](pantsbuild#16164))

* Bump clap from 3.2.8 to 3.2.14 in /src/rust/engine ([pantsbuild#16269](pantsbuild#16269))

* Don't break builds when pants.log upload fails ([pantsbuild#16294](pantsbuild#16294))

* [internal] Shell completion support ([pantsbuild#16200](pantsbuild#16200))

* Add debug output to help to differentiate retry cases ([pantsbuild#16277](pantsbuild#16277))

* Fix process_executor ([pantsbuild#16428](pantsbuild#16428))
illicitonion added a commit that referenced this pull request Aug 6, 2022
Internal changes:

* [internal] Replace `pkgutil.get_data` with new `read_resource` API ([#16379](#16379))

* Bump bytes from 1.2.0 to 1.2.1 in /src/rust/engine ([#16389](#16389))

* Bump arc-swap from 1.5.0 to 1.5.1 in /src/rust/engine ([#16390](#16390))

* Bump console from 0.15.0 to 0.15.1 in /src/rust/engine ([#16392](#16392))

* Fix incorrect alpha sorting of a maintainer name ([#16401](#16401))

* Add Borja Lorente to Maintainers Emeritus ([#16382](#16382))

* Clarify limited logo usage rights granted by orgs ([#16384](#16384))

* Move Nora Howard to Maintainers Emeritus ([#16383](#16383))

* Include Chris Livingston in Maintainers Emeritus ([#16374](#16374))

* Bump clap from 3.2.14 to 3.2.15 in /src/rust/engine ([#16309](#16309))

* Bump crossbeam-channel from 0.5.5 to 0.5.6 in /src/rust/engine ([#16308](#16308))

* remove spurious quote mark ([#16361](#16361))

* A script to generate known versions data for the terraform binary ([#15958](#15958))

* Add more otel packages to default module mapping + fix to always use tuples ([#16345](#16345))

* [internal] upgrade `async-trait` crate ([#16347](#16347))

* Log dirtied nodes while backtracking. ([#16342](#16342))

* Added Opentelemetry to default Python module mapping ([#16337](#16337))

* Upgrade Toolchain Pants Plugin to 0.21.0 ([#16324](#16324))

* Bump bytes from 1.1.0 to 1.2.0 in /src/rust/engine ([#16245](#16245))

* Bump nix from 0.24.1 to 0.24.2 in /src/rust/engine ([#16307](#16307))

* Fix macos-10.15 brownout. ([#16317](#16317))

* Bump hyper from 0.14.19 to 0.14.20 in /src/rust/engine ([#16164](#16164))

* Bump clap from 3.2.8 to 3.2.14 in /src/rust/engine ([#16269](#16269))

* Don't break builds when pants.log upload fails ([#16294](#16294))

* [internal] Shell completion support ([#16200](#16200))

* Add debug output to help to differentiate retry cases ([#16277](#16277))

* Fix process_executor ([#16428](#16428))
@benjyw
Copy link
Contributor

benjyw commented Aug 6, 2022

Unfortunately this has broken the release process. In the installed pantsbuild.pants wheel _version/VERSION is not a symlink, during wheel creation it turns into a real file that is a copy of the original one. And this happens after we do the version rewrite (

with set_pants_version(CONSTANTS.pants_unstable_version):
) and before we write it back. So _version/VERSION remains wrong.

illicitonion added a commit to illicitonion/pants that referenced this pull request Aug 6, 2022
@benjyw
Copy link
Contributor

benjyw commented Aug 6, 2022

Granted, the version rewrite stuff is hacky AF

benjyw added a commit to benjyw/pants that referenced this pull request Aug 6, 2022
…` API (pantsbuild#16379)"

This reverts commit a01f375.

[ci skip-rust]

[ci skip-build-wheels]
benjyw added a commit that referenced this pull request Aug 7, 2022
…)" (#16433)

This reverts commit a01f375.

[ci skip-rust]

[ci skip-build-wheels]
illicitonion added a commit to illicitonion/pants that referenced this pull request Aug 7, 2022
Features:

* Revert "Replace `pkgutil.get_data` with new `read_resource` API (pantsbuild#16379)" (pantsbuild#16433)
* Upgrade Pex to 2.1.103. (pantsbuild#16426)
illicitonion added a commit that referenced this pull request Aug 7, 2022
Features:

* Revert "Replace `pkgutil.get_data` with new `read_resource` API (#16379)" (#16433)
* Upgrade Pex to 2.1.103. (#16426)
chrisjrn pushed a commit to chrisjrn/pants that referenced this pull request Aug 11, 2022
chrisjrn pushed a commit to chrisjrn/pants that referenced this pull request Aug 11, 2022
…PI (pantsbuild#16379)" (pantsbuild#16433)"

This reverts commit 3f16596.

(cherry picked from commit 17ecac0)

# Building wheels and fs_util will be skipped. Delete if not intended.
[ci skip-build-wheels]
cczona pushed a commit to cczona/pants that referenced this pull request Sep 1, 2022
…antsbuild#16379)

Pants uses `pkgutil.get_data()` in all manner of places to load resource files that are included within the Pants Python package. `get_data()` is not supported in the PEP302 pluggable importer used by PyOxidizer. `importlib.resources`, however, _is_ supported.

`importlib.resources` (as far as PyOxidizer is concerned, at the very least) has some caveats:

* Resources can only be loaded from packages that contain an `__init__.py` file (i.e. are a non-namespace package)
* Resources cannot be `.py` files

This adds a shim function called `read_resource()` that allows reading resource files with more-or-less the same API as `pkgutil.get_data()` (in particular, allowing `read_resource(__name__, …)`, which is used commonly), but plugs into `importlib.resources.read_binary()` to allow for better portability.

A symlink to `src/python/pants/VERSION` is added at `src/python/pants/_version/VERSION`, so that the resource can be loaded with the new API, without immediately breaking the hard-coded version file location required by our setup script.

Finally, the python dependency parser has been renamed to `dependency_parser_py`, so that it can be loaded as a resource, and still treated as a `python_source` for Pants linting purposes.

Addresses pantsbuild#7369.
cczona pushed a commit to cczona/pants that referenced this pull request Sep 1, 2022
Internal changes:

* [internal] Replace `pkgutil.get_data` with new `read_resource` API ([pantsbuild#16379](pantsbuild#16379))

* Bump bytes from 1.2.0 to 1.2.1 in /src/rust/engine ([pantsbuild#16389](pantsbuild#16389))

* Bump arc-swap from 1.5.0 to 1.5.1 in /src/rust/engine ([pantsbuild#16390](pantsbuild#16390))

* Bump console from 0.15.0 to 0.15.1 in /src/rust/engine ([pantsbuild#16392](pantsbuild#16392))

* Fix incorrect alpha sorting of a maintainer name ([pantsbuild#16401](pantsbuild#16401))

* Add Borja Lorente to Maintainers Emeritus ([pantsbuild#16382](pantsbuild#16382))

* Clarify limited logo usage rights granted by orgs ([pantsbuild#16384](pantsbuild#16384))

* Move Nora Howard to Maintainers Emeritus ([pantsbuild#16383](pantsbuild#16383))

* Include Chris Livingston in Maintainers Emeritus ([pantsbuild#16374](pantsbuild#16374))

* Bump clap from 3.2.14 to 3.2.15 in /src/rust/engine ([pantsbuild#16309](pantsbuild#16309))

* Bump crossbeam-channel from 0.5.5 to 0.5.6 in /src/rust/engine ([pantsbuild#16308](pantsbuild#16308))

* remove spurious quote mark ([pantsbuild#16361](pantsbuild#16361))

* A script to generate known versions data for the terraform binary ([pantsbuild#15958](pantsbuild#15958))

* Add more otel packages to default module mapping + fix to always use tuples ([pantsbuild#16345](pantsbuild#16345))

* [internal] upgrade `async-trait` crate ([pantsbuild#16347](pantsbuild#16347))

* Log dirtied nodes while backtracking. ([pantsbuild#16342](pantsbuild#16342))

* Added Opentelemetry to default Python module mapping ([pantsbuild#16337](pantsbuild#16337))

* Upgrade Toolchain Pants Plugin to 0.21.0 ([pantsbuild#16324](pantsbuild#16324))

* Bump bytes from 1.1.0 to 1.2.0 in /src/rust/engine ([pantsbuild#16245](pantsbuild#16245))

* Bump nix from 0.24.1 to 0.24.2 in /src/rust/engine ([pantsbuild#16307](pantsbuild#16307))

* Fix macos-10.15 brownout. ([pantsbuild#16317](pantsbuild#16317))

* Bump hyper from 0.14.19 to 0.14.20 in /src/rust/engine ([pantsbuild#16164](pantsbuild#16164))

* Bump clap from 3.2.8 to 3.2.14 in /src/rust/engine ([pantsbuild#16269](pantsbuild#16269))

* Don't break builds when pants.log upload fails ([pantsbuild#16294](pantsbuild#16294))

* [internal] Shell completion support ([pantsbuild#16200](pantsbuild#16200))

* Add debug output to help to differentiate retry cases ([pantsbuild#16277](pantsbuild#16277))

* Fix process_executor ([pantsbuild#16428](pantsbuild#16428))
cczona pushed a commit to cczona/pants that referenced this pull request Sep 1, 2022
…sbuild#16379)" (pantsbuild#16433)

This reverts commit a01f375.

[ci skip-rust]

[ci skip-build-wheels]
cczona pushed a commit to cczona/pants that referenced this pull request Sep 1, 2022
Features:

* Revert "Replace `pkgutil.get_data` with new `read_resource` API (pantsbuild#16379)" (pantsbuild#16433)
* Upgrade Pex to 2.1.103. (pantsbuild#16426)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:internal CI, fixes for not-yet-released features, etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants