Python 3.8 is officially EOL (as of 10-07-2024). We have already run into an issue where something broke on scheduled testing because a dependency no longer supports Python 3.8. Also, dbt-core has removed support for Python 3.8, both on main and for all older versions. We should update our CI workflows to no longer test against Python 3.8 and update our supported versions on PyPI to no longer list Python 3.8 (since we will not be testing against it).
### Acceptance criteria
- [x] We don't test against Python 3.8 in any GHA workflow
- [x] We test against all versions of Python that we say are supported on PyPI
- [x] Where we only test against a single version of Python, that version is the oldest supported version (generally 3.9)
### Testing
- [x] A full CI run is sufficient for testing this as the updates are all CI related
Security
N/A
Docs
We should remove Python 3.8 support from all of our docs. Updating this repo will remove it from places like PyPI or READMEs. But we might also list this on docs.getdbt.com.
Consequences
This effectively locks all feature development for 3.8 as newer patch versions on PyPI will not be available to pip. Adapters could implement new features themselves, but they would not be able to pick up new features from dbt-adapters, or a concrete adapter that they subclass (e.g. dbt-databricks uses dbt-spark). As 3.8 is EOL, this is considered low risk.
Short description
Python 3.8 is officially EOL (as of 10-07-2024). We have already run into an issue where something broke on scheduled testing because a dependency no longer supports Python 3.8. Also,
dbt-core
has removed support for Python 3.8, both onmain
and for all older versions. We should update our CI workflows to no longer test against Python 3.8 and update our supported versions on PyPI to no longer list Python 3.8 (since we will not be testing against it).Security
N/A
Docs
We should remove Python 3.8 support from all of our docs. Updating this repo will remove it from places like PyPI or READMEs. But we might also list this on docs.getdbt.com.
Consequences
This effectively locks all feature development for 3.8 as newer patch versions on PyPI will not be available to
pip
. Adapters could implement new features themselves, but they would not be able to pick up new features fromdbt-adapters
, or a concrete adapter that they subclass (e.g.dbt-databricks
usesdbt-spark
). As 3.8 is EOL, this is considered low risk.