Skip to content

Deprecate python 3.10, run CI for python 3.11, 12, 13 - #1127

Open
janzill wants to merge 21 commits into
ActivitySim:mainfrom
outerl:jzill/python_versions
Open

janzill wants to merge 21 commits into
ActivitySim:mainfrom
outerl:jzill/python_versions

Conversation

@janzill

@janzill janzill commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Removes python3.10 which is end-of-life (#1117), runs CI for python 3.11-13, and updates dependencies. Note python3.14 is currently blocked by sharrow using the removed ast.Str API.

Update: Also addresses #1135. New changes:

  • Require uv ≥ 0.13.4 and certifi ≥ 2026.10.19 in the lockfile, plus virtualenv ≥ 21.14.12, which bundles pip 26.2.2 for pre-commit
  • CI: install uv 0.13.4 through setup-uv v10.3.1, which verifies uv's checksum. The packaging workflows upgrade pip through uv instead of using the runner's old pip. pypa/gh-action-pypi-publish moves to v1.14.3, which fixes GHSA-5xjx-3w67-w9x9
  • Docs: explain how to update uv safely, removes outdated page, update release notes
  • Remove the Windows installer build workflow, scripts and documentation

@janzill

janzill commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

Note python3.14 is work in progress due to sharrow and larch not supporting it yet, see outerl#13. Sharrow work in ActivitySim/sharrow#89. I have not looked at larch yet.

@dhensle dhensle left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This looks fine -- there's no actual changes to behavior or core code.

Wondering though if we think testing EVERYTHING for all python versions is a little overkill. Do we want to just run the core test suite with every python version instead? And leave the rest at 3.11?

@janzill

janzill commented Oct 22, 2026

Copy link
Copy Markdown
Contributor Author

This looks fine -- there's no actual changes to behavior or core code.

Wondering though if we think testing EVERYTHING for all python versions is a little overkill. Do we want to just run the core test suite with every python version instead? And leave the rest at 3.11?

Good point, I've changed it to run only core tests with all supported python versions. Everything else runs with one version (I used 3.13 here as it is the latest supported version and installs will default to that), except for merges to main which trigger the full suite.

@jpn--

jpn-- commented Oct 22, 2026

Copy link
Copy Markdown
Member

I vote with @dhensle, the frequent testings should be against 3.11 which is the promised compatibility floor. Running the full suite there catches accidental use of newer APIs in regional models, estimation, and other paths the core tests might miss. If we support 3.11 we can't have people using features only available in later versions. While it's possible code written for 3.11 might not still work in 3.14, it's much more common for code written for 3.14 to not work in 3.11.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants