new zope.interface deprecation warning about "implements()" #1740
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#1740
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
One of the buildslaves just started failing tests,
here.
The tests that assert
tahoe start
doesn't emit a lot of noiseis catching the following deprecation warnings:
My guess is that there's a new version of zope.interface installed
on that box, and it's starting to work on py3 compatibility.
We need to find out what versions of zope.interface offer the
suggested replacement decorator, decide if we can tolerate being
limited to those versions, then update everything (twisted,
foolscap, nevow, tahoe) to use the replacement.
In other words, we need to either enforce a older-than dependency
restriction to avoid ever using the newer zope.interface, or add a
warning-suppression to make this noise go away :-). Actually,
that's more like :-(.
It's not just Tahoe that would have to change every use of 'implements', it's also Nevow, Twisted, and foolscap. I'm for blacklisting this version of zope.interface and telling the zope devs how silly they're being by making this a DeprecationWarning.
I can reproduce by forcing "zope.interface == 4.0.0" in source:src/allmydata/_auto_deps.py.
Attachment fix-1740.darcs.patch (109338 bytes) added
Suppress DeprecationWarnings from zope.interface 4.0.0 about use of 'implements' and 'implementsOnly'. This unifies the handling of all DeprecationWarnings that need to be suppressed globally. fixes #1740
Looks ok to me. I'd maybe add a note to make it more obvious that the
warnings.filters.pop()
are supposed to match thewarnings.filterwarnings()
calls earlier, and thatglobal_deprecation_messages
are left in place because the filter list acts like a stack (in particular, ifdeprecation_messages
orglobal_deprecation_messages
were a set instead of a list, it wouldn't work). I might add a comment to that effect myself after it lands.In the long run, we should pay attention to what our fellow zope.interface-users are doing. If this decorator thing has been around long enough, and it doesn't hurt us otherwise, it might be nice to follow their advice and update the way we use
implements
.Heh, so, I was about to apply this patch, and noticed that the
buildslave that was failing because of this warning (in one of the
no_noise tests) had spontaneously started passing.
Digging deeper, I learned that sometime in the last two hours,
zope.interface-4.0.1 was released, removing the deprecation
warnings: http://pypi.python.org/pypi/zope.interface/4.0.1 .
I guess they got some feedback :).
So this is now an INVALID, and the patch doesn't need to be
applied.