GitHub migration procedure

Discussion about the project in general, organization, website, or any other details that aren't directly about the game.
Post Reply
Message
Author
User avatar
Vezzra
Release Manager, Design
Posts: 4609
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

GitHub migration procedure

#1 Post by Vezzra » Thu Mar 12, 2015 12:20 pm

I think it's time to nail down the procedure for the switch/migration to GitHub. I propose the following:

1.) Already done: First preparatory steps:
  • If he hasn't already done so, every dev and contributor should dig through some basic git and github tutorials (only applies to those new to git/github of course, all you veterans out there can lay back and enjoy watching us newbies struggle ;)). When we start to use git/github, we should at least have a faint idea what we're doing :lol:
  • Step no longer necessary: Ask Daniel to stop the scripts syncing the SVN repo to the git mirror, if he hasn't done so already - they must be broken by now anyway, since there have been some commits pushed to it when the SVN repo was down. As the mirror repo has already been renamed, this step isn't really relevant for the migration procedure anymore.
  • Already done: Inform all users on github who made forks of the mirror repo that this repo is going to be renamed and a fresh copy of the SVN repo will be swapped in. As this fresh copy will get the name the mirror had before ("freeorion"), they might be able take some measures to ensure their forks don't get screwed up too much (as these forks most probably won't work if the source repo gets replaced by a different, kind of unrelated one).
  • Already done: Inform all devs and contributors to get any uncommitted work committed to SVN, as far as possible, to minimize any troubles that might arise if you need to transfer uncommitted work from a SVN working copy that will be obsolete after the switch to a git working copy.
Most probably we will have to put a deadline on the last one ;)

2.) Already done: Rename the git mirror to something like "fo-svn-mirror".

3.) Already done: Revoke commit access to the SF SVN repo from everyone except the project admins (Geoff, Dilvish and myself), to minimize the risk of someone committing during (and after) the migration process.

4.) Already done: Import the SVN repo with the github importer tool into a new repo "freeorion" within the freeorion account.

5.) In progress: Cleanup steps:
  • Already done: Adjust the Python script that creates Version.cpp to work with git instead of SVN, using "git describe". We might want to finalize our discussion on how the version string should look like before... ;)
  • Already done: Tied to that discussion is also the decision what the naming scheme for the builds should be in future. We won't have the SVN revision number anymore as "build number", so we need to come up with something else. Cjkjvfnby already has made some suggestions in the discussion linked above.
  • Update the SDKs to employ git to fetch/checkout the sources
  • Already done: Update the wiki main page, particularly the links to the repo and recent development work.
  • Decide on what needs to be changed/updated about the FreeOrion project on SF.
    * Already done: What to do with the repo? Will stay as a read-only, retired/defunct repo.
    * Already decided and partly done: Shut down the feature/bug trackers and point people to the issue tracker on github, or leave them active? Migrate them to the GitHub issue tracker and shut them down.
    * What should be changed on the front page to indicate the official repo is now on github?
    * Partly decided: Continue publishing binary releases on SF, or is there a similar feature on github, and if, shall we use that instead? We will continue to publish our releases and test builds on SF. There is a feature on github for releases, but that doesn't look useable for the weekly test builds anyway. We can use this to publish our releases on github too. Shall we do this?
6.) Happily continue developing FreeOrion, until it's finished, or death do us part, or the world ends. Whichever comes first. :D My bet is on option three, but I've never been known for my bright, sunny disposition... ;)

I might have overlooked one thing or another, so any feedback, corrections, additions etc. are welcome. I want to reach a consensus ASAP, so we can go ahead with that thing.

EDIT1: Updated procedure (2015-03-19)
EDIT2: Updated procedure (2015-03-22)
EDIT3: Updated procedure (2015-03-24)
EDIT4: Updated procedure (2015-03-25)
EDIT5: Updated procedure (2015-03-27)
EDIT6: Updated procedure (2015-03-29)
EDIT7: Updated procedure (2015-03-31)
EDIT8: Updated procedure (2015-06-07)
Last edited by Vezzra on Thu Mar 19, 2015 12:56 pm, edited 1 time in total.

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: GitHub migration procedure

#2 Post by MatGB » Thu Mar 12, 2015 1:00 pm

All of this looks sensible to me. Of course, this all happens the weekend after I've finally installed SVN on the better laptop and started work there. Still, Git looks at least sensible, even if it's not at all clear how to do basic things to me yet. I'll get it, eventually.
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

User avatar
Vezzra
Release Manager, Design
Posts: 4609
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: GitHub migration procedure

#3 Post by Vezzra » Thu Mar 12, 2015 1:13 pm

MatGB wrote:Git looks at least sensible, even if it's not at all clear how to do basic things to me yet. I'll get it, eventually.
I plan to create a thread where we can all share our insights/experiences with git so we can learn from each other. I'm already working with git on my local machine, and you just need to get used to the different workflow. After that, you'll like git very much (I hope ;)).

User avatar
Cjkjvfnby
AI Contributor
Posts: 448
Joined: Tue Jun 24, 2014 9:55 pm

Re: GitHub migration procedure

#4 Post by Cjkjvfnby » Thu Mar 12, 2015 9:34 pm

Vezzra wrote:I think it's time to nail down the procedure for the switch/migration to GitHub.
You miss the date :)
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Vezzra
Release Manager, Design
Posts: 4609
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: GitHub migration procedure

#5 Post by Vezzra » Thu Mar 12, 2015 9:53 pm

Cjkjvfnby wrote:You miss the date :)
Well, the date is "as soon as possible", meaning as soon as we agree on a procedure here I'd immediately put it into action. :)

User avatar
Dilvish
AI Lead, Programmer
Posts: 4685
Joined: Sat Sep 22, 2012 6:25 pm

Re: GitHub migration procedure

#6 Post by Dilvish » Mon Mar 16, 2015 3:00 am

We've taken the step of renaming the freeorion/freeorion repo to fo-svn-mirror. For everyone who had forked the repo via GitHub, GitHub has automatically updated your fork to point to the new URL (I believe). Additionally, until such time as we actually create a new freeorion/freeorion repo, all web traffic and git clone, fetch and push operations targeting freeorion/freeorion will (for now) get rerouted to freeorion/fo-svn-mirror, according to GitHub docs. If you did directly clone freeorion/freeorion to a repo on your local computer then you should update it as described here to be sure of avoiding hiccups when we do a fresh/full import of the sourceforge repo as freeorion/freeorion. If your version of git is old enough that it doesn't support set-url then you can use the process described here.

Although the mirroring from SourceForge had stopped (when SF stopped working and we started making the first steps to migrate here), we'll see if we can get the mirroring restarted (to the new URL) until such time as the full import is done.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Vezzra
Release Manager, Design
Posts: 4609
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: GitHub migration procedure

#7 Post by Vezzra » Thu Mar 19, 2015 1:33 pm

I've updated the OP due to some things already done/no longer necessary to do, and some things I overlooked/didn't think of, but are probably important enough to be incorporated into the procedure.

Quick summary of my edits: Marked steps already done or rendered unnecessary by things we did in the meantime, added new (3rd) step, added several cleanup steps.

As there hasn't been any major complaints/objections, I assume that the procedure as outlined meets more or less general consensus. Which is great, as we can go ahead. :D

So, I propose to schedule the switch for coming Sunday (March 22nd). Set a deadline for final commits to the SF SVN repo at 12am UTC, I will then proceed with the proposed procedure: revoke commit access (step 3) from everyone except the project admins (who I ask to refrain from committing anything after the deadline ;)) and begin importing the SVN repo into the new "freeorion" repo within the freeorion account (step 4).

I intend to post a global announcement (I hope I've sufficient rights for that) on the forum informing about the deadline and asking everyone to commit everything they want to have committed before the switch. I'll do that either today, later in the night, or tomorrow morning (to give some opportunity to raise objections, offer corrections etc.). Once the SVN repo has been successfully imported into the new github repo, I'll post another announcement that the official repo has been moved. From that point on, our dear old SVN repo is history and can enjoy retirement. :D All work shall continue with the new repo, the following days however should be dedicated to the cleanup steps of course.

Please, give any comments, suggestions, corrections, objections etc. ASAP (until the deadline at the latest of course ;)).

User avatar
Cjkjvfnby
AI Contributor
Posts: 448
Joined: Tue Jun 24, 2014 9:55 pm

Re: GitHub migration procedure

#8 Post by Cjkjvfnby » Fri Mar 20, 2015 12:33 pm

Vezzra wrote: Please, give any comments, suggestions, corrections, objections etc. ASAP (until the deadline at the latest of course ;)).
Turn off issue tracker
Add .gitignore and README.md (I can do it.)
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Vezzra
Release Manager, Design
Posts: 4609
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: GitHub migration procedure

#9 Post by Vezzra » Fri Mar 20, 2015 3:40 pm

Cjkjvfnby wrote:Turn off issue tracker
That would be my preference too, but I want to hear Dilvish' and Geoffs opinion on that also.
Add .gitignore
Ah yes, of course! During my tests I've already compiled a .gitignore, I've a few more adjustments I want to do, then I can post it and have you take a look at it.
and README.md
Right, the readme. What exactly should that contain?

Also, isn't a LICENCE file also recommended?

User avatar
Dilvish
AI Lead, Programmer
Posts: 4685
Joined: Sat Sep 22, 2012 6:25 pm

Re: GitHub migration procedure

#10 Post by Dilvish » Fri Mar 20, 2015 4:17 pm

Vezzra wrote:
Cjkjvfnby wrote:Turn off issue tracker
That would be my preference too, but I want to hear Dilvish' and Geoffs opinion on that also.
Above you mentioned turning off the SourceForge feature/bug tracker and directing people to the GitHub issue tracker; if that's what you mean then yes that sounds right to me. If you mean turn off the GitHub issue tracker then I'm not understanding the reason to do that.

On a related note, are we going to leave the SDK and executable downloads at SourceForge or move them to GitHub also? (oh, I see now that was one of Vezzra's questions re releases.) I think the latter would be possible, but this is one area that SourceForge does appear to me to have better handling and reporting (but perhaps that's just a familiarity issue for me). Can anyone point us to a GitHub project that handles their executable releases through GitHub in a fairly good way, for us to see an example of what's possible?

I would slightly favor leaving the FO repository up as a read-only backup, but do not have a strong opinion on it.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Bigjoe5
Designer and Programmer
Posts: 2058
Joined: Tue Aug 14, 2007 6:33 pm
Location: Orion

Re: GitHub migration procedure

#11 Post by Bigjoe5 » Fri Mar 20, 2015 6:08 pm

Vezzra wrote:
Add .gitignore
Ah yes, of course! During my tests I've already compiled a .gitignore, I've a few more adjustments I want to do, then I can post it and have you take a look at it.
This repo contains a number of standard .gitignores, which we could probably use as a reference for our own.
Warning: Antarans in dimensional portal are closer than they appear.

User avatar
Vezzra
Release Manager, Design
Posts: 4609
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: GitHub migration procedure

#12 Post by Vezzra » Fri Mar 20, 2015 8:04 pm

Dilvish wrote:Above you mentioned turning off the SourceForge feature/bug tracker and directing people to the GitHub issue tracker; if that's what you mean then yes that sounds right to me.
Yes, of course, that's what I meant. The other way round would indeed not make any sense.

User avatar
Cjkjvfnby
AI Contributor
Posts: 448
Joined: Tue Jun 24, 2014 9:55 pm

Re: GitHub migration procedure

#13 Post by Cjkjvfnby » Sat Mar 21, 2015 8:44 am

README.md
Right, the readme. What exactly should that contain?
bla bla bla https://github.com/Cjkjvfnby/freeorion/ ... me_example
If you are not common with github markdown (https://help.github.com/articles/github ... -markdown/) you can use preview.

1) create *.md file
2) click on it in github browser
3) click on edit icon
4) see preview tab in editing window
Also, isn't a LICENCE file also recommended?
yes. I always miss that part :)
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12249
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: GitHub migration procedure

#14 Post by Geoff the Medio » Sun Mar 22, 2015 2:50 pm

How do I claim commits on this new repository? It just lists "Geoff" as the author, and I can't see any email address to add to my git account to claim them as I think I did for the mirror repository, and hovering on the ? icon says the email address is invalid.

Also, is there a reason that freeorion/freeorion has 7685 commits when the SVN revision was 8050 before the import? I thought redoing the importing was supposed to preserve all the branch history as well, which the svn-mirror repository was missing?

User avatar
Cjkjvfnby
AI Contributor
Posts: 448
Joined: Tue Jun 24, 2014 9:55 pm

Re: GitHub migration procedure

#15 Post by Cjkjvfnby » Sun Mar 22, 2015 3:16 pm

Geoff the Medio wrote:How do I claim commits on this new repository? It just lists "Geoff" as the author, and I can't see any email address to add to my git account to claim them as I think I did for the mirror repository, and hovering on the ? icon says the email address is invalid.
I can't clone repo because my internet connection is bad today. Can you check Author in

Code: Select all

git log
output?

May be we will need this.
https://help.github.com/articles/changing-author-info/
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

Post Reply