Changes between Initial Version and Version 1 of RFC/6_MigrationGitHub


Ignore:
Timestamp:
03/05/19 13:46:58 (6 years ago)
Author:
neteler
Comment:

Inital version

Legend:

Unmodified
Added
Removed
Modified
  • RFC/6_MigrationGitHub

    v1 v1  
     1[[TOC]]
     2= RFC 6: Migration from SVN to !GitHub =
     3
     4Author of the first draft: Markus Neteler, Martin Landa
     5
     6Status: Draft (05 Mar 2019)
     7
     8== Introduction ==
     9
     10GRASS GIS is an open source geoinformation system which is developed by a globally distributed team of developers. Besides the source code developers also message translators, people who write documentation, those who report bugs and wishes and more are involved.
     11
     12The centralized source code management system Subversion (SVN) has served the GRASS GIS project very well since 2007. The project has established routines and infrastructure (code repository, ticketing system, developer wiki) connected to SVN. However, with an increasing number of Open Source developers using git (and here especially the success of !GitHub), time has come to migrate the source code base from SVN kindly hosted by OSGeo to !GitHub.com, a widely adopted development platform.
     13
     14== Background information of discussions ==
     15
     16 * For Background and aims, see
     17   * https://trac.osgeo.org/grass/wiki/GitMigration
     18 * Results of a survey performed in early 2019:
     19   * https://docs.google.com/forms/d/1BoTFyZRNebqVX98A3rh5GpUS2gKFfmuim78gbradDjc/viewanalytics
     20 * Technical discussions
     21   * svn -> git test migration ongoing, see #3722
     22
     23== New Github repositories ==
     24
     25Since migration is a huge effort, massive work on converting the existing source code (organized in branches) and the related trac tickets has been done. The main scope of weeks of efforts was to preserve as much information as possible by converting trac/svn references to full URLs pointing to the old system kept available in read-only mode.
     26
     27The following new !GitHub repositories have been created:
     28
     29 * repository **grass**
     30   * Source code from 1999 to present day (SVN-trunk -> git-master)
     31   * i.e., all 7.x release branches
     32 * repository **grass-legacy**
     33   * Source code from 1987 - 1999
     34   * i.e., a separate repository for older GRASS GIS releases (3.2, 4.x, 5.x, 6.x)
     35 * repository **grass-addons**
     36   * repository for addons (this will become less relevant as people tend to keep their addons in own repositories)
     37 * repository **grass-promo**
     38   * repository for promotional material
     39
     40The final destination of these repositories will be under
     41
     42  https://github.com/OSGeo/
     43
     44== Authorship and SVN user name mapping to !GitHub ==
     45
     46Given GRASS GIS’ history of 35+ years we had to invest major effort in identifying and mapping user names throughout the decades. The following circumstances could be identified:
     47
     48 * user present in CSV but not in SVN
     49 * user present in SVN but not in CSV
     50 * user present in both with identical name
     51 * user present in both with different name as some were changed in the CVS to SVN migration in 2007, leading to colliding user names
     52 * some users already having a !GitHub account (with mostly different name again)
     53
     54**Important**: nothing is lost as contributions can be [https://help.github.com/en/articles/why-are-my-commits-linked-to-the-wrong-user claimed] in !GitHub.
     55
     56== Activating the !GitHub issue tracker ==
     57
     58As the date for the trac migration we selected 2007-12-09 (r25479) as it was the first SVN commit (after the years in CVS).
     59
     60The tickets migrated from trac to !GitHub contain updated links in the ticket texts:
     61
     62 * links to other tickets (now pointing to full trac URL). Note that there were many styles of referring in the commit log message which had to be parsed accordingly.
     63 * links to trac wiki (now pointing to full trac URL)
     64 * links source code in SVN (now pointing to full trac URL)
     65 * images and attachments (now pointing to full trac URL)
     66
     67Labels are preserved by transferring:
     68
     69 * "operating system" trac label into the !GitHub issue text itself (following the new issue reporting template)
     70 * converting milestones/tickets/comments/labels
     71 * converting trac usernames to Github usernames
     72 * setting assignees if possible, set new "grass-svn2git" an assignee otherwise
     73
     74**New labels in the !GitHub issue tracker:**
     75
     76The trac component of the bug reports have been cleaned up, leading to the following categories:
     77
     78 * **Issue category**:
     79   * bug
     80   * enhancement
     81 * **Issue solution** (other than fixing and closing it normally):
     82   * duplicate
     83   * invalid
     84   * wontfix
     85   * worksforme
     86 * **Priority**:
     87   * blocker
     88   * critical
     89   * feedback needed
     90 * **Components**:
     91   * docs
     92   * GUI
     93   * libs
     94   * modules
     95   * packaging
     96   * python
     97   * translations
     98   * unittests
     99   * Windows specific
     100
     101== Turning SVN/trac into readonly mode ==
     102
     103As soon as the above listed repositories are stable and functional, SVN/trac (https://trac.osgeo.org/grass/) at OSGeo will be set into readonly mode. They will serve as a reference for existing links and also for the aforementioned converted commit messages and issues in the issue tracker.