Friday 4 August 2017

git workflow: current status

I thought I'd write up a little on where we are at the moment. This
isn't a future roadmap; it's just an explanation of where we are right
now, including workarounds we're using to make progress in dogfooding
until we have our better planned solutions in place. There are obvious
improvements to most of this. We are working on them.

* There's a classic snap "git-ubuntu", which is the easiest way of
consuming the tooling. Install with "snap install --classic
git-ubuntu", or see our git tree at lp:usd-importer.

* We're automatically importing a small set of packages until we're
ready to scale up. "git ubuntu clone" will fetch from the right place
and catch a few edge cases, or you can "git clone" directly from the
git repositories under ~usd-import-team.

* If you're interested in trying things out, you can: a) ask a member
of ~usd-import-team to import a package as a one-off for you, or b)
submit an MP to add to our automatically imported list[1].

* You can file an MP to have changes reviewed. We don't have a great
process for this yet, so you should follow up with someone to review
or upload as you need in addition to filing an MP.

* For now, the Canonical server team is using the teams
~canonical-server-core-reviewers, ~canonical-server-motu-reviewers
and ~canonical-server-packageset-reviewers to request reviews from,
so that we have appropriate review queues that we can prioritise
amongst our available uploaders. We're following our own mandatory
peer review policy for all uploads now, including for uploaders (one
of the two developers need not be an uploader). In the longer term,
we'd like to replace this with better integration with the
sponsorship queue, or a replacement for it. We're open to quick fixes
to make this better in the short term, though, for example for better
integration with other teams and other contributors.

* To get your rich git history adopted into the "official" importer
tree after upload, in the short term a member of ~usd-import-team
needs to push an "upload tag" for you. To avoid races, this needs to
happen before upload. We're using the "Approved" MP state to
represent that this needs doing in our review queues. If you are an
uploader and just want your rich history integrated, please ask
someone in ~usd-import-team after you have an MP ready. In the longer
term, the importer will do this automatically.

[1] https://git.launchpad.net/usd-importer/tree/gitubuntu/import-cron-packages.txt