Skip to content

Commit a355f46

Browse files
committed
Desupport Python 3.6 to 3.9
1 parent 95c79cc commit a355f46

20 files changed

+102
-134
lines changed

.github/workflows/release-docs.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ jobs:
1111
runs-on: ubuntu-latest
1212

1313
steps:
14-
- uses: actions/checkout@v3
15-
- name: Set up Python 3.11
16-
uses: actions/setup-python@v3
14+
- uses: actions/checkout@v5
15+
- name: Set up Python 3.12
16+
uses: actions/setup-python@v6
1717
with:
18-
python-version: "3.11"
18+
python-version: "3.12"
1919
- name: Install dependencies
2020
run: |
2121
python -m pip install --upgrade pip
@@ -26,7 +26,7 @@ jobs:
2626
make html
2727
touch _build/html/.nojekyll
2828
- name: Deploy docs to GitHub pages
29-
uses: peaceiris/actions-gh-pages@v3
29+
uses: peaceiris/actions-gh-pages@v4
3030
with:
3131
github_token: ${{ secrets.GITHUB_TOKEN }}
3232
publish_branch: gh-pages

.github/workflows/test-package.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,24 @@ jobs:
1010
strategy:
1111
max-parallel: 6
1212
matrix:
13-
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', 'pypy-3.9']
13+
python-version: ['3.10', '3.11', '3.12', 'pypy-3.10', 'pypy-3.11']
1414

1515
steps:
16-
- uses: actions/checkout@v3
16+
- uses: actions/checkout@v5
1717
- name: Set up Python ${{ matrix.python-version }}
18-
uses: actions/setup-python@v3
18+
uses: actions/setup-python@v6
1919
with:
2020
python-version: ${{ matrix.python-version }}
2121
- name: Install dependencies
2222
run: |
2323
python -m pip install --upgrade pip
24-
pip install .[tests] --use-pep517
24+
pip install .[tests]
2525
- name: Lint with flake8
26-
if: matrix.python-version == '3.11'
26+
if: matrix.python-version == '3.12'
2727
run: |
2828
flake8 webware --count --exit-zero --statistics
2929
- name: Lint with pylint
30-
if: matrix.python-version == '3.11'
30+
if: matrix.python-version == '3.12'
3131
run: |
3232
pylint webware
3333
- name: Run all unit tests

.pylintrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ indent-after-paren = 4
6565

6666
max-attributes = 40
6767
max-args = 10
68+
max-positional-arguments = 10
6869
max-branches = 40
6970
max-line-length = 79
7071
max-locals = 30

docs/changes.rst

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
List of Changes
44
===============
55

6-
What's new in Webware for Python 3
7-
----------------------------------
6+
What's new in Webware for Python 3.0
7+
------------------------------------
88

99
This is the full list of changes in Webware for Python 3 (first version 3.0.0) compared with Webware for Python 2 (last version 1.2.3):
1010

11-
* Webware for Python 3 now requires Python 3.6 or newer, and makes internal use of newer Python features where applicable. Webware applications must now be migrated to or written for Python 3.
11+
* Webware for Python 3.0 now requires Python 3.6 or newer, and makes internal use of newer Python features where applicable. Webware applications must now be migrated to or written for Python 3.
1212
* The "Application" instance is now callable and usable as a WSGI application.
1313
* The application server ("AppServer" class and subclasses including the "ThreadedAppServer") and the various adapters and start scripts and other related scripts for the application server are not supported anymore. Instead, Webware applications are now supposed to be served as WSGI applications using a WSGI server such as waitress, which is now used as the development server.
1414
* The "ASSStreamOut" class has been replaced by a "WSGIStreamOut" class. The "Message" class has been removed, since it was not really used for anything, simplifying the class hierarchy a bit.
@@ -31,3 +31,10 @@ This is the full list of changes in Webware for Python 3 (first version 3.0.0) c
3131
See also the list of `releases`_ on GitHub for all changes in newer releases of Webware for Python 3 since the first alpha release 3.0.0a0.
3232

3333
.. _releases: https://github.com/WebwareForPython/w4py3/releases
34+
35+
What's new in Webware for Python 3.1
36+
------------------------------------
37+
38+
Webware for Python 3.1 is a minor update making the following changes:
39+
40+
* Webware for Python 3.1 now requires Python 3.10 and supports versions up to Python 3.14.

docs/deploy.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ If your performance requirements are not that high, you can use `waitress`_ as W
1919

2020
Installation on the Production System
2121
-------------------------------------
22-
In order to install your Webware for Python 3 application on the production system, first make sure the minimum required Python 3.6 version is already installed. One popular and recommended option is running a Linux distribution on your production system - see `Installing Python 3 on Linux`_.
22+
In order to install your Webware for Python 3 application on the production system, first make sure the minimum required Python version is already installed. One popular and recommended option is running a Linux distribution on your production system - see `Installing Python 3 on Linux`_.
2323

2424
.. _Installing Python 3 on Linux: https://docs.python-guide.org/starting/install3/linux/
2525

26+
Note that Webware for Python 3.0 supports Python 3.6 to 3.12, and Webware for Python 3.1 supports Python 3.10 to 3.14.
27+
2628
Next, we recommend creating a virtual environment for your Webware for Python 3 application. We also recommend creating a dedicated user as owner of your application, and placing the virtual environment into the home directory of that user. When you are logged in as that user under Linux, you can create the virtual environment with the following command. If you get an error, you may need to install ``python3-venv`` as an additional Linux package before you can run this command::
2729

2830
python3 -m venv .venv

docs/install.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Installation
77
Python Version
88
--------------
99

10-
Webware for Python 3 requires at least Python version 3.6.
10+
Webware for Python 3.1 requires at least Python version 3.10.
1111

1212

1313
Create a Virtual Environment

docs/migrate.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ First you should check whether the plug-ins your application is using are still
1515
Migrate your application to Python 3
1616
------------------------------------
1717

18-
The main migration effort will be porting your Webware application from Python 2 to Python 3. More precisely, Webware for Python 3 requires Python 3.6 or newer. This effort is necessary anyway, if you want to keep your Webware application alive for some more years, because the Python foundation declared to end Python 2 support on January 1st 2020, which means that Python 2 will also not be supported by newer operating systems anymore and not even get security updates anymore. The positive aspect of this is that your Webware application will run slightly faster and you can now make use of all the modern Python features and libraries in your application. Particularly, f-strings can be very handy when creating Webware applications.
18+
The main migration effort will be porting your Webware application from Python 2 to Python 3. More precisely, Webware for Python 3.0 requires Python 3.6 to 3.12, while Webware for Python 3.1 requires Python 3.10 to 3.14. This effort is necessary anyway, if you want to keep your Webware application alive for some more years, because the Python foundation declared to end Python 2 support on January 1st 2020, which means that Python 2 will also not be supported by newer operating systems anymore and not even get security updates anymore. The positive aspect of this is that your Webware application will run slightly faster and you can now make use of all the modern Python features and libraries in your application. Particularly, f-strings can be very handy when creating Webware applications.
1919

2020
We will not go into the details of migrating your application from Python 2 to Python 3 here, since much good advice is already available on the Internet, for instance:
2121

docs/plugins.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The ``Properties.py`` file should contain a number of assignments::
2323
name = "Plugin name"
2424
version = (1, 0, 0)
2525
status = 'beta'
26-
requiredPyVersion = (3, 6)
26+
requiredPyVersion = (3, 10)
2727
requiredOpSys = 'posix'
2828
synopsis = """A paragraph-long description of the plugin"""
2929
webwareConfig = {

pyproject.toml

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ readme = "README.md"
1414
keywords = ["web", "framework", "servlets"]
1515
license = {text = "MIT"}
1616
# must match properties.requiredPyVersion
17-
requires-python = ">=3.6"
17+
requires-python = ">=3.10"
1818
classifiers = [
1919
"Development Status :: 5 - Production/Stable",
2020
"Environment :: Web Environment",
@@ -25,10 +25,6 @@ classifiers = [
2525
"License :: OSI Approved :: MIT License",
2626
"Programming Language :: Python",
2727
"Programming Language :: Python :: 3",
28-
"Programming Language :: Python :: 3.6",
29-
"Programming Language :: Python :: 3.7",
30-
"Programming Language :: Python :: 3.8",
31-
"Programming Language :: Python :: 3.9",
3228
"Programming Language :: Python :: 3.10",
3329
"Programming Language :: Python :: 3.11",
3430
"Programming Language :: Python :: 3.12",
@@ -45,38 +41,38 @@ Documentation = "https://webwareforpython.github.io/w4py3/"
4541

4642
[project.optional-dependencies]
4743
dev = [
48-
"Pygments>=2.14,<3",
44+
"Pygments>=2.19,<3",
4945
"WebTest>=3,<4",
50-
"waitress>=2,<3",
51-
"hupper>=1.10,<2",
46+
"waitress>=3,<4",
47+
"hupper>=1.12,<2",
5248
]
5349
docs = [
54-
"Sphinx>=5,<7",
55-
"sphinx_rtd_theme>=1.1",
50+
"Sphinx>=8,<9",
51+
"sphinx_rtd_theme>=3,<4",
5652
]
5753
examples = [
5854
"DBUtils>=3,<4",
59-
"dominate>=2.7,<3",
60-
"yattag>=1.15,<2",
61-
"Pygments>=2.14,<3",
62-
"Pillow>=8,<12",
55+
"dominate>=2.9,<3",
56+
"yattag>=1.16,<2",
57+
"Pillow>=11,<12",
58+
"Pygments>=2.19,<3",
6359
]
6460
tests = [
65-
"psutil>=5.9,<7",
66-
"flake8>=5,<7",
67-
"pylint>=2.13,<3",
68-
"tox>=3.28,<5",
61+
"psutil>=7,<8",
62+
"flake8>=7,<8",
63+
"pylint>=3,<4",
64+
"tox>=4,<5",
6965
"pywin32>=300,<400; sys_platform=='win32' and implementation_name=='cpython'",
7066
# include dev dependencies
71-
"Pygments>=2.14,<3",
67+
"Pygments>=2.19,<3",
7268
"WebTest>=3,<4",
73-
"waitress>=2,<3",
74-
"hupper>=1.10,<2",
69+
"waitress>=3,<4",
70+
"hupper>=1.12,<2",
7571
# include example dependencies
7672
"DBUtils>=3,<4",
77-
"dominate>=2.7,<3",
78-
"yattag>=1.15,<2",
79-
"Pillow>=8,<12",
73+
"dominate>=2.9,<3",
74+
"yattag>=1.16,<2",
75+
"Pillow>=11,<12",
8076
]
8177

8278
[project.scripts]

tox.ini

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
[tox]
2-
envlist = py{36,37,38,39,310,311,312}, pypy3, flake8, pylint, docs, manifest
2+
envlist = py3{10,11,12}, pypy3{10,11}, flake8, pylint, docs, manifest
33

44
[testenv:flake8]
5-
basepython = python3.11
6-
deps = flake8>=6,<7
5+
basepython = python3.12
6+
deps = flake8>=7,<8
77
commands =
88
flake8 webware
99

1010
[testenv:pylint]
11-
basepython = python3.11
12-
deps = pylint>=2.16,<3
11+
basepython = python3.12
12+
deps = pylint>=3,<4
1313
commands =
1414
pylint webware
1515

1616
[testenv:docs]
17-
basepython = python3.11
17+
basepython = python3.12
1818
extras =
1919
docs
2020
commands =
2121
sphinx-build -b html -nEW docs docs/_build/html
2222

2323
[testenv:manifest]
24-
basepython = python3.11
25-
deps = check-manifest>=0.49
24+
basepython = python3.12
25+
deps = check-manifest>=0.50
2626
commands =
2727
check-manifest -v
2828

0 commit comments

Comments
 (0)