Page History
Note |
---|
This page provides notes on the DSpace SVN to GitHub Migration taking that took place in MarchApril/April 2012.May 2012. It has now all been completed. The final announcement of this migrate is at: http://www.mail-archive.com/dspace-general@lists.sourceforge.net/msg01268.html |
GitHub Migration Steps
Table of Contents | ||||||
---|---|---|---|---|---|---|
|
Codebases to migrate to GitHub
...
Note | ||
---|---|---|
| ||
http://help.github.com/import-from-subversion/
|
Main Codebases
- Primary DSpace Codebase - REBUILD the "The Offical DSpace/DSpace" GitHub repository by performing the following steps: GitHub repository is now active! All DSpace development is now occurring in GitHub instead of SVN.
- The
- Rename the existing "DSpace/DSpace" GitHub repository to something like "DSpace/DSpace-pre-migration"Do a fresh migration of SVN to GitHubis a BRAND NEW copy of SVN, with SVN author mapping using the #Author File below. This migration should happen to a BRAND NEW
- WARNING: The old, "unofficial" "DSpace/DSpace" GitHub repository was renamed to DSpace-SVN-Deprecated
- Anyone who had forked the "unofficial" GitHub
- migrate as-soon as possible to the new GitHub repo, as the old one will not be maintained any further.
- Once everyone has migrated (no more forks exist), we will delete the "DSpace/DSpace-
- SVN-
- Deprecated" repo.
- dspace-api-lang - migrated to GitHub:DSpace/dspace-api-lang
- perhaps migrate to a single 'dspace-lang' GitHub project? (Mark: I think move back into DSpace API and use minor releases to update languages.)
- dspace-xmlui-lang - migrated to GitHub:DSpace/dspace-xmlui-lang
- perhaps migrate to a single 'dspace-lang' GitHub project? (Mark: I think move back into DSpace-xmlui and use minor releases to manage.)
QUESTION: The following codebases are also standalone. Do we want to keep them that way? Do they all merit their own repository in GitHub?
- dspace-services - migrate to 'migrated to GitHub:DSpace/dspace-services' GitHub Project? (Mark: yes, keep it a separate repo for now with its own release numbering.)
- dspace-pom (parent POM of 'dspace-parent' & other DSpace maven projects) - migrate to a 'dspace-pom' GitHub project? (Mark: separate repo) - consolidated into Offical DSpace/DSpace GitHub repository
- The License/License Header files (used by 'dspace-pom') - This License/License Header may just need to be moved into the same location as 'dspace-pom' (as that is where it is used) ( mark: yes) consolidated into Offical DSpace/DSpace GitHub repository
- dspace-assembly-plugin (used by 'dspace-parent' to assembly DSpace)- migrate to ??? (Mark: We started to shift to putting these assembly files into the parent src directory, maybe that's the best place and will eliminate the need for the plugin.) consolidated into Offical DSpace/DSpace GitHub repository
QUESTION: The following codebases are also standalone. Do we want to keep them that way? Do they all merit their own repository in GitHub?
Dependency Codebases
The following codebases are strictly releases of DSpace dependencies. Some of these dependencies just needed to be pushed to Maven Central (i.e. we don't "own" any of the code – all we did was release it to Maven Central because we needed it available there). Others need minor tweaks for DSpace.
QUESTION: Should we just combine all of these into a single 'dspace-dependences' GitHub repository? Is there a reason to maintain these as separate repositories? It seems like most of these we could just release/update as needed from a single 'dspace-dependences' GitHub repo.
- dspace-solr (dependency of 'modules/solr') - migrated to GitHub:DSpace/dspace-solr
- dspace-geoip (dependency of 'dspace-stats') - migrated to GitHub:DSpace/dspace-geoip
- dspace-cocoon-servlet-service-impl (dependency of dspace-xmlui-wing) - migrated to GitHub:DSpace/dspace-cocoon-servlet-service-impl
The below dependencies may no longer be needed, as it seems like we have a valid way to replace them in the future.
- dspace-solr (dependency of 'modules/solr') - migrate to 'dspace-dependencies' GitHub project???
- dspace-geoip (dependency of 'dspace-stats') - migrate to a general 'dspace-dependencies' GitHub project???
- dspace-tm-extractors (used by dspace-api to do text extraction of Word docs?) - Can we just replace this with POI (http://poi.apache.org/), which is used for PPT text extraction (but also looks to work for Word docs)? See DS-1140
- dspace-jmockit (dependency of dspace-parent) - migrate to a general 'dspace-dependencies' GitHub project???
- dspace-cocoon-servlet-service-impl (dependency of dspace-xmlui-wing) - migrate to a general 'dspace-dependencies' GitHub project???
...
- JMockit is now in Maven Central, as long as we can upgrade to 0.999.11 or above. So, we may no longer need this separate project.
Additional Active DSpace projects
...
Archive old SVN (for posterity)
- Make existing SVN READ-ONLY
- Archive the existing SVN (scm.dspace.org hosted by OSUOSL) to http://svn.duraspace.org and make it for posterity.
- DSpace READ-ONLY SVN archive is at: https://svn.duraspace.org/dspace/
- Post a notice in the archived SVN (at svn.duraspace.org) that codebase is now at GitHub
Additional Cleanup tasks
- Turn off any syncing between SVN and GitHub
- Notify the Committers before making this change!!
- Ensure Maven 'License Header' check still works when running 'mvn install' (this is setup in 'dspace-pom')
- Likely will need to move LICENSE_HEADER to GitHub, maybe into same project as 'dspace-pom'?
- Also will likely require a new release of 'dspace-pom'
- Ensure Maven Release Procedure still works - likely will require a POM update or two.
Mark: I've run a few releases via sonatype and github, it might be good to run a test release or two just to verify. We just need to update the source management section of the maven parent Pom. I have examplespf these settings in my repo.
Final Steps
- Notify community when development has moved completely to GitHub.
- Redirect old SVN URLs:
- Redirect scm.dspace.org to svn.duraspace.org (if possible, setup this redirect so that old URLs just go directly to that SVN archive)
- Contact OSUOSL and let them know we no longer need to use the old SVN server.
- (In process/ongoing) Build some "GitHub Best Practices" documentation : @ Development with Git
- Need to also update or delete Tracking your source code with Git
...
Code Block |
---|
svnuser = gituser_full_name <gituser_email> |
Code Block |
---|
syeadonKevinVandeVelde = NAMEKevin <USER@DOMAIN> *(opted-out of GitHub access/mapping)* ahkim = NAME <USER@DOMAIN> bradmc = NAME <USER@DOMAIN> dchud = NAME <USER@DOMAIN> dstuve = NAME <USER@DOMAIN> gam = NAME <USER@DOMAIN> gam5 = NAME <USER@DOMAIN> gcarpent = NAME <USER@DOMAIN> jrutherford = NAME <USER@DOMAIN> jtrimble = NAME <USER@DOMAIN> keithg = NAME <USER@DOMAIN> lcs = NAME <USER@DOMAIN> mirceag = NAME <USER@DOMAIN> pbreton = NAME <USER@DOMAIN> rtansley = NAME <USER@DOMAIN> MOVE IT BELOW WHEN YOU FILL IT OUT KevinVandeVelde = KevinVdV <kevin@mire.be> ScottPhillips = scott-phillips <scott.a.phillips@gmail.com> StuartLewis = stuartlewis <stuart@stuartlewis.com> aschweer = aschweer <schweer@waikato.ac.nz> benbosman = benbosman <ben@atmire.com> bollini = abollini <bollini@cilea.it> cjuergen = cjuergen <claudia.juergen@tu-dortmund.de> grahamtriggs = grahamtriggs <grahamtriggs@gmail.com> jimdowning = jimdowning <jim.downing@gmail.com> kshepherd = kshepherd <kim.shepherd@gmail.com> mdiggory = mdiggory <mdiggory@atmire.com> mwoodiupui = mwoodiupui <mwood@IUPUI.Edu> peterdietz = peterdietzVan de Velde <kevin@mire.be> ScottPhillips = Scott Phillips <scott@scottphillips.com> StuartLewis = Stuart Lewis <stuart@stuartlewis.com> ahkim = Austin Kim <ahkim@users.sourceforge.net> aschweer = Andrea Schweer <schweer@waikato.ac.nz> azeckoski = Aaron Zeckoski <azeckoski@gmail.com> benbosman = Ben Bosman <ben@atmire.com> bollini = Andrea Bollini <bollini@cilea.it> bradmc = Brad McLean <bmclean@duraspace.org> cjuergen = Claudia Juergen <claudia.juergen@tu-dortmund.de> dchud = Dan Chudnov <daniel.chudnov@gmail.com> dstuve = David Stuve <david.stuve@hp.com> gam = Greg McClellan? <gam@users.sourceforge.net> gam5 = Greg McClellan <gam5@users.sourceforge.net> gcarpent = Grace Carpenter <gcarpent@users.sourceforge.net> grahamtriggs = Graham Triggs <grahamtriggs@gmail.com> jimdowning = Jim Downing <jim.downing@gmail.com> jrutherford = James Rutherford <jrutherford@users.sourceforge.net> jtrimble = Jeffrey Trimble <jatrimble@ysu.edu> keithg = Keith Gilbertson <keith.gilbertson@library.gatech.edu> kshepherd = Kim Shepherd <kim.shepherd@gmail.com> lcs = Larry Stone <lcs@users.sourceforge.net> mdiggory = Mark Diggory <mdiggory@atmire.com> mirceag = Gabriela Mircea <gabriela.mircea@utoronto.ca> mwoodiupui = Mark Wood <mwood@IUPUI.Edu> pbreton = Peter Breton <pbreton@users.sourceforge.net> peterdietz = Peter Dietz <dietz.72@osu.edu> pottingerhj = hardyoyoHardy Pottinger <pottingerhj@umsystem.edu> pvillega = Pere pvillegaVillega <pere.villega@gmail.com> richard-jones = richard-jonesRichard Jones <richard@cottagelabs.com> robintaylor = Robin robintaylorTaylor <robin.taylor@ed.ac.uk> rrodgers = richardrodgersRichard Rodgers <rrodgers@mit.edu> rtansley = Robert Tansley <roberttansley@google.com> sands = sandsfishSands Fish <sands@mit.edu> scottphillips = Scott scott-phillipsPhillips <scott@scottphillips.com> stuartlewis = stuartlewisStuart Lewis <stuart@stuartlewis.com> syeadon = Scott Yeadon <scott.yeadon@anu.edu.au> tdonohue = tdonohueTim Donohue <tdonohue@duraspace.org> |