Skip to content

Commit 578b018

Browse files
committed
feat: Add back support for Python 3.9.
1 parent 68da92a commit 578b018

File tree

9 files changed

+452
-40
lines changed

9 files changed

+452
-40
lines changed

.github/workflows/.source.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ jobs:
1313
strategy:
1414
matrix:
1515
python-binary:
16+
- python3.9
1617
- python3.10
1718
- python3.11
1819
- python3.12

.gitlab/pipelines/.beta.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ Run E2E Tests:
5757
parallel:
5858
matrix:
5959
- PYTHON_BINARY:
60+
- python3.9
6061
- python3.10
6162
- python3.11
6263
- python3.12

.gitlab/pipelines/.production.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ Create Package:
5757
parallel:
5858
matrix:
5959
- PYTHON_BINARY:
60+
- python3.9
6061
- python3.10
6162
- python3.11
6263
- python3.12
@@ -78,22 +79,22 @@ Publish Package:
7879
artifacts: true
7980
parallel:
8081
matrix:
81-
- PYTHON_TAG: ["cp310", "cp311", "cp312", "cp313"]
82+
- PYTHON_TAG: ["cp39", "cp310", "cp311", "cp312", "cp313"]
8283
WHEEL_ARCH: arm64
8384
WHEEL_OS: macosx
8485
ARTIFACTORY_ARCH: arm64
8586
ARTIFACTORY_OS: macosx
86-
- PYTHON_TAG: ["cp310", "cp311", "cp312", "cp313"]
87+
- PYTHON_TAG: ["cp39", "cp310", "cp311", "cp312", "cp313"]
8788
WHEEL_ARCH: x86_64
8889
WHEEL_OS: macosx
8990
ARTIFACTORY_ARCH: x86_64
9091
ARTIFACTORY_OS: macosx
91-
- PYTHON_TAG: ["cp310", "cp311", "cp312", "cp313"]
92+
- PYTHON_TAG: ["cp39", "cp310", "cp311", "cp312", "cp313"]
9293
WHEEL_ARCH: aarch64
9394
WHEEL_OS: manylinux
9495
ARTIFACTORY_ARCH: aarch64
9596
ARTIFACTORY_OS: linux
96-
- PYTHON_TAG: ["cp310", "cp311", "cp312", "cp313"]
97+
- PYTHON_TAG: ["cp39", "cp310", "cp311", "cp312", "cp313"]
9798
WHEEL_ARCH: x86_64
9899
WHEEL_OS: manylinux
99100
ARTIFACTORY_ARCH: x86_64

.gitlab/pipelines/.source.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ Build:
6060
parallel:
6161
matrix:
6262
- PYTHON_BINARY:
63+
- python3.9
6364
- python3.10
6465
- python3.11
6566
- python3.12

.release_notes/.unreleased.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
<!-- To avoid merge conflicts, add items at an arbitrary place in the list. -->
2+
23
- Add `msc config validate` command.
34
- Added partial file caching with configurable chunk sizes, prefetch control, and source version validation for improved performance on large files.
5+
- Add back support for Python 3.9 (end of life starting October 2025).

flake.lock

Lines changed: 18 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@
1616
repo = "nixpkgs";
1717
ref = "refs/heads/nixos-unstable";
1818
};
19+
20+
# Python 3.9 (EOL October 2025) was dropped early for NixOS 25.05.
21+
#
22+
# https://github.com/NixOS/nixpkgs/pull/397258
23+
nixpkgs-python39 = {
24+
type = "github";
25+
owner = "NixOS";
26+
repo = "nixpkgs";
27+
# Commit right before drop.
28+
rev = "1076d576f5e8916f240d094a3c381d3e121800ba";
29+
};
1930
};
2031

2132
outputs =
@@ -45,7 +56,8 @@
4556
let
4657
# Attribute set of development shell name to Python package.
4758
devShellPythonPackages = with inputs.nixpkgs.legacyPackages.${system}; {
48-
default = python310;
59+
default = inputs.nixpkgs-python39.legacyPackages.${system}.python39;
60+
"python3.9" = inputs.nixpkgs-python39.legacyPackages.${system}.python39;
4961
"python3.10" = python310;
5062
"python3.11" = python311;
5163
"python3.12" = python312;

pyproject.toml

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ authors = [
1313
]
1414
license = "Apache-2.0"
1515
readme = "README.md"
16-
requires-python = ">=3.10,<4"
16+
requires-python = ">=3.9,<4"
1717
classifiers = [
1818
"License :: OSI Approved :: Apache Software License",
1919
"Programming Language :: Rust",
2020
"Programming Language :: Python :: Implementation :: CPython",
2121
"Programming Language :: Python :: Implementation :: PyPy",
2222
"Programming Language :: Python :: 3",
23+
"Programming Language :: Python :: 3.9",
2324
"Programming Language :: Python :: 3.10",
2425
"Programming Language :: Python :: 3.11",
2526
"Programming Language :: Python :: 3.12",
@@ -84,7 +85,11 @@ hydra-core = [
8485
"hydra-core>=1,<2"
8586
]
8687
numpy = [
87-
"numpy>=2.1,<3"
88+
"numpy>=2,<2.1; python_version == '3.9'",
89+
"numpy>=2.1,<3; python_version >= '3.10'"
90+
]
91+
ray = [
92+
"ray>=2.48,<3"
8893
]
8994
torch = [
9095
"torch>=2.8,<3"
@@ -93,10 +98,9 @@ xarray = [
9398
"xarray>=2024.07.0"
9499
]
95100
zarr = [
96-
"zarr>=2.18.3,<3"
97-
]
98-
ray = [
99-
"ray>=2.48,<3"
101+
"zarr>=2.18.2,<3; python_version == '3.9'",
102+
"zarr>=2.18.3,<3; python_version == '3.10'",
103+
"zarr>=2.18.7,<3; python_version >= '3.11'"
100104
]
101105

102106
[dependency-groups]
@@ -149,12 +153,6 @@ features = ["pyo3/extension-module"]
149153
manifest-path = "rust/Cargo.toml"
150154
python-packages = ["multistorageclient", "multistorageclient_rust", "hydra_plugins"]
151155

152-
[tool.pip-licenses]
153-
format = "markdown"
154-
order = "license"
155-
output-file = ".licenses.md"
156-
with-urls = true
157-
158156
[tool.poetry]
159157
packages = [
160158
{ include = "multistorageclient", from = "src" }

0 commit comments

Comments
 (0)