[pytest-dev] the potential need to release 4.0 instead of 3.1, proposal

holger krekel holger at merlinux.eu
Wed May 17 13:08:26 EDT 2017


On Wed, May 17, 2017 at 17:01 +0000, Bruno Oliveira wrote:
> On Tue, May 16, 2017 at 4:31 PM Brian Okken <variedthoughts at gmail.com>
> wrote:
> 
> > I don't get the "broke the API" part of this issue.
> > What used to work and doesn't now?
> >
> 
> We changed all classes to new-style classes in order to remove the subtle
> differences between old style and new style, which may affect Python 2
> users.
> 
> One example of such difference is that "x[0]" will raise a TypeError if x
> is a new-style class, and AttributeError if it is an old style class.
> Here's an real world code that broke because of this (
> https://github.com/ManageIQ/integration_tests/pull/4645/files):
> 
>      if hasattr(report, 'skipped'):
>           if report.skipped:
>               try:
>                   contents = report.longrepr[2]
>               except AttributeError:
>                   contents = str(report.longrepr)
> 
> Btw, the change for this particular incompatibility was released in 3.0.5
> mostly by accident, where TerminalRepr was changed to subclass from object
> in
> https://github.com/pytest-dev/pytest/commit/fbc5ba08d969adafd71ecb6fce25a1cad76bb983
> .
> 
> Issue https://github.com/pytest-dev/pytest/issues/2398 contains more
> detailed info.
> 
> 
> Is this really significant enough to warrant bumping to 4.0.
> >
> Are you ready to follow through with the deprecating promise of
> > https://docs.pytest.org/en/latest/backwards-compatibility.html so soon
> > after the introduction of 3.0?
> >
> > How many people are affected by this change compared to the confusion of
> > having to explain to everyone what the major feature(s) of 4.0 is(are)?
> >
> 
> I believe that the purpose of this thread is to exactly discuss if this
> accidental change is enough to warrant a 4.0 release.
> 
> I'm also under the impression that this will affect very few users, but
> would like to hear opinions from everyone. That accidental change from old
> to new-style went out in 3.0.5, if it was a major breaking point we would
> have heard more reports about it for now (although the current features
> branch changed *all* classes to new-style).

FWIW i also think it makes sense to consider increasing a major version number by making an educated guess (like you do) on how many people it is likely to affect.   

holger


More information about the pytest-dev mailing list