| 1 | = Migrating GRASS code repository from SVN to git = |
| 2 | |
| 3 | == Background and aims == |
| 4 | |
| 5 | SVN has served the GRASS project well as a version control system for |
| 6 | numberous years now. The project has estabished routines and infrastructure |
| 7 | (code repository, ticketing system, developer wiki) connected to SVN. |
| 8 | However, with an increasing number of Open Source developers using git |
| 9 | (and here especially the success of github), interest in moving from SVN |
| 10 | to git has been expressed. |
| 11 | |
| 12 | Reasons to consider moving from SVN to git are to: |
| 13 | * increase the number of contributers and thus contributions due of the popularity of git |
| 14 | * make features and functionality of git available for developing GRASS and thus |
| 15 | * make the current GRASS developers happy that prefer git (even if git can already be used against SVN: https://trac.osgeo.org/grass/wiki/HowToMaintainGrassWorkflowUsingGit) |
| 16 | |
| 17 | Other OSGeo projects already moved (even if some only partly) |
| 18 | * GDAL moved to github (https://trac.osgeo.org/gdal/wiki/rfc71_github_migration) |
| 19 | * QGIS has been on github for a while already () |
| 20 | * GEOS seems to be on gitea (provided by OSGeo) |
| 21 | * ... |
| 22 | |
| 23 | See e.g.: |
| 24 | https://git.osgeo.org/gitea/strk/trac2gogs |
| 25 | |
| 26 | Like other OSGeo projects GRASS has already a git-mirror-repository for CI: |
| 27 | * https://github.com/GRASS-GIS (used for Travis CI, in sync) |
| 28 | In addition GRASS has a team within the OSGeo organisation on github.com: |
| 29 | * https://github.com/orgs/OSGeo/teams/grass-gis |
| 30 | |
| 31 | Possible migration of GRASS code to git has been discussed at community |
| 32 | sprints in 2017 and 2018. At the community Sprint in Bonn 2018 first tools |
| 33 | for moving content from trac (SVN) to git were developed (mainly by Martin Landa): |
| 34 | https://trac.osgeo.org/grass/browser/grass-addons/tools/svn2git?order=name |
| 35 | |
| 36 | |
| 37 | == Choosing a git plattform == |
| 38 | |
| 39 | Moving to git involves the question which git platform to move to. So, in |
| 40 | addition to technical work, strategical decisions have to be made. |
| 41 | |
| 42 | === Available options === |
| 43 | |
| 44 | Most common options / git platforms are: |
| 45 | * github (still the most popular, yet proprietary, system with online hosting service) |
| 46 | * gitlab (another plattform with online hosting service and increasing popularity esp. after Microsoft bought github) |
| 47 | * bitbucket (another popular plattform with online hosting service) |
| 48 | * gitea/gogs ("painlessly selfhosted" plattform, hosted by OSGeo SAC) |
| 49 | |
| 50 | Yet, there are plenty of other options: |
| 51 | https://wiki.osgeo.org/wiki/GitHostingSoftware |
| 52 | |
| 53 | And there are several comparisons of available git platforms available online: |
| 54 | https://wiki.osgeo.org/wiki/GitInfrastructureComparison |
| 55 | https://ethercalc.org/choose-the-git-host.html |
| 56 | |
| 57 | === Requirements and criteria === |
| 58 | |
| 59 | Anyway, a first step in order to chose from the available options is to define a |
| 60 | list of criteria (here requirements and features) of the git platform to |
| 61 | move to. For OSGeo a list of requirements has been compiled: |
| 62 | https://wiki.osgeo.org/wiki/GitServiceRequirement |
| 63 | Yet, that list does not necessarily reflect all or the most important |
| 64 | requirements of the GRASS project and the motivation for moving to git... |
| 65 | |
| 66 | |
| 67 | * Sign in using OSGeo Userid |
| 68 | * Autonomously create and manage teams |
| 69 | * Autonomously create and manage repositories |
| 70 | * Create private repositories (for software vulnerability testing, etc.) |
| 71 | * Import tickets from Trac |
| 72 | * Import tickets from Redmine |
| 73 | * Comment tickets via email |
| 74 | * Comment/close tickets via commit log |
| 75 | * SVN->GIT sync - (Mirroring existing SVN repository) see:/ticket/1654 |
| 76 | * Integration with CI service (hosted eg. Travis CI, AppVeyor, GitLab CI), self-hosted (eg. Buildbot, ?)) |
| 77 | * ... (Please add) |
| 78 | |
| 79 | |
| 80 | == Next steps == |
| 81 | |
| 82 | Prepare a PSC decision e.g. with a user/developer survey? |