[Twisted-Python] [Twisted-web] Changing the Twisted Compatibility Policy

Ray Cote rgacote at appropriatesolutions.com
Sun Oct 25 19:23:53 MDT 2015


This is a reasonable change.

I say that as someone who rarely tracks individual Twisted releases. We
typically upgrade client-deployed applications every three to five years
(at the moment, I’m working on upgrading several projects from 12.1 to
15.4).

For us, being able to easily track back through release notes to understand
why specific methods are no longer available is extremely important as our
upgrade cycle frequently exceeds the deprecation/removal timeframe. These
long update times work for us because our typical Twisted deploy is
embedded deep inside an environment and not exposed directly to public
hazards. As such, we’re not quite as sensitive to public attack vectors —
and our clients typically prefer long-term stable environments.
—Ray

On Sun, Oct 25, 2015 at 8:48 PM, Amber "Hawkie" Brown <
hawkowl at atleastfornow.net> wrote:

> Hi everyone,
>
> As many know, one of the things that makes the Twisted project so unique
> is our conformance to our Compatibility Policy. This policy means that
> users of Twisted can freely upgrade between versions with all
> incompatibilities being warned about before causing code to break. However,
> for a while, one part of the compatibility policy has caused issues - what
> we do with code that has been deprecated for a long time, and at least the
> release +  2 & 1 year after.
>
> The existing policy states:
>
> "Removal should happen once the deprecated API becomes an additional
> maintenance burden. For example, if it makes implementation of a new
> feature more difficult, if it makes documentation of non-deprecated APIs
> more confusing, or if its unit tests become an undue burden on the
> continuous integration system. Removal should not be undertaken just to
> follow a timeline."
>
> This makes the only reasonable cause for any code being removed from
> Twisted is if it is a maintenance burden, but does not take into account
> the effect that keeping large amounts of deprecated code has on new,
> existing, and future Twisted users. It does specify that it should be
> removed if it makes documentation of non-deprecated APIs confusing, but by
> its very existence, it makes what should be "best practice" more confusing
> -- especially if the deprecated API is "simpler" at first glance, but was
> deprecated because of vast underlying issues,
>
> Discussions have come to the conclusion that the exact reverse of this
> policy should be instated:
>
> "Removal of code should occur as soon as the deprecation grace period has
> ended."
>
> The reason for this is that a leaner Twisted is a better Twisted -- we
> should strive to not break existing applications, but we have the
> deprecation policy in place to ensure that breakage is, if all goes to
> plan, never out of the blue. Less code surface means that Twisted is easier
> to learn for new users and Twisted-using projects onboarding new people,
> easier to use for established users with a clear best practice, and easier
> to maintain because the codebase is not a web of things we deprecated and
> then never removed. We believe this change benefits everyone.
>
> This is also similar to the deprecation policy of another time-based
> releasing project, Django (
> https://docs.djangoproject.com/en/1.8/internals/release-process/#internal-release-deprecation-policy),
> where releases are every 9 months and code is *always* removed in Release
> where deprecated + 2, giving them a deprecation grace period of up to 1 and
> a half years.
>
> If you have any opinions on this change, please let me know, and we'll
> take it all into account before changing the policy.
>
> Twisted Regards,
> Amber "Hawkie" Brown
> Twisted Release Manager
>
> _______________________________________________
> Twisted-web mailing list
> Twisted-web at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
>
>


-- 
Raymond Cote, President
voice: +1.603.924.6079 email: rgacote at AppropriateSolutions.com skype:
ray.cote
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20151025/09c559b9/attachment-0002.html>


More information about the Twisted-Python mailing list