Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-19 Thread Erik Bray
On Thu, Jul 19, 2018 at 11:19 AM Jeroen Demeyer  wrote:
>
> On 2018-07-19 11:04, Sébastien Labbé wrote:
> > The definition of "blocker" ticket must be adapted to the release
> > calendar we choose to have.
>
> I really disagree with this. I think it's important that the calender is
> adjusted depending on blocker tickets, not the other way around.

+1

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-19 Thread Erik Bray
On Thu, Jul 19, 2018 at 10:23 AM Volker Braun  wrote:
>
> On Thursday, July 19, 2018 at 10:16:46 AM UTC+2, Erik Bray wrote:
>>
>> If there's a fix for a known issue there's no reason to exclude it
>> from a release.
>
>
> Look at it this way, we are delaying hundreds of tickets by a week to fix 
> your pet bug 3 months earlier. Of course you can forever argue about the 
> relative importance of bugs, but if you compare the accumulated 
> bug-time-in-product then excluding it and releasing earlier is the right 
> thing to do.
> Look at it this way, we are delaying hundreds of tickets by a week

I've said this already but that's a process problem.  If we made a
release branch there would be nothing stopping anyone from continuing
to merge into the mainline while a release is tidied up.  This is an
artificial "crisis" created through process.  It reminds me of the
US's asinine debt ceiling and the fiscal cliff [1].

[1] https://en.wikipedia.org/wiki/United_States_fiscal_cliff

*  Also, "your pet bug" implies that it's of no importance, and
dismisses the reasons it matters at all with a turn of phrase.  I'm
not a perfect communicator either but please, spare me.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-19 Thread Jeroen Demeyer

On 2018-07-19 11:04, Sébastien Labbé wrote:

The definition of "blocker" ticket must be adapted to the release
calendar we choose to have.


I really disagree with this. I think it's important that the calender is 
adjusted depending on blocker tickets, not the other way around.


--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-19 Thread Sébastien Labbé


> We must be using different definitions of "blocker" then.  Just 
> because a bug doesn't prevent development from continuing does not 
> mean it isn't a *release* blocker.  Any bug that introduces 
> regressions into the test suite should be a blocker if it means not 
> being able to release a product with the test suite fully passing. 
>

The definition of "blocker" ticket must be adapted to the release calendar 
we choose to have. If the definition of blocker ticket is too inclusive, 
than it is just impossible to respect the rule of 1 release each 3 months 
approximatively. Then, the impact of many late blocker tickets becomes that 
we do 2 or 3 releases per year instead of 4. But this does not solves the 
problem. There will still exist some blocker tickets which will ask again 
for a lower frequency of releases at the end of each cycle. It may even 
make things even worse as releasing less often means we stabilize the 
development branch (rc) less often, which means it is harder to stablize 
it...

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-19 Thread Volker Braun
On Thursday, July 19, 2018 at 10:16:46 AM UTC+2, Erik Bray wrote:
>
> If there's a fix for a known issue there's no reason to exclude it 
> from a release. 
>

Look at it this way, we are delaying hundreds of tickets by a week to fix 
your pet bug 3 months earlier. Of course you can forever argue about the 
relative importance of bugs, but if you compare the accumulated 
bug-time-in-product then excluding it and releasing earlier is the right 
thing to do.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-19 Thread Erik Bray
On Thu, Jul 19, 2018 at 12:07 AM Volker Braun  wrote:
>
> On Wednesday, July 18, 2018 at 1:34:56 PM UTC+2, Erik Bray wrote:
>>
>> As I wrote previously, I made this fix back in April,
>> but tabled getting the fix directly into Sage since I thought it would
>> be no big deal to make a Cysignals release and update Sage's
>> dependency on it
>
>
> By definition, if fixing a bug can easily wait for a month or two then its 
> not a blocker.

We must be using different definitions of "blocker" then.  Just
because a bug doesn't prevent development from continuing does not
mean it isn't a *release* blocker.  Any bug that introduces
regressions into the test suite should be a blocker if it means not
being able to release a product with the test suite fully passing.

Indeed it would have been convenient to fix it sooner since test runs
would have stopped failing earlier.  But "known issues" during
development are less important that known issues (that are fixed!) at
release time.

Certainly, if there is a known bug that cannot be reasonably fixed in
time for a release then reasonable exceptions have to be made such as
marking the test as a "known failure" or disabling it.  Sage's test
runner would actually probably benefit a lot from a "known failure"
flag for tests (though it may have to be platform-specific, which is
tricky).

In any case, this still only proves my point that if I actually *knew*
when a release was coming up I'd have pressed to get that done sooner.
If there's a fix for a known issue there's no reason to exclude it
from a release.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-19 Thread Erik Bray
On Wed, Jul 18, 2018 at 11:53 PM Timo Kaufmann  wrote:
>
> As one small data point I can say that I already upgraded cysignals in 
> nixpkgs (tested Linux, although it could technically be used on other 
> platforms too). I didn't run into any obvious issues.
>
> I also think we should merge that upgrade for 8.3. Erik put in a lot of work 
> to make that platform supported and I think the least we should do is support 
> him in supporting it :)
>
> Sage has a lot of tests. It might even test a little too much (making the 
> test suite brittle). I'm sure they would catch most regressions faster than 
> 1-2 weeks.
>
> And worst case, if a regression slips through, why are we not doing bug fix 
> releases? E.g. sage 8.3.1.

I have suggested that many times as well, but have been told it's too
much trouble for some reason.  I didn't bring it up this time just to
keep the topic narrowed.

One thing I should be clear about is that I greatly respect the amount
of time and effort Volker puts into being release manager as it is.
And I know from experience that it's just that much more extra work to
maintain bug fix releases (but I also know that it's not *that much*
either, I'd say so even for Sage).

If we could configure the buildbots to also run tests against a bug
fix release branch (separate from develop) and I can figure out how
the binary releases are done I would by happy to make bug fix releases
on an as-needed basis.


> On July 18, 2018 11:44:33 PM GMT+02:00, Volker Braun  
> wrote:
>>
>> On Wednesday, July 18, 2018 at 1:34:56 PM UTC+2, Erik Bray wrote:
>>>
>>> All that said, your claim that this is a "high-risk" upgrade is also
>>> highly specious.  This is upgrading Cysignals from 1.7.1 to 1.7.2 [1]
>>> which contains a couple bug fixes, the most significant of which (in
>>> terms of patch size) impacts Cygwin only.
>>
>>
>> I haven't looked at the diff set, but we did have regressions from minor 
>> cysignals changes before. Its just that signal handlers, due to their 
>> asynchronous nature and interactions with the OS, are notoriously hard to 
>> reason about.
>
>
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-19 Thread Erik Bray
On Wed, Jul 18, 2018 at 11:44 PM Volker Braun  wrote:
>
> On Wednesday, July 18, 2018 at 1:34:56 PM UTC+2, Erik Bray wrote:
>>
>> All that said, your claim that this is a "high-risk" upgrade is also
>> highly specious.  This is upgrading Cysignals from 1.7.1 to 1.7.2 [1]
>> which contains a couple bug fixes, the most significant of which (in
>> terms of patch size) impacts Cygwin only.
>
>
> I haven't looked at the diff set, but we did have regressions from minor 
> cysignals changes before. Its just that signal handlers, due to their 
> asynchronous nature and interactions with the OS, are notoriously hard to 
> reason about.

I agree of course, and if you don't believe me you are welcome to look
at the diff.  However, you could take my word for it that virtually
nothing changed w.r.t. actual signal handling.  There was one
`#define` added as an alias for some platforms, and the rest is
completely Cygwin-specific in `#ifdef` blocks, and is well-tested.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-19 Thread Erik Bray
On Wed, Jul 18, 2018 at 11:21 PM Jeroen Demeyer  wrote:
>
> On 2018-07-18 13:34, Erik Bray wrote:
> > This is again specious, and needlessly disparaging and antagonistic.
> > I don't believe if takes 2 weeks to run CI tests
>
> Just replying on this point: the problem is that many things are not
> caught by CI, especially things related to the build system and portability.

That's certainly true!  But that's why we need a window in the first
place in which we can discover and find those issues.  If what Volker
is saying in terms of adding additional 1-2 weeks of just "breathing
room" then I agree with that and I apologize if I misunderstood.
Though I do disagree with the assertion that the Cysignals update is
"high-risk" (I would say that is much more the case with
https://trac.sagemath.org/ticket/25857 which is why I mostly agree
with Volker's analysis of that one (though I don't like the unilateral
"blocker -> major" changes either).

What I do believe was disparaging and antagonistic was the wording,
not the substance.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-18 Thread Volker Braun
On Wednesday, July 18, 2018 at 1:34:56 PM UTC+2, Erik Bray wrote:
>
> As I wrote previously, I made this fix back in April, 
> but tabled getting the fix directly into Sage since I thought it would 
> be no big deal to make a Cysignals release and update Sage's 
> dependency on it


By definition, if fixing a bug can easily wait for a month or two then its 
not a blocker.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-18 Thread Samuel Lelievre


Le mercredi 18 juillet 2018 23:44:33 UTC+2, Volker Braun:
>
> I haven't looked at the diff set, but we did have regressions
> from minor cysignals changes before. Its just that signal handlers,
> due to their asynchronous nature and interactions with the OS,
> are notoriously hard to reason about.

I would really love #25814 to be merged for Sage 8.3.
Can you please give it a try?

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-18 Thread Timo Kaufmann
As one small data point I can say that I already upgraded cysignals in nixpkgs 
(tested Linux, although it could technically be used on other platforms too). I 
didn't run into any obvious issues.

I also think we should merge that upgrade for 8.3. Erik put in a lot of work to 
make that platform supported and I think the least we should do is support him 
in supporting it :)

Sage has a lot of tests. It might even test a little too much (making the test 
suite brittle). I'm sure they would catch most regressions faster than 1-2 
weeks.

And worst case, if a regression slips through, why are we not doing bug fix 
releases? E.g. sage 8.3.1.

On July 18, 2018 11:44:33 PM GMT+02:00, Volker Braun  
wrote:
>On Wednesday, July 18, 2018 at 1:34:56 PM UTC+2, Erik Bray wrote:
>>
>> All that said, your claim that this is a "high-risk" upgrade is also 
>> highly specious.  This is upgrading Cysignals from 1.7.1 to 1.7.2 [1]
>
>> which contains a couple bug fixes, the most significant of which (in 
>> terms of patch size) impacts Cygwin only.
>
>
>I haven't looked at the diff set, but we did have regressions from
>minor 
>cysignals changes before. Its just that signal handlers, due to their 
>asynchronous nature and interactions with the OS, are notoriously hard
>to 
>reason about. 
>
>-- 
>You received this message because you are subscribed to a topic in the
>Google Groups "sage-devel" group.
>To unsubscribe from this topic, visit
>https://groups.google.com/d/topic/sage-devel/E3pPKrQbBkE/unsubscribe.
>To unsubscribe from this group and all its topics, send an email to
>sage-devel+unsubscr...@googlegroups.com.
>To post to this group, send email to sage-devel@googlegroups.com.
>Visit this group at https://groups.google.com/group/sage-devel.
>For more options, visit https://groups.google.com/d/optout.

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-18 Thread Volker Braun
On Wednesday, July 18, 2018 at 1:34:56 PM UTC+2, Erik Bray wrote:
>
> All that said, your claim that this is a "high-risk" upgrade is also 
> highly specious.  This is upgrading Cysignals from 1.7.1 to 1.7.2 [1] 
> which contains a couple bug fixes, the most significant of which (in 
> terms of patch size) impacts Cygwin only.


I haven't looked at the diff set, but we did have regressions from minor 
cysignals changes before. Its just that signal handlers, due to their 
asynchronous nature and interactions with the OS, are notoriously hard to 
reason about. 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-18 Thread Jeroen Demeyer

On 2018-07-18 13:34, Erik Bray wrote:

This is again specious, and needlessly disparaging and antagonistic.
I don't believe if takes 2 weeks to run CI tests


Just replying on this point: the problem is that many things are not 
caught by CI, especially things related to the build system and portability.


--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Sage's release practices (was :Re: [sage-devel] Re: [sage-trac] #25814: Upgrade to cysignals 1.7.2)

2018-07-18 Thread Erik Bray
On Wed, Jul 18, 2018 at 12:13 AM Volker Braun  wrote:

There's at least a few things I should say here.

> I do appreciate your hard work in making Cygwin work. But IMHO thats a rather 
> high-risk upgrade with little reward. Nobody stops you from merging that 
> ticket when building cygwin binaries.
> And realistically we don't have anyone developing on Cygwin only at this 
> point.

This isn't a development-related bug it's a runtime bug; so I don't
understand your comment "realistically we don't have anyone developing
on Cygwin only at this point".  And it's a pretty serious bug IMO
because it can cause the Sage process to simply *exit* with no error
message and an error code of zero; granted this only happens in some
extreme stack corruption scenarios, such as a stack overflow or
possibly some other situations.  In most software, especially plain
Python software, that is not something we would have to worry about.
However, for something like Sage and much of the mathematics software
it wraps this is not as far-fetched a scenario, it's a very painful
result to debug.

All that said, your claim that this is a "high-risk" upgrade is also
highly specious.  This is upgrading Cysignals from 1.7.1 to 1.7.2 [1]
which contains a couple bug fixes, the most significant of which (in
terms of patch size) impacts Cygwin only.  So I'm not sure what
information you're going on when you call something "high risk".  I
also think it's worth emphasizing that this bug is a regression: It
did not happen in the previous Sage release.

Also going back to "developing on Cygwin" it depends on what you mean
by "developing".  Everyone who uses Sage is "developing" on some
level.  Are you saying there are no Sage users on Windows?

> [ ]   I want to delay all other tickets by 1-2 weeks so that this one Cygwin 
> bug can be fixed.

This is again specious, and needlessly disparaging and antagonistic.
I don't believe if takes 2 weeks to run CI tests--we are in the
process of disproving that in #24655 [2] and related work (and if it
does take that long that's a process problem, not something you can
use as a cudgel).

I hate to sound like a broken record (having to write this phrase yet
again is itself repetitive), but there are things we could do
differently that would save yourself, me, and others a lot of sense of
antagonism every time you're trying to come out with a release.  How
can you claim that a release would be "delayed by 1-2 weeks" when
there is no agreed upon and published release schedule?

The purpose of having a release schedule is, among other things, the
way to avoid these kinds of struggles.  This would not be so important
on a smaller-project developed by only one or two people.  But for a
project consisting of a large community of developers--most of whom
also have other priorities and are not always actively working on Sage
(even me!)--this kind of communication is absolutely necessary in
order to give people a chance to plan and react.  It's quite
normal--common even--to have someone working an issue that they
absolutely plan to have ready for an upcoming release, but need to set
aside temporarily over other priorities, with intention to finish
before the release.  But if they have no idea when that release is
going to happen, how can they plan accordingly?  Sure, it can occur
that a major new feature, or a controversial bug fix simply won't be
ready in time for a release, and that's tough luck.  But you vastly
increase the likelihood of that happening when people don't know when
the release is going to be and can't plan ahead for that.  Take that
scenario times N and it gets that much worse.*

Currently, the only obvious indication that a release is imminent is
that you unilaterally decide to tag something a "release candidate".
When is that going to happen?  After there's been a "beta9"?  Is there
ever a "beta10"?  "beta11"?  The tag history seems to indicate there
could be.  This time the "release candidate" came after "beta8".
Sometimes it comes after "beta6".  I know there is usually some logic
behind this, such as an upcoming Sage days, but you can't expect
everyone to know that, or to read your mind--I'll come back to that
though.

After the "release candidate 0" point, there is also no communication
as to exactly how soon after you tag that "release candidate" you plan
to make the final release.  You would think there would be some
communication of that at least on sage-devel, the primary channel for
Sage developers to communicate with each other and make decisions
about the direction of the project.  Instead it just sort of "happens"
as though it were a force of nature.

By contrast: Looking at the past releases (informally; I haven't
precisely quantized this) it seems there's a new release roughly every
three to five months.  So let's say we plan to come out with a release
once every four months, which is easy to keep track of.  It would be
good even to pin exact dates well in advance: This does not m