2017-05-18 02:08:00 UTC
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, and instead rely on GitHub's
Terms of Service section D.5 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
- 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
- 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. If this list doesn't
include you, just contact an admin with your GitHub login.
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
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.
: Administrators of the GitHub linuxcnc organization are
currently Chris Radek, Seb Kuzminsky, and me