-
-
Notifications
You must be signed in to change notification settings - Fork 644
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
refactor(internal): adjust pants_venv venv_dir calculation #19140
Conversation
The "uname -mps" output on my machine includes odd chars and is really long. Now that py version is a fingerprint instead of 2 chars "39" (see pantsbuild#18916), this trips over the shebang max length (127 chars) triggering distlib shebang logic https://github.com/pypa/distlib/blob/0.3.6/distlib/scripts.py#L152-L157 that breaks with the special uname chars on my machine. So, bypass the whole mess by generating one uname+py fingerprint for the venv.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
# dodge https://github.com/hashicorp/vagrant/issues/12057. | ||
platform=$(uname -mps | sed 's/ /./g') | ||
venv_dir_prefix="${HOME}/.cache/pants/pants_dev_deps/${platform}" | ||
platform=$(uname -mps) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this isn't actually used outside the function, then moving it inside could be good.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function gets called a lot, so I figured it was outside the function to cache the call. Should I still move it in the function?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm. Yea, fine I guess.
Internal changes: * Fix TypedDict construction ([pantsbuild#19166](pantsbuild#19166)) * Have package_dists.InvalidEntryPoint subclass InvalidFieldException ([pantsbuild#19149](pantsbuild#19149)) * Check for `CI=true`, not `CI=1` for cherry-picking ([pantsbuild#19141](pantsbuild#19141)) * Set up remote caching in CI ([pantsbuild#19144](pantsbuild#19144)) * refactor(internal): adjust pants_venv venv_dir calculation ([pantsbuild#19140](pantsbuild#19140)) * Prepare `2.16.0rc4`. ([pantsbuild#19146](pantsbuild#19146)) * Warn about `files()` in PEXes in one place ([pantsbuild#19027](pantsbuild#19027)) * Drop our explicit dep on `syn` ([pantsbuild#19134](pantsbuild#19134)) * Fix auto-cherry-picker's merge-conflicts ([pantsbuild#19125](pantsbuild#19125)) * Use explicit depths on fetches when running cherry-picks in CI ([pantsbuild#19127](pantsbuild#19127)) * Make determine_python() pin to 3.9 ([pantsbuild#19116](pantsbuild#19116)) * Upgrade to `actions/checkout@v3` ([pantsbuild#19112](pantsbuild#19112)) * Run the cherry pick script with `-x` for debugging ([pantsbuild#19095](pantsbuild#19095)) * Add more linux x86 test CI shards ([pantsbuild#19099](pantsbuild#19099)) * Use a trait for remote ByteStore network implementation ([pantsbuild#19050](pantsbuild#19050)) * Increase the logging of release version file publishing. ([pantsbuild#19092](pantsbuild#19092)) * Remove the Toolchain plugin ([pantsbuild#18978](pantsbuild#18978)) * Fix bad merge of pantsbuild#18829. ([pantsbuild#19080](pantsbuild#19080)) * Revert "Implement layout="zip" for Lambda/GCF, skipping lambdex" ([pantsbuild#19071](pantsbuild#19071)) * Remove unnecessary interpreter constraint config. ([pantsbuild#19065](pantsbuild#19065)) * Use hand-written change detection for PR/push job trimming ([pantsbuild#19045](pantsbuild#19045)) * Do not build wheels on push, since that is now accomplished by the release job. ([pantsbuild#19063](pantsbuild#19063)) * Additional release job publishing fixes ([pantsbuild#19058](pantsbuild#19058)) * Change CI trigger to includelist `main` and `2.*.x` ([pantsbuild#19059](pantsbuild#19059)) * Release doc and script fixes ([pantsbuild#19043](pantsbuild#19043)) * Update cherry-picker to use `pull_request_target` ([pantsbuild#19048](pantsbuild#19048)) * Prepare `2.16.0rc3`. ([pantsbuild#19044](pantsbuild#19044)) * Prepare `2.15.1`. ([pantsbuild#19042](pantsbuild#19042)) * Fixup welcome-newcomers.yaml ([pantsbuild#19039](pantsbuild#19039))
Internal changes: * Fix TypedDict construction ([pantsbuild#19166](pantsbuild#19166)) * Have package_dists.InvalidEntryPoint subclass InvalidFieldException ([pantsbuild#19149](pantsbuild#19149)) * Check for `CI=true`, not `CI=1` for cherry-picking ([pantsbuild#19141](pantsbuild#19141)) * Set up remote caching in CI ([pantsbuild#19144](pantsbuild#19144)) * refactor(internal): adjust pants_venv venv_dir calculation ([pantsbuild#19140](pantsbuild#19140)) * Prepare `2.16.0rc4`. ([pantsbuild#19146](pantsbuild#19146)) * Warn about `files()` in PEXes in one place ([pantsbuild#19027](pantsbuild#19027)) * Drop our explicit dep on `syn` ([pantsbuild#19134](pantsbuild#19134)) * Fix auto-cherry-picker's merge-conflicts ([pantsbuild#19125](pantsbuild#19125)) * Use explicit depths on fetches when running cherry-picks in CI ([pantsbuild#19127](pantsbuild#19127)) * Make determine_python() pin to 3.9 ([pantsbuild#19116](pantsbuild#19116)) * Upgrade to `actions/checkout@v3` ([pantsbuild#19112](pantsbuild#19112)) * Run the cherry pick script with `-x` for debugging ([pantsbuild#19095](pantsbuild#19095)) * Add more linux x86 test CI shards ([pantsbuild#19099](pantsbuild#19099)) * Use a trait for remote ByteStore network implementation ([pantsbuild#19050](pantsbuild#19050)) * Increase the logging of release version file publishing. ([pantsbuild#19092](pantsbuild#19092)) * Remove the Toolchain plugin ([pantsbuild#18978](pantsbuild#18978)) * Fix bad merge of pantsbuild#18829. ([pantsbuild#19080](pantsbuild#19080)) * Revert "Implement layout="zip" for Lambda/GCF, skipping lambdex" ([pantsbuild#19071](pantsbuild#19071)) * Remove unnecessary interpreter constraint config. ([pantsbuild#19065](pantsbuild#19065)) * Use hand-written change detection for PR/push job trimming ([pantsbuild#19045](pantsbuild#19045)) * Do not build wheels on push, since that is now accomplished by the release job. ([pantsbuild#19063](pantsbuild#19063)) * Additional release job publishing fixes ([pantsbuild#19058](pantsbuild#19058)) * Change CI trigger to includelist `main` and `2.*.x` ([pantsbuild#19059](pantsbuild#19059)) * Release doc and script fixes ([pantsbuild#19043](pantsbuild#19043)) * Update cherry-picker to use `pull_request_target` ([pantsbuild#19048](pantsbuild#19048)) * Prepare `2.16.0rc3`. ([pantsbuild#19044](pantsbuild#19044)) * Prepare `2.15.1`. ([pantsbuild#19042](pantsbuild#19042)) * Fixup welcome-newcomers.yaml ([pantsbuild#19039](pantsbuild#19039))
Internal changes: * Fix TypedDict construction ([pantsbuild#19166](pantsbuild#19166)) * Have package_dists.InvalidEntryPoint subclass InvalidFieldException ([pantsbuild#19149](pantsbuild#19149)) * Check for `CI=true`, not `CI=1` for cherry-picking ([pantsbuild#19141](pantsbuild#19141)) * Set up remote caching in CI ([pantsbuild#19144](pantsbuild#19144)) * refactor(internal): adjust pants_venv venv_dir calculation ([pantsbuild#19140](pantsbuild#19140)) * Prepare `2.16.0rc4`. ([pantsbuild#19146](pantsbuild#19146)) * Warn about `files()` in PEXes in one place ([pantsbuild#19027](pantsbuild#19027)) * Drop our explicit dep on `syn` ([pantsbuild#19134](pantsbuild#19134)) * Fix auto-cherry-picker's merge-conflicts ([pantsbuild#19125](pantsbuild#19125)) * Use explicit depths on fetches when running cherry-picks in CI ([pantsbuild#19127](pantsbuild#19127)) * Make determine_python() pin to 3.9 ([pantsbuild#19116](pantsbuild#19116)) * Upgrade to `actions/checkout@v3` ([pantsbuild#19112](pantsbuild#19112)) * Run the cherry pick script with `-x` for debugging ([pantsbuild#19095](pantsbuild#19095)) * Add more linux x86 test CI shards ([pantsbuild#19099](pantsbuild#19099)) * Use a trait for remote ByteStore network implementation ([pantsbuild#19050](pantsbuild#19050)) * Increase the logging of release version file publishing. ([pantsbuild#19092](pantsbuild#19092)) * Remove the Toolchain plugin ([pantsbuild#18978](pantsbuild#18978)) * Fix bad merge of pantsbuild#18829. ([pantsbuild#19080](pantsbuild#19080)) * Revert "Implement layout="zip" for Lambda/GCF, skipping lambdex" ([pantsbuild#19071](pantsbuild#19071)) * Remove unnecessary interpreter constraint config. ([pantsbuild#19065](pantsbuild#19065)) * Use hand-written change detection for PR/push job trimming ([pantsbuild#19045](pantsbuild#19045)) * Do not build wheels on push, since that is now accomplished by the release job. ([pantsbuild#19063](pantsbuild#19063)) * Additional release job publishing fixes ([pantsbuild#19058](pantsbuild#19058)) * Change CI trigger to includelist `main` and `2.*.x` ([pantsbuild#19059](pantsbuild#19059)) * Release doc and script fixes ([pantsbuild#19043](pantsbuild#19043)) * Update cherry-picker to use `pull_request_target` ([pantsbuild#19048](pantsbuild#19048)) * Prepare `2.16.0rc3`. ([pantsbuild#19044](pantsbuild#19044)) * Prepare `2.15.1`. ([pantsbuild#19042](pantsbuild#19042)) * Fixup welcome-newcomers.yaml ([pantsbuild#19039](pantsbuild#19039))
Internal changes: * Fix TypedDict construction ([pantsbuild#19166](pantsbuild#19166)) * Have package_dists.InvalidEntryPoint subclass InvalidFieldException ([pantsbuild#19149](pantsbuild#19149)) * Check for `CI=true`, not `CI=1` for cherry-picking ([pantsbuild#19141](pantsbuild#19141)) * Set up remote caching in CI ([pantsbuild#19144](pantsbuild#19144)) * refactor(internal): adjust pants_venv venv_dir calculation ([pantsbuild#19140](pantsbuild#19140)) * Prepare `2.16.0rc4`. ([pantsbuild#19146](pantsbuild#19146)) * Warn about `files()` in PEXes in one place ([pantsbuild#19027](pantsbuild#19027)) * Drop our explicit dep on `syn` ([pantsbuild#19134](pantsbuild#19134)) * Fix auto-cherry-picker's merge-conflicts ([pantsbuild#19125](pantsbuild#19125)) * Use explicit depths on fetches when running cherry-picks in CI ([pantsbuild#19127](pantsbuild#19127)) * Make determine_python() pin to 3.9 ([pantsbuild#19116](pantsbuild#19116)) * Upgrade to `actions/checkout@v3` ([pantsbuild#19112](pantsbuild#19112)) * Run the cherry pick script with `-x` for debugging ([pantsbuild#19095](pantsbuild#19095)) * Add more linux x86 test CI shards ([pantsbuild#19099](pantsbuild#19099)) * Use a trait for remote ByteStore network implementation ([pantsbuild#19050](pantsbuild#19050)) * Increase the logging of release version file publishing. ([pantsbuild#19092](pantsbuild#19092)) * Remove the Toolchain plugin ([pantsbuild#18978](pantsbuild#18978)) * Fix bad merge of pantsbuild#18829. ([pantsbuild#19080](pantsbuild#19080)) * Revert "Implement layout="zip" for Lambda/GCF, skipping lambdex" ([pantsbuild#19071](pantsbuild#19071)) * Remove unnecessary interpreter constraint config. ([pantsbuild#19065](pantsbuild#19065)) * Use hand-written change detection for PR/push job trimming ([pantsbuild#19045](pantsbuild#19045)) * Do not build wheels on push, since that is now accomplished by the release job. ([pantsbuild#19063](pantsbuild#19063)) * Additional release job publishing fixes ([pantsbuild#19058](pantsbuild#19058)) * Change CI trigger to includelist `main` and `2.*.x` ([pantsbuild#19059](pantsbuild#19059)) * Release doc and script fixes ([pantsbuild#19043](pantsbuild#19043)) * Update cherry-picker to use `pull_request_target` ([pantsbuild#19048](pantsbuild#19048)) * Prepare `2.16.0rc3`. ([pantsbuild#19044](pantsbuild#19044)) * Prepare `2.15.1`. ([pantsbuild#19042](pantsbuild#19042)) * Fixup welcome-newcomers.yaml ([pantsbuild#19039](pantsbuild#19039))
Internal changes: * Fix TypedDict construction ([pantsbuild#19166](pantsbuild#19166)) * Have package_dists.InvalidEntryPoint subclass InvalidFieldException ([pantsbuild#19149](pantsbuild#19149)) * Check for `CI=true`, not `CI=1` for cherry-picking ([pantsbuild#19141](pantsbuild#19141)) * Set up remote caching in CI ([pantsbuild#19144](pantsbuild#19144)) * refactor(internal): adjust pants_venv venv_dir calculation ([pantsbuild#19140](pantsbuild#19140)) * Prepare `2.16.0rc4`. ([pantsbuild#19146](pantsbuild#19146)) * Warn about `files()` in PEXes in one place ([pantsbuild#19027](pantsbuild#19027)) * Drop our explicit dep on `syn` ([pantsbuild#19134](pantsbuild#19134)) * Fix auto-cherry-picker's merge-conflicts ([pantsbuild#19125](pantsbuild#19125)) * Use explicit depths on fetches when running cherry-picks in CI ([pantsbuild#19127](pantsbuild#19127)) * Make determine_python() pin to 3.9 ([pantsbuild#19116](pantsbuild#19116)) * Upgrade to `actions/checkout@v3` ([pantsbuild#19112](pantsbuild#19112)) * Run the cherry pick script with `-x` for debugging ([pantsbuild#19095](pantsbuild#19095)) * Add more linux x86 test CI shards ([pantsbuild#19099](pantsbuild#19099)) * Use a trait for remote ByteStore network implementation ([pantsbuild#19050](pantsbuild#19050)) * Increase the logging of release version file publishing. ([pantsbuild#19092](pantsbuild#19092)) * Remove the Toolchain plugin ([pantsbuild#18978](pantsbuild#18978)) * Fix bad merge of pantsbuild#18829. ([pantsbuild#19080](pantsbuild#19080)) * Revert "Implement layout="zip" for Lambda/GCF, skipping lambdex" ([pantsbuild#19071](pantsbuild#19071)) * Remove unnecessary interpreter constraint config. ([pantsbuild#19065](pantsbuild#19065)) * Use hand-written change detection for PR/push job trimming ([pantsbuild#19045](pantsbuild#19045)) * Do not build wheels on push, since that is now accomplished by the release job. ([pantsbuild#19063](pantsbuild#19063)) * Additional release job publishing fixes ([pantsbuild#19058](pantsbuild#19058)) * Change CI trigger to includelist `main` and `2.*.x` ([pantsbuild#19059](pantsbuild#19059)) * Release doc and script fixes ([pantsbuild#19043](pantsbuild#19043)) * Update cherry-picker to use `pull_request_target` ([pantsbuild#19048](pantsbuild#19048)) * Prepare `2.16.0rc3`. ([pantsbuild#19044](pantsbuild#19044)) * Prepare `2.15.1`. ([pantsbuild#19042](pantsbuild#19042)) * Fixup welcome-newcomers.yaml ([pantsbuild#19039](pantsbuild#19039))
Internal changes: * Fix TypedDict construction ([pantsbuild#19166](pantsbuild#19166)) * Have package_dists.InvalidEntryPoint subclass InvalidFieldException ([pantsbuild#19149](pantsbuild#19149)) * Check for `CI=true`, not `CI=1` for cherry-picking ([pantsbuild#19141](pantsbuild#19141)) * Set up remote caching in CI ([pantsbuild#19144](pantsbuild#19144)) * refactor(internal): adjust pants_venv venv_dir calculation ([pantsbuild#19140](pantsbuild#19140)) * Prepare `2.16.0rc4`. ([pantsbuild#19146](pantsbuild#19146)) * Warn about `files()` in PEXes in one place ([pantsbuild#19027](pantsbuild#19027)) * Drop our explicit dep on `syn` ([pantsbuild#19134](pantsbuild#19134)) * Fix auto-cherry-picker's merge-conflicts ([pantsbuild#19125](pantsbuild#19125)) * Use explicit depths on fetches when running cherry-picks in CI ([pantsbuild#19127](pantsbuild#19127)) * Make determine_python() pin to 3.9 ([pantsbuild#19116](pantsbuild#19116)) * Upgrade to `actions/checkout@v3` ([pantsbuild#19112](pantsbuild#19112)) * Run the cherry pick script with `-x` for debugging ([pantsbuild#19095](pantsbuild#19095)) * Add more linux x86 test CI shards ([pantsbuild#19099](pantsbuild#19099)) * Use a trait for remote ByteStore network implementation ([pantsbuild#19050](pantsbuild#19050)) * Increase the logging of release version file publishing. ([pantsbuild#19092](pantsbuild#19092)) * Remove the Toolchain plugin ([pantsbuild#18978](pantsbuild#18978)) * Fix bad merge of pantsbuild#18829. ([pantsbuild#19080](pantsbuild#19080)) * Revert "Implement layout="zip" for Lambda/GCF, skipping lambdex" ([pantsbuild#19071](pantsbuild#19071)) * Remove unnecessary interpreter constraint config. ([pantsbuild#19065](pantsbuild#19065)) * Use hand-written change detection for PR/push job trimming ([pantsbuild#19045](pantsbuild#19045)) * Do not build wheels on push, since that is now accomplished by the release job. ([pantsbuild#19063](pantsbuild#19063)) * Additional release job publishing fixes ([pantsbuild#19058](pantsbuild#19058)) * Change CI trigger to includelist `main` and `2.*.x` ([pantsbuild#19059](pantsbuild#19059)) * Release doc and script fixes ([pantsbuild#19043](pantsbuild#19043)) * Update cherry-picker to use `pull_request_target` ([pantsbuild#19048](pantsbuild#19048)) * Prepare `2.16.0rc3`. ([pantsbuild#19044](pantsbuild#19044)) * Prepare `2.15.1`. ([pantsbuild#19042](pantsbuild#19042)) * Fixup welcome-newcomers.yaml ([pantsbuild#19039](pantsbuild#19039))
Internal changes: * Fix TypedDict construction ([pantsbuild#19166](pantsbuild#19166)) * Have package_dists.InvalidEntryPoint subclass InvalidFieldException ([pantsbuild#19149](pantsbuild#19149)) * Check for `CI=true`, not `CI=1` for cherry-picking ([pantsbuild#19141](pantsbuild#19141)) * Set up remote caching in CI ([pantsbuild#19144](pantsbuild#19144)) * refactor(internal): adjust pants_venv venv_dir calculation ([pantsbuild#19140](pantsbuild#19140)) * Prepare `2.16.0rc4`. ([pantsbuild#19146](pantsbuild#19146)) * Warn about `files()` in PEXes in one place ([pantsbuild#19027](pantsbuild#19027)) * Drop our explicit dep on `syn` ([pantsbuild#19134](pantsbuild#19134)) * Fix auto-cherry-picker's merge-conflicts ([pantsbuild#19125](pantsbuild#19125)) * Use explicit depths on fetches when running cherry-picks in CI ([pantsbuild#19127](pantsbuild#19127)) * Make determine_python() pin to 3.9 ([pantsbuild#19116](pantsbuild#19116)) * Upgrade to `actions/checkout@v3` ([pantsbuild#19112](pantsbuild#19112)) * Run the cherry pick script with `-x` for debugging ([pantsbuild#19095](pantsbuild#19095)) * Add more linux x86 test CI shards ([pantsbuild#19099](pantsbuild#19099)) * Use a trait for remote ByteStore network implementation ([pantsbuild#19050](pantsbuild#19050)) * Increase the logging of release version file publishing. ([pantsbuild#19092](pantsbuild#19092)) * Remove the Toolchain plugin ([pantsbuild#18978](pantsbuild#18978)) * Fix bad merge of pantsbuild#18829. ([pantsbuild#19080](pantsbuild#19080)) * Revert "Implement layout="zip" for Lambda/GCF, skipping lambdex" ([pantsbuild#19071](pantsbuild#19071)) * Remove unnecessary interpreter constraint config. ([pantsbuild#19065](pantsbuild#19065)) * Use hand-written change detection for PR/push job trimming ([pantsbuild#19045](pantsbuild#19045)) * Do not build wheels on push, since that is now accomplished by the release job. ([pantsbuild#19063](pantsbuild#19063)) * Additional release job publishing fixes ([pantsbuild#19058](pantsbuild#19058)) * Change CI trigger to includelist `main` and `2.*.x` ([pantsbuild#19059](pantsbuild#19059)) * Release doc and script fixes ([pantsbuild#19043](pantsbuild#19043)) * Update cherry-picker to use `pull_request_target` ([pantsbuild#19048](pantsbuild#19048)) * Prepare `2.16.0rc3`. ([pantsbuild#19044](pantsbuild#19044)) * Prepare `2.15.1`. ([pantsbuild#19042](pantsbuild#19042)) * Fixup welcome-newcomers.yaml ([pantsbuild#19039](pantsbuild#19039))
Internal changes: * Fix TypedDict construction ([pantsbuild#19166](pantsbuild#19166)) * Have package_dists.InvalidEntryPoint subclass InvalidFieldException ([pantsbuild#19149](pantsbuild#19149)) * Check for `CI=true`, not `CI=1` for cherry-picking ([pantsbuild#19141](pantsbuild#19141)) * Set up remote caching in CI ([pantsbuild#19144](pantsbuild#19144)) * refactor(internal): adjust pants_venv venv_dir calculation ([pantsbuild#19140](pantsbuild#19140)) * Prepare `2.16.0rc4`. ([pantsbuild#19146](pantsbuild#19146)) * Warn about `files()` in PEXes in one place ([pantsbuild#19027](pantsbuild#19027)) * Drop our explicit dep on `syn` ([pantsbuild#19134](pantsbuild#19134)) * Fix auto-cherry-picker's merge-conflicts ([pantsbuild#19125](pantsbuild#19125)) * Use explicit depths on fetches when running cherry-picks in CI ([pantsbuild#19127](pantsbuild#19127)) * Make determine_python() pin to 3.9 ([pantsbuild#19116](pantsbuild#19116)) * Upgrade to `actions/checkout@v3` ([pantsbuild#19112](pantsbuild#19112)) * Run the cherry pick script with `-x` for debugging ([pantsbuild#19095](pantsbuild#19095)) * Add more linux x86 test CI shards ([pantsbuild#19099](pantsbuild#19099)) * Use a trait for remote ByteStore network implementation ([pantsbuild#19050](pantsbuild#19050)) * Increase the logging of release version file publishing. ([pantsbuild#19092](pantsbuild#19092)) * Remove the Toolchain plugin ([pantsbuild#18978](pantsbuild#18978)) * Fix bad merge of pantsbuild#18829. ([pantsbuild#19080](pantsbuild#19080)) * Revert "Implement layout="zip" for Lambda/GCF, skipping lambdex" ([pantsbuild#19071](pantsbuild#19071)) * Remove unnecessary interpreter constraint config. ([pantsbuild#19065](pantsbuild#19065)) * Use hand-written change detection for PR/push job trimming ([pantsbuild#19045](pantsbuild#19045)) * Do not build wheels on push, since that is now accomplished by the release job. ([pantsbuild#19063](pantsbuild#19063)) * Additional release job publishing fixes ([pantsbuild#19058](pantsbuild#19058)) * Change CI trigger to includelist `main` and `2.*.x` ([pantsbuild#19059](pantsbuild#19059)) * Release doc and script fixes ([pantsbuild#19043](pantsbuild#19043)) * Update cherry-picker to use `pull_request_target` ([pantsbuild#19048](pantsbuild#19048)) * Prepare `2.16.0rc3`. ([pantsbuild#19044](pantsbuild#19044)) * Prepare `2.15.1`. ([pantsbuild#19042](pantsbuild#19042)) * Fixup welcome-newcomers.yaml ([pantsbuild#19039](pantsbuild#19039))
Internal changes: * Fix TypedDict construction ([#19166](#19166)) * Have package_dists.InvalidEntryPoint subclass InvalidFieldException ([#19149](#19149)) * Check for `CI=true`, not `CI=1` for cherry-picking ([#19141](#19141)) * Set up remote caching in CI ([#19144](#19144)) * refactor(internal): adjust pants_venv venv_dir calculation ([#19140](#19140)) * Prepare `2.16.0rc4`. ([#19146](#19146)) * Warn about `files()` in PEXes in one place ([#19027](#19027)) * Drop our explicit dep on `syn` ([#19134](#19134)) * Fix auto-cherry-picker's merge-conflicts ([#19125](#19125)) * Use explicit depths on fetches when running cherry-picks in CI ([#19127](#19127)) * Make determine_python() pin to 3.9 ([#19116](#19116)) * Upgrade to `actions/checkout@v3` ([#19112](#19112)) * Run the cherry pick script with `-x` for debugging ([#19095](#19095)) * Add more linux x86 test CI shards ([#19099](#19099)) * Use a trait for remote ByteStore network implementation ([#19050](#19050)) * Increase the logging of release version file publishing. ([#19092](#19092)) * Remove the Toolchain plugin ([#18978](#18978)) * Fix bad merge of #18829. ([#19080](#19080)) * Revert "Implement layout="zip" for Lambda/GCF, skipping lambdex" ([#19071](#19071)) * Remove unnecessary interpreter constraint config. ([#19065](#19065)) * Use hand-written change detection for PR/push job trimming ([#19045](#19045)) * Do not build wheels on push, since that is now accomplished by the release job. ([#19063](#19063)) * Additional release job publishing fixes ([#19058](#19058)) * Change CI trigger to includelist `main` and `2.*.x` ([#19059](#19059)) * Release doc and script fixes ([#19043](#19043)) * Update cherry-picker to use `pull_request_target` ([#19048](#19048)) * Prepare `2.16.0rc3`. ([#19044](#19044)) * Prepare `2.15.1`. ([#19042](#19042)) * Fixup welcome-newcomers.yaml ([#19039](#19039))
The "uname -mps" output on my machine includes odd chars and is really long:
As of #18916, the entire python version is a fingerprint instead of 2 chars "39". The longer fingerprint plus my excessively long processor name trips over the shebang max length (127 chars).
Once the python interpreter becomes longer than the shebang max length, that triggers distlib's long shebang logic (which writes the shebangs for scripts like
pip
in thevenv/bin
dir), But, that distlib logic breaks with the special uname chars on my machine because distlib does not escape the special chars in the path.https://github.com/pypa/distlib/blob/0.3.6/distlib/scripts.py#L152-L157
So, this bypasses the whole mess by generating one fingerprint for uname + python version and then use that fingerprint (which doesn't have any special chars) in the venv dir name.