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
9 changes: 7 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ name: CI
on: push

env:
PYTHON_VERSIONS: '[ "3.10", "3.11", "3.12", "3.13.3" ]'
DEFAULT_PYTHON_VERSION: "3.14"
PYTHON_VERSIONS: '[ "3.11", "3.12", "3.13", "3.14" ]'

jobs:

Expand All @@ -19,6 +20,8 @@ jobs:
name: Static analysis on Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
needs: set-python-matrix
env:
PYTHON: ${{ matrix.python-version }}
strategy:
fail-fast: false # Ensure all matrix jobs run to completion
matrix:
Expand All @@ -44,6 +47,8 @@ jobs:
name: Testing on Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
needs: set-python-matrix
env:
PYTHON: ${{ matrix.python-version }}
strategy:
fail-fast: false # Ensure all matrix jobs run to completion
matrix:
Expand Down Expand Up @@ -111,7 +116,7 @@ jobs:

- uses: actions/setup-python@v6
with:
python-version: '3.10'
python-version: ${{ env.DEFAULT_PYTHON_VERSION }}

- uses: astral-sh/setup-uv@v6

Expand Down
7 changes: 4 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
PYTHON ?= 3.14
srcs = src docs/modules/ROOT/examples tests
UV_SYNC = uv sync --frozen --extra dev
UV_RUN = uv run --frozen --extra dev
UV_SYNC = uv sync --frozen --extra dev --python $(PYTHON)
UV_RUN = uv run --frozen --extra dev --python $(PYTHON)

## all: Run linter and tests.
.PHONY: all
Expand All @@ -19,7 +20,7 @@ install:
## install-corva-sdk: Install corva-sdk requirements.
.PHONY: install-corva-sdk
install-corva-sdk:
@uv sync --frozen
@uv sync --frozen --python $(PYTHON)

## install-dev: Install dev requirements.
.PHONY: install-dev
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ for more details.

## Install

`corva-sdk` supports Python `3.11` through `3.14` for app development.
Local development and CI use Python `3.14` by default.
Python `3.11` and `3.12` remain supported, but new apps should prefer `3.14`.

Install using `pip install corva-sdk`.

## Contributing
Expand Down
9 changes: 6 additions & 3 deletions docs/modules/ROOT/pages/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ Documentation for version *{page-version}*.

== Install

{corva-sdk} requires Python 3.9.
{corva-sdk} supports Python 3.11 through 3.14 for apps
and uses Python 3.14 by default for local development and CI.
Python 3.11 and 3.12 remain supported, but new apps should prefer Python 3.14.

Installation is as simple as:

Expand Down Expand Up @@ -797,12 +799,13 @@ Here are some guidelines to set up your environment.

What's needed:

* Python 3.9.
* Python 3.14 for the default development environment.
The SDK supports app runtimes from Python 3.11 through 3.14.
* Opened terminal inside cloned {corva-sdk} repository.

[source,bash]
----
python -m venv env <.>
python3.14 -m venv env <.>
source ./env/bin/activate <.>
----
<.> Create a directory `./env/`
Expand Down
9 changes: 6 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ authors = [
{ name = "Jordan Ambra", email = "jordan.ambra@corva.ai" }
]
keywords = ["corva", "sdk"]
requires-python = ">=3.10,<4.0"
requires-python = ">=3.11,<4.0"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restrict package metadata to supported Python range

This change declares support/testing for Python 3.11–3.14, but requires-python = ">=3.11,<4.0" still permits installation on 3.15+ once those interpreters are available. In that scenario, users can install an explicitly unsupported version and only discover incompatibilities at runtime instead of getting a resolver-time rejection. If the intended support window is truly 3.11–3.14, the upper bound should be capped to <3.15 (and kept consistent with the lockfile).

Useful? React with 👍 / 👎.

dependencies = [
"fakeredis >= 2.30.0, <2.32.0",
"pydantic >= 2.0, <3.0",
Expand All @@ -28,7 +28,10 @@ classifiers = [
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Software Development :: Libraries",
"Typing :: Typed"
]
Expand Down Expand Up @@ -97,7 +100,7 @@ omit = [
]

[tool.mypy]
python_version = "3.9"
python_version = "3.11"
mypy_path = "src"
explicit_package_bases = true
check_untyped_defs = true
Expand Down
Loading
Loading