[Python-Dev] Re: Documenting Python versioning and stability expectations

2021-10-16 Thread Guido van Rossum
On Sat, Oct 16, 2021 at 3:18 PM MRAB  wrote:

> On 2021-10-16 22:39, Oscar Benjamin wrote:
> > I would just like to note that in SymPy we had problems a few times
> > because of changes made to typing in the 3.5.x series. The problem was
> > that CI tested the newest version of 3.5.x but many users were using
> > older versions and many features were added in micro releases e.g.
> > (random example from docs) typing.NoReturn has:
> >
> >New in version 3.5.4.
> >New in version 3.6.2.
> >
> > What that meant is that if a contributor had used NoReturn as a type
> > hint then because SymPy's CI only tested the most recent 3.5.x it
> > would not be noticed in PR review that SymPy had become unimportable
> > in 3.5.0.
> >
> > This was not a major problem: where I saw complaints it seemed that
> > users were happy to upgrade to a newer Python 3.5.x. In general though
> > those changes do not match the explanation shown above. I welcome the
> > documentation around what kind of changes will be made in different
> > releases but just to be clear, should this preclude things like adding
> > typing.NoReturn in micro releases? (I hope so.)
>

At the time we justified this because the typing module was provisional
(see PEP 411). The rules are somewhat relaxed for provisional modules
(though I admit we probably stretched the rules a bit).


> Wasn't there a change in a micro version of Python 2? I can't remember
> the details, but from hindsight it was seen as a mistake that should not
> be repeated.
>

That was in the olden days. In particular, bool() and True/False were
introduced in Python 2.2.1 (
https://docs.python.org/2.7/library/functions.html#bool). We learned our
lesson (though not perfectly, see above :-).

-- 
--Guido van Rossum (python.org/~guido)
*Pronouns: he/him **(why is my pronoun here?)*

___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/3OUU36VJI5CQ6K2SUG3CENMHTXN3VMKC/
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-Dev] Re: Documenting Python versioning and stability expectations

2021-10-16 Thread MRAB

On 2021-10-16 22:39, Oscar Benjamin wrote:

On Fri, 15 Oct 2021 at 14:12, Petr Viktorin  wrote:


Most of this is, hopefully, just capturing existing tribal knowledge, but:

[snip]


Micro Versions
--

A new micro version marks *bugfix* and *security* releases.
These releases are managed for stability; only fixes for known problems are
included in them, and Python's interfaces do not change in new micro
versions.

Generally, it is enough for third-party libraries to test with one
release of a minor version -- ideally the latest one.
For example, a library tested with Python 3.5.10 may reasonably claim to be
compatible with Python 3.5 in general.


I would just like to note that in SymPy we had problems a few times
because of changes made to typing in the 3.5.x series. The problem was
that CI tested the newest version of 3.5.x but many users were using
older versions and many features were added in micro releases e.g.
(random example from docs) typing.NoReturn has:

   New in version 3.5.4.
   New in version 3.6.2.

What that meant is that if a contributor had used NoReturn as a type
hint then because SymPy's CI only tested the most recent 3.5.x it
would not be noticed in PR review that SymPy had become unimportable
in 3.5.0.

This was not a major problem: where I saw complaints it seemed that
users were happy to upgrade to a newer Python 3.5.x. In general though
those changes do not match the explanation shown above. I welcome the
documentation around what kind of changes will be made in different
releases but just to be clear, should this preclude things like adding
typing.NoReturn in micro releases? (I hope so.)

Wasn't there a change in a micro version of Python 2? I can't remember 
the details, but from hindsight it was seen as a mistake that should not 
be repeated.

___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/YEVSERPO4VJSHTP7YFVCS4HH7PQ3XLLD/
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-Dev] Re: Documenting Python versioning and stability expectations

2021-10-16 Thread Oscar Benjamin
On Fri, 15 Oct 2021 at 14:12, Petr Viktorin  wrote:
>
> Most of this is, hopefully, just capturing existing tribal knowledge, but:
[snip]
>
> Micro Versions
> --
>
> A new micro version marks *bugfix* and *security* releases.
> These releases are managed for stability; only fixes for known problems are
> included in them, and Python's interfaces do not change in new micro
> versions.
>
> Generally, it is enough for third-party libraries to test with one
> release of a minor version -- ideally the latest one.
> For example, a library tested with Python 3.5.10 may reasonably claim to be
> compatible with Python 3.5 in general.

I would just like to note that in SymPy we had problems a few times
because of changes made to typing in the 3.5.x series. The problem was
that CI tested the newest version of 3.5.x but many users were using
older versions and many features were added in micro releases e.g.
(random example from docs) typing.NoReturn has:

  New in version 3.5.4.
  New in version 3.6.2.

What that meant is that if a contributor had used NoReturn as a type
hint then because SymPy's CI only tested the most recent 3.5.x it
would not be noticed in PR review that SymPy had become unimportable
in 3.5.0.

This was not a major problem: where I saw complaints it seemed that
users were happy to upgrade to a newer Python 3.5.x. In general though
those changes do not match the explanation shown above. I welcome the
documentation around what kind of changes will be made in different
releases but just to be clear, should this preclude things like adding
typing.NoReturn in micro releases? (I hope so.)

--
Oscar
___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/K5M24MELLX3XJLGTUDWEUTKXRUDF2O53/
Code of Conduct: http://python.org/psf/codeofconduct/