Gitlab in the Controls Group

Gitlab in the Controls Group

Keeping the illusion of a monorepo on GitLab(?) Zsolt Kovari [email protected] BE-CO-APS, Java DevTools team 03/10/2018 Zsolt Kovari 1 Who are we? • We are responsible for building large part of software to control the accelerators (Controls) • Over 1000 Java processes running on 550 consoles and servers • ~200 developers, all CERN employees • ~60% software engineers • ~40% domain experts (physicists, operators) • VCS • Currently, one huge SVN monorepo • ~20 millions LOC, ~1000 projects 03/10/2018 Zsolt Kovari 2 Life at the moment with SVN • We have one huge “product” (20 MLOC) that needs to evolve together • We need a good and coherent development environment • We (Controls) have set up our own Atlassian suite over 10 years ago • Fisheye (code search), Crucible (code review), JIRA, Confluence, Bamboo • Easy administration & maintenance • Centralized configurations; easy integrations/tooling; custom pre-commit hooks • All in all, we are happy with the current monorepo in SVN • But some teams need more advanced branching workflows (git) 03/10/2018 Zsolt Kovari 3 Moving to IT’s GitLab? • Trigger to move away from SVN • SVN closure was announced by IT • Motivation to move to GitLab • Use IT services (as we always try) • Abandon some of our own services (Fisheye&Crucible) • Some teams would benefit from Git(Lab) • But migrating SVN to a 1000 of Git repositories is not straightforward • While still trying to preserve nice features of a monorepo 03/10/2018 Zsolt Kovari 4 How could GitLab help us? • Requirements for migration: GitLab should provide satisfactory alternatives to Atlassian Fisheye&Crucible • Code reviews • Advanced global code search • Feedback: how GitLab could help us to keep the illusion of our monorepo • Coherence across the code base • Coherence across the project settings 03/10/2018 Zsolt Kovari 5 Requirement: Alternative to Atlassian Crucible Code reviews • Current situation • Most of the teams want to stay on Crucible Promising but we have to • No tree view in code reviews evaluate again after the • Hard to review bigger changes next release • After next GitLab release (v11.4) • Upcoming feature: “File browser in merge request” • Hopefully it can replace Crucible • Allow code reviews without merge-requests • Still an ongoing problem • Since 1/10/2018, it’s on GitLab’s roadmap: gitlab-ce-19976 03/10/2018 Zsolt Kovari 6 Requirement: Alternative to Atlassian Fisheye Advanced global code search • GitLab global code search is not reliable • Reason No special characters are allowed (not even dots) in full text search gitlab-ee-7098 • This might be a showstopper for us This should be solved soon, but I’m optimistic about a resolution (Mario is working on already, thanks a lot!) 03/10/2018 Zsolt Kovari 7 Feedback: How could GitLab help us more? Coherence across the code base • Preserve tree layout • Subgroups help a lot - better than GitHub ;) • Guarantee same files across the repos • e.g.: same .gitignore, .gitattributes • GitLab’s new direction towards file templates could help gitlab-ee-5987 • Premium feature • Keep repositories clean (no binaries, log files, etc…) • Push rules are not really enough • Maintainer role can override them (problems with GitLab roles are frequently reported) 03/10/2018 Zsolt Kovari 8 Feedback: How could GitLab help us more? Coherence across the project settings • Support to • Set up same services, settings, visibility, etc. • …on group level • …to apply recursively on each projects • …and apply automatically on newly created projects • Settings could be forced or set optional • Forced: developers cannot change it (e.g. push rules) • Optional: developers can change/tailor it on project level (e.g. services) 03/10/2018 Zsolt Kovari 9 Can we keep the illusion of a monorepo on GitLab? [email protected] 03/10/2018 Zsolt Kovari 10.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us