[sage-devel] Workflows on GitLab

2018-08-22 Thread Julian Rüth
Hello Jeroen,

I agree that fragmentation can be a problem. Then again, I think that 
sometimes splitting discussion on the issue and the discussion on an actual 
attempt to solve that issue can be useful; at least it doesn't feel 
unnatural to me. Also being able to create a new merge request can be nice 
if you actually want to start from scratch. But sure, what you described is 
much more common:

On Wednesday, August 22, 2018 at 9:24:36 PM UTC+2, Jeroen Demeyer wrote:
>
> [...] Something that regularly happens on the Sage Trac: 
>
> 1. Somebody creates an issue 
> 2. Somebody (the same or other person) adds a branch 
> 3. Somebody else forks that branch and adds a reviewer patch 
>
> In the GitHub model, you now have 1 issue and 2 pull requests for 
> exactly the same issue. Even if cross-links are added, you still end up 
> with spaghetti discussions. 
>
 
In most projects, the reviewers are the people who actually have the power 
to merge and so GitHub/GitLab want you to check "allow edit from 
maintainers" when creating a Pull/Merge Request to allow reviewer patches. 
But that won't work for Sage's development model. One way around this would 
be to encourage creation of Merge Requests from a shared namespace such as 
https://gitlab.com/sagemath/dev/sage where everybody developing Sage would 
have push access. This would be somewhat similar to the current public 
namespace in the git repository that is connected to trac.

julian

-- 
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-devel] Re: Enabling Merge Requests from GitLab

2018-08-22 Thread Simon King
Hi Erik,

On 2018-08-22, Erik Bray  wrote:
> Really the workflow is meant to be you create an issue first, and then
> you create one or more pull requests to resolve that issue.  I am also
> a fan of being able to "elevate" an issue to a pull request.  This is
> possible to do on GitHub through the web API and I have a script I use
> for it, but they're trying to discourage that, and I think even
> deprecate the ability to do so.  I'm mystified as to why.

I'd need A LOT more explanations.

What is an "issue"?
What is a "pull request"?

What exactly is the expected workflow on gitlab?

Best regards,
Simon

-- 
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-devel] Enabling Merge Requests from GitLab

2018-08-22 Thread Jeroen Demeyer

On 2018-08-22 21:18, Erik Bray wrote:

But at the same time pull requests are cheap, and there's no harm in
making them.


The harm is that discussion is hard to follow because it's on multiple 
pages. Something that regularly happens on the Sage Trac:


1. Somebody creates an issue
2. Somebody (the same or other person) adds a branch
3. Somebody else forks that branch and adds a reviewer patch

In the GitHub model, you now have 1 issue and 2 pull requests for 
exactly the same issue. Even if cross-links are added, you still end up 
with spaghetti discussions.


--
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-devel] Enabling Merge Requests from GitLab

2018-08-22 Thread Erik Bray
On Wed, Aug 22, 2018 at 8:58 PM Jeroen Demeyer  wrote:
>
> For me, the number 1 thing that our Trac server does better than GitHub
> (again, I don't know about GitLab) is that the "branch" field is
> mutable: an issue is just a pull request without a branch and I can
> change the branch on a pull request to add a reviewer patch (sometimes
> it's easier to add a patch myself instead of explaining to the author
> what he should do).

I agree--this is one of my biggest complaints.  I'm not sure why this
isn't possible.  It might have something to do with tracking comments
but even that can't be the case.  On GitHub it's already perfectly
possible to force a push that completely replaces the original branch.
Any source comments that can no longer be associated with a line in
the patch are still visible on the issue's timeline, but just marked
being a comment on outdated code.  So if they already do this I'm not
sure why the branch itself isn't mutable.

Interestingly, GitLab allows you to modify the *target* branch of a
merge request, but not the source branch.  The opposite would seem
more useful to me.

Anyways, while I also like this aspect of Sage's Trac, it's something
I could live without.  If we can express a good use case for it, we
might even be able to get such a feature into GitLab--we'd have a
better chance there than with GitHub at least.

Really the workflow is meant to be you create an issue first, and then
you create one or more pull requests to resolve that issue.  I am also
a fan of being able to "elevate" an issue to a pull request.  This is
possible to do on GitHub through the web API and I have a script I use
for it, but they're trying to discourage that, and I think even
deprecate the ability to do so.  I'm mystified as to why.

But at the same time pull requests are cheap, and there's no harm in
making them.

> And I agree that custom fields are also very useful: I always find using
> GitHub labels quite messy. And things like "dependencies" simply cannot
> be handled using labels.

GitLab has the ability to add "related issues" to an issue.  I haven't
used that feature so I don't know how useful it is by comparison.\

Anyways, I would prefer to leave the rest of this discussion for
another time, and keep this focused just on enabling merge requests /
pull requests.  I think that is undeniably a more accessible way for
new contributors to make their first contributions.

-- 
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-devel] Enabling Merge Requests from GitLab

2018-08-22 Thread Jeroen Demeyer
For me, the number 1 thing that our Trac server does better than GitHub 
(again, I don't know about GitLab) is that the "branch" field is 
mutable: an issue is just a pull request without a branch and I can 
change the branch on a pull request to add a reviewer patch (sometimes 
it's easier to add a patch myself instead of explaining to the author 
what he should do).


And I agree that custom fields are also very useful: I always find using 
GitHub labels quite messy. And things like "dependencies" simply cannot 
be handled using labels.



Jeroen.

--
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-devel] Enabling Merge Requests from GitLab

2018-08-22 Thread Erik Bray
On Wed, Aug 22, 2018 at 5:38 PM Jeroen Demeyer  wrote:
>
> On 2018-08-21 10:43, Erik Bray wrote:
> > A second clarification to make is that we are not currently proposing
> > to do away with Trac for Sage's ticket database
>
> I find this quite important. I really really really like the Sage Trac
> workflow (much more than I like GitHub; I haven't used GitLab so I
> cannot comment on that).
>
> My only fear is that this semi-move to GitLab will be an excuse to
> gradually make Trac less important. I don't want this to be a first step
> on the slippery slope to move completely to GitLab.

I like Trac too.  In particular there are two things I like about Trac
that most popular modern code hosting sites lack (though there are
probably other things I like too, but these are the two that stand
out):

1. Customizable ticket fields:  Once can add any number of fields to
tickets and those fields can be different data types (usually either a
text box or select menu of some kind).  Built-in examples include
component, type, etc.  This is common in most commercial bug tracking
systems, but GitLab and GitHub basically just offer "labels"--just a
single enumeration of tag strings you can attach to an issue (much
like tags on a blog post, say).  You can certainly emulate custom
fields by namespacing labels, and this is common.  E.g. "type:
defect", "type: enhancement", etc.  But this is not as good as having
dedicated fields.  Many projects make up for this by having bots which
enforce a selection of labels from various categories (much like how
Volker manually sets a ticket to "needs work" if the reviewer field is
not set, a bot can mark a ticket as "needs work" if someone hasn't
applied a "type" label to an issue.

2. Customized ticket workflows.  E.g.
new->assigned->needs_review->needs_work->needs_review->positive_review->fixed

Many Sage developers whose only experience with Trac may not realize
this, but that is *not* the standard default workflow for Trac.  It
has been customized specifically to meet the preferred workflow of
Sage's maintainers (it could use a little more tweaking, but I think
it's mostly pretty good).

On GitHub and GitLab, most workflow enforcement is done by bots.  And
you can do a  *lot* with bots, and this is successful for many
projects.  There are also many open source bots for this kind of
purpose that can be used by any project, or easily tweaked to fit
one's one workflow.  I do prefer that workflow be more deeply built
into the system, but at least there are workarounds.  Again, if you
want a good example, just look at CPython.  It's pretty amazing
actually--they have 3 or 4 different bots (all Monty Python and the
Holy Grail themed) running all over the repository doing most of the
repetitive tasks up to the point where all that's left is for a human
to do code review: https://github.com/python/cpython

GitLab in the meantime has added a few nice features that I think in
part make up for the deficiencies in other areas.  For example, there
is a dedicated Milestone field on issues, which I think is important
for Sage's workflow; there is also an assignee field (one that gets
used less than it should on Trac as it is).  There is also a due date
(nice to have if you are aiming for a particular milestone) and fairly
recently time tracking (less important on the whole for open source
projects, but still nice if you want to know how much time you've
spent on something).  Search is also much, much better.  It's very
quick and easy to search for issues, and you can also search the code.

So while I share your wariness, I can go either way.  Introducing
*some* GitLab into the workflow, if it takes off at all, will give
people an opportunity to make up their own minds from personal
experience, rather than FUD and speculation :)

Best,
E

-- 
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-devel] Enabling Merge Requests from GitLab

2018-08-22 Thread Jeroen Demeyer

On 2018-08-21 10:43, Erik Bray wrote:

A second clarification to make is that we are not currently proposing
to do away with Trac for Sage's ticket database


I find this quite important. I really really really like the Sage Trac 
workflow (much more than I like GitHub; I haven't used GitLab so I 
cannot comment on that).


My only fear is that this semi-move to GitLab will be an excuse to 
gradually make Trac less important. I don't want this to be a first step 
on the slippery slope to move completely to GitLab.



Jeroen.

--
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-devel] Re: Enabling Merge Requests from GitLab

2018-08-22 Thread Erik Bray
On Wed, Aug 22, 2018 at 11:08 AM Simon King  wrote:
>
> Tue 2018-08-21 08:43:19 UTC, Erik Bray:
> > What does everyone think? Is there anyone opposed to going ahead and
> > opening up merge requests?
>
> Is the plan to successively reduce the usage of our current trac system
> and completely move to gitlab? In that case I would be rather reluctant.

If I'm to be honest, that is *my* plan, but that is not the immediate
plan for integrating with GitLab.  At a certain point it makes little
sense to maintain two parallel systems.  But porting our existing
database of Trac issues to another system would still be a massive
undertaking and not trivial to get right.

I say this as a former developer of Trac and someone who is generally
a big proponent of it.  I would still argue that its ticket and wiki
systems are far superior to those offered by either GitHub or GitLab
(Bitbucket tops both IMO but that's a controversial opinion).  So I'm
not in any hurry to move totally off of Trac, but in the long-term it
makes little sense to me not to.

This is a subject of controversy in the python-devel as well.  Most
people have been happy with using GitHub for pull requests, but there
are still those who are hesitant to take the next step.  There is, as
of recently a draft PEP for migrating their issues to GitHub, but it
is by no means settled: https://www.python.org/dev/peps/pep-0581/
Many of the arguments for and against apply for us as well, just
s/Python/Sage/; s/bpo/trac/; s/GitHub/GitLab/.  Though not all
arguments apply--I would argue that what we have with Trac currently
is much better than Python's old Roundup-based issue tracker.

In the meantime I'm happy to take things one step at a time and
reassess as we go.  I am not 100% sold on moving entirely away from
Trac, even if I believe it's inevitable.

-- 
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-devel] Re: Enabling Merge Requests from GitLab

2018-08-22 Thread Erik Bray
On Tue, Aug 21, 2018 at 6:47 PM Eric Gourgoulhon  wrote:
>
> Hi,
>
> Le mardi 21 août 2018 10:43:19 UTC+2, Erik Bray a écrit :
>>
>>
>> Why GitLab?  In short, we felt it would likely be more acceptable to
>> most members of the Sage community; this was a feeling we had even
>> before the Microsoft's acquisition of GitHub was announced.  First of
>> all, GitLab is open-core, meaning that the majority of their software
>> is open source, but for paying customers there are additional features
>> that are not made open source. This, in addition to providing higher
>> level of support to paying customers, is the basis of their business
>> model.  But IMO it is more inherently open source-friendly than, say,
>> GitHub.
>>
>
>
> +1 for privileging GitLab over Microsoft's GitHub.

One thing I should make clear: This choice should not be taken as an
opportunity for Microsoft bashing (which I am *not* accusing you of
doing, but this wording made me think I should make a disclaimer).
Prior to OpenDreamKit, Microsoft was one of the first, if not the
first, organizations to provide direct funding for Sage development.
At the time it was not nearly enough for what needed to be done.  But
I would certainly welcome more such funding, or other resources, such
as donated resources on Azure for continuous integration / builds on
Windows.  There are also areas where I think Microsoft could really
help Cygwin development by opening up more documentation on how the
WSL works (an for those wondering, the WSL is as yet not a full
replacement for Cygwin, or vice-versa).

Of course, in the off chance I or anyone else are able to get some
support from Microsoft again, if they placed certain conditions on
it--such as using GitHub--we would be forced to decline.


>> For an immediate use case
>> of this that I have in mind, I would like to make it easier for users
>> to submit documentation fixes: https://trac.sagemath.org/ticket/25914
>
>
> This sounds very nice!
>
>>
>>
>> What does everyone think?  Is there anyone opposed to going ahead and
>> opening up merge requests?
>
>
>
> A big +1 for going ahead!  and many thanks for your work.

Thanks!

-- 
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-devel] Enabling Merge Requests from GitLab

2018-08-22 Thread Erik Bray
On Tue, Aug 21, 2018 at 5:05 PM William Stein  wrote:
>
> On Tue, Aug 21, 2018 at 1:43 AM, Erik Bray  wrote:
>
> > Some of you may remember this is not a first for Sage either: some
> > time ago there was a similar experiment done with GitHub, but it fell
> > unmaintained.  If anyone has any lessons learned from that time,
> > please add them.
>
> I think Robert Bradshaw set all of that up during a Sage Days, then
> went back to his normal fulltime job and
> basically didn't look at it again.  So it was unmaintained just due to
> lack of time/focus, and not some deeper
> issue.

That was my impression as well, but I still wondered if anyone had any
particular experiences from that that they remembered.

In particular I'm of course interested in Volker's opinion, as release
manager.  My "bot" has gone through a few iterations, and the current
version is in fact actually just a Trac plugin, so it integrates
closely with our existing Trac server and git repository.  I've tried
to make it explicitly compatible with his current process and to not
get in the way of anything.

Of course, if adjustments are needed in practice, they will be easy
for me to make.


> > What does everyone think?  Is there anyone opposed to going ahead and
> > opening up merge requests?
> >
>
> +1.  Thanks!!!
>
> --
> William (http://wstein.org)

-- 
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-devel] Re: Enabling Merge Requests from GitLab

2018-08-22 Thread Dima Pasechnik
No, I don't think this is the plan.
Note also that "moving to gitlab" might mean two rather different things (on 
the surface they might look similar)

* using gitlab's servers 

* self-host gitlab

The latter case this would mean replacing trac, which does not age too well, as 
we see, with something much more modern and designed for using git from ground 
up.

-- 
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-devel] Re: Enabling Merge Requests from GitLab

2018-08-22 Thread Simon King
Tue 2018-08-21 08:43:19 UTC, Erik Bray:
> What does everyone think? Is there anyone opposed to going ahead and 
> opening up merge requests? 

Is the plan to successively reduce the usage of our current trac system
and completely move to gitlab? In that case I would be rather reluctant.

Best regards,
Simon

-- 
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-devel] Enabling Merge Requests from GitLab

2018-08-22 Thread Dima Pasechnik


On Tuesday, August 21, 2018 at 1:36:52 PM UTC+3, Erik Bray wrote:
>
> On Tue, Aug 21, 2018 at 11:21 AM Daniel Krenn > 
> wrote: 
> > 
> > On 08/21/2018 10:43 AM, Erik Bray wrote: 
> > > https://gitlab.com/sagemath/sage 
> > 
> > How do I become a member of the SageMath group (or the project) in 
> > Gitlab? (username: dakrenn) 
>
> Just ask, like you just did :) 
>
I'm also interested: I'm dimpase on gitlab 

>
> However, I think until / unless there's been more discussion about 
> this and how to use it, we will be limiting access for now until there 
> are processes set up. 
>
> For the most part, the main sagemath/sage repository is still going to 
> be a read only mirror of the git.sagemath.org repository, and will be 
> open only to merge requests, which must *not* be merged via GitLab; 
> rather a ticket on Trac would be opened, and once that ticket receives 
> positive review Volker would just merge as usual.  The GitLab<->Trac 
> bot synchronizes the merge request branch from GitLab to a branch on 
> git.sagemath.org under the "u/galois/" namespace ("galois" is the name 
> of the bot).  So, if this works correctly (which I've tested on 
> development servers) there need not be any process changes for the 
> release manager currently.  Also, when the Trac ticket is closed the 
> GitLab merge request is also closed automatically. 
>
> I didn't mention this in my original message, but we have also set up 
> a sub-project under https://gitlab.com/sagemath/dev  This is where 
> team members, once we start adding them, can play around more freely, 
> and I don't know if we have an exact plan for how it will be used yet 
> (Julian has thought harder about this than I have). 
>

-- 
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-devel] Re: moving tickets forward

2018-08-22 Thread Dima Pasechnik
It looks that Magma-related failure is caused by changes in Magma; it could 
be a different Magma version
will still be OK. I don't think it should stop #25351 from moving forward. 
Someone with Magma ought to open a ticket to fix this, if necessary. 

On Wednesday, August 22, 2018 at 12:04:56 AM UTC+3, Brent W. Baccala wrote:
>
> Hi -
>
> I'd like some guidance on how to move some of my tickets forward, #25351, 
> for example.  Once #25351 is closed, then we can move on to #25390, which 
> depends on #25351 and will give us multivariate polynomial factorization 
> over QQbar.
>
> Patchbot shows two test failures on #25351 involving magma.  I don't think 
> this is due to my changes, but I don't have magma, so how can I be sure?  
> Is there a ticket somewhere that shows patchbot running with magma against 
> 8.4.beta1?  If not, it seems like a reasonable feature to have - something 
> that shows any test failures against the current release tag.
>
> Other than that, the last comment on the ticket (by mmezzarobba) was 
> positive, but that was six weeks ago.  I've updated the ticket's git branch 
> by merging in 8.4.beta1 and have resolved all of the patchbot failures 
> other than the magma issues.
>
> Are there any suggestions on what else can I do to encourage forward 
> movement on the ticket?
>
> Thanks.
>
> agape
> brent
>
>

-- 
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.