Created attachment 182689 [details] devel/py-attrs: Upgrade to 17.1.0 Changelog ========= * Upgrade to 17.1.0 QA == * portlint: OK * poudriere: OK -- testport on 10.3-RELEASE-p17 w/py27 (default), py34, py35, py36
This upgrade breaks calendarserver-9.0 which requires py-twisted-17.1.0, which requires py-Automat-0.5.0 and finally py-attrs. Traceback (most recent call last): File "/usr/local/bin/twistd", line 11, in <module> load_entry_point('Twisted==17.1.0', 'console_scripts', 'twistd')() File "/usr/local/lib/python2.7/site-packages/twisted/scripts/twistd.py", line 29, in run app.run(runApp, ServerOptions) File "/usr/local/lib/python2.7/site-packages/twisted/application/app.py", line 657, in run config.parseOptions() File "/usr/local/lib/python2.7/site-packages/twisted/application/app.py", line 624, in parseOptions usage.Options.parseOptions(self, options) File "/usr/local/lib/python2.7/site-packages/twisted/python/usage.py", line 262, in parseOptions for (cmd, short, parser, doc) in self.subCommands: File "/usr/local/lib/python2.7/site-packages/twisted/application/app.py", line 641, in subCommands for plug in sorted(plugins, key=attrgetter('tapname')): File "/usr/local/lib/python2.7/site-packages/twisted/plugins/masterchild.py", line 61, in tapname return self.wrappedServiceMaker.tapname File "/usr/local/lib/python2.7/site-packages/twisted/plugins/masterchild.py", line 52, in wrappedServiceMaker makerClass = namedClass(self.className) File "/usr/local/lib/python2.7/site-packages/twisted/python/reflect.py", line 166, in namedObject module = namedModule('.'.join(classSplit[:-1])) File "/usr/local/lib/python2.7/site-packages/twisted/python/reflect.py", line 152, in namedModule topLevel = __import__(name) File "/usr/local/lib/python2.7/site-packages/twext/application/masterchild.py", line 49, in <module> from twisted.application.internet import TCPServer File "/usr/local/lib/python2.7/site-packages/twisted/application/internet.py", line 542, in <module> class _ClientMachine(object): File "/usr/local/lib/python2.7/site-packages/twisted/application/internet.py", line 842, in _ClientMachine outputs=[_connect]) File "/usr/local/lib/python2.7/site-packages/automat/_methodical.py", line 62, in upon self.machine._oneTransition(self, input, enter, outputs, collector) File "/usr/local/lib/python2.7/site-packages/automat/_methodical.py", line 255, in _oneTransition tuple(outputTokens)) File "/usr/local/lib/python2.7/site-packages/automat/_core.py", line 74, in addTransition (inState, inputSymbol, outState, tuple(outputSymbols)) TypeError: unhashable type: 'MethodicalState' /usr/local/etc/rc.d/caldavd: WARNING: failed to start caldavd I will talk to upstream of calendarserver.
I've only glanced at the output, but my guess is that we'll have to upgrade devel/py-Automat to 0.6.0 per bug #219374 to resolve this. See also: Make hashable classes frozen for attrs 17.1.0 (fixes #62). https://github.com/glyph/automat/commit/3766391d49a5514ecb901031ac5857b2b66ab265
Yes, you are right: devel/py-Automat 0.6.0 fixes this. Please set maintainer-feedback+ after committing 219374. (-;
What's the term for a pair of bugs that both block and depend on each other? sunpoet@ has both bugs right now and should be able to commit them concurrently or in short succession.
(In reply to John W. O'Brien from comment #4) py-Automat 0.6.0 update (bug #219374) requires py-attrs 16.1.0+ which is bug #219373. That means: - bug #219374 depends on bug #219373 - bug #219373 blocks bug #219374 That's why it's a pair.
A commit references this bug: Author: sunpoet Date: Fri May 19 15:36:19 UTC 2017 New revision: 441242 URL: https://svnweb.freebsd.org/changeset/ports/441242 Log: Update to 17.1.0 Changes: https://github.com/python-attrs/attrs/blob/master/CHANGELOG.rst PR: 219373 Submitted by: John W. O'Brien <john@saltant.com> Approved by: Axel Rau <axel.rau@chaos1.de> (maintainer) Changes: head/devel/py-attrs/Makefile head/devel/py-attrs/distinfo
Committed. Thanks!
(In reply to Po-Chuan Hsieh from comment #5) Thank you for taking these bugs and handling them promptly. I'm familiar with the reciprocal blocks/depends relationship. I intended to highlight the unusual case that bug #219373 both depends on *and* blocks bug #219374 (and vice versa). In retrospect, perhaps I should have filed both updates as the same bug.
(In reply to John W. O'Brien from comment #8) What I see is: - bug #219374 depends on bug #219373 - bug #219373 blocks bug #219374
(In reply to Po-Chuan Hsieh from comment #9) That's because when I filed the bugs, I was unaware that bug #219373 depends on bug #219374. Thanks to Axel's diligence and comment #1, that additional relationship came to light. For the sake of completeness, and to satisfy my own curiosity, I tried just now to register the additional dependency. Bugzilla refused and said: "The following bug(s) would appear on both the "depends on" and "blocks" parts of the dependency tree if these changes are committed: 219374. This would create a circular dependency, which is not allowed."