Skip to content

Commit

Permalink
Bump to 1.4.3 (#328)
Browse files Browse the repository at this point in the history
* Disable pytype in qa tox

  pytype doesn't run in Windows, which is my current dev machine.
  _However_, the pytype step is explicitly invoked in GitHub CI, so we still have
  some type security.

* Drop 3.6, add up to 3.11

* Drop MacOS-10, add -11 & -12, and also Ubuntu-22.04

* DOC: Add consideration for using multiprocessing
  • Loading branch information
pepoluan committed Dec 18, 2022
1 parent 693c5fd commit 6638916
Show file tree
Hide file tree
Showing 9 changed files with 37 additions and 15 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,4 @@ prof/
.pytype/
~temp*
*.sw[a-p]
pyvenv.cfg
2 changes: 1 addition & 1 deletion DESCRIPTION.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@

This is a server for SMTP and related MTA protocols,
similar in utility to the standard library's |smtpd.py|_ module,
but rewritten to be based on ``asyncio`` for Python 3.6+.
but rewritten to be based on ``asyncio`` for Python 3.7+.

Please visit the `Project Homepage`_ for more information.

Expand Down
2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
graft aiosmtpd
include LICENSE NOTICE *.cfg *.ini *.py *.rst *.yml *.toml
global-exclude *.py[oc] *.sw[a-p]
global-exclude *.py[oc] *.sw[a-p] pyvenv.cfg
11 changes: 6 additions & 5 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,20 +55,21 @@ Full documentation is available on |aiosmtpd rtd|_
Requirements
============

You need **at least Python 3.6** to use this library.
You need **at least Python 3.7** to use this library.


Supported Platforms
-----------------------

``aiosmtpd`` has been tested on **CPython** and |PyPy3.7|_
``aiosmtpd`` has been tested on **CPython**>=3.7 and |PyPy|_>=3.7
for the following platforms (in alphabetical order):

* Cygwin (on Windows 10) [1]
* FreeBSD 12 [2]
* OpenSUSE Leap 15 [2]
* Ubuntu 18.04
* Ubuntu 20.04
* Ubuntu 22.04
* Windows 10

| [1] Supported only with Cygwin-provided CPython versions
Expand All @@ -77,8 +78,8 @@ for the following platforms (in alphabetical order):
``aiosmtpd`` *probably* can run on platforms not listed above,
but we cannot provide support for unlisted platforms.

.. |PyPy3.7| replace:: **PyPy3.7**
.. _`PyPy3.7`: https://www.pypy.org/
.. |PyPy| replace:: **PyPy**
.. _`PyPy`: https://www.pypy.org/


Installation
Expand Down Expand Up @@ -175,7 +176,7 @@ In general, the ``-e`` parameter to tox specifies one (or more) **testenv**
to run (separate using comma if more than one testenv). The following testenvs
have been configured and tested:

* ``{py36,py37,py38,py39,pypy3}-{nocov,cov,diffcov,profile}``
* ``{py37,py38,py39,py310,py311,pypy3}-{nocov,cov,diffcov,profile}``

Specifies the interpreter to run and the kind of testing to perform.

Expand Down
2 changes: 1 addition & 1 deletion aiosmtpd/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2014-2021 The aiosmtpd Developers
# SPDX-License-Identifier: Apache-2.0

__version__ = "1.4.3.dev0"
__version__ = "1.4.3rc1"
14 changes: 14 additions & 0 deletions aiosmtpd/docs/NEWS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,20 @@ Fixed/Improved
* A whole bunch of annotations


1.4.3 (2022-12-16)
==================

Fixed/Improved
--------------
* Add compatibility for Python 3.10 and 3.11 (Closes #322)
* Test matrix update (Closes #306)

* Drop Python 3.6, PyPy 3.6 (some) and MacOS 10
* Add Python 3.10 & 3.11, PyPy 3.7 & 3.8, Ubuntu 22.04, MacOS 11 & 12

* Longer AUTOSTOP_DELAY especially for Windows (Closes #313)


1.4.2 (2021-03-08)
=====================

Expand Down
6 changes: 6 additions & 0 deletions aiosmtpd/docs/controller.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ In both cases, you need to pass a :ref:`handler <handlers>` to the ``SMTP``
constructor. Handlers respond to events that you care about during the SMTP
dialog.

.. important::

Consider running the controller in a separate Python process (e.g., using the
:mod:`multiprocessing` module) if you don't want your main Python process to be
blocked when aiosmtpd is handling extra-large emails.


Using the controller
====================
Expand Down
3 changes: 1 addition & 2 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ classifiers =
Operating System :: POSIX :: BSD :: FreeBSD
Operating System :: POSIX :: Linux
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Expand All @@ -34,7 +33,7 @@ classifiers =

[options]
zip_safe = false
python_requires = ~=3.6
python_requires = ~=3.7
packages = find:
include_package_data = true
install_requires =
Expand Down
11 changes: 6 additions & 5 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
[tox]
minversion = 3.9.0
envlist = qa, static, docs, py{36,37,38,39,py3}-{nocov,cov,diffcov}
envlist = qa, static, docs, py{37,38,39,py3}-{nocov,cov,diffcov}
skip_missing_interpreters = True

[testenv]
# One virtualenv per Python version
envdir =
py36: {toxworkdir}/3.6
py37: {toxworkdir}/3.7
py38: {toxworkdir}/3.8
py39: {toxworkdir}/3.9
Expand Down Expand Up @@ -45,11 +44,11 @@ deps =
setenv =
cov: COVERAGE_FILE={toxinidir}/_dump/.coverage
nocov: PYTHONASYNCIODEBUG=1
py36: INTERP=py36
py37: INTERP=py37
py38: INTERP=py38
py39: INTERP=py39
py310: INTERP=py310
py311: INTERP=py311
pypy3: INTERP=pypy3
py: INTERP=py
passenv =
Expand Down Expand Up @@ -110,14 +109,16 @@ commands =
python -m flake8 aiosmtpd setup.py housekeep.py release.py
check-manifest -v
pytest -v --tb=short aiosmtpd/qa
pytype --keep-going --jobs auto .
# Disabled for now because pytype blows up in Windows
#pytype --keep-going --jobs auto .
deps =
colorama
flake8>=5.0.4
{[flake8_plugins]deps}
pytest
check-manifest
pytype
# Disabled for now because pytype blows up in Windows
#pytype

[testenv:docs]
basepython = python3
Expand Down

0 comments on commit 6638916

Please sign in to comment.