Page MenuHomePhabricator

Figure out Kartotherian source control
Closed, ResolvedPublic

Description

Right now there are two git repositories with the main Kartotherian code: https://github.com/kartotherian/kartotherian and https://phabricator.wikimedia.org/diffusion/GMKT/browse/master/. The former is mentioned in all the documentation, the latter can only be found by searching.

These two repositories are not in sync.

I see a few ways we could handle this

  • Treat Kartotherian like an external project. This would require proper releases and tags, which currently don't exist. npm install kartotherian@foo would then work and the source could be managed on either github or gerrit
  • Make gerrit a mirror of github. This would require a mirroring script, and all commits would be first made to github then automatically picked up for gerrit.
  • Make github a mirror of gerrit. This would mean that the github merge PR functionality could no longer be used. We could still use PRs, they'd just have to be merged differently. iirc, openstreetmap-website does this and PRs are all merged from the command-line, pushing to the "authorative" version on git.osm.org and the copy on github, and all development takes place on github.
  • Say we're a fork and not keep the two in sync.

Some things to consider are

  • We've wanted to build a community around Kartotherian in the past. This is easier on github.
  • Being written in Nodejs, much of Kartotherian is really in submodules which are in different repositories.
  • We need to have code review, but we have to decide how far to carry it. We don't want to code review every generic sub-library

Event Timeline

debt triaged this task as High priority.Sep 28 2017, 7:10 PM
debt added a subscriber: Gehel.

We'll go ahead with this option:

Make gerrit a mirror of github. This would require a mirroring script, and all commits would be first made to github then automatically picked up for gerrit.

However, we won't automate the implementation into gerrit, they'll be stacked up for us to review every time we deploy a new version of Kartotherian.

debt lowered the priority of this task from High to Medium.Oct 3 2017, 7:18 PM

In order to implement the CI/CD pipeline, kartotherian WMF fork was moved to Gerrit [1] and is mirrored in Github [2] and the Diffusion repo is marked to be deleted T228168.

Also, recently the Kartotherian code became monorepo, so we don't have multiple repos for the different packages.

Furthermore, we should keep it as consistent as possible with upstream changes and vice-versa.

[1] https://gerrit.wikimedia.org/r/admin/projects/mediawiki/services/kartotherian
[2] https://github.com/wikimedia/mediawiki-services-kartotherian