Migrating to Gitlab Daniel Vetter, Intel OTC @danvet LPC 2018, - - PowerPoint PPT Presentation

migrating to gitlab
SMART_READER_LITE
LIVE PREVIEW

Migrating to Gitlab Daniel Vetter, Intel OTC @danvet LPC 2018, - - PowerPoint PPT Presentation

Migrating to Gitlab Daniel Vetter, Intel OTC @danvet LPC 2018, Vancouver why this talk kernel DRM X.Org stuff from the kernel git (in 2006!) proper commit messages iterating on patch series maintainer model stuff from X.org


slide-1
SLIDE 1

Migrating to Gitlab

Daniel Vetter, Intel OTC @danvet LPC 2018, Vancouver

slide-2
SLIDE 2

why this talk

X.Org kernel DRM

slide-3
SLIDE 3

stuff from the kernel

  • git (in 2006!)
  • proper commit messages
  • iterating on patch series
  • maintainer model
slide-4
SLIDE 4

stuff from X.org

  • committer model
  • testing/CI
  • MIT licensing
  • gitlab?
slide-5
SLIDE 5

pain points

  • popularity of git send-email
  • admin pains: SMTP, bouquet of services
  • exodus to github, w/ memories of bitkeeper
slide-6
SLIDE 6

pw: not the droid you're looking for

  • code interleaved with discussions
  • loss of semantics: baseline, target, previous

revisions

  • pw is a sidechannel, no enforcing possible
slide-7
SLIDE 7

pain points: tracking&cordination

  • no chaining/deprecating of patch iterations
  • no sync between inboxes and patchwork
  • no standard setup
  • patchwork is terrible
slide-8
SLIDE 8

pain points: CI&tooling

  • no postive confirmation, lack of transparency
  • client side scripting, patch parsing is fun
  • patchwork is terrible
slide-9
SLIDE 9

why gitlab

  • open core, but just DCO + MIT
  • cares about big project workflows
  • debian, gnome, khronos use it
  • batteries included
  • (failed pilot with phabricator)
slide-10
SLIDE 10

big project workflows

  • multiple repos, issue trackers, discussion

channels, patch queues

  • multi-repo pull requests
  • kernel: single tree, x.org: multiple projects
  • gitlab cares: super-pull, fork relationships, ...
slide-11
SLIDE 11

gitlab: merge requests

  • git branch, including reflog

✚ target branch ✚ discussions and review ✚ CI results

slide-12
SLIDE 12

gitlab: patch review

  • but my mail setup!
  • per-patch review only recently added
  • probably stick to mailing lists
  • merge request for tracking series evolution
slide-13
SLIDE 13

gitlab: CI

  • server-side CI: docker + scriptlets
  • jobs, triggers, dependencies
  • generic/special runners
  • per-repo CI settings file, with #include directive
  • hardware CI: external CI results/tracking
  • CI can block merging
  • full transparency for contributors
slide-14
SLIDE 14

docker: not so great

  • perfect control over build env, but:
  • docker-in-docker build needs root
  • binfmt-misc, kvm, …
  • probably need kvm-containers
  • lots of cloud fun with runners
slide-15
SLIDE 15

gitlab: automation

  • webhooks, requires a server somewhere
  • not (yet?) github actions
  • biggest potential for long-term wins
slide-16
SLIDE 16

gitlab: issue tracker

  • bugzilla vs. GDPR
  • per repo issue templates, w/ twists
  • customization through labels
slide-17
SLIDE 17

timeline

  • most projects migrated git
  • kernel migration blocked until early next year
  • lots of experimenting with CI (8k runs thus far)
  • migrating issue tracking
  • 2k merge requests thus far
slide-18
SLIDE 18

summary

  • patchwork: solution to a self-inflicted problem

➔ you want to track merge/pull requests

  • gitlab CI: awesome
  • docker/cloud: not so awesome
  • gitlab automation: falling behind
  • gitlab patch review: bad, but with potential