information-artifact-ontology / IAO

information artifact ontology
Creative Commons Attribution 4.0 International
70 stars 25 forks source link

Migrate this repo to github #182

Closed zhengj2007 closed 7 years ago

zhengj2007 commented 8 years ago

From cmung...@gmail.com on July 28, 2015 20:03:53

You have 3 weeks until this site goes read-only https://docs.google.com/document/d/1NfaeHWdZ7BcnaGFfh09X63L4LL7VG_8RNCrLyNdZ8wk/edit#

Original issue: http://code.google.com/p/information-artifact-ontology/issues/detail?id=182

zhengj2007 commented 8 years ago

IAO repository has been migrated to Github

Source code migration:

Preserving commit history for files/directories under releases directories Both Github import and GoogleCode export only migrate the files and directories under trunk directory. The files under releases cannot be migrated. It can be done by move the directory under tags directory using SVN move in GoogleCode. Following steps was performed for preserving commit history of files under IAO releases directory.

Step 1: migration a. Migrate files/directories under trunk using github import: https://information-artifact-ontology.googlecode.com/svn/

b. Migrate files/directories under releases using github import: https://information-artifact-ontology.googlecode.com/svn/releases/

Now two repositories were created in the Github

Step 2: merge Merge two created repositories following commands shown in page: http://stackoverflow.com/questions/2949738/git-merge-different-repositories

If you have two projects, proj1 and proj2 and want to merge changes of proj1 into proj2, you would do it like this: in proj2: git remote add proj1 path/to/proj1 git fetch proj1 git merge proj1/master # or whichever branch you want to merge

After merge, all files/directories under releases and trunk are merged in one repository as sibling not in trunk or releases directory as in Google project

Step 3: add tag Add 'releases' tag to the directories under original GoogleCode releases branch.

Find github commit # of the files and directories and add 'releases' tag using following commands: git tag -a releases commit-number -m "tag message" // create a new tag and tag a specific commit git tag -f releases commit-number -m "tag message" // force to use an existing tag and tag a specific commit git push origin releases //push tag to the server

Step 4: clean up Create a releases directory and move the release files/directory under new created releases directory using 'git mv'

Now, full commit history of the files under master/releases directory can be found by using command: 'git log -follow path/filename' and cannot be browsed on the website. https://github.com/information-artifact-ontology/IAO/tree/master/releases

The commit history of the files/directories can be viewed on the website via tagged directory, see https://github.com/information-artifact-ontology/IAO/tree/releases

This approach can preserve the committers information who contribute to the files/directories under releases directory in the Google code.

Link committers to their github account During migration, github will list all the authors, the mapping to github account can be done by providing committer's github account name or registered email. However, it does not always work since github require the user to set account configuration for linking your commits to your account. Following commands can be run for account configuration: git config --global user.name "your user name" git config --global user.email "your email address"

This setting will apply to all the github repository you involved in. Details please see: https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup

After code migration, following approach can be tried to link your commit to your account. Please check this page if you want to link your commits to your github account: https://help.github.com/articles/why-are-my-commits-linked-to-the-wrong-user/

Issue tracker migration:

Using issues-migrator Python script: https://github.com/arthur-debert/google-code-issues-migrator

The option '--synchronize-ids' is used to ensure that every Github issue gets the same ID as its original Google Code issue. When Google Code skips issue numbers, this option fills the gaps with dummy issues to ensure that the next real issue keeps the same numbering.

Since github only allow to remote access 100 times in an hour, it needs to run twice for IAO project. Second time, '--starts-at' option need to be used to specify the starting issue ID.

Notes: Github issue only allow to attach image file. If the google code issue has attachment other than image will be lost after migration.

Wiki pages migration:

Using googlecode2github wiki conversion Python script, details see: https://github.com/trentm/googlecode2github

zhengj2007 commented 8 years ago

Things need to be done:

bjonnh commented 8 years ago

Update the link in the ontology header rdfs:comment

I was going to do a PR for that, but I'm not sure about which URL you want.

zhengj2007 commented 8 years ago

Current IAO PURL links such as like: http://purl.obolibrary.org/obo/iao.owl redirect to the file located in the google project: http://information-artifact-ontology.googlecode.com/svn/releases/2015-02-23/iao.owl

It need to be updated to the file moved to the github: https://raw.githubusercontent.com/information-artifact-ontology/IAO/master/releases/2015-02-23/iao.owl

All IAO PURLs need to be updated.

alanruttenberg commented 7 years ago

Done https://github.com/OBOFoundry/purl.obolibrary.org/blob/master/config/iao.yml