Difference between revisions of "GitInfrastructureComparison"

From OSGeo
Jump to navigation Jump to search
(Ported comparison table)
(→‎Comparison Table: Gogs->Gitea)
 
(49 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
= Comparison Table =
 
= Comparison Table =
  
Moved from https://git.osgeo.org/_gogs_/sac/gogs-service/wiki/Git-services-comparison
+
This table is aimed at helping to decide which [[SAC:Git_Service|service]] to install on             
 
 
This table is aimed at helping to decide which service to install on             
 
 
OSGeo machines to provide hosting for OSGeo projects.                           
 
OSGeo machines to provide hosting for OSGeo projects.                           
 
                                                                                  
 
                                                                                  
The priority column could be used to give a score of each feature, but         
+
The priority of each parameter is not currently defined.
it's not clear currently how we should determine score (a poll?) 
+
 
 +
See a list of requirements [[GitServiceRequirement|here]]
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
| deployed in staging || [https://wiki.osgeo.org/wiki/SAC:Gogs YES] || [https://trac.osgeo.org/osgeo/ticket/1651 NO]
+
! Feature !! Gitea !! GitLab-CE !! Trac !! Kallithea
 +
|-
 +
| '''deployed in staging''' || [[SAC:Gitea|YES]] || [https://trac.osgeo.org/osgeo/ticket/1651 NO] || [https://trac.osgeo.org/ YES] (in use) || NO
 +
|-
 +
| open dev. model || YES || MOSTLY (2) || || [http://sfconservancy.org/ YES]
 +
|-
 +
| security level || || ||  ||
 +
|-                                                                   
 +
| login via LDAP            ||  YES          ||    YES  ||    YES        || [https://docs.kallithea-scm.org/en/latest/setup.html#setting-up-ldap-support YES]            
 
|-                                                                               
 
|-                                                                               
| login via LDAP           ||  YES         ||    YES                        
+
| LDAP groups sync      ||  NO          ||        ||          ||                     
 +
|-
 +
| autonomous creation of repositories || YES || YES || NO || YES
 +
|-
 +
| autonomous creation of organizations || YES || || NO || YES
 +
|-
 +
| organization management  ||  YES ||  YES || NO || YES
 +
|- 
 +
| private repositories      ||  YES ||    YES ||  || YES
 
|-                                                                               
 
|-                                                                               
| LDAP groups sync      ||  NO          ||                                    
+
| external issue tracker    ||  YES ([https://git.osgeo.org/gitea/qgis/qgis/commits/25ad0af86cb465a44214944b7a5169d8e55d94eb example])        ||    [https://github.com/gitlabhq/gitlabhq/blob/master/doc/integration/external-issue-tracker.md YES] || NO || [https://docs.kallithea-scm.org/en/latest/setup.html#integration-with-issue-trackers MIN]
 +
|- 
 +
| automatic mirroring of git repos ||  YES || NO (EE only) ||  ||
 +
|-                                                                                                                             
 +
| internal issue tracker    ||  YES         ||   YES || YES || NO
 
|-                                                                               
 
|-                                                                               
| private repositories      ||  YES ([https://github.com/gogits/gogs/issues/2950 no filesystem permission handling]) ||    YES
+
| tool to migrate from trac ||  [https://notabug.org/strk/trac2gogs YES]          || [http://eric.van-der-vlist.com/blog/2013/11/06/from-trac-to-gitlab/ YES] || n/a    || tbd
 +
|-
 +
| tool to migrate from github ||            || [http://doc.gitlab.com/ee/workflow/importing/import_projects_from_github.html YES] ||    ||
 +
|-
 +
| external wiki            ||  YES         ||  ||      || tbd                   
 
|-                                                                               
 
|-                                                                               
| external issue tracker    ||  YES ([https://git.osgeo.org/_gogs_/qgis/qgis/commits/25ad0af86cb465a44214944b7a5169d8e55d94eb example])         ||    [https://github.com/gitlabhq/gitlabhq/blob/master/doc/integration/external-issue-tracker.md YES]
+
| internal wiki            ||  YES (1) ||    YES (1) || YES || NO
 +
|-                                                                                                                                                         
 +
| comment issues via mail  ||  NO          ||    [http://doc.gitlab.com/ce/incoming_email/README.html YES] || YES || YES
 
|-                                                                               
 
|-                                                                               
| internal issue tracker    ||  YES          ||    YES                        
+
| PostgreSQL backend        ||  YES          ||    YES || YES          || YES             
 
|-                                                                               
 
|-                                                                               
| tool to migrate from trac ||  NO          || [http://eric.van-der-vlist.com/blog/2013/11/06/from-trac-to-gitlab/ YES]   
+
| Multilanguage            ||  15 languages || || YES || YES                    
 
|-                                                                               
 
|-                                                                               
| external wiki            ||  YES         ||                                
+
| Comments on diff lines    ||  NO          ||    YES|| YES (via [https://trac.edgewall.org/wiki/CodeReview plugins]) || YES
 
|-                                                                               
 
|-                                                                               
| internal wiki             ||  YES ([https://github.com/gogits/gogs/issues/2978 edit permissions match code repo ones]) ||   YES
+
| Pull requests             ||  YES         || YES || NO (?) || YES
 +
|-                                                                                   
 +
| Webhooks                  ||  YES          ||    YES || || tbd
 
|-                                                                               
 
|-                                                                               
| organization management  ||  YES ([https://discuss.gogs.io/t/how-to-manage-collaborators/87 poor])  ||  YES
+
| Edit GIT hooks            ||  YES (only for enabled users) || || || [http://docs.kallithea-scm.org/en/latest/api/models.html#kallithea.model.scm.ScmModel.install_git_hooks YES]
 
|-                                                                               
 
|-                                                                               
| comment issues via mail  ||  NO          ||     [http://doc.gitlab.com/ce/incoming_email/README.html YES]
+
| CI                        ||  external (like [https://github.com/drone/drone/tree/master/remote/gitea drone]) || integrated || YES ([https://bitten.edgewall.org/ plugin]) || [http://docs.kallithea-scm.org/en/latest/api/models.html YES]
 
|-                                                                               
 
|-                                                                               
| PostgreSQL backend        || YES         ||   YES                        
+
| tracking of forks        || YES ([https://git.osgeo.org/gitea/postgis/postgis/forks example]) ||        YES || NO || YES
 
|-                                                                               
 
|-                                                                               
| Multilanguage            || 15 languages ||                                
+
| download area              || NO (but annotated tags become downloadable packages) ||   YES (3)    || NO ||
|-                                                                             
+
|-
| Comments on diff lines    ||  NO           ||     YES                       
+
| '''static web pages'''    || NO || [http://doc.gitlab.com/ee/pages/README.html NO] || NO || [https://wiki.osgeo.org/wiki/GitHostingSoftware#Kallithea YES]
|-                                                                            
+
|-
| Pull requests            || YES          || YES 
+
| ticket reply by mail      || NO ||  || YES (via [https://trac.osgeo.org/osgeo/ticket/897 plugin]) ||  
|-                                                                                   
 
| Webhooks                  || [https://gogs.io/docs/features/webhook YES]         ||     YES
 
|-                                                                             
 
| Edit GIT hooks            ||  YES        ||                                 
 
|-                                                                             
 
| CI                        || external (like [https://github.com/drone/drone/blob/master/remote/gogs/gogs.go drone]) || integrated
 
|-                                                                            
 
| tracking of forks        || YES ([https://git.osgeo.org/_gogs_/postgis/postgis/forks example]) ||        
 
 
|}
 
|}
  
= More about existing software packages =
+
* (1) : GitLab and [https://github.com/gogits/gogs/issues/2978 Gitea] wiki permissions match repo ones. GitLab and Gitea wikis can be accessed through a git repo.
 +
* (2) : GitLab's development process is subject to discussion and subjective opinions. Be careful when stating a definite answer to this question. You can read [https://about.gitlab.com/2016/01/11/being-a-good-open-source-steward/ here] and also [https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/1106 here] and [https://news.ycombinator.com/item?id=10923747 there] with your trollometer on.
 +
* (3) : GitLab allows to add release notes to git tags. Release notes are Markdown text, and you can attach files to it, resulting in a download area much like github's release area.
  
=== '''GitLab''' ===
+
= Other Comparisons =
"You will be running Sidekiq, Unicorn, Nginx, Ruby (plus all its gems)
 
and then Gitlab itself."
 
  
* https://about.gitlab.com/better-than-github/
+
* [http://jbrodriguez.io/gogs-an-alternative-to-gitlab/ Features comparison of Gogs, GitLab, GitHub]
* https://github.com/WebEntity/Installation-guide-for-GitLab-on-OS-X
+
* [https://ethercalc.org/choose-the-git-host.html Choose the git host] comparison table for [https://notabug.org/NotABug.org/notabug/issues/25#issuecomment-3783 notabug.org]
* https://github.com/gitlabhq/gitlabhq/blob/8-0-stable/doc/instal/installation.md#advanced-setup-tips
 
* https://about.gitlab.com/downloads/
 
  
 +
= More about existing software packages =
  
=== '''GOGS''' ===
+
See [[GitHostingSoftware]]
https://gogs.io/
 
http://jbrodriguez.io/gogs-an-alternative-to-gitlab/
 
 
 
 
 
=== '''Github.com''' ===
 
default
 
 
 
 
=== '''Kallithea''' ===
 
https://kallithea-scm.org/
 
https://en.wikipedia.org/wiki/Kallithea_%28software%29
 
 
 
 
 
=== '''cgit''' ===
 
* https://git.zx2c4.com/cgit/
 
* https://wiki.archlinux.org/index.php/Cgit#Configuration_of_Cgit
 
* http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git
 
* https://git.gnome.org/browse/
 
* https://anonscm.debian.org/git/
 
* https://sources.debian.net/stats/
 
 
 
=== '''gitbucket''' - JVM ===
 
* https://gitbucket.github.io/gitbucket-news/about/
 
* https://gitbucket.github.io/gitbucket-news/
 
 
 
=== '''gitblit''' - JVM ===
 
* http://gitblit.com/
 
 
 
=== '''Phabricator + Diffusion''' ===
 
* https://secure.phabricator.com/book/phabricator/article/installation_guide/
 
* https://secure.phabricator.com/book/phabricator/article/diffusion/
 
* https://phabricator.wikimedia.org/T117071#2200208
 
 
 
''twentyafterfour from wikimieda-labs'':
 
 
 
our phabricator accepts ldap logins plus oauth;
 
phabricator might still be a decent way of managing your repositories. It's essentially the same thing as gitolite but with a lot more automation around account management, key management and hooks...
 
you have to deal with account management yourself, phabricator integrates all of that into one package (which can still be somewhat automated / integrated with other tools)
 
 
 
 
 
=== '''gitolite''' ===
 
''twentyafterfour from wikimieda-labs'':
 
likely doesn't support LDAP; certainly a lot lighter weight than Phab stack,
 
if you are comfortable with perl and don't mind doing a bit of integration work
 
 
 
 
 
''mutante on Wikimedia-devtools says'':
 
 
we currently use Gerrit for code review (gerrit.wikimedia.org) and gitblit for git.wikimedia.org.  Things are being migrated to phabricator.wikimedia.org though (Diffusion).  You are in the right channel you can git clone all of our server configs btw. it's a puppet repo and all public. you might also be interested in wikitech.wikimedia.org, our labs environment where you can get free virtual machines to test things
 
 
 
=== '''Apache Allura''' ===
 
* https://forge-allura.apache.org/docs/getting_started/installation.html#step-by-step-installation
 
* https://forge-allura.apache.org/p/allura/wiki/Feature%20Comparison/
 
 
 
 
 
 
 
''Other Links''
 
* https://wiki.osgeo.org/wiki/SAC
 
* http://jbrodriguez.io/gogs-an-alternative-to-gitlab/
 
* https://git.osgeo.org/_gogs_/org/sac/teams/gogs-service-writers
 
* https://github.com/gogits/go-gogs-client
 
* https://github.com/Soullivaneuh/trac2gitlab
 
* https://discuss.gogs.io/t/how-to-manage-collaborators/87
 
 
 
 
 
 
==== Other Backend Sites ====
 
* http://git.apache.org/ 
 
''Please contact the infrastructure-dev@apache.org mailing list if you have comments or suggestions regarding this service.''
 
 
 
==== git.osgeo.org ====
 
  https://git.osgeo.org/_gogs_/explore/repos
 
 
 
 
 
 
 
 
 
==== General Attributes ====
 
------------------------------------
 
Implementation Language
 
License
 
Resource Usage
 
 
 
 
 
 
 
==== Common Features ====
 
------------------------------------
 
Dashboard & File Browser
 
Issue Tracking, Milestones & Commit keywords
 
Organizations support
 
Wiki
 
Code Review
 
GIST
 
Web Hooks
 
 
 
 
 
 
 
==== Feature Comparison ====
 
------------------------------------
 
login via LDAP           
 
private repositories     
 
external issue tracker   
 
internal issue tracker   
 
tool to migrate from trac
 
external wiki           
 
internal wiki           
 
organization management 
 
comment issues via mail 
 
PostgreSQL backend       
 
Multilanguage           
 
Comments on diff lines   
 
Pull requests           
 
Webhooks                 
 
CL                 
 
tracking of forks
 
 
 
  
 
[[Category:Infrastructure]]
 
[[Category:Infrastructure]]

Latest revision as of 05:12, 17 December 2017

Comparison Table

This table is aimed at helping to decide which service to install on OSGeo machines to provide hosting for OSGeo projects.

The priority of each parameter is not currently defined.

See a list of requirements here

Feature Gitea GitLab-CE Trac Kallithea
deployed in staging YES NO YES (in use) NO
open dev. model YES MOSTLY (2) YES
security level
login via LDAP YES YES YES YES
LDAP groups sync NO
autonomous creation of repositories YES YES NO YES
autonomous creation of organizations YES NO YES
organization management YES YES NO YES
private repositories YES YES YES
external issue tracker YES (example) YES NO MIN
automatic mirroring of git repos YES NO (EE only)
internal issue tracker YES YES YES NO
tool to migrate from trac YES YES n/a tbd
tool to migrate from github YES
external wiki YES tbd
internal wiki YES (1) YES (1) YES NO
comment issues via mail NO YES YES YES
PostgreSQL backend YES YES YES YES
Multilanguage 15 languages YES YES
Comments on diff lines NO YES YES (via plugins) YES
Pull requests YES YES NO (?) YES
Webhooks YES YES tbd
Edit GIT hooks YES (only for enabled users) YES
CI external (like drone) integrated YES (plugin) YES
tracking of forks YES (example) YES NO YES
download area NO (but annotated tags become downloadable packages) YES (3) NO
static web pages NO NO NO YES
ticket reply by mail NO YES (via plugin)
  • (1) : GitLab and Gitea wiki permissions match repo ones. GitLab and Gitea wikis can be accessed through a git repo.
  • (2) : GitLab's development process is subject to discussion and subjective opinions. Be careful when stating a definite answer to this question. You can read here and also here and there with your trollometer on.
  • (3) : GitLab allows to add release notes to git tags. Release notes are Markdown text, and you can attach files to it, resulting in a download area much like github's release area.

Other Comparisons

More about existing software packages

See GitHostingSoftware