Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@ jobs:
strategy:
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
# TODO: unpin the patch versions of Python 3.13/3.14 once stubtest failures are fixed
python-version: ["3.10", "3.11", "3.12", "3.13.12", "3.14.3"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
fail-fast: false

steps:
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/stubtest_stdlib.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ jobs:
strategy:
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
# TODO: unpin the patch versions of Python 3.13/3.14 once stubtest failures are fixed
python-version: ["3.10", "3.11", "3.12", "3.13.12", "3.14.3"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
fail-fast: false

steps:
Expand Down
10 changes: 10 additions & 0 deletions stdlib/@tests/stubtest_allowlists/darwin-py313.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# =============
# 3.13 and 3.14
# =============

# Starting with Python 3.13.13, these methods accept None for the "scheduler"
# and "setpgroup" parameters, but would raise a TypeError with Python 3.13.12
# and earlier. For compatibility reasons, we don't allow None in the stubs.
os.posix_spawn
os.posix_spawnp

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I support this. When we add support for 3.15, we should probably allow None for the parameter in a sys.version_info >= (3, 15) branch rather than adding another allowlist entry, though. (We could maybe do that now, so we don't forget?)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hah, I was actually deliberating myself whether we should already add the 3.15 branch, but decided against it due to our general policy. But if you had the same idea, I think it makes sense to add it.

# =======
# >= 3.13
# =======
Expand Down
10 changes: 10 additions & 0 deletions stdlib/@tests/stubtest_allowlists/darwin-py314.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# =============
# 3.13 and 3.14
# =============

# Starting with Python 3.14.4, these methods accept None for the "scheduler"
# and "setpgroup" parameters, but would raise a TypeError with Python 3.13.12
# and earlier. For compatibility reasons, we don't allow None in the stubs.
os.posix_spawn
os.posix_spawnp

# =========
# 3.14 only
# =========
Expand Down
9 changes: 9 additions & 0 deletions stdlib/@tests/stubtest_allowlists/linux-py313.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# =============
# 3.13 and 3.14
# =============

# Starting with Python 3.13.13, these methods accept None for the "scheduler"
# and "setpgroup" parameters, but would raise a TypeError with Python 3.13.12
# and earlier. For compatibility reasons, we don't allow None in the stubs.
os.posix_spawn
os.posix_spawnp
10 changes: 10 additions & 0 deletions stdlib/@tests/stubtest_allowlists/linux-py314.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# =============
# 3.13 and 3.14
# =============

# Starting with Python 3.14.4, these methods accept None for the "scheduler"
# and "setpgroup" parameters, but would raise a TypeError with Python 3.13.12
# and earlier. For compatibility reasons, we don't allow None in the stubs.
os.posix_spawn
os.posix_spawnp

# =========
# 3.14 only
# =========
Expand Down
31 changes: 30 additions & 1 deletion stdlib/os/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -1532,7 +1532,36 @@ else:
def WSTOPSIG(status: int) -> int: ...
def WTERMSIG(status: int) -> int: ...

if sys.version_info >= (3, 13):
if sys.version_info >= (3, 15):
def posix_spawn(
path: StrOrBytesPath,
argv: _ExecVArgs,
env: _ExecEnv | None,
/,
*,
file_actions: Sequence[tuple[Any, ...]] | None = (),
setpgroup: int | None = None, # None allowed starting in 3.15
resetids: bool = False,
setsid: bool = False,
setsigmask: Iterable[int] = (),
setsigdef: Iterable[int] = (),
scheduler: tuple[Any, sched_param] | None = None, # None allowed starting in 3.15
) -> int: ...
def posix_spawnp(
path: StrOrBytesPath,
argv: _ExecVArgs,
env: _ExecEnv | None,
/,
*,
file_actions: Sequence[tuple[Any, ...]] | None = (),
setpgroup: int | None = None, # None allowed starting in 3.15
resetids: bool = False,
setsid: bool = False,
setsigmask: Iterable[int] = (),
setsigdef: Iterable[int] = (),
scheduler: tuple[Any, sched_param] | None = None, # None allowed starting in 3.15
) -> int: ...
elif sys.version_info >= (3, 13):
def posix_spawn(
path: StrOrBytesPath,
argv: _ExecVArgs,
Expand Down