bpo-35800: Deprecate smtpd.MailmanProxy (GH-11675)



Since `smtpd.MailmanProxy` is already broken, it is not formally deprecated in 3.9. It will be removed in 3.10.


https://bugs.python.org/issue35800
diff --git a/Doc/library/smtpd.rst b/Doc/library/smtpd.rst
index 85ee8a7..d84e74a 100644
--- a/Doc/library/smtpd.rst
+++ b/Doc/library/smtpd.rst
@@ -148,6 +148,12 @@
 
 .. class:: MailmanProxy(localaddr, remoteaddr)
 
+   .. deprecated-removed:: 3.9 3.11
+
+      :class:`MailmanProxy` is deprecated, it depends on a ``Mailman``
+      module which no longer exists and therefore is already broken.
+
+
    Create a new pure proxy server. Arguments are as per :class:`SMTPServer`.
    Everything will be relayed to *remoteaddr*, unless local mailman configurations
    knows about an address, in which case it will be handled via mailman.  Note that
diff --git a/Lib/smtpd.py b/Lib/smtpd.py
index 8103ca9..8f1a22e 100755
--- a/Lib/smtpd.py
+++ b/Lib/smtpd.py
@@ -779,6 +779,8 @@
 
 class MailmanProxy(PureProxy):
     def __init__(self, *args, **kwargs):
+        warn('MailmanProxy is deprecated and will be removed '
+             'in future', DeprecationWarning, 2)
         if 'enable_SMTPUTF8' in kwargs and kwargs['enable_SMTPUTF8']:
             raise ValueError("MailmanProxy does not support SMTPUTF8.")
         super(PureProxy, self).__init__(*args, **kwargs)
diff --git a/Misc/ACKS b/Misc/ACKS
index 71e61c3..d8e2630 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -321,6 +321,7 @@
 Jeffery Collins
 Robert Collins
 Paul Colomiets
+Samuel Colvin
 Christophe Combelles
 Geremy Condra
 Denver Coneybeare
diff --git a/Misc/NEWS.d/next/Library/2019-01-25-17-12-17.bpo-35800.MCGJdQ.rst b/Misc/NEWS.d/next/Library/2019-01-25-17-12-17.bpo-35800.MCGJdQ.rst
new file mode 100644
index 0000000..27e8d0b
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-01-25-17-12-17.bpo-35800.MCGJdQ.rst
@@ -0,0 +1 @@
+Deprecate ``smtpd.MailmanProxy`` ready for future removal.