tag:github.com,2008:https://github.com/bazel-contrib/rules_python/releases Tags from rules_python 2026-02-23T16:37:20Z tag:github.com,2008:Repository/101780532/1.9.0 2026-03-04T04:01:28Z 1.9.0 <p>feat(pypi): make whl_library reproducible under pipstar (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3589">#3589</a>) (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3632">#3632</a>)</p> <p>This is testing the new API to make use of remote caching mechanisms.</p> <p>Needs: <a class="issue-link js-issue-link" href="https://github.com/bazelbuild/bazel/pull/27634">bazelbuild/bazel#27634</a></p> <p>---------</p> <p>(cherry picked from commit <a class="commit-link" href="https://github.com/bazel-contrib/rules_python/commit/06aa36daba6377bdeaf90309c73da22ca1afa153"><tt>06aa36d</tt></a>)</p> <p>Co-authored-by: Ignas Anikevicius &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/101780532/1.9.0-rc1 2026-02-23T16:40:34Z 1.9.0-rc1 <p>feat(pypi): make whl_library reproducible under pipstar (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3589">#3589</a>) (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3632">#3632</a>)</p> <p>This is testing the new API to make use of remote caching mechanisms.</p> <p>Needs: <a class="issue-link js-issue-link" href="https://github.com/bazelbuild/bazel/pull/27634">bazelbuild/bazel#27634</a></p> <p>---------</p> <p>(cherry picked from commit <a class="commit-link" href="https://github.com/bazel-contrib/rules_python/commit/06aa36daba6377bdeaf90309c73da22ca1afa153"><tt>06aa36d</tt></a>)</p> <p>Co-authored-by: Ignas Anikevicius &lt;[email protected]&gt;</p> github-actions tag:github.com,2008:Repository/101780532/1.9.0-rc0 2026-02-23T01:13:26Z 1.9.0-rc0 <p>chore: repleace version marker in features.bzl</p> <p>(cherry picked from commit <a class="commit-link" href="https://github.com/bazel-contrib/rules_python/commit/3ddb6015b7cc575665c78c23d3d75c373aeb89a5"><tt>3ddb601</tt></a>)</p> github-actions tag:github.com,2008:Repository/101780532/1.8.5 2026-02-23T00:56:02Z 1.8.5 <p>fix(pypi): normalize extras in requirement strings per PEP 685 (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3588">#3588</a>)</p> <p>## Summary</p> <p>Extras parsed from requirement strings (e.g., from `requirements.txt`) <br />were not being normalized, causing mismatches when evaluating PEP 508 <br />marker expressions. For example, `sqlalchemy[postgresql-psycopg2binary]` <br />would fail to resolve `psycopg2-binary` as a transitive dependency <br />because the wheel METADATA marker expression `extra == <br />"postgresql_psycopg2binary"` uses the underscore-normalized form (per <br />PEP 685), while the extras set retained the original hyphenated form <br />from the requirement string.</p> <p>## Before</p> <p>``` <br /># requirements.txt <br />sqlalchemy[postgresql-psycopg2binary]==2.0.36</p> <p># Parsed extras: ["postgresql-psycopg2binary"] <br /># Marker evaluation: "postgresql-psycopg2binary" != "postgresql_psycopg2binary" -&gt; MISS <br /># Result: psycopg2-binary NOT included as a dependency <br />```</p> <p>## After</p> <p>``` <br /># requirements.txt <br />sqlalchemy[postgresql-psycopg2binary]==2.0.36</p> <p># Parsed extras: ["postgresql_psycopg2binary"] (normalized) <br /># Marker evaluation: "postgresql_psycopg2binary" == "postgresql_psycopg2binary" -&gt; MATCH <br /># Result: psycopg2-binary correctly included as a dependency <br />```</p> <p>## Changes</p> <p>- **`python/private/pypi/pep508_requirement.bzl`**: Apply <br />`normalize_name()` to each extra during requirement parsing, consistent <br />with how the package name is already normalized. <br />- **`tests/pypi/pep508/requirement_tests.bzl`**: Updated existing test <br />expectation for case normalization and added test case for hyphenated <br />extras <br />(`sqlalchemy[asyncio,postgresql-psycopg2binary,postgresql-asyncpg]`). <br />- **`tests/pypi/pep508/deps_tests.bzl`**: Added <br />`test_extras_with_hyphens_are_normalized` integration test confirming <br />that dependencies gated behind hyphenated extras are correctly resolved. <br />- **`CHANGELOG.md`**: Added entry under Unreleased &gt; Fixed.</p> <p><span class="issue-keyword tooltipped tooltipped-se">Fixes</span> <a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/issues/3587">#3587</a></p> <p>---------</p> <p>Co-authored-by: Ignas Anikevicius &lt;[email protected]&gt; <br />(cherry picked from commit <a class="commit-link" href="https://github.com/bazel-contrib/rules_python/commit/9fe42b1f0badfc258b159dbc0a05a8392c0234e5"><tt>9fe42b1</tt></a>)</p> github-actions tag:github.com,2008:Repository/101780532/1.8.4 2026-02-11T12:17:17Z 1.8.4 <p>fix(pipstar): handle a corner case for compatible version evaluation (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3583">#…</a></p> <p><a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3583">…3583</a>)</p> <p>It seems that there was one corner case that was left unhandled. <br />In theory we should also handle `3 ~= 3.0.0`, but the fix for that may <br />be a little more involved and I want to leave it for later. However, <br />that case is unlikely to occur in reality because `LHS` for our cases <br />will most likely have 2 components.</p> <p>Whilst at it prepare for the patch release (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/issues/3584">#3584</a>).</p> <p><span class="issue-keyword tooltipped tooltipped-se">Fixes</span> <a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/issues/3580">#3580</a></p> <p>(cherry picked from commit <a class="commit-link" href="https://github.com/bazel-contrib/rules_python/commit/a32c74465d9cc328485bc440a933c0447572fa6e"><tt>a32c744</tt></a>)</p> github-actions tag:github.com,2008:Repository/101780532/1.8.3 2026-01-28T02:21:38Z 1.8.3 <p>fix(pip): simply extract whl contents to the current directory (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3549">#3549</a>)</p> <p>Before we would try to get the whl path and extract to the sibling <br />directory. Whilst this is not failing right now, technically this is not <br />the best behaviour because the whl itself may come from elsewhere. This <br />PR is simplifying code to see if it helps solve an issue on Windows.</p> <p><span class="issue-keyword tooltipped tooltipped-se">Fixes</span> <a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/issues/3543">#3543</a></p> <p>(cherry picked from commit <a class="commit-link" href="https://github.com/bazel-contrib/rules_python/commit/abe2699e3d4c8a523f82154afd101d5b26bc8f0b"><tt>abe2699</tt></a>)</p> github-actions tag:github.com,2008:Repository/101780532/1.8.2 2026-01-25T03:31:53Z 1.8.2 <p>fix: explicitly symlink all .so files, not just ones with lib prefix (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3538">#…</a></p> <p><a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3538">…3538</a>)</p> <p>Some packages, such as tensorflow, have regular C libraries that don't <br />use <br />a `lib*` suffix. The symlink optimization logic wouldn't link these <br />directly, <br />which made the dynamic linker unable to find their dependencies.</p> <p>To fix, explicitly symlink all `.so` files, since we can't determine <br />which <br />are Python C modules and regular C libraries.</p> <p><span class="issue-keyword tooltipped tooltipped-se">Fixes</span> <a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/issues/3529">#3529</a></p> <p>(cherry picked from commit <a class="commit-link" href="https://github.com/bazel-contrib/rules_python/commit/b4ec825850fb27e5568165d0a388f5cc4b2b84a2"><tt>b4ec825</tt></a>)</p> github-actions tag:github.com,2008:Repository/101780532/1.8.1 2026-01-21T01:07:42Z 1.8.1 <p>fix(pipstar): correctly handle complex self deps (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3527">#3527</a>)</p> <p>It seems that with the `pipstar` port there was a typo and the initial <br />tests that we had for Python were insufficient to catch such a <br />regression.</p> <p>The second if statement where we loop through packages again had a `req` <br />instead of `req_` in the `if` statement and the test coverage was not <br />sufficient.</p> <p>I have abstracted the if statement into a function to easier spot such <br />issues and added an extra test to ensure that a regression would be <br />actually caught. With this the Starlark test suite is now officially <br />more robust than the Python version.</p> <p><span class="issue-keyword tooltipped tooltipped-se">Fixes</span> <a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/issues/3524">#3524</a></p> <p>---------</p> <p>Co-authored-by: Richard Levasseur &lt;[email protected]&gt; <br />(cherry picked from commit <a class="commit-link" href="https://github.com/bazel-contrib/rules_python/commit/c52aeaa6e0a5e07fc11a9d7a5ee94bd1d379d515"><tt>c52aeaa</tt></a>)</p> github-actions tag:github.com,2008:Repository/101780532/1.8.0 2026-01-17T04:32:54Z 1.8.0 <p>fix(pipstar): Handle dep appearing in extra both conditionally and un…</p> <p>…conditionally (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3513">#3513</a>)</p> <p><span class="issue-keyword tooltipped tooltipped-se">Fixes</span> <a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/issues/3511">#3511</a></p> <p>(cherry picked from commit <a class="commit-link" href="https://github.com/bazel-contrib/rules_python/commit/5fe50fbf085bd404f6124eda85c0952c41b0c370"><tt>5fe50fb</tt></a>)</p> github-actions tag:github.com,2008:Repository/101780532/1.8.0-rc4 2026-01-15T06:20:15Z 1.8.0-rc4 <p>fix(pipstar): Handle dep appearing in extra both conditionally and un…</p> <p>…conditionally (<a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/pull/3513">#3513</a>)</p> <p><span class="issue-keyword tooltipped tooltipped-se">Fixes</span> <a class="issue-link js-issue-link" href="https://github.com/bazel-contrib/rules_python/issues/3511">#3511</a></p> <p>(cherry picked from commit <a class="commit-link" href="https://github.com/bazel-contrib/rules_python/commit/5fe50fbf085bd404f6124eda85c0952c41b0c370"><tt>5fe50fb</tt></a>)</p> github-actions