Merge ~cjwatson/launchpad:ztk-20200403 into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: e722d419580552e6f2228bfc5c39bbc0483ba008
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:ztk-20200403
Merge into: launchpad:master
Diff against target: 280 lines (+72/-69)
3 files modified
constraints.txt (+64/-63)
lib/lp/services/feeds/doc/feeds.txt (+3/-1)
lib/lp/services/tests/test_timeout.py (+5/-5)
Reviewer Review Type Date Requested Status
Thiago F. Pappacena (community) Approve
Review via email: mp+382875@code.launchpad.net

Commit message

Upgrade ZTK packages to 2020-04-03 versions

Description of the change

Dependencies MP: https://code.launchpad.net/~cjwatson/lp-source-dependencies/+git/lp-source-dependencies/+merge/382870

My main interest in this is that it fixes https://github.com/zopefoundation/zope.interface/issues/141 which causes lots of problems for Launchpad on Python 3, but it's good to keep things current anyway.

To post a comment you must log in.
Revision history for this message
Thiago F. Pappacena (pappacena) wrote :

LGTM, but I couldn't find some packages on the corresponding dependencies branch. Is that expected?

review: Approve
Revision history for this message
Colin Watson (cjwatson) wrote :

The first section of constraints.txt is phrased as a copy of https://github.com/zopefoundation/zopetoolkit/blob/master/ztk-versions.cfg mangled into the pip requirements format, and then some versions are commented out and followed by the real version we want to use in cases where we've upgraded ahead of ZTK or have a local fork. To make future upgrades easier and avoid compatibility problems in cases where we decide to pull in some previously-unused bits of ZTK, we don't remove the packages that we don't use. (This is why it's constraints.txt rather than requirements.txt.) As such, it's normal for there to be quite a few entries in constraints.txt that aren't in our dependencies branch, because the latter only includes things that we actually use, or at least that we have actually used at some point.

This isn't ideal, and there's a note at the top of the file about it already: while it preserves all the information we need for future upgrades, it's tedious and confusing to maintain. I think instead we should keep an unmodified copy of ztk-versions.cfg in our tree along with some overrides and additions, and have a script to build a unified requirements.txt from all those pieces. However, we haven't got around to this yet, so this is where we are at the moment.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/constraints.txt b/constraints.txt
2index bc3d495..f5de6b2 100644
3--- a/constraints.txt
4+++ b/constraints.txt
5@@ -11,84 +11,83 @@ zope.applicationcontrol==4.2.0
6 zope.authentication==4.4.0
7 zope.browser==2.3
8 zope.browsermenu==4.4
9-zope.browserpage==4.3.0
10-zope.browserresource==4.3
11+zope.browserpage==4.4.0
12+zope.browserresource==4.4
13 zope.cachedescriptors==4.3.1
14 zope.catalog==4.2.1
15-zope.component==4.5
16+zope.component==4.6.1
17 zope.componentvocabulary==2.2.0
18-zope.configuration==4.3.1
19-zope.container==4.2.2
20+zope.configuration==4.4.0
21+zope.container==4.4.0
22 zope.contentprovider==4.2.1
23-zope.contenttype==4.4
24+zope.contenttype==4.5.0
25 zope.copy==4.2
26 zope.copypastemove==4.1.0
27 zope.datetime==4.2.0
28-zope.deferredimport==4.3
29+zope.deferredimport==4.3.1
30 zope.deprecation==4.4.0
31 zope.dottedname==4.3
32 zope.dublincore==4.2.0
33 zope.error==4.5.0
34 zope.event==4.4
35 zope.exceptions==4.3
36-zope.filerepresentation==4.2.0
37-zope.formlib==4.6.0
38-zope.hookable==4.2.0
39-zope.i18n==4.6.2
40-zope.i18nmessageid==4.3.1
41-zope.index==4.4.0
42-zope.interface==4.6.0
43+zope.filerepresentation==5.0.0
44+zope.formlib==4.7.1
45+zope.hookable==5.0.1
46+zope.i18n==4.7.0
47+zope.i18nmessageid==5.0.1
48+zope.index==5.0.0
49+zope.interface==5.0.2
50 zope.intid==4.3.0
51 zope.keyreference==4.2.0
52 zope.lifecycleevent==4.3
53 zope.location==4.2
54 zope.login==2.1.0
55-zope.mimetype==2.4.0
56+zope.mimetype==2.5.0
57 zope.minmax==2.2.0
58-zope.pagetemplate==4.4.1
59+zope.pagetemplate==4.5.0
60 zope.password==4.3.1
61 zope.pluggableauth==2.3.0
62 zope.principalannotation==4.3.0
63 zope.principalregistry==4.2.0
64 zope.processlifetime==2.3.0
65-zope.proxy==4.3.1
66+zope.proxy==4.3.5
67 zope.ptresource==4.2.0
68-zope.publisher==5.0.1
69+zope.publisher==5.2.0
70 zope.ramcache==2.3
71-zope.schema==4.9.3
72-zope.security==4.3.1
73+zope.schema==6.0.0
74+zope.security==5.1.1
75 zope.securitypolicy==4.3.1
76 zope.sendmail==5.0
77 #zope.session==4.3.0
78 # lp:~launchpad-committers/zope.session:launchpad
79 zope.session==4.3.0+lp1
80-zope.site==4.2.2
81+zope.site==4.3.0
82 zope.size==4.3
83 zope.structuredtext==4.3
84 zope.tal==4.4
85-zope.tales==5.0
86+zope.tales==5.0.2
87 zope.testing==4.7
88-#zope.testrunner==5.0
89+#zope.testrunner==5.1
90 # lp:~launchpad-committers/zope.testrunner:launchpad
91 zope.testrunner==5.1+lp2
92-zope.traversing==4.3.1
93+zope.traversing==4.4.1
94 zope.viewlet==4.2.1
95
96 # Direct dependencies
97-BTrees==4.5.1
98-persistent==4.4.3
99+BTrees==4.7.1
100+persistent==4.6.4
101 python-gettext==4.0
102-pytz==2018.9
103+pytz==2019.3
104 # Handled in setup-requirements.txt instead.
105-#setuptools==41.0.0
106-#six==1.12.0
107+#setuptools==44.0.0
108 six==1.14.0
109-transaction==2.4.0
110+transaction==3.0.0
111
112 # zope.password needs these
113-bcrypt==3.1.6
114-cffi==1.12.2
115-pycparser==2.19
116+bcrypt==3.1.7
117+cffi==1.14.0
118+pycparser==2.20
119
120 # Python2-only
121 zope.untrustedpython==4.0.0
122@@ -96,57 +95,60 @@ zope.untrustedpython==4.0.0
123 RestrictedPython==3.6.0
124
125 # Testing dependencies
126-ZConfig==3.4.0
127+ZConfig==3.5.0
128 ZODB==5.5.1
129 argparse==1.4.0
130-colorama==0.4.1
131+colorama==0.4.3
132 extras==1.0.0
133 fixtures==3.0.0
134 linecache2==1.0.0
135 manuel==1.10.1
136-pbr==5.1.3
137-pyparsing==2.4.0
138+pbr==5.4.4
139+pyparsing==2.4.6
140 python-mimeparse==1.6.0
141-python-subunit==1.3.0
142-testtools==2.3.0
143+python-subunit==1.4.0
144+testtools==2.4.0
145 traceback2==1.4.0
146 #unittest2==1.1.0
147 # lp1 Set version directly in setup.py to fix wheel building.
148 unittest2==1.1.0+lp1
149-zc.lockfile==1.4
150+zc.lockfile==2.0
151 zdaemon==4.3
152-zodbpickle==1.0.3
153+zodbpickle==2.0.0
154
155
156 # Testing tools
157-coverage==4.5.3
158+coverage==5.0.4
159 nose==1.3.7
160
161 # Documentation dependencies
162-# We have to keep a version < 2 to still support Python 2
163 Sphinx==1.8.5
164-docutils==0.14
165-imagesize==1.1.0
166+docutils==0.16
167+imagesize==1.2.0
168 alabaster==0.7.12
169-babel==2.6.0
170-Jinja2==2.10.1
171+babel==2.8.0
172+Jinja2==2.11.1
173 MarkupSafe==1.1.1
174-Pygments==2.3.1
175-snowballstemmer==1.2.1
176-lxml==4.4.1
177+Pygments==2.5.2
178+snowballstemmer==2.0.0
179+lxml==4.5.0
180 repoze.sphinx.autointerface==0.8
181-#requests==2.21.0
182-requests==2.22.0
183-certifi==2019.3.9
184-#urllib3==1.24.1
185-urllib3==1.25.3
186-idna==2.8
187+requests==2.23.0
188+certifi==2019.11.28
189+urllib3==1.25.8
190+idna==2.9
191 chardet==3.0.4
192-sphinxcontrib-programoutput==0.14
193-sphinxcontrib-websupport==1.1.0
194+sphinxcontrib-applehelp==1.0.2
195+sphinxcontrib-devhelp==1.0.2
196+sphinxcontrib-htmlhelp==1.0.3
197+sphinxcontrib-jsmath==1.0.1
198+sphinxcontrib-programoutput==0.16
199+sphinxcontrib-qthelp==1.0.3
200+sphinxcontrib-serializinghtml==1.1.4
201+sphinxcontrib-websupport==1.1.2
202 sphinx-rtd-theme==0.4.3
203-packaging==19.0
204-typing==3.6.6
205+packaging==20.3
206+typing==3.7.4.1
207 z3c.recipe.sphinxdoc==1.1.0
208
209 # ZTK buildout dependencies
210@@ -154,9 +156,9 @@ collective.recipe.cmd==0.11
211 mr.developer==2.0.0
212 z3c.checkversions==1.1
213 z3c.recipe.compattest==1.0
214-zc.buildout==2.13.1
215+zc.buildout==2.13.3
216 zc.recipe.egg==2.0.7
217-zc.recipe.testrunner==2.0.0
218+zc.recipe.testrunner==2.1
219
220 # Launchpad
221 # ---------
222@@ -170,7 +172,6 @@ appdirs==1.4.3
223 asn1crypto==0.23.0
224 attrs==19.1.0
225 Automat==0.6.0
226-Babel==2.5.1
227 backports.functools-lru-cache==1.5
228 backports.lzma==0.0.3
229 beautifulsoup4==4.7.1
230diff --git a/lib/lp/services/feeds/doc/feeds.txt b/lib/lp/services/feeds/doc/feeds.txt
231index 02315cb..c0c1178 100644
232--- a/lib/lp/services/feeds/doc/feeds.txt
233+++ b/lib/lp/services/feeds/doc/feeds.txt
234@@ -71,7 +71,9 @@ found.
235 >>> verifyObject(IThing, thing)
236 Traceback (most recent call last):
237 ...
238- DoesNotImplement: ...
239+ MultipleInvalid: ...
240+ Does not declaratively implement the interface
241+ The lp.services.feeds.tests.helper.IThing.value attribute was not provided
242 >>> feed_view = getMultiAdapter((thing, request), name='thing-feed.atom')
243 Traceback (most recent call last):
244 ...
245diff --git a/lib/lp/services/tests/test_timeout.py b/lib/lp/services/tests/test_timeout.py
246index 33cdcdf..55db5bb 100644
247--- a/lib/lp/services/tests/test_timeout.py
248+++ b/lib/lp/services/tests/test_timeout.py
249@@ -1,4 +1,4 @@
250-# Copyright 2012-2019 Canonical Ltd. This software is licensed under the
251+# Copyright 2012-2020 Canonical Ltd. This software is licensed under the
252 # GNU Affero General Public License version 3 (see the file LICENSE).
253
254 """timeout.py tests.
255@@ -408,10 +408,10 @@ class TestTimeout(TestCase):
256
257 def test_urlfetch_does_not_support_ftp_urls_by_default(self):
258 """urlfetch() does not support ftp urls by default."""
259- url = 'ftp://localhost/'
260+ url = u'ftp://localhost/'
261 e = self.assertRaises(InvalidSchema, urlfetch, url)
262 self.assertEqual(
263- "No connection adapters were found for '%s'" % url, str(e))
264+ "No connection adapters were found for {!r}".format(url), str(e))
265
266 def test_urlfetch_supports_ftp_urls_if_allow_ftp(self):
267 """urlfetch() supports ftp urls via a proxy if explicitly asked."""
268@@ -444,10 +444,10 @@ class TestTimeout(TestCase):
269 """urlfetch() does not support file urls by default."""
270 test_path = self.useFixture(TempDir()).join('file')
271 write_file(test_path, b'')
272- url = 'file://' + test_path
273+ url = u'file://' + test_path
274 e = self.assertRaises(InvalidSchema, urlfetch, url)
275 self.assertEqual(
276- "No connection adapters were found for '%s'" % url, str(e))
277+ "No connection adapters were found for {!r}".format(url), str(e))
278
279 def test_urlfetch_supports_file_urls_if_allow_file(self):
280 """urlfetch() supports file urls if explicitly asked to do so."""

Subscribers

People subscribed via source and target branches

to status/vote changes: