Re: [Cython] Cython 0.29 – or 29.0 ?

2018-08-17 Thread James C. McPherson



1.0 runs the risk of hitting "never install a 1.0 release" habits.

Jumping to 29.0 would not, imnsho, be such an issue because people
are used to the rapid cadence of Firefox, Thunderbird and Chrome
releases. The flip side of 29.0 would be the question "when are you
announcing your LTS version?"

James


On 08/16/18 08:48 AM, Robert Bradshaw wrote:
If we're going to ditch the 0.x, I'd go for 1.0 as well. I'm a huge fan of 
semantic versioning.


The primary reasons we kept the 0.x scheme were that

* We wanted full compatibility with CPython (we're nearly there, or at 
least it's safe to say the differences are on par with those between 
different versions and implementations of Python), and
* We wanted the flexibility to possibly jettison archaic features of the 
language or otherwise clean things up.


It's worth revisiting to see if either of these are still relevant (*and* 
likely to be worked on in the near future).




On Wed, Aug 15, 2018 at 10:40 PM, Jeroen Demeyer > wrote:


I vote for 1.0

Version 29.0 sounds too much like marketing.

___
cython-devel mailing list
cython-devel@python.org 
https://mail.python.org/mailman/listinfo/cython-devel





___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel




--
Oracle
Systems / Solaris / Core
Solaris WOS Tech Lead
https://www.jmcpdotcom.com/blog
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] Cython 0.29 – or 29.0 ?

2018-08-17 Thread Dima Pasechnik
I'd vote for sanity over marketing, i.e. 1.0.


On Fri, Aug 17, 2018 at 11:53 AM James C. McPherson
 wrote:
>
>
> 1.0 runs the risk of hitting "never install a 1.0 release" habits.
>
> Jumping to 29.0 would not, imnsho, be such an issue because people
> are used to the rapid cadence of Firefox, Thunderbird and Chrome
> releases. The flip side of 29.0 would be the question "when are you
> announcing your LTS version?"
>
> James
>
>
> On 08/16/18 08:48 AM, Robert Bradshaw wrote:
> > If we're going to ditch the 0.x, I'd go for 1.0 as well. I'm a huge fan of
> > semantic versioning.
> >
> > The primary reasons we kept the 0.x scheme were that
> >
> > * We wanted full compatibility with CPython (we're nearly there, or at
> > least it's safe to say the differences are on par with those between
> > different versions and implementations of Python), and
> > * We wanted the flexibility to possibly jettison archaic features of the
> > language or otherwise clean things up.
> >
> > It's worth revisiting to see if either of these are still relevant (*and*
> > likely to be worked on in the near future).
> >
> >
> >
> > On Wed, Aug 15, 2018 at 10:40 PM, Jeroen Demeyer  > > wrote:
> >
> > I vote for 1.0
> >
> > Version 29.0 sounds too much like marketing.
> >
> > ___
> > cython-devel mailing list
> > cython-devel@python.org 
> > https://mail.python.org/mailman/listinfo/cython-devel
> > 
> >
> >
> >
> >
> > ___
> > cython-devel mailing list
> > cython-devel@python.org
> > https://mail.python.org/mailman/listinfo/cython-devel
> >
>
>
> --
> Oracle
> Systems / Solaris / Core
> Solaris WOS Tech Lead
> https://www.jmcpdotcom.com/blog
> ___
> cython-devel mailing list
> cython-devel@python.org
> https://mail.python.org/mailman/listinfo/cython-devel
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] Cython 0.29 – or 29.0 ?

2018-08-17 Thread Stefan Behnel
Robert Bradshaw schrieb am 16.08.2018 um 00:48:
> If we're going to ditch the 0.x, I'd go for 1.0 as well. I'm a huge fan of
> semantic versioning.

I'm ok with it, just fear that it might become excessive for Cython (ok,
I'm the one who proposed jumping to 29.0, but...). Basically, any time we
add something to Includes/ or anything to the language, we'd have to
increase the minor version, and any time we fix something that might break
some person's code, we'd have to increase the major version? Some changes
are simply not important enough to merit shouting out the breakage that
almost no-one would otherwise notice. And unless we're adding new syntax
that was an error before, almost any change in the compiler bears a tiny
risk of breaking something for someone.


> The primary reasons we kept the 0.x scheme were that
> 
> * We wanted full compatibility with CPython (we're nearly there, or at
> least it's safe to say the differences are on par with those between
> different versions and implementations of Python), and

I've half-heartedly considered it done for years. The rest are bugs, and we
have enough of those, also enough that are worse than incomplete Python
semantics. The list of Python related tickets in github is short:

https://github.com/cython/cython/issues?q=is%3Aissue+is%3Aopen+label%3A%22Python+Semantics%22

and the most relevant one is certainly #1159, which hasn't seen much
attention in years:

https://github.com/cython/cython/issues/1159


> * We wanted the flexibility to possibly jettison archaic features of the
> language or otherwise clean things up.
> 
> It's worth revisiting to see if either of these are still relevant (*and*
> likely to be worked on in the near future).

It's true that Cython often offers more than one way to do something, also
in terms of syntax. There is a certain level of perpetual request for
static typing in PEP-489 notation (which is supported), but I don't see it
completely replace Cython's own efficient syntax any time soon, it's not a
clear champion.

We can think about dropping some of the redundant pure Python syntax when
we switch to Py3-by-default, maybe next year. But even then, we'd have to
keep the Py2-mode around in order to support existing code bases.

Hej, that gives us an alternative for the versioning switch. We could
release Cython 3.0 when we change the default language level (and require
users to select "language_level=2" for legacy code). Definitely a breaking
change that merits inceasing the major version, and 3.0 seems very suitable.

Stefan
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] Cython 0.29 – or 29.0 ?

2018-08-17 Thread Yury V. Zaytsev

On Fri, 17 Aug 2018, James C. McPherson wrote:



1.0 runs the risk of hitting "never install a 1.0 release" habits.


How about 2.9.0 ;-) ?

Jumping to 29.0 would not, imnsho, be such an issue because people are 
used to the rapid cadence of Firefox, Thunderbird and Chrome releases. 
The flip side of 29.0 would be the question "when are you announcing 
your LTS version?"


That, and I second that non-semver, and particularly this browser-style 
versioning is very annoying for the packagers. What's worse though, is 
when a project moves from semver to browser-style, then to date-based, and 
then back again >:-| So, whatever you choose, please choose wisely...


0.02 €

--
Sincerely yours,
Yury V. Zaytsev___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] Cython 0.29 – or 29.0 ?

2018-08-17 Thread Erik Bray
On Fri, Aug 17, 2018 at 12:03 PM Stefan Behnel  wrote:
>
> Robert Bradshaw schrieb am 16.08.2018 um 00:48:
> > If we're going to ditch the 0.x, I'd go for 1.0 as well. I'm a huge fan of
> > semantic versioning.
>
> I'm ok with it, just fear that it might become excessive for Cython (ok,
> I'm the one who proposed jumping to 29.0, but...). Basically, any time we
> add something to Includes/ or anything to the language, we'd have to
> increase the minor version, and any time we fix something that might break
> some person's code, we'd have to increase the major version? Some changes
> are simply not important enough to merit shouting out the breakage that
> almost no-one would otherwise notice. And unless we're adding new syntax
> that was an error before, almost any change in the compiler bears a tiny
> risk of breaking something for someone.

I believe it's okay to make sensical judgment calls on this one.  I
don't really like how semver.org defines usage of the major version
number, because one could easily take it too literally like this.  I
believe there are other reasons to bump major version numbers, such as
yes, marketing.  You can also use it like Linux and some other
projects do to indicate LTS.  Like, an odd version number means "we
guarantee not to signficantly break anything in these releases, and to
backport bug fixes for X amount of time", versus even major version
means "active changes are happening here; API may move around a bit;
no bug fixes to these releases after the next LTS release".

I'm not saying Cython should necessarily do that.  Just giving
examples of how I think semver.org's definition of major version is
too constrained.
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] Cython 0.29 – or 29.0 ?

2018-08-17 Thread Stefan Behnel
Yury V. Zaytsev schrieb am 17.08.2018 um 10:59:
> On Fri, 17 Aug 2018, James C. McPherson wrote:
>> 1.0 runs the risk of hitting "never install a 1.0 release" habits.
> 
> How about 2.9.0 ;-) ?

Sold! :)

Proposal: we'll release a 2.9.0 next, which gives a warning that users
should explicitly enable "language_level=2" in their setup.py when
compiling Py2 code, and then release 3.0 as the next feature release, which
requires this option for Py2 code and defaults to compiling with Py3 syntax
and semantics.

Stefan
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] Cython 0.29 – or 29.0 ?

2018-08-17 Thread Julian Rüth
* Stefan Behnel  [2018-08-17 13:43:54 +0200]:

> Yury V. Zaytsev schrieb am 17.08.2018 um 10:59:
> > On Fri, 17 Aug 2018, James C. McPherson wrote:
> >> 1.0 runs the risk of hitting "never install a 1.0 release" habits.
> > 
> > How about 2.9.0 ;-) ?
> 
> Sold! :)
> 
> Proposal: we'll release a 2.9.0 next, which gives a warning that users
> should explicitly enable "language_level=2" in their setup.py when
> compiling Py2 code, and then release 3.0 as the next feature release, which
> requires this option for Py2 code and defaults to compiling with Py3 syntax
> and semantics.
+1

Also, I would not be too strict about the major version number in
semver. Sometimes bugfixes are breaking changes for the people who
worked around that bug with some tricks. I think bumping the major
version is really about removing a public documented interface or
changes that we know are going to break a lot of existing code. A nice
thing about semver is that it makes many people try harder to not do
that because they do not want to bump the major version number and
rather provide means to support legacy code...

Anyway, the proposed 2.9.0 to 3.0.0 jump certainly sounds like the major
version number should change there.


julian
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] Cython 0.29 – or 29.0 ?

2018-08-17 Thread Yury V. Zaytsev

On Fri, 17 Aug 2018, Stefan Behnel wrote:

Proposal: we'll release a 2.9.0 next, which gives a warning that users 
should explicitly enable "language_level=2" in their setup.py when 
compiling Py2 code, and then release 3.0 as the next feature release, 
which requires this option for Py2 code and defaults to compiling with 
Py3 syntax and semantics.


Sounds like an excellent plan, I like it!

--
Sincerely yours,
Yury V. Zaytsev
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] Cython 0.29 – or 29.0 ?

2018-08-17 Thread Robert Bradshaw
I like the jump to 3.0 to to change the language level. It still might be
safer to *require* this flag for a period though, and 3.0 would make it
optional (with the opposite default than it has now). (I'm honestly on the
fence with this one, as it may be a major pain to make this required...)

Letting the next version be 2.9 feels like it risks typos and confusion
(e.g. people who are used to the current numbering will call it 0.29).
Jumping to 29.0 makes it feel like we'll be updating the major version
often (or we'll be at an arbitrary 29.x for a long time).

As for semantic versioning, I'm with Julian that it's more about
communicating intent. Patch releases should be safe no-brainers, minor
versions should be safe by default, but make sure you think about them, and
major changes will likely require code changes. Not unlike how Python has
handled numbers (though hopefully we'll release with more frequency).

We may want to reserve a major version bump for issues like
https://github.com/cython/cython/issues/1382 which are simply not done for
fear of breaking users code, before 3.0.

So, I might release the next release by default (0.29.6? Or is it too
major. I guess going 0.30 would be bad.), get a short list of breaking
changes we're actually going to change by the next major release (such as
requiring a language level, double-underscore mangling, ??? called 1.x or
2.x) and go from there.

I like a plan to get out of the 0.x naming scheme, but it's hard to argue
it must be done *now* vs. in a release or two.

- Robert



On Fri, Aug 17, 2018 at 8:42 AM, Yury V. Zaytsev  wrote:

> On Fri, 17 Aug 2018, Stefan Behnel wrote:
>
> Proposal: we'll release a 2.9.0 next, which gives a warning that users
>> should explicitly enable "language_level=2" in their setup.py when
>> compiling Py2 code, and then release 3.0 as the next feature release, which
>> requires this option for Py2 code and defaults to compiling with Py3 syntax
>> and semantics.
>>
>
> Sounds like an excellent plan, I like it!
>
> --
> Sincerely yours,
> Yury V. Zaytsev
> ___
> cython-devel mailing list
> cython-devel@python.org
> https://mail.python.org/mailman/listinfo/cython-devel
>
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] Cython 0.29 – or 29.0 ?

2018-08-17 Thread Robert Bradshaw
It'd be nice to change the default of cython.binding as well (breaking
change).

On Fri, Aug 17, 2018 at 9:19 AM, Robert Bradshaw  wrote:

> I like the jump to 3.0 to to change the language level. It still might be
> safer to *require* this flag for a period though, and 3.0 would make it
> optional (with the opposite default than it has now). (I'm honestly on the
> fence with this one, as it may be a major pain to make this required...)
>
> Letting the next version be 2.9 feels like it risks typos and confusion
> (e.g. people who are used to the current numbering will call it 0.29).
> Jumping to 29.0 makes it feel like we'll be updating the major version
> often (or we'll be at an arbitrary 29.x for a long time).
>
> As for semantic versioning, I'm with Julian that it's more about
> communicating intent. Patch releases should be safe no-brainers, minor
> versions should be safe by default, but make sure you think about them, and
> major changes will likely require code changes. Not unlike how Python has
> handled numbers (though hopefully we'll release with more frequency).
>
> We may want to reserve a major version bump for issues like
> https://github.com/cython/cython/issues/1382 which are simply not done
> for fear of breaking users code, before 3.0.
>
> So, I might release the next release by default (0.29.6? Or is it too
> major. I guess going 0.30 would be bad.), get a short list of breaking
> changes we're actually going to change by the next major release (such as
> requiring a language level, double-underscore mangling, ??? called 1.x or
> 2.x) and go from there.
>
> I like a plan to get out of the 0.x naming scheme, but it's hard to argue
> it must be done *now* vs. in a release or two.
>
> - Robert
>
>
>
> On Fri, Aug 17, 2018 at 8:42 AM, Yury V. Zaytsev  wrote:
>
>> On Fri, 17 Aug 2018, Stefan Behnel wrote:
>>
>> Proposal: we'll release a 2.9.0 next, which gives a warning that users
>>> should explicitly enable "language_level=2" in their setup.py when
>>> compiling Py2 code, and then release 3.0 as the next feature release, which
>>> requires this option for Py2 code and defaults to compiling with Py3 syntax
>>> and semantics.
>>>
>>
>> Sounds like an excellent plan, I like it!
>>
>> --
>> Sincerely yours,
>> Yury V. Zaytsev
>> ___
>> cython-devel mailing list
>> cython-devel@python.org
>> https://mail.python.org/mailman/listinfo/cython-devel
>>
>
>
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel