How do developers of LinuxCNC feel about the idea of moving the primary git hosting from git.linuxcnc.org to GitHub?
Historically, we made the decision to self-host our revision control after a prolonged outage of the CVS service at sourceforge.net in 2006. Unlike git, cvs is only useful with a server (even "cvs diff" and "cvs log" are network operations), so this was a serious impediment to working on LinuxCNC. When we made the transition to git in 2009, GitHub did not have the stature or reputation that it now does among Free Software and Open Source developers, so we continued to host our own revision control system at that time. Two things have become more clear to me recently. First, the degree of immediate hardship if GitHub goes down is fairly minor, since everyone can continue to work on their local complete copies of the git history of LinuxCNC. Second, if GitHub has an extended downtime or becomes unsuitable for other reasons, we can select other free git hosting services (e.g., BitBucket) or spin up our own hosting (e.g., GitLab CE). Advantages of switching to GitHub as primary rather than a mirror are that we can: - retire the "Signed-off-by" rule[1], and instead rely on GitHub's Terms of Service section D.5[2] to ensure contributions are offered under an appropriate Free Software license. The "Signed-off-by" rule prevents us from immediately accepting a substantial number of first contributions made via GitHub. - merge pull requests directly through their web interface, instead of requiring a manual merge and push even for simple non-conflicted merges - administer push & merge access using the GitHub web UI; users can administer their own ssh keys through the GitHub web UI - get correct information on GitHub about who merged a PR or closed an issue when the commit message says "Close: #nnn". (Right now, because the mirror from git.linuxcnc.org to GitHub is done under Chris Radek's ssh identity, he is identified as closing all issues and PRs!) - retire the self-hosted git.linuxcnc.org service There are several one time costs associated with this change: - Documentation will need to be modified to reflect the new workflow - Seb Kuzminsky must set up change notifications from GitHub to buildbot; he states that he thinks "it will be easy to get that part to work" - Each repository user must issue a "git remote" command to change the "origin" remote, or get a fresh clone - Each developer using direct push access now will need their GitHub account added to the linuxcnc "organization" on GitHub. To begin with, I've identified 12 developers with push access to git.linuxcnc.org who made at least one commit since 2016-1-1 and had a GitHub account that I could find. We'd initially set everyone on that list to have push access on GitHub.[3] If this list doesn't include you, just contact an admin with your GitHub login.[4] If you're a developer with direct push access currently and choose not to create a GitHub account, we'll work out an alternate workflow with you. Of course, we will continue to accept patches via the mailing list, from public git repos besides GitHub, and so on. If there seems to be a general consensus to switch, then I'll officially make a proposal for voting in a future IRC-meeting. Jeff [1]: http://linuxcnc.org/docs/devel/html/code/contributing-to-linuxcnc.html#_signed_off_by_policy [2]: https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license [3]: http://media.unpythonic.net/linuxcnc-pushed-since-2016-1-1.txt [4]: Administrators of the GitHub linuxcnc organization are currently Chris Radek, Seb Kuzminsky, and me ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers