diff --git a/.github/workflows/ci/workflow_context.yml b/.github/workflows/ci/workflow_context.yml index 86be24e3e..9818d4832 100644 --- a/.github/workflows/ci/workflow_context.yml +++ b/.github/workflows/ci/workflow_context.yml @@ -11,19 +11,19 @@ skippy_enabled: true vars: - &dist_linux variant: Linux - python: '3.9' + python: "3.9" os: Linux platform: ubuntu-22.04 - &dist_macos variant: macOS - python: '3.9' + python: "3.9" os: macOS platform: macos-12 - &dist_win variant: Windows - python: '3.9' + python: "3.9" os: Windows platform: windows-2022 @@ -32,67 +32,66 @@ vars: platform: ubuntu-latest jobs: - # Platform tests. - &test <<: *dist_linux type: test - reqs: ['dist', 'test'] - skiplists: ['job_test', 'os_linux'] + reqs: ["dist", "test"] + skiplists: ["job_test", "os_linux"] test_args: -p no:pytest-qt --ignore=test/gui_qt - <<: *test <<: *dist_macos - cache_extra_deps: ['osx/deps.sh'] - skiplists: ['job_test', 'os_macos'] + cache_extra_deps: ["osx/deps.sh"] + skiplists: ["job_test", "os_macos"] - <<: *test <<: *dist_win - skiplists: ['job_test', 'os_windows'] + skiplists: ["job_test", "os_windows"] # Python tests. - &python_test <<: *test <<: *dist_other - variant: Python 3.7 - python: '3.7' - skiplists: ['job_test', 'os_linux', 'os_macos', 'os_windows'] - - <<: *python_test variant: Python 3.8 - python: '3.8' + python: "3.8" + skiplists: ["job_test", "os_linux", "os_macos", "os_windows"] - <<: *python_test variant: Python 3.10 - python: '3.10' + python: "3.10" + - <<: *python_test + variant: Python 3.11 + python: "3.11" # Qt GUI tests. - <<: *test type: test_gui_qt variant: Qt GUI - reqs: ['dist', 'dist_extra_gui_qt', 'test'] - skiplists: ['job_test_gui_qt'] + reqs: ["dist", "dist_extra_gui_qt", "test"] + skiplists: ["job_test_gui_qt"] test_args: test/gui_qt # Packaging tests. - <<: *dist_other type: test_packaging variant: Packaging - python: '3.9' - reqs: ['packaging', 'setup'] - skiplists: ['job_test_packaging'] + python: "3.9" + reqs: ["packaging", "setup"] + skiplists: ["job_test_packaging"] # Platform builds. - &build <<: *dist_linux type: build needs: [test_linux] - reqs: ['build', 'setup'] - cache_extra_deps: ['reqs/dist_*.txt', 'linux/appimage/deps.sh'] - skiplists: ['job_build', 'os_linux'] + reqs: ["build", "setup"] + cache_extra_deps: ["reqs/dist_*.txt", "linux/appimage/deps.sh"] + skiplists: ["job_build", "os_linux"] - <<: *build <<: *dist_macos needs: [test_macos] - cache_extra_deps: ['reqs/dist_*.txt', 'osx/deps.sh'] - skiplists: ['job_build', 'os_macos'] + cache_extra_deps: ["reqs/dist_*.txt", "osx/deps.sh"] + skiplists: ["job_build", "os_macos"] - <<: *build <<: *dist_win needs: [test_windows] - cache_extra_deps: ['reqs/dist_*.txt', 'windows/dist_deps.sh'] - skiplists: ['job_build', 'os_windows'] + cache_extra_deps: ["reqs/dist_*.txt", "windows/dist_deps.sh"] + skiplists: ["job_build", "os_windows"] diff --git a/doc/developer_guide.md b/doc/developer_guide.md index 0f8c37b92..108063bc6 100644 --- a/doc/developer_guide.md +++ b/doc/developer_guide.md @@ -1,6 +1,6 @@ # Environment setup -You need Python >= 3.7 installed, and you need [tox](https://pypi.org/project/tox/) >= 4.0. +You need Python >= 3.8 installed, and you need [tox](https://pypi.org/project/tox/) >= 4.0. Using tox takes care of all the details of creating and managing an isolated virtual environment, installing the necessary dependencies, and isolating @@ -10,12 +10,13 @@ The command for using tox is: `tox r {-e envlist} {-- arguments}`. Use `tox -a -v` to get a list of available environments. The same virtual environment is reused by the following tox environments: + - `tox r -e test -- ARGS`: run the testsuite. This is the default environment when not provided. - `tox r -e launch -- ARGS`: run Plover from source. - `tox r -e setup -- COMMAND`: run `./setup.py COMMAND`. - `tox r -e packaging_checks`: run the same packaging checks as the CI (add `-- - -n` to see a dry-run of the exact checks). +-n` to see a dry-run of the exact checks). - `tox r -e plugins_install`: install the distribution plugins (or the specified plugins when run with `tox -e plugins_install -- REQS`). Note that this does not use the plugins manager for installing. @@ -30,11 +31,10 @@ The actual virtual environment lives in `.tox/dev`, and can be ["activated" like any other virtual environment](https://virtualenv.pypa.io/en/latest/user_guide.html#activators). The configuration also provides support for lightweight tests only environment: -`pyX`, where `X` is the version of the Python interpreter to use. E.g. running +`pyX`, where `X` is the version of the Python interpreter to use. E.g. running `tox r -e 'py3,py36,py37,py38,py39` will execute the testsuite for each version of Python we support. - # Creating a binary distribution A number of commands are provided by `setup.py` for creating binary @@ -47,7 +47,6 @@ distributions (which include all the necessary dependencies): Use `bdist_xxx --help` to get more information on each command supported options. - # Making a pull request When making a pull request, please include a short summary of the changes @@ -63,7 +62,7 @@ description of the substantive changes in the PR. They should be named `
/..md`, where the sections / categories are: -* `feature`: New features: +- `feature`: New features: - `core`: Core changes. - `dict`: Updates to the default dictionaries. @@ -72,9 +71,9 @@ They should be named `
/..md`, where the sections - `osx`: macOS specific changes. - `windows`: Windows specific changes. -* `bugfix`: For bugfixes, support the same categories as for `feature`. +- `bugfix`: For bugfixes, support the same categories as for `feature`. -* `api`: For documenting changes to the public/plugins API: +- `api`: For documenting changes to the public/plugins API: - `break`: For breaking (backward incompatible) changes. - `dnr`: For deprecations of an existing feature or behavior. @@ -86,7 +85,7 @@ case two fragments should be added. It is not necessary to make a separate documentation fragment for documentation changes accompanying the relevant code changes. See the following for an example news fragment: -``` bash +```bash $ cat news.d/bugfix/1041.ui.md Fix possible crash when changing machine parameters in the configuration dialog. ``` diff --git a/reqs/test.txt b/reqs/test.txt index 18b60b78d..2ec35ce50 100644 --- a/reqs/test.txt +++ b/reqs/test.txt @@ -1,4 +1,3 @@ -mock>=3.0.0; python_version <= "3.7" pytest pytest-qt diff --git a/setup.cfg b/setup.cfg index 8a1ef9c3e..b1dd97ada 100644 --- a/setup.cfg +++ b/setup.cfg @@ -5,10 +5,10 @@ maintainer = Ted Morin maintainer_email = morinted@gmail.com classifiers = Programming Language :: Python :: 3 - Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+) Development Status :: 5 - Production/Stable Environment :: X11 Applications @@ -32,7 +32,7 @@ project_urls = [options] include_package_data = True -python_requires = >=3.7 +python_requires = >=3.8 zip_safe = True packages = plover