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


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.


Re: [sage-devel] Enabling Merge Requests from GitLab

2018-08-21 Thread William Stein
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.

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


Re: [sage-devel] Enabling Merge Requests from GitLab

2018-08-21 Thread Erik Bray
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 :)

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.


Re: [sage-devel] Enabling Merge Requests from GitLab

2018-08-21 Thread Daniel Krenn
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)

Best

Daniel

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