ancient-vegetable-10556
08/11/2022, 7:49 PMpip
. ox.py
is wild.
https://github.com/pantsbuild/pants/pull/16484hundreds-father-404
08/11/2022, 7:52 PMancient-vegetable-10556
08/11/2022, 7:53 PMancient-vegetable-10556
08/11/2022, 7:53 PMbitter-ability-32190
08/11/2022, 7:53 PMbitter-ability-32190
08/11/2022, 7:54 PMancient-vegetable-10556
08/11/2022, 8:04 PMancient-vegetable-10556
08/11/2022, 9:59 PMancient-vegetable-10556
08/11/2022, 10:00 PMbitter-ability-32190
08/11/2022, 10:12 PMancient-vegetable-10556
08/11/2022, 10:23 PMancient-vegetable-10556
08/11/2022, 10:23 PMwide-midnight-78598
08/11/2022, 10:45 PMwide-midnight-78598
08/12/2022, 12:28 AMwide-midnight-78598
08/12/2022, 12:32 AMTraceback (most recent call last):
File "pants.engine.internals.options_parsing", line 48, in parse_options
return _Options(options_bootstrapper, build_config)
File "<string>", line 5, in __init__
File "pants.engine.internals.options_parsing", line 36, in __post_init__
assert self.options is not None
File "pants.util.memo", line 123, in memoize
result = func(*args, **kwargs)
File "pants.engine.internals.options_parsing", line 40, in options
return self.options_bootstrapper.full_options(self.build_config)
File "pants.option.options_bootstrapper", line 282, in full_options
raise BuildConfigurationError(
pants.base.exceptions.BuildConfigurationError: Version mismatch: Requested version was 2.13.0.dev5, our version is 2.14.0.dev5.
Running against my pants.toml after upgrading the version:
Traceback (most recent call last):
File "pants.bin.daemon_pants_runner", line 130, in single_daemonized_run
scheduler, options_initializer = self._core.prepare(options_bootstrapper, complete_env)
File "pants.pantsd.pants_daemon_core", line 129, in prepare
build_config, options = self._options_initializer.build_config_and_options(
File "pants.init.options_initializer", line 107, in build_config_and_options
build_config = _initialize_build_configuration(
File "pants.init.options_initializer", line 56, in _initialize_build_configuration
return load_backends_and_plugins(
File "pants.init.extension_loader", line 45, in load_backends_and_plugins
load_build_configuration_from_source(bc_builder, backends)
File "pants.init.extension_loader", line 127, in load_build_configuration_from_source
load_backend(build_configuration, backend_package)
File "pants.init.extension_loader", line 144, in load_backend
raise BackendConfigurationError(f"Failed to load the {backend_module} backend: {ex!r}")
pants.base.exceptions.BackendConfigurationError: Failed to load the experimental.ansible.register backend: ModuleNotFoundError("No module named 'experimental'")
ancient-vegetable-10556
08/12/2022, 4:48 PMancient-vegetable-10556
08/12/2022, 4:48 PMwitty-crayon-22786
08/15/2022, 7:04 PMpip
directly rather than pex
? the former won’t have lockfiles.ancient-vegetable-10556
08/17/2022, 7:53 PMox.py
in a space where you feel safe weeping and/or cursing the voidancient-vegetable-10556
08/25/2022, 9:24 PMpants-plugins
branchancient-vegetable-10556
08/25/2022, 9:24 PMancient-vegetable-10556
08/25/2022, 9:28 PMwide-midnight-78598
08/25/2022, 9:32 PMancient-vegetable-10556
08/25/2022, 9:32 PMwide-midnight-78598
08/25/2022, 9:33 PMbitter-ability-32190
08/25/2022, 9:35 PMancient-vegetable-10556
08/25/2022, 9:37 PMwide-midnight-78598
08/25/2022, 9:38 PMancient-vegetable-10556
08/25/2022, 9:38 PMancient-vegetable-10556
08/25/2022, 9:38 PMbitter-ability-32190
08/25/2022, 9:39 PMwide-midnight-78598
08/26/2022, 12:23 AMpants.toml
specifies a version, and the pants script downloads that from github? Or, is the idea more of a versioned binary that would then define the version to use (which is chicken, and which is egg?)hundreds-father-404
08/26/2022, 12:25 AMpants.toml
and ./pants
script pulls it down for you. It's important to us that you can have multiple repos w/ different Pants versions. We don't want something like Bazel where it's a global binary for everything
If we do have a global binary, which would be awesome, it would need to still support this per-repo configwide-midnight-78598
08/26/2022, 12:27 AMwide-midnight-78598
08/26/2022, 1:03 AMERROR: pantsbuild.pants-2.14.0a0-cp38-cp38-macosx_12_0_x86_64.whl is not a supported wheel on this platform.
error[PYOXIDIZER_PYTHON_EXECUTABLE]: calling pip install
Caused by:
command ["/private/var/folders/18/q1r7phps28nc9rx5j_0t3jmm0000gp/T/pants-sandbox-2zLVHa/.cache/pyoxidizer/python_distributions/python.4a39fa15024b/python/install/bin/python3.9", "-m", "pip", "--disable-pip-version-check", "install", "--target", "/tmp/pyoxidizer-pip-installnH1II9/install", "pantsbuild.pants-2.14.0a0-cp38-cp38-macosx_12_0_x86_64.whl"] exited with code 1
--> ./pyoxidizer.bzl:21:30
|
21 | exe.add_python_resources(exe.pip_install(['pantsbuild.pants-2.14.0a0-cp38-cp38-macosx_12_0_x86_64.whl']))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PythonExecutable.pip_install()
wide-midnight-78598
08/26/2022, 1:37 AMhundreds-father-404
08/26/2022, 1:53 AMwide-midnight-78598
08/26/2022, 1:54 AMwide-midnight-78598
08/26/2022, 1:55 AMancient-vegetable-10556
08/26/2022, 3:04 PMwide-midnight-78598
08/26/2022, 3:25 PMancient-vegetable-10556
08/26/2022, 3:25 PMhundreds-father-404
08/26/2022, 3:25 PMancient-vegetable-10556
08/26/2022, 3:26 PMwide-midnight-78598
08/26/2022, 3:26 PMancient-vegetable-10556
08/26/2022, 3:27 PMhundreds-father-404
08/26/2022, 3:28 PMbut they’ll always be able to fallback on the external python distribution approach that we currently useWell, TBD. I still propose that we don't need to give as much of a range as people think, specifically because of
[python].resolves
. It robustly supports your own code being Py37 but Pants plugin being Py310, for example. I think it could be viable to only release for one version, which has several benefits like allowing us to use newest features & reducing risk we write code broken on a certain versionwide-midnight-78598
08/26/2022, 3:29 PMancient-vegetable-10556
08/26/2022, 3:29 PMwide-midnight-78598
08/26/2022, 3:31 PMancient-vegetable-10556
08/26/2022, 3:31 PMhundreds-father-404
08/26/2022, 3:31 PMWill that PyOx'd 3.10 impose any constraints on an existing repo?You would set up
[python].resolves
for your pants-plugin, which we strongly encourage anyways. If you do that, zero impact to your own codehundreds-father-404
08/26/2022, 3:32 PMancient-vegetable-10556
08/26/2022, 3:33 PM./pants test
, it will find a Python on your system that matches your pants interpreter constraintswide-midnight-78598
08/26/2022, 3:33 PMwide-midnight-78598
08/26/2022, 3:34 PMit will find a Python on your system that matches your pants interpreter constraintsYes, okay, great, that's what I thought/hoped.
ancient-vegetable-10556
08/26/2022, 3:34 PMancient-vegetable-10556
08/26/2022, 3:34 PMhundreds-father-404
08/26/2022, 3:35 PMthe difference is that Pants itself will no longer run against the python version specified by global interpreter constraintsWell, that was never a thing. What Pants itself runs on is solely determined by the
./pants
bash script. It does not look at your global interpreter constraints at all
Except when you are running Pants on Pants plugins like ./pants test
, where Pants forks a new process like any other build. Then, indeed, for the forked process, it looks at interpreter constraints option. Which is where [python].resolves
comes into playwide-midnight-78598
08/26/2022, 3:36 PMancient-vegetable-10556
08/26/2022, 3:37 PMancient-vegetable-10556
08/26/2022, 3:37 PMhundreds-father-404
08/26/2022, 3:37 PMancient-vegetable-10556
08/26/2022, 3:38 PMancient-vegetable-10556
08/26/2022, 3:38 PMhundreds-father-404
08/26/2022, 3:48 PM[python].resolves
, I think that's pretty feasible.