diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 92f9fb73..8913cfd7 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -34,12 +34,12 @@ jobs: strategy: matrix: os: [ ubuntu-latest, windows-latest ] - python-version: [ "3.12", "3.13" ] + python-version: [ "3.12", "3.13", "3.14" ] fail-fast: false runs-on: ${{ matrix.os }} steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Enable long paths in Git (Windows only) if: runner.os == 'Windows' run: git config --system core.longpaths true @@ -67,7 +67,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] - python-version: ['3.10', '3.11', '3.12', '3.13'] + python-version: ['3.11', '3.12', '3.13', '3.14'] steps: - name: Checkout repo uses: actions/checkout@v4 @@ -83,8 +83,8 @@ jobs: run: python -m pytest --version - name: Install -us package from PyPI run: | - if [[ "${{ matrix.python-version }}" == "3.13" ]]; then - # For Python 3.13, install newer tables first and ignore conflicts + if [[ "${{ matrix.python-version }}" == "3.13" || "${{ matrix.python-version }}" == "3.14" ]]; then + # For Python 3.13+, install newer tables first and ignore conflicts pip install "tables>=3.10.1" pip install policyengine-us --no-deps # Install remaining dependencies manually diff --git a/.python-version b/.python-version new file mode 100644 index 00000000..3767b4b1 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.14 \ No newline at end of file diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29b..e6a81e5b 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,6 @@ +- bump: minor + changes: + added: + - Support for Python 3.14 + removed: + - Support for Python 3.10 (following SPEC 0 policy) diff --git a/setup.py b/setup.py index 21c15256..dfa0c853 100644 --- a/setup.py +++ b/setup.py @@ -59,10 +59,10 @@ "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: POSIX", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Scientific/Engineering :: Information Analysis", ], description="Core microsimulation engine enabling country-specific policy models.", @@ -77,7 +77,7 @@ "policyengine-core=policyengine_core.scripts.policyengine_command:main", ], }, - python_requires=">=3.10", + python_requires=">=3.11", extras_require={ "dev": dev_requirements, # Note: For Python 3.13, policyengine-us requires special installation