Skip to content

Commit

Permalink
Drop Python 3.8 Support (#2068)
Browse files Browse the repository at this point in the history
* Drop Python 3.8 support - source changes

* tox -e codegen

* Update CHANGELOG

* Enforce version support policy

* Specify versions that we can build wheel_dep with
  • Loading branch information
ni-jfitzger authored Jan 28, 2025
1 parent a817654 commit dd57eae
Show file tree
Hide file tree
Showing 26 changed files with 46 additions and 44 deletions.
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ matrix:
# We run tests on the latest supported version of Python first.
# This is where additional tests are run so we give it more time.
- python: "3.12"
- python: "3.8"
- python: "3.9"
- python: "3.10"
- python: "3.11"
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ All notable changes to this project will be documented in this file.
* #### Changed
* Fix [#2069](https://github.com/ni/nimi-python/issues/2069)
* #### Removed
* Support for Python 3.8
* ### `nidcpower` (NI-DCPower)
* #### Added
* API parity with NI-DCPower 2025 Q1.
Expand Down
2 changes: 1 addition & 1 deletion build/templates/setup.py.mako
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ setup(
license='MIT',
include_package_data=True,
packages=['${config['module_name']}'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
% if config['uses_nitclk']:
Expand All @@ -58,7 +59,6 @@ setup(
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
8 changes: 5 additions & 3 deletions build/templates/tox-system_tests.ini.mako
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@
driver_name = config['driver_name']
if config['uses_nitclk'] or module_name == 'nitclk':
wheel_env_no_py = '{}-wheel_dep'.format(module_name)
wheel_env = 'py3-' + wheel_env_no_py + ','
# We only actually need to build it once, but we specify multiple versions here
# to prevent tox from trying to build the wheel with an unsupported (earlier) Python version
wheel_env = 'py{39,310,311,312}-' + wheel_env_no_py + ','
uses_other_wheel = True
if module_name == 'nitclk':
# nitclk system tests use niscope
Expand All @@ -26,7 +28,7 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox -c tox-system_tests.ini" from the driver directory. (generated/${module_name})
[tox]
envlist = ${wheel_env}py{38,39,310,311,312}-${module_name}-system_tests, py312-${module_name}-coverage
envlist = ${wheel_env}py{39,310,311,312}-${module_name}-system_tests, py312-${module_name}-coverage
skip_missing_interpreters=True
ignore_basepython_conflict=True
# We put the .tox directory outside of the Jenkins workspace so that it isn't wiped with the rest of the repo
Expand Down Expand Up @@ -85,7 +87,7 @@ deps =
${module_name}-coverage: coverage

depends =
${module_name}-coverage: py{38,39,310,311,312}-${module_name}-system_tests
${module_name}-coverage: py{39,310,311,312}-${module_name}-system_tests
% if uses_other_wheel:
${module_name}-system_tests: ${wheel_env}
% endif
Expand Down
2 changes: 1 addition & 1 deletion generated/nidcpower/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def read_contents(file_to_read):
license='MIT',
include_package_data=True,
packages=['nidcpower'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
],
Expand All @@ -47,7 +48,6 @@ def read_contents(file_to_read):
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
4 changes: 2 additions & 2 deletions generated/nidcpower/tox-system_tests.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox -c tox-system_tests.ini" from the driver directory. (generated/nidcpower)
[tox]
envlist = py{38,39,310,311,312}-nidcpower-system_tests, py312-nidcpower-coverage
envlist = py{39,310,311,312}-nidcpower-system_tests, py312-nidcpower-coverage
skip_missing_interpreters=True
ignore_basepython_conflict=True
# We put the .tox directory outside of the Jenkins workspace so that it isn't wiped with the rest of the repo
Expand Down Expand Up @@ -43,7 +43,7 @@ deps =
nidcpower-coverage: coverage

depends =
nidcpower-coverage: py{38,39,310,311,312}-nidcpower-system_tests
nidcpower-coverage: py{39,310,311,312}-nidcpower-system_tests

passenv =
GIT_BRANCH
Expand Down
2 changes: 1 addition & 1 deletion generated/nidigital/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def read_contents(file_to_read):
license='MIT',
include_package_data=True,
packages=['nidigital'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
'nitclk',
Expand All @@ -48,7 +49,6 @@ def read_contents(file_to_read):
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
6 changes: 3 additions & 3 deletions generated/nidigital/tox-system_tests.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox -c tox-system_tests.ini" from the driver directory. (generated/nidigital)
[tox]
envlist = py3-nidigital-wheel_dep,py{38,39,310,311,312}-nidigital-system_tests, py312-nidigital-coverage
envlist = py{39,310,311,312}-nidigital-wheel_dep,py{39,310,311,312}-nidigital-system_tests, py312-nidigital-coverage
skip_missing_interpreters=True
ignore_basepython_conflict=True
# We put the .tox directory outside of the Jenkins workspace so that it isn't wiped with the rest of the repo
Expand Down Expand Up @@ -50,8 +50,8 @@ deps =
nidigital-coverage: coverage

depends =
nidigital-coverage: py{38,39,310,311,312}-nidigital-system_tests
nidigital-system_tests: py3-nidigital-wheel_dep,
nidigital-coverage: py{39,310,311,312}-nidigital-system_tests
nidigital-system_tests: py{39,310,311,312}-nidigital-wheel_dep,

passenv =
GIT_BRANCH
Expand Down
2 changes: 1 addition & 1 deletion generated/nidmm/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def read_contents(file_to_read):
license='MIT',
include_package_data=True,
packages=['nidmm'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
],
Expand All @@ -47,7 +48,6 @@ def read_contents(file_to_read):
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
4 changes: 2 additions & 2 deletions generated/nidmm/tox-system_tests.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox -c tox-system_tests.ini" from the driver directory. (generated/nidmm)
[tox]
envlist = py{38,39,310,311,312}-nidmm-system_tests, py312-nidmm-coverage
envlist = py{39,310,311,312}-nidmm-system_tests, py312-nidmm-coverage
skip_missing_interpreters=True
ignore_basepython_conflict=True
# We put the .tox directory outside of the Jenkins workspace so that it isn't wiped with the rest of the repo
Expand Down Expand Up @@ -43,7 +43,7 @@ deps =
nidmm-coverage: coverage

depends =
nidmm-coverage: py{38,39,310,311,312}-nidmm-system_tests
nidmm-coverage: py{39,310,311,312}-nidmm-system_tests

passenv =
GIT_BRANCH
Expand Down
2 changes: 1 addition & 1 deletion generated/nifake/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def read_contents(file_to_read):
license='MIT',
include_package_data=True,
packages=['nifake'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
'nitclk',
Expand All @@ -48,7 +49,6 @@ def read_contents(file_to_read):
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
6 changes: 3 additions & 3 deletions generated/nifake/tox-system_tests.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox -c tox-system_tests.ini" from the driver directory. (generated/nifake)
[tox]
envlist = py3-nifake-wheel_dep,py{38,39,310,311,312}-nifake-system_tests, py312-nifake-coverage
envlist = py{39,310,311,312}-nifake-wheel_dep,py{39,310,311,312}-nifake-system_tests, py312-nifake-coverage
skip_missing_interpreters=True
ignore_basepython_conflict=True
# We put the .tox directory outside of the Jenkins workspace so that it isn't wiped with the rest of the repo
Expand Down Expand Up @@ -50,8 +50,8 @@ deps =
nifake-coverage: coverage

depends =
nifake-coverage: py{38,39,310,311,312}-nifake-system_tests
nifake-system_tests: py3-nifake-wheel_dep,
nifake-coverage: py{39,310,311,312}-nifake-system_tests
nifake-system_tests: py{39,310,311,312}-nifake-wheel_dep,

passenv =
GIT_BRANCH
Expand Down
2 changes: 1 addition & 1 deletion generated/nifgen/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def read_contents(file_to_read):
license='MIT',
include_package_data=True,
packages=['nifgen'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
'nitclk',
Expand All @@ -48,7 +49,6 @@ def read_contents(file_to_read):
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
6 changes: 3 additions & 3 deletions generated/nifgen/tox-system_tests.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox -c tox-system_tests.ini" from the driver directory. (generated/nifgen)
[tox]
envlist = py3-nifgen-wheel_dep,py{38,39,310,311,312}-nifgen-system_tests, py312-nifgen-coverage
envlist = py{39,310,311,312}-nifgen-wheel_dep,py{39,310,311,312}-nifgen-system_tests, py312-nifgen-coverage
skip_missing_interpreters=True
ignore_basepython_conflict=True
# We put the .tox directory outside of the Jenkins workspace so that it isn't wiped with the rest of the repo
Expand Down Expand Up @@ -50,8 +50,8 @@ deps =
nifgen-coverage: coverage

depends =
nifgen-coverage: py{38,39,310,311,312}-nifgen-system_tests
nifgen-system_tests: py3-nifgen-wheel_dep,
nifgen-coverage: py{39,310,311,312}-nifgen-system_tests
nifgen-system_tests: py{39,310,311,312}-nifgen-wheel_dep,

passenv =
GIT_BRANCH
Expand Down
2 changes: 1 addition & 1 deletion generated/nimodinst/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def read_contents(file_to_read):
license='MIT',
include_package_data=True,
packages=['nimodinst'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
],
Expand All @@ -41,7 +42,6 @@ def read_contents(file_to_read):
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
4 changes: 2 additions & 2 deletions generated/nimodinst/tox-system_tests.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox -c tox-system_tests.ini" from the driver directory. (generated/nimodinst)
[tox]
envlist = py{38,39,310,311,312}-nimodinst-system_tests, py312-nimodinst-coverage
envlist = py{39,310,311,312}-nimodinst-system_tests, py312-nimodinst-coverage
skip_missing_interpreters=True
ignore_basepython_conflict=True
# We put the .tox directory outside of the Jenkins workspace so that it isn't wiped with the rest of the repo
Expand Down Expand Up @@ -42,7 +42,7 @@ deps =
nimodinst-coverage: coverage

depends =
nimodinst-coverage: py{38,39,310,311,312}-nimodinst-system_tests
nimodinst-coverage: py{39,310,311,312}-nimodinst-system_tests

passenv =
GIT_BRANCH
Expand Down
2 changes: 1 addition & 1 deletion generated/niscope/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def read_contents(file_to_read):
license='MIT',
include_package_data=True,
packages=['niscope'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
'nitclk',
Expand All @@ -48,7 +49,6 @@ def read_contents(file_to_read):
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
6 changes: 3 additions & 3 deletions generated/niscope/tox-system_tests.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox -c tox-system_tests.ini" from the driver directory. (generated/niscope)
[tox]
envlist = py3-niscope-wheel_dep,py{38,39,310,311,312}-niscope-system_tests, py312-niscope-coverage
envlist = py{39,310,311,312}-niscope-wheel_dep,py{39,310,311,312}-niscope-system_tests, py312-niscope-coverage
skip_missing_interpreters=True
ignore_basepython_conflict=True
# We put the .tox directory outside of the Jenkins workspace so that it isn't wiped with the rest of the repo
Expand Down Expand Up @@ -50,8 +50,8 @@ deps =
niscope-coverage: coverage

depends =
niscope-coverage: py{38,39,310,311,312}-niscope-system_tests
niscope-system_tests: py3-niscope-wheel_dep,
niscope-coverage: py{39,310,311,312}-niscope-system_tests
niscope-system_tests: py{39,310,311,312}-niscope-wheel_dep,

passenv =
GIT_BRANCH
Expand Down
2 changes: 1 addition & 1 deletion generated/nise/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def read_contents(file_to_read):
license='MIT',
include_package_data=True,
packages=['nise'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
],
Expand All @@ -41,7 +42,6 @@ def read_contents(file_to_read):
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
4 changes: 2 additions & 2 deletions generated/nise/tox-system_tests.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox -c tox-system_tests.ini" from the driver directory. (generated/nise)
[tox]
envlist = py{38,39,310,311,312}-nise-system_tests, py312-nise-coverage
envlist = py{39,310,311,312}-nise-system_tests, py312-nise-coverage
skip_missing_interpreters=True
ignore_basepython_conflict=True
# We put the .tox directory outside of the Jenkins workspace so that it isn't wiped with the rest of the repo
Expand Down Expand Up @@ -42,7 +42,7 @@ deps =
nise-coverage: coverage

depends =
nise-coverage: py{38,39,310,311,312}-nise-system_tests
nise-coverage: py{39,310,311,312}-nise-system_tests

passenv =
GIT_BRANCH
Expand Down
2 changes: 1 addition & 1 deletion generated/niswitch/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def read_contents(file_to_read):
license='MIT',
include_package_data=True,
packages=['niswitch'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
],
Expand All @@ -47,7 +48,6 @@ def read_contents(file_to_read):
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
4 changes: 2 additions & 2 deletions generated/niswitch/tox-system_tests.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox -c tox-system_tests.ini" from the driver directory. (generated/niswitch)
[tox]
envlist = py{38,39,310,311,312}-niswitch-system_tests, py312-niswitch-coverage
envlist = py{39,310,311,312}-niswitch-system_tests, py312-niswitch-coverage
skip_missing_interpreters=True
ignore_basepython_conflict=True
# We put the .tox directory outside of the Jenkins workspace so that it isn't wiped with the rest of the repo
Expand Down Expand Up @@ -43,7 +43,7 @@ deps =
niswitch-coverage: coverage

depends =
niswitch-coverage: py{38,39,310,311,312}-niswitch-system_tests
niswitch-coverage: py{39,310,311,312}-niswitch-system_tests

passenv =
GIT_BRANCH
Expand Down
2 changes: 1 addition & 1 deletion generated/nitclk/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def read_contents(file_to_read):
license='MIT',
include_package_data=True,
packages=['nitclk'],
python_requires='>=3.9',
install_requires=[
'hightime>=0.2.0',
],
Expand All @@ -41,7 +42,6 @@ def read_contents(file_to_read):
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
Expand Down
Loading

0 comments on commit dd57eae

Please sign in to comment.