Fix absolute base python paths conflicting - #3325
Conversation
Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net>
|
Hello. Is it expected that this breaks extensions who implement this abstract class? |
|
yes, sadly I don't have a better option to add new abstract methods here |
| if spec_base.path is not None: | ||
| path = Path(spec_base.path).absolute() | ||
| if str(spec_base.path) == sys.executable: | ||
| ver, is_64 = sys.version_info, sys.maxsize != 2**32 |
There was a problem hiding this comment.
When reviewing fedora-python/tox-current-env#78 @frenzymadness found out that is_64 is always True:
Fedora Rawhide i686
>>> sys.maxsize
2147483647
>>> 2**32
4294967296
>>> sys.maxsize != 2**32
TrueFedora Rawhide x86_64
>>> sys.maxsize
9223372036854775807
>>> 2**32
4294967296
>>> sys.maxsize != 2**32
Truehttps://docs.python.org/3/library/platform.html#platform.architecture says:
To get at the “64-bitness” of the current interpreter, it is more reliable to query the sys.maxsize attribute:
is_64bits = sys.maxsize > 2**32
Fedora Rawhide i686
>>> sys.maxsize > 2**32
FalseFedora Rawhide x86_64
>>> sys.maxsize > 2**32
TrueThere was a problem hiding this comment.
Ah good catch both. can you put in a PR to fix it 😅
There was a problem hiding this comment.
I am working on it. I assume you intended a string like cpython3.13-64.
There was a problem hiding this comment.
That is correct, thank you.
There was a problem hiding this comment.
Drafted #3327 -- waiting for the CI to validate it.
| path = Path(spec_base.path).absolute() | ||
| if str(spec_base.path) == sys.executable: | ||
| ver, is_64 = sys.version_info, sys.maxsize != 2**32 | ||
| spec_base = PythonSpec.from_string_spec(f"{sys.implementation}{ver.major}{ver.minor}-{is_64}") |
There was a problem hiding this comment.
@frenzymadness also pointed out that the string ends with a boolean, like ...313-True, while according to a PATTERN in virtualenv:
PATTERN = re.compile(r"^(?P<impl>[a-zA-Z]+)?(?P<version>[0-9.]+)?(?:-(?P<arch>32|64))?$")It should probably end with -32 or -64 if we care about the 32/64bitness.
Moreover, when testing this assumption, I found out that the entire string is probably completely bogus:
>>> ver, is_64 = sys.version_info, sys.maxsize != 2**32
>>> f"{sys.implementation}{ver.major}{ver.minor}-{is_64}"
"namespace(name='cpython', cache_tag='cpython-313', version=sys.version_info(major=3, minor=13, micro=0, releaselevel='candidate', serial=1), hexversion=51183809, _multiarch='x86_64-linux-gnu')313-True"We probably want to replace sys.implementation with sys.implementation.name if cpython313-64 is what you intended.
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [tox](https://togithub.com/tox-dev/tox) ([changelog](https://tox.wiki/en/latest/changelog.html)) | `~4.16.0` -> `~4.18.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>tox-dev/tox (tox)</summary> ### [`v4.18.0`](https://togithub.com/tox-dev/tox/releases/tag/4.18.0) [Compare Source](https://togithub.com/tox-dev/tox/compare/4.17.1...4.18.0) <!-- Release notes generated using configuration in .github/release.yml at 4.18.0 --> #### What's Changed - Fix [#​3278](https://togithub.com/tox-dev/tox/issues/3278) - Boost temporary directories cleanup in tests by [@​ziima](https://togithub.com/ziima) in [https://github.com/tox-dev/tox/pull/3323](https://togithub.com/tox-dev/tox/pull/3323) - Fix absolute base python paths conflicting by [@​gaborbernat](https://togithub.com/gaborbernat) in [https://github.com/tox-dev/tox/pull/3325](https://togithub.com/tox-dev/tox/pull/3325) - Fix [#​3318](https://togithub.com/tox-dev/tox/issues/3318) - Suppress spinner in parallel runs in CI by [@​ziima](https://togithub.com/ziima) in [https://github.com/tox-dev/tox/pull/3321](https://togithub.com/tox-dev/tox/pull/3321) **Full Changelog**: tox-dev/tox@4.17.1...4.18.0 ### [`v4.17.1`](https://togithub.com/tox-dev/tox/releases/tag/4.17.1) [Compare Source](https://togithub.com/tox-dev/tox/compare/4.17.0...4.17.1) <!-- Release notes generated using configuration in .github/release.yml at 4.17.1 --> ##### What's Changed - Restore limited `<major>.<minor>` environment name support by [@​gaborbernat](https://togithub.com/gaborbernat) in [https://github.com/tox-dev/tox/pull/3319](https://togithub.com/tox-dev/tox/pull/3319) - fix(tox_env.python): do not process absolute paths to interpreter as PythonSpec by [@​paveldikov](https://togithub.com/paveldikov) in [https://github.com/tox-dev/tox/pull/3311](https://togithub.com/tox-dev/tox/pull/3311) ##### New Contributors - [@​paveldikov](https://togithub.com/paveldikov) made their first contribution in [https://github.com/tox-dev/tox/pull/3311](https://togithub.com/tox-dev/tox/pull/3311) **Full Changelog**: tox-dev/tox@4.17.0...4.17.1 ### [`v4.17.0`](https://togithub.com/tox-dev/tox/releases/tag/4.17.0) [Compare Source](https://togithub.com/tox-dev/tox/compare/4.16.0...4.17.0) <!-- Release notes generated using configuration in .github/release.yml at 4.17.0 --> ##### What's Changed - Fix user guide system overview so nodes don't overlap. by [@​Tom01098](https://togithub.com/Tom01098) in [https://github.com/tox-dev/tox/pull/3307](https://togithub.com/tox-dev/tox/pull/3307) - Table with list of default env vars per OS by [@​seyidaniels](https://togithub.com/seyidaniels) in [https://github.com/tox-dev/tox/pull/3291](https://togithub.com/tox-dev/tox/pull/3291) - Add GraalPy and test both GraalPy and Jython env identifiers by [@​timfel](https://togithub.com/timfel) in [https://github.com/tox-dev/tox/pull/3312](https://togithub.com/tox-dev/tox/pull/3312) - Add on platform constat to core by [@​gaborbernat](https://togithub.com/gaborbernat) in [https://github.com/tox-dev/tox/pull/3315](https://togithub.com/tox-dev/tox/pull/3315) ##### New Contributors - [@​Tom01098](https://togithub.com/Tom01098) made their first contribution in [https://github.com/tox-dev/tox/pull/3307](https://togithub.com/tox-dev/tox/pull/3307) - [@​timfel](https://togithub.com/timfel) made their first contribution in [https://github.com/tox-dev/tox/pull/3312](https://togithub.com/tox-dev/tox/pull/3312) **Full Changelog**: tox-dev/tox@4.16.0...4.17.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/naa0yama/PythonBoilerplate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM4LjI2LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImRhdGFzb3VyY2U6cHlwaSIsImRlcFR5cGU6ZGV2IiwibWFuYWdlcjpwb2V0cnkiLCJyZW5vdmF0ZSIsInVwZGF0ZS1taW5vciIsInZlcnNpb25pbmc6cG9ldHJ5Il19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [tox](https://togithub.com/tox-dev/tox) ([changelog](https://tox.wiki/en/latest/changelog.html)) | `==4.17.1` -> `==4.18.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>tox-dev/tox (tox)</summary> ### [`v4.18.0`](https://togithub.com/tox-dev/tox/releases/tag/4.18.0) [Compare Source](https://togithub.com/tox-dev/tox/compare/4.17.1...4.18.0) <!-- Release notes generated using configuration in .github/release.yml at 4.18.0 --> #### What's Changed - Fix [#​3278](https://togithub.com/tox-dev/tox/issues/3278) - Boost temporary directories cleanup in tests by [@​ziima](https://togithub.com/ziima) in [https://github.com/tox-dev/tox/pull/3323](https://togithub.com/tox-dev/tox/pull/3323) - Fix absolute base python paths conflicting by [@​gaborbernat](https://togithub.com/gaborbernat) in [https://github.com/tox-dev/tox/pull/3325](https://togithub.com/tox-dev/tox/pull/3325) - Fix [#​3318](https://togithub.com/tox-dev/tox/issues/3318) - Suppress spinner in parallel runs in CI by [@​ziima](https://togithub.com/ziima) in [https://github.com/tox-dev/tox/pull/3321](https://togithub.com/tox-dev/tox/pull/3321) **Full Changelog**: tox-dev/tox@4.17.1...4.18.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/luminartech/dev-tools). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bernát Gábor bgabor8@bloomberg.net