Contribute to the DSpace Development Fund
The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.
This page provides notes on the DSpace SVN to GitHub Migration taking place in March/April 2012.
GitHub Migration Steps
Codebases to migrate to GitHub
At this time, we will only migrate codebases which are currently under active development (we can always move others later on, as we will keep an archive of SVN). If any are missing from the below list, feel free to add them.
GitHub import hints
Main Codebases
- Primary DSpace Codebase - Migrate (perform final sync) Main Trunk/Branches/Tags to https://github.com/DSpace/DSpace.
- WARNING - WILL NOT PERFORM AUTHOR MAPPING: At this time, we do not plan to perform the "SVN author mapping" (See #Author File) for this primary codebase. The reason why is that it can only be performed by essentially "destroying" the existing GitHub repository and rebuilding/recreating it. If we were to recreate this codebase, it would be detrimental to all people/institutions who have already forked it. Since "recreating this repository with author mappings" doesn't seem to give us much benefit in GitHub, the attendees of the Developers Meeting on March 14,2 012 decided it doesn't seem worth the hassle.
- dspace-api-lang - migrated to GitHub:DSpace/dspace-api-lang
- perhaps migrate to a single 'dspace-lang' GitHub project?
- dspace-xmlui-lang - migrated to GitHub:DSpace/dspace-xmlui-lang
- perhaps migrate to a single 'dspace-lang' GitHub project?
- The "Licenses" repository - This License/License Header may just need to be moved into https://github.com/DSpace/DSpace somewhere?
QUESTION: The following codebases are also standalone. Do we want to keep them that way? (i.e. do they all merit their own repository in GitHub)?
- dspace-services - migrate to 'dspace-services' GitHub Project?
- dspace-pom (parent POM of 'dspace-parent' & other DSpace maven projects) - migrate to a 'dspace-pom' GitHub project?
- dspace-assembly-plugin (used by 'dspace-parent' to assembly DSpace) - migrate to ???
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') - 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???
Additional Active DSpace projects
- dspace-replicate - Already migrated to https://github.com/DSpace/dspace-replicate
- dspace-rest - Already migrated to https://github.com/DSpace/dspace-rest
Inactive projects (won't be moved to GitHub)
No Inactive Projects will be migrated to GitHub at this time
At this time, we do not plan to migrate any inactive projects to the central DSpace GitHub. Instead they will all be archived in a READ-ONLY SVN. They can always be migrated at a later time, as necessary.
Individual developers/committers are welcome to move any of these projects into their own personal GitHub account. They just won't be moved into the central DSpace GitHub.
Projects that seem to be "inactive" at this time include:
- DSpace 2.0 SVN codebase (This is the code from the 2009 DSpace 2.0 prototype)
- Modules directly related to the 2.0 Prototype, including:
- The 'dspace-storage' modules and all "storage-*" modules listed at: http://scm.dspace.org/svn/repo/modules/
- All Sandbox projects at: http://scm.dspace.org/svn/repo/sandbox/
- All old DSpace Maven Tools at: http://scm.dspace.org/svn/repo/tools/maven/ (EXCEPT the 'dspace-assembly-plugin' which is listed above)
- The following 'demo/experimental' modules:
- dspace-core module
- dspace-database module
- Old copy of 'dspace-discovery' at: http://scm.dspace.org/svn/repo/modules/dspace-discovery/
- dspace-imscp module
- dspace-schedule module
- Old copy of 'dspace-stats' at: http://scm.dspace.org/svn/repo/modules/dspace-stats/
- dspace-sync module
- Any other SVN projects we haven't explicitly listed in another section as one we are planning to move to GitHub.
Archive old SVN (for posterity)
- Archive the existing SVN (hosted by OSUOSL) to http://svn.duraspace.org and make it READ-ONLY.
- 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.
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.
- Build some "GitHub Best Practices" documentation:
- Need to also update Tracking your source code with Git
Author File
The Author File provides a mapping of SVN users to GitHub users.
Format:
svnuser = gituser_name <gituser_email>
KevinVandeVelde = KevinVdV <kevin@mire.be> ScottPhillips = NAME <USER@DOMAIN> StuartLewis = NAME <USER@DOMAIN> ahkim = NAME <USER@DOMAIN> aschweer = aschweer <schweer@waikato.ac.nz> benbosman = benbosman <ben@atmire.com> bollini = abollini <bollini@cilea.it> bradmc = NAME <USER@DOMAIN> cjuergen = cjuergen <claudia.juergen@tu-dortmund.de> dchud = NAME <USER@DOMAIN> dstuve = NAME <USER@DOMAIN> gam = NAME <USER@DOMAIN> gam5 = NAME <USER@DOMAIN> gcarpent = NAME <USER@DOMAIN> grahamtriggs = NAME <USER@DOMAIN> jimdowning = NAME <USER@DOMAIN> jrutherford = NAME <USER@DOMAIN> jtrimble = NAME <USER@DOMAIN> keithg = NAME <USER@DOMAIN> kshepherd = kshepherd <kim.shepherd@gmail.com> lcs = NAME <USER@DOMAIN> mdiggory = mdiggory <mdiggory@atmire.com> mirceag = NAME <USER@DOMAIN> mwoodiupui = mwoodiupui <mwood@IUPUI.Edu> pbreton = NAME <USER@DOMAIN> peterdietz = peterdietz <dietz.72@osu.edu> pottingerhj = hardyoyo <pottingerhj@umsystem.edu> pvillega = NAME <USER@DOMAIN> richard-jones = NAME <USER@DOMAIN> robintaylor = robintaylor <robin.taylor@ed.ac.uk> rrodgers = NAME <USER@DOMAIN> rtansley = NAME <USER@DOMAIN> sands = sandsfish <sands@mit.edu> scottphillips = scott-phillips <scott@scottphillips.com> stuartlewis = NAME <USER@DOMAIN> syeadon = NAME <USER@DOMAIN> tdonohue = tdonohue <tdonohue@duraspace.org>