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
2 changes: 1 addition & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/devcontainers/python:3.12
FROM mcr.microsoft.com/devcontainers/python:3.13

# Remove any problematic third-party apt source (yarn) added by the base image
# so `apt-get update` does not fail due to a missing GPG key, then install gh
Expand Down
7 changes: 3 additions & 4 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,13 @@ jobs:
name: Integration Tests (${{ matrix.python-version }})
runs-on: ubuntu-latest
timeout-minutes: 8
# Run integration tests for both supported versions.
# Python 3.12 remains visible-but-optional during the migration window.
# Run integration tests for all supported Python versions.
# Weekly branch integration failures remain non-blocking as before.
continue-on-error: ${{ matrix.python-version == '3.12' || github.base_ref == 'weekly' || (github.event_name == 'push' && github.ref_name == 'weekly') }}
continue-on-error: ${{ github.base_ref == 'weekly' || (github.event_name == 'push' && github.ref_name == 'weekly') }}
strategy:
fail-fast: false
matrix:
python-version: ['3.11', '3.12']
python-version: ['3.11', '3.12', '3.13']
env:
ENV: testing
steps:
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/sanity-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,10 @@ jobs:
name: Sanity Check (${{ matrix.python-version }})
runs-on: ubuntu-latest
timeout-minutes: 2
continue-on-error: ${{ matrix.python-version == '3.12' }}
strategy:
fail-fast: false
matrix:
python-version: ['3.11', '3.12']
python-version: ['3.11', '3.12', '3.13']
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/type-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,10 @@ jobs:
name: Type Check (${{ matrix.python-version }})
runs-on: ubuntu-latest
timeout-minutes: 3
continue-on-error: ${{ matrix.python-version == '3.12' }}
strategy:
fail-fast: false
matrix:
python-version: ['3.11', '3.12']
python-version: ['3.11', '3.12', '3.13']
env:
ENV: testing
steps:
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,10 @@ jobs:
name: Unit Tests (${{ matrix.python-version }})
runs-on: ubuntu-latest
timeout-minutes: 3
continue-on-error: ${{ matrix.python-version == '3.12' }}
strategy:
fail-fast: false
matrix:
python-version: ['3.11', '3.12']
python-version: ['3.11', '3.12', '3.13']
env:
ENV: testing
steps:
Expand Down
7 changes: 4 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Essential reminders for working on the Campus codebase. This guide applies to bo
Campus uses pyenv for Python version management and pipx for Poetry installation.

**Prerequisites:**
- pyenv with Python 3.11 and/or 3.12 installed
- pyenv with Python 3.11, 3.12, and/or 3.13 installed
- pipx with Poetry installed
- `~/.local/bin` and pyenv shims in PATH (configured in `~/.bashrc`)

Expand All @@ -19,9 +19,10 @@ Campus uses pyenv for Python version management and pipx for Poetry installation
# Install supported Python versions
pyenv install 3.11.11
pyenv install 3.12.0
pyenv install 3.13.0

# Prefer 3.12 for new setups; 3.11 remains supported
pyenv local 3.12.0
# Prefer 3.13 for new setups; 3.11 and 3.12 remain supported
pyenv local 3.13.0

# Install Poetry via pipx using the active interpreter
pipx install poetry
Expand Down
7 changes: 4 additions & 3 deletions docs/GETTING-STARTED.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ For those deploying or using Campus:

### Prerequisites
- **pyenv** for Python version management
- **Python 3.11 or 3.12** (managed via pyenv; prefer 3.12 for new setups)
- **Python 3.11, 3.12, or 3.13** (managed via pyenv; prefer 3.13 for new setups)
- **pipx** for installing Poetry
- **Poetry** for dependency management (installed via pipx)
- PostgreSQL (for auth service database)
Expand All @@ -46,9 +46,10 @@ For those deploying or using Campus:
# 2. Install supported Python versions
pyenv install 3.11.11
pyenv install 3.12.0
pyenv install 3.13.0

# 3. Select the interpreter for this repo (3.12 preferred; 3.11 also supported)
pyenv local 3.12.0
# 3. Select the interpreter for this repo (3.13 preferred; 3.11 and 3.12 also supported)
pyenv local 3.13.0

# 4. Install Poetry via pipx (user-level, isolated)
pipx install poetry
Expand Down
2 changes: 1 addition & 1 deletion tests/sanity_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ def test_python_version_matches_requirements(self):
"Could not find python requirement in pyproject.toml"
)

# Parse version constraint (e.g., ">=3.11.0,<3.13")
# Parse version constraint (e.g., ">=3.11.0,<3.14")
runtime_version = sys.version_info
runtime_version_str = f"{runtime_version.major}.{runtime_version.minor}.{runtime_version.micro}"

Expand Down
Loading