Re: [sage-devel] Enabling Merge Requests from GitLab
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
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
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
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
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
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
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
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
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
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.
[sage-devel] Enabling Merge Requests from GitLab
Hi all, Earlier this spring Julian RĂ¼th and I sat down and created a mirror of Sage's repository over at GitLab: https://gitlab.com/sagemath/sage This is in addition to the existing mirror at GitHub, for which we have no immediate plans except to have it link to the GitLab mirror. The reasons for this are several--in particular, Julian has put considerable work into a new advisory continuous integration system for Sage built on top of GitLab's CI pipeline system. It's quite nice, as the result of each built is a Docker image which can be run and tested in mybinder.org. With the exception of testing on unusual platforms, this means that proposed changes in tickets--if they indeed build successfully--will be easy to manually try out and play with without having to build them one's self. I will let Julian say more about that when he's ready to. I am bringing up the GitLab mirror for a different, but related reason, which is that I would like to start allowing submissions to Sage to be made via "merge requests" on GitLab (a.k.a. pull requests in GitHub parlance). 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. Second of all, while we are currently using the free hosting providing by gitlab.com, which frees us from both the cost in money and time of having to maintain our own GitLab server, GitLab makes it quite easy (I have done it myself) to self-host a GitLab server. So should anything ever go awry with gitlab.com, we can always export the project to a self-hosted server as we do currently with Trac. A second clarification to make is that we are not currently proposing to do away with Trac for Sage's ticket database, and we do not intend to open up the full issue tracker on GitLab. Instead, we only want to be able to accept merge requests, as we believe that enabling the popular "GitHub-style workflow" will make it easier and friendlier for new contributors to submit changes to Sage. 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 In order that this does not overly disrupt the existing workflow, I have created a bot that automatically syncs GitLab merge requests to a Trac ticket, including synchronization of the branch being proposed for merging. This would allow Volker to continue merging positively reviewed tickets as usual, and (in theory) never even have to touch GitLab. You can see an example of any auto-generated ticket attached. If there are suggestions as to how exactly the auto-generated tickets are formatted I'm open to them--I know it's not exactly perfect as-is. But those are details. The only major downside I see is fragmentation of the discussion of a merge request: Comments can be made either on GitLab itself, or in the auto-generated Trac ticket. I do not yet have a specific recommendation for that in mind, and we may need to experiment. I considered having the bot synchronize comments as well, but that could get even more confusing. One thing I will say though, is that GitLab merge requests will give us superior code-review tools, such as the ability to leave comments inline with the diff. I'd like to just try it and see how it goes, but I'm also open to suggestions. There is also precedent for this model in other projects with legacy issue trackers. Most notably, of late, CPython itself, which started accepting pull requests through GitHub. I haven't seen too much complaint about the discussion being fragemented. For the most part discussions about the details of issues and what to do about them stay on the issue tracker, while discussions about code details (i.e. code review) stay on GitHub, though this is not cut-and-dry. A recent informal poll of the CPython developers as to how this workflow is going was almost entirely positive: https://mail.python.org/pipermail/python-dev/2018-February/152200.html 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. What does everyone think? Is there anyone opposed to going ahead and opening up merge requests? -- 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