Skip to content

Commit abea96e

Browse files
committed
Dropped support for Python 3.9, upgrade default dev version to 3.10, and add support for Python 3.14
Signed-off-by: Tomas Pereira de Vasconcelos <tomasvasconcelos1@gmail.com>
1 parent 321c4c6 commit abea96e

24 files changed

Lines changed: 57 additions & 152 deletions

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ concurrency:
1616
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
1717

1818
jobs:
19-
# Run static checks only for Ubuntu and Python 3.9
19+
# Run static checks only for Ubuntu and the lowest support version of Python
2020
static-checks:
2121
name: Static checks
2222
runs-on: ubuntu-latest
@@ -25,7 +25,7 @@ jobs:
2525
- uses: actions/checkout@v5
2626
- uses: ./.github/actions/setup-python
2727
with:
28-
python-version: "3.9"
28+
python-version: "3.10"
2929
requirements: tox
3030
# Instead of running all checks in one task (i.e., `tox -m static`),
3131
# we'll instead run them one-by-one, so that it's easier to
@@ -47,11 +47,11 @@ jobs:
4747
strategy:
4848
matrix:
4949
python-version:
50-
- "3.9"
5150
- "3.10"
5251
- "3.11"
5352
- "3.12"
5453
- "3.13"
54+
- "3.14"
5555
os:
5656
- ubuntu-latest
5757
# There shouldn't be any behavior differences between OSes,

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
fetch-depth: 0
4040
- uses: ./.github/actions/setup-python
4141
with:
42-
python-version: "3.9"
42+
python-version: "3.10"
4343
requirements: tox
4444
- name: Build source (sdist) and binary (wheel) distributions
4545
run: tox -e build-dists
@@ -112,7 +112,7 @@ jobs:
112112
fetch-depth: 0
113113
- uses: ./.github/actions/setup-python
114114
with:
115-
python-version: "3.9"
115+
python-version: "3.10"
116116
requirements: tox
117117
- name: Generate release notes
118118
run: tox -e release-notes

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
default_language_version:
2-
python: python3.9
2+
python: python3.10
33

44
repos:
55
- repo: https://github.com/pre-commit/pre-commit-hooks

.readthedocs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ version: 2
55
build:
66
os: ubuntu-lts-latest
77
tools:
8-
python: "3.9"
8+
python: "3.10"
99
apt_packages:
1010
# chromium-browser is required by Kaleido to generate Plotly figures via fig.write_image()
1111
- chromium-browser

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# >>> Variables
33
# ==============================================================
44

5-
BASE_PYTHON ?= python3.9
5+
BASE_PYTHON ?= python3.10
66

77
VENV_PATH := .venv
88
VENV_BIN := $(VENV_PATH)/bin

docs/development/contributing.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Here are our guidelines for setting a **working** development environment. Most
2626
:::{admonition} Prerequisites
2727
:class: important
2828

29-
To follow along with this guide, you will need to have [git](https://git-scm.com/), [make](https://www.gnu.org/software/make/), and [uv](https://docs.astral.sh/uv/) installed on your system. We recommend using [uv](https://docs.astral.sh/uv/guides/install-python/) to also manage your Python installations. For this project you will need Python 3.9 or higher.
29+
To follow along with this guide, you will need to have [git](https://git-scm.com/), [make](https://www.gnu.org/software/make/), and [uv](https://docs.astral.sh/uv/) installed on your system. We recommend using [uv](https://docs.astral.sh/uv/guides/install-python/) to also manage your Python installations. For this project you will need Python 3.10 or higher.
3030
:::
3131

3232
First, you will need to [clone](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo#step-2-create-a-local-clone-of-your-fork) this repository. For this, make sure you have a [GitHub account](https://github.com/join), fork ridgeplot by clicking the [Fork](https://github.com/tpvasconcelos/ridgeplot/fork) button, and clone the main repository locally (_e.g.,_ using SSH)
@@ -55,10 +55,10 @@ The following command will:
5555
make init
5656
```
5757

58-
The default and **recommended** base Python is `python3.9`. However, if you encounter any issues or don't have this specific version installed on your system, you can change by it exporting the `BASE_PYTHON` environment variable to a valid executable you do have installed. Please note that we no longer support any Python versions lower than 3.9. For example, to use `python3.13`, you should run:
58+
The default and **recommended** base Python is `python3.10`. However, if you encounter any issues or don't have this specific version installed on your system, you can change by it exporting the `BASE_PYTHON` environment variable to a valid executable you do have installed. Please note that we no longer support any Python versions lower than 3.10. For example, to use `python3.14`, you should run:
5959

6060
```shell
61-
BASE_PYTHON=python3.13 make init
61+
BASE_PYTHON=python3.14 make init
6262
```
6363

6464
If for whatever reason you don't have a working internet connection (✈️, ⛵, 🏕️, 🚀, etc.), you can try exposing the `OFFLINE=1` environment variable. This will only work if compatible packages have already been cached by `uv` on your system.

docs/reference/changelog.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ This document outlines the list of changes to ridgeplot between each release. Fo
55
Unreleased changes
66
------------------
77

8+
- Add support for Python 3.14, in accordance with the official Python support policy[^1] ({gh-pr}`???`)
9+
- Dropped support for Python 3.9, in accordance with the official Python support policy[^1] ({gh-pr}`???`)
810
- Bump project classification from Pre-Alpha to Alpha ({gh-pr}`336`)
9-
- Bump actions/github-script from 7 to 8 ({gh-pr}`338`)
1011

1112
### CI/CD
1213

14+
- Bump actions/github-script from 7 to 8 ({gh-pr}`338`)
1315
- pre-commit autoupdate ({gh-pr}`340`)
1416

1517
---

misc/brand/logo.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
},
4747
"outputs": [],
4848
"source": [
49-
"from typing import TYPE_CHECKING, Union\n",
49+
"from typing import TYPE_CHECKING\n",
5050
"\n",
5151
"import matplotlib.pyplot as plt\n",
5252
"import numpy as np\n",
@@ -70,7 +70,7 @@
7070
},
7171
"outputs": [],
7272
"source": [
73-
"ColorsRow = Union[str, list[str]]\n",
73+
"ColorsRow = str | list[str]\n",
7474
"Colors = tuple[ColorsRow, ColorsRow, ColorsRow, ColorsRow]\n",
7575
"\n",
7676
"\n",

mypy.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[mypy]
2-
python_version = 3.9
2+
python_version = 3.10
33

44
# Import discovery ---
55
files = src/ridgeplot, tests, docs, cicd_utils

pyproject.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ classifiers = [
2222
"License :: OSI Approved :: MIT License",
2323
"Natural Language :: English",
2424
"Programming Language :: Python :: 3",
25-
"Programming Language :: Python :: 3.9",
2625
"Programming Language :: Python :: 3.10",
2726
"Programming Language :: Python :: 3.11",
2827
"Programming Language :: Python :: 3.12",
2928
"Programming Language :: Python :: 3.13",
29+
"Programming Language :: Python :: 3.14",
3030
"Programming Language :: Python :: Implementation :: CPython",
3131
"Topic :: Software Development",
3232
"Topic :: Scientific/Engineering",
@@ -37,13 +37,12 @@ classifiers = [
3737
keywords = [
3838
"ridgeline", "ridgeplot", "joyplot", "ggridges", "ridges", "ridge", "plot", "plotting", "distplot", "plotly", "data-visualization", "visualization", "data-science", "statistics", "ggplot"
3939
]
40-
requires-python = ">=3.9"
40+
requires-python = ">=3.10"
4141
dependencies = [
4242
"numpy>=1",
4343
"plotly>=5.20", # The `fillgradient` option was added in 5.20
4444
"statsmodels>=0.12,!=0.14.2", # See GH197 for details
4545
"typing-extensions",
46-
'importlib-resources; python_version<"3.10"',
4746
]
4847

4948
[project.urls]

0 commit comments

Comments
 (0)