On Fri, Jan 06, 2017 at 12:51:18AM -0800, Bryce Harrington wrote:
"The time has come," the Walrus said, "To talk of many things: Of shoes — and ships — and sealing-wax— Of cabbages — and kings — And why the sea is boiling hot— And whether Inkscape should switch to gitlab or github or entirely other things."
At Hackfest 2015 we broached the topic of moving to git, and while recognizing it as probably inevitable, decided to take care of a few other things like switching to cmake first, and getting a release out the door, and getting going with Gtk3 and C++-11.
That release is out the door, cmake is done, Gtk3 is landed in trunk, C++-11 work is under way, and so I think it's time we start on tackling git.
When we last visited this discussion, there was a consensus that yes we should move to git, and that rather than self-hosting a plain git repo (ala freedesktop), we would be better to look at an integrated platform like github or gitlab. But there was not a consensus as to which of those two to pick.
So the task at hand is to discuss and deliberate the two and decide which should be our focus. Both have interesting pros and cons, and I don't think the decision is clear cut.
Where should we go?
In github's favor is that it holds the greater mindshare. Where we to go with it we'd potentially tap into a larger community of developers, which potentially could translate into a greater level of new participation in the project. github also seems like it's received a greater amount of polish and has some feature advantages (github's CI was seen as a huge pro last time we looked).
gitlab is an up-and-comer and is actively acquiring analogous features to github. A big pro for us is that gitlab is FOSS whereas gitlab is free but proprietary. With gitlab we'd also hold the option of self-hosting, which might not matter or might be a huge advantage, it's hard to say.
Both services provide broadly similar functionality and user experiences. The differences between them will be small compared with the differences we'll be facing moving from bzr+launchpad. Also, migration from github to gitlab or vice versa if we change our minds doesn't look like it'd be all that difficult.
Those may be the best two options but they're not the only ones we have. There's other services, and of course git can be used serverside all on its own purely as commandline, or with cgit to provide a minimal web service.
Thanks everyone so far for providing your input. We're still missing input from a number of folk that will be affected by this change so don't think we're ready to finalize a decision.
Some things are easy to quantify, like whether each option supports a given feature, or how widely used one service is, or whether the option matches our open source values. Those are straightforward factors to judge.
Other things are harder to quantify. However, based on feedback these seem to be of genuinely high interest. For instance, we expect github's significantly higher mindshare to translate into significantly more new developers, but we don't know for sure that would happen or how many more that would be. Similarly, gitlab clearly is open source and welcomes contributions, but is that something we would be positioned to take advantage of? (Launchpad has been open source but I don't know that we've taken any advantage of that.)
However, while hard to quantify these would be straightforward to test: We could simply pick one or the other and then document our assumptions about what we expect, then revisit the decision after some period of time to see if our expectations were met. Then, if not, we try the other option (the good news is it appears migrating from one to the other is fairly trivial.)
2geom has been on github already for some time, and we could use it as a data point to test the assumptions. Has it seen an influx of new contributors? Has the number of branches or merge proposals increased since before it was hosted there? What benefits and problems has it encountered in its use of github?
We could test gitlab by migrating, say, inkscape_web to it, and host it there for some period to test the assumptions we have around gitlab. I.e. is the performance and UX ok? Is there a tangible benefit to gitlab being open source, that inkscape_web can take advantage of? Does our "large fish in a small pond" result in better attention from the gitlab development community?
Another idea might be to select an option, and then just plan to revisit that decision once 1.0.0 is out the door.
Whatever we end up deciding to do, I'd really like to see a strong consensus favoring our plan.
Bryce
-- faqs -------------------------------------------------------------------
Why the need to move from bzr? One of the reasons why we switched from svn to bzr rather than git was because it was easier to learn; these days so many people know git and don't know bzr (and probably don't care to learn bzr) that this isn't quite such an advantage any more. git is also more actively maintained than bzr, and has a far bigger ecosystem of tutorials, tools and services. We also liked the integration between bzr and the LP bug tracker -- we'll lose this, although github/gitlab provide different integration opportunities that might compensate a bit.
What services would we move? What we've discussed in the past is to keep the migration limited to VCS, branch management, and code review. The issue tracking in github/gitlab is quite different from what we've grown accustomed to in LP so changing that might be too much disruption. bzr->git is the main thing we're concerned with; transition of other services can be handled on a case by case basis.
How would we undertake the transition? suv made a good point today that migration of smaller codebases first can be helpful so that the learning curve can be digested in pieces rather than in one big go. So perhaps we should begin by moving some of our more peripheral bzr repos, then maybe things like the website and then 2geom, and then do inkscape last.
What about people who don't yet know git? I suspect a lot of us either already know git or have been working on learning it, that this isn't an issue. However, this transition is important enough I'd be willing to propose to the board that we fund book purchases and/or other forms of training for members that might need it.
When would the transition be done? We've done some initial experimentation already. I would propose as soon as we have a strong consensus for github or gitlab that we proceed with moving the board's repository, inkscape-docs, and any other small / lesser-used repositories still relevant to Inkscape. Then second in perhaps a few months migrate inkscape-web and 2geom over. Once those are complete then migrate the inkscape repository itself over, with the goal of having the migration done. I'd like to see the transition completed prior to when we start getting heavily into the 0.93 release.
Let me know your thoughts, and help us drive towards a consensus for github or gitlab.
Thanks, Bryce
Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel