Skip to content

Conversation

aignas
Copy link
Collaborator

@aignas aignas commented Jul 6, 2025

This is a continuation of #3058 where we define freethreaded platforms. They
need to be used only for particular python versions so I included an extra
marker configuration attribute where we are using pipstar marker evaluation
before using the platform.

I think this in general will be a useful tool to configure only particular
platforms for particular python versions

Fixes #2548, since this shows how we can define custom platforms
Work towards #2747

@aignas aignas force-pushed the exp/pypi-simplify-freethreaded branch from ce4dd59 to 594f026 Compare July 6, 2025 14:09
@aignas aignas force-pushed the exp/pypi-simplify-freethreaded branch 4 times, most recently from bc8424b to 5e66b5b Compare July 6, 2025 15:31
aignas added a commit to aignas/rules_python that referenced this pull request Jul 21, 2025
Before this we would pull all of the wheels that the user target
configuration would be compatible with and that meant that it was not
customizable. This also meant that there were a lot of footguns in the
configuration where the select statements were not really foolproof.

With this PR we select only those sources that need to be for the
declared configurations.

Freethreaded support is done by defining extra freethreaded platforms
using the new builder API (bazel-contrib#3063).

This is also changing the default platforms to be only the fully supported
platforms. This makes the testing easier and avoids us running into
compatibility issues during the roll out.

Work towards bazel-contrib#2747
Fixes bazel-contrib#2759
Fixes bazel-contrib#2849
aignas added a commit to aignas/rules_python that referenced this pull request Jul 21, 2025
Before this we would pull all of the wheels that the user target
configuration would be compatible with and that meant that it was not
customizable. This also meant that there were a lot of footguns in the
configuration where the select statements were not really foolproof.

With this PR we select only those sources that need to be for the
declared configurations.

Freethreaded support is done by defining extra freethreaded platforms
using the new builder API (bazel-contrib#3063).

This is also changing the default platforms to be only the fully supported
platforms. This makes the testing easier and avoids us running into
compatibility issues during the roll out.

Work towards bazel-contrib#2747
Fixes bazel-contrib#2759
Fixes bazel-contrib#2849
aignas added a commit to aignas/rules_python that referenced this pull request Jul 21, 2025
Before this we would pull all of the wheels that the user target
configuration would be compatible with and that meant that it was not
customizable. This also meant that there were a lot of footguns in the
configuration where the select statements were not really foolproof.

With this PR we select only those sources that need to be for the
declared configurations.

Freethreaded support is done by defining extra freethreaded platforms
using the new builder API (bazel-contrib#3063).

This is also changing the default platforms to be only the fully supported
platforms. This makes the testing easier and avoids us running into
compatibility issues during the roll out.

Work towards bazel-contrib#2747
Fixes bazel-contrib#2759
Fixes bazel-contrib#2849
@aignas aignas force-pushed the exp/pypi-simplify-freethreaded branch 3 times, most recently from b1720c1 to 57a4372 Compare July 21, 2025 07:14
@aignas aignas added the type: pip pip/pypi integration label Jul 21, 2025
@aignas aignas marked this pull request as ready for review July 21, 2025 07:18
@aignas aignas requested a review from groodt as a code owner July 21, 2025 07:18
aignas added a commit to aignas/rules_python that referenced this pull request Aug 3, 2025
Before this we would pull all of the wheels that the user target
configuration would be compatible with and that meant that it was not
customizable. This also meant that there were a lot of footguns in the
configuration where the select statements were not really foolproof.

With this PR we select only those sources that need to be for the
declared configurations.

Freethreaded support is done by defining extra freethreaded platforms
using the new builder API (bazel-contrib#3063).

This is also changing the default platforms to be only the fully supported
platforms. This makes the testing easier and avoids us running into
compatibility issues during the roll out.

Work towards bazel-contrib#2747
Fixes bazel-contrib#2759
Fixes bazel-contrib#2849
@aignas aignas force-pushed the exp/pypi-simplify-freethreaded branch from 57a4372 to 5fd3c86 Compare August 3, 2025 05:34
aignas added a commit to aignas/rules_python that referenced this pull request Aug 9, 2025
Before this we would pull all of the wheels that the user target
configuration would be compatible with and that meant that it was not
customizable. This also meant that there were a lot of footguns in the
configuration where the select statements were not really foolproof.

With this PR we select only those sources that need to be for the
declared configurations.

Freethreaded support is done by defining extra freethreaded platforms
using the new builder API (bazel-contrib#3063).

This is also changing the default platforms to be only the fully supported
platforms. This makes the testing easier and avoids us running into
compatibility issues during the roll out.

Work towards bazel-contrib#2747
Fixes bazel-contrib#2759
Fixes bazel-contrib#2849
@aignas aignas force-pushed the exp/pypi-simplify-freethreaded branch from 5fd3c86 to 66c133d Compare August 9, 2025 12:23
@aignas aignas marked this pull request as draft August 9, 2025 13:45
aignas added a commit to aignas/rules_python that referenced this pull request Aug 10, 2025
Before this we would pull all of the wheels that the user target
configuration would be compatible with and that meant that it was not
customizable. This also meant that there were a lot of footguns in the
configuration where the select statements were not really foolproof.

With this PR we select only those sources that need to be for the
declared configurations.

Freethreaded support is done by defining extra freethreaded platforms
using the new builder API (bazel-contrib#3063).

This is also changing the default platforms to be only the fully supported
platforms. This makes the testing easier and avoids us running into
compatibility issues during the roll out.

Work towards bazel-contrib#2747
Fixes bazel-contrib#2759
Fixes bazel-contrib#2849
aignas added a commit to aignas/rules_python that referenced this pull request Aug 10, 2025
Before this we would pull all of the wheels that the user target
configuration would be compatible with and that meant that it was not
customizable. This also meant that there were a lot of footguns in the
configuration where the select statements were not really foolproof.

With this PR we select only those sources that need to be for the
declared configurations.

Freethreaded support is done by defining extra freethreaded platforms
using the new builder API (bazel-contrib#3063).

This is also changing the default platforms to be only the fully supported
platforms. This makes the testing easier and avoids us running into
compatibility issues during the roll out.

Work towards bazel-contrib#2747
Fixes bazel-contrib#2759
Fixes bazel-contrib#2849
@aignas aignas force-pushed the exp/pypi-simplify-freethreaded branch from 66c133d to 040f77e Compare August 10, 2025 15:15
aignas added a commit to aignas/rules_python that referenced this pull request Aug 16, 2025
Before this we would pull all of the wheels that the user target
configuration would be compatible with and that meant that it was not
customizable. This also meant that there were a lot of footguns in the
configuration where the select statements were not really foolproof.

With this PR we select only those sources that need to be for the
declared configurations.

Freethreaded support is done by defining extra freethreaded platforms
using the new builder API (bazel-contrib#3063).

This is also changing the default platforms to be only the fully supported
platforms. This makes the testing easier and avoids us running into
compatibility issues during the roll out.

Work towards bazel-contrib#2747
Fixes bazel-contrib#2759
Fixes bazel-contrib#2849
aignas added a commit to aignas/rules_python that referenced this pull request Aug 16, 2025
Before this we would pull all of the wheels that the user target
configuration would be compatible with and that meant that it was not
customizable. This also meant that there were a lot of footguns in the
configuration where the select statements were not really foolproof.

With this PR we select only those sources that need to be for the
declared configurations.

Freethreaded support is done by defining extra freethreaded platforms
using the new builder API (bazel-contrib#3063).

This is also changing the default platforms to be only the fully supported
platforms. This makes the testing easier and avoids us running into
compatibility issues during the roll out.

Work towards bazel-contrib#2747
Fixes bazel-contrib#2759
Fixes bazel-contrib#2849
github-merge-queue bot pushed a commit that referenced this pull request Aug 17, 2025
Before this we would pull all of the wheels that the user target
configuration
would be compatible with and that meant that it was not customizable.
This also
meant that there were a lot of footguns in the configuration where the
select
statements were not really foolproof.

With this PR we select only those sources that need to be for the
declared
configurations.

Freethreaded support should be done by defining extra freethreaded
platforms
using the new builder API. It is done as a followup in #3063.

This is also changing the default platforms to be only the fully
supported
platforms. This makes the testing easier and avoids us running into
compatibility issues during the rollout.

Work towards #2747
Fixes #2759
Fixes #2849
DO NOT MERGE: stacked on bazel-contrib#3058

This is a continuation of bazel-contrib#3058 where we define freethreaded
platforms. They need to be used only for particular python versions
so I included an extra marker configuration attribute where we
are using pipstar marker evaluation before using the platform.

I think this in general will be a useful tool to configure only
particular platforms for particular python versions

Work towards bazel-contrib#2548, since this shows how we can define custom platforms
Work towards bazel-contrib#2747
@aignas aignas force-pushed the exp/pypi-simplify-freethreaded branch from 040f77e to 849456e Compare August 17, 2025 01:55
@aignas aignas marked this pull request as ready for review August 17, 2025 01:55
@rickeylev rickeylev added this pull request to the merge queue Aug 21, 2025
Merged via the queue into bazel-contrib:main with commit 56c9a34 Aug 21, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: pip pip/pypi integration
Projects
None yet
Development

Successfully merging this pull request may close these issues.

pip_parse: requirements_by_platform: allow custom defined platforms
2 participants