Update on Version Control Systems: GitLab, SVN, Git, Trac, CERNforge

Slides:



Advertisements
Similar presentations
Simple Git Steve Pieper. Topics Git considerations and Slicer Git as if it were svn Git the way it is meant to be.
Advertisements

Collaborative tools in NICE Alex Lossent - CERN IT/IS Hepix Fall 2005.
Hosted Git github. From an alumni (2010)  You know, the more time I spent in industry the better I've understood what a strong advocate you are for the.
European Organization for Nuclear Research Source Control Management Service (Subversion) Brice Copy, Michel Bornand EN-ICE 13 May 2009.
CERN - IT Department CH-1211 Genève 23 Switzerland t SVN Pilot: CVS Replacement Manuel Guijarro Jonatan Hugo Hugosson Artur Wiecek David.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Introduction to Git and Github Joshua imtraum.com.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
MAE Atlassian Tool Suite Administration Training July 8 th, 2013.
Trimble Connected Community
Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.
A primer on version control at OTN
Introduction to Git and GitHub
Version control Using Git Version control, using Git1.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
Version Control. How do you share code? Discussion.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
Git Fundamentals Rochelle Terman 13 January 2014.
Migration from Savannah to JIRA Alina Grigoras A.
Optimal Pipeline Using Perforce, Jenkins & Puppet Nitin Pathak Works on
Intro to Git presented by Brian K. Vagnini Hosted by.
GitHub and the MPI Forum: The Short Version December 9, 2015 San Jose, CA.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
ATS code development workflow Group Name: TST WG Source: Mahdi Ben Alaya, TST WG vice chair, SENSINOV, Miguel.
ATS code development workflow Group Name: TST WG Source: Mahdi Ben Alaya, TST WG vice chair, SENSINOV, Meeting Date: TST #21 Document.
CS 160 and CMPE/SE 131 Software Engineering February 16 Class Meeting Department of Computer Science Department of Computer Engineering San José State.
Hosted Git github. From an alumnus (2010)  You know, the more time I spent in industry the better I've understood what a strong advocate you are for.
Process changes: Internal processes of CASA, external contributions, release schedule Mark G. Rawlings, CASA Build & Test Lead NRAO, Charlottesville Acknowledgements:
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
© CGI Group Inc. PrimePortal & #define Annika Maltesson, Project Krister Sundkvist,
ATS code development workflow Group Name: TST WG Source: Mahdi Ben Alaya, TST WG vice chair, SENSINOV, Miguel.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Virtual Lab Overview 5/21/2015 xxxxxxxxxx NWS/MDL/CIRA.
Software collaboration tools as a stack of services Borja Aparicio Cotarelo IT-PES-IS 2HEPiX Fall 2015 Workshop.
© Trustees of Indiana University Released under Creative Commons 3.0 unported license; license terms on last slide. Take Group Projects to the Next Level.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
© 2016 IBM Corporation Virtual Appliance migration self-assessment May 2016 IBM Security Identity Manager.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Collaborative Git An introduction to Git with others
CERN IT Department CH-1211 Genève 23 Switzerland PES Version control services at CERN Status of Version Control and Twiki services at CERN.
Managing Alfresco source code
Information Systems and Network Engineering Laboratory II
IT Services Katarzyna Dziedziniewicz-Wojcik IT-DB.
Git and GitHub primer.
GIT AND GITHUB WORKSHOP
LECTURE 2: Software Configuration Management
Version Control.
Integration Methodology and Procedures
Transition from git.cern.ch
Version control, using Git
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
Software Engineering for Data Scientists
Macaualy2 Workshop Berkeley 2017
Storing, Sending, and Tracking Files Recitation 2
Software Version System Part1: Subversion at CERN
Version Control with Git accelerated tutorial for busy academics
LECTURE 3: Software Configuration Management
The Big Picture
Getting Started with Git and Bitbucket
Simplified Development Toolkit
JENKINS TIPS Ideas for making your life with Jenkins easier
Git CS Fall 2018.
Continuous Integration
Setting up your dev environment
GitHub and Git.
Introduction to The Git Version Control System
Presentation transcript:

Update on Version Control Systems: GitLab, SVN, Git, Trac, CERNforge Alexandre Lossent IT-PES-IS 5th LHCb Computing Workshop, 22 May 2015

Version Control Systems in use at CERN Central SVN service Access control, CERN accounts, e-groups Central Git service git.cern.ch and now GitLab (gitlab.cern.ch) Github Nowadays de-facto standard for Open Source projects with external partners Some projects mirror their repos at CERN Other private installations Git, SVN, Stash etc. Smaller groups with specific needs (and system resources) Should not be visible on the Internet 5th LHCb Computing Workshop, 22 May 2015

Improving Central VCS offering at CERN Looking for solutions to typical challenges How to ensure the quality of new features/fixes? How to decide if the code is ready for production? How to manage concurrent work and merge conflict resolution? How to be confident that code working on a dev’s machine will work as expected after deployment? How to enable contributions from outside the core dev team without risking damage to the code repository? Making it easier to create and manage code repositories And streamline integration with related services: Issue Tracking, Continuous Integration, Documentation… 5th LHCb Computing Workshop, 22 May 2015

5th LHCb Computing Workshop, 22 May 2015 Why deploy GitLab? Complement Version Control Services with new features to help developers implement software development best practices Provide a mean to review code and test results, discuss and take decision whether to merge code Associate code changes with a ticket in an Issue Tracking system– Provide code review features to help improve code quality Encourage collaboration by enabling project forks and merge requests Make it easier to run tests with Continuous Integration platforms Well-defined roles within a project or group of projects 5th LHCb Computing Workshop, 22 May 2015

5th LHCb Computing Workshop, 22 May 2015 GitLab project page 5th LHCb Computing Workshop, 22 May 2015

GitLab repository browsing 5th LHCb Computing Workshop, 22 May 2015

5th LHCb Computing Workshop, 22 May 2015 GitLab graphs 5th LHCb Computing Workshop, 22 May 2015

GitLab code review: Merge Request 5th LHCb Computing Workshop, 22 May 2015

GitLab feature summary On-premise “GitHub lookalike” Version Control based on Git With SSH support & SSH key authentication Hierarchical project (= repository) organization Groups – contain multiple projects for a given team Personal workspace – removed when user leaves CERN, a la home directory Code browsing Including editing files from the web interface Code review workflow Important branches are protected Changes submitted from feature branches or project forks Merge Requests reviewed by “master” developers before being merged Self-service One-click project creation, repository immediately available to work with Integration Global CERN services: SSO, SSH keys, mapping of E-groups to roles… Developer services: Jira, Jenkins (a Continuous Integration platform)… 5th LHCb Computing Workshop, 22 May 2015

5th LHCb Computing Workshop, 22 May 2015 Git, GitLab and Github GitLab is now in production and recommended Provides additional features compared to git.cern.ch (Gitolite-based) collaboration and code review features Recommended for all new version control projects hosted at CERN To get started: KB0003137 Librarians can move repositories from git.cern.ch to GitLab: KB0003111 Git.cern.ch is no longer recommended for new projects Self-service requests for new projects will be moderated from 1 Jul 2015 Longer term future of git.cern.ch will be evaluated at a later stage Github.com may be appropriate For open source and projects with external collaborators GitLab at CERN supports CERN accounts only Advice on choosing between CERN GitLab and GitHub.com: KB0003132 5th LHCb Computing Workshop, 22 May 2015

5th LHCb Computing Workshop, 22 May 2015 SVN Service SVN will continue for established projects Maintenance updates but no additional development is planned New projects are encouraged to use GitLab New SVN repository requests will be moderated from 1 Jul 2015 Migration from SVN to GitLab will be possible Librarians will be contacted in due time to discuss potential migrations The Trac add-on to SVN will be maintained for code browsing in projects already using it JIRA, web services (e.g. Twiki) are recommended for tickets, wiki, etc The recommended SVN web interface is websvn Jira migration instructions will be provided for those who wish to do so Issues raised in the May Trac survey are being followed up with users 5th LHCb Computing Workshop, 22 May 2015

5th LHCb Computing Workshop, 22 May 2015 JIRA Service JIRA currently hosts ~540 projects Upgrade from JIRA 6.3.13 to 6.4.x is planned During summer or early autumn Fisheye/Crucible server will be stopped at end of 2015 Has problems with scalability Less user friendly than GitLab for code review Recommended replacement is GitLab Affects relatively few users 5th LHCb Computing Workshop, 22 May 2015

5th LHCb Computing Workshop, 22 May 2015 CERNforge CERNforge http://cernforge.cern.ch Portal for creating and managing resources related to code management Has been updated to reflect changes to the Git, GitLab, SVN and JIRA services outlined on the previous slides 5th LHCb Computing Workshop, 22 May 2015

Software Development Workflow* Issues/requests Jenkins job Users GITLAB Commit changes Developers Software Release Internal Software Build SVN GIT Test Results Release Build Automatic tests Review & Merge *This is a simplified example of a possible workflow with the supported tools [Thanks to Manuel Gonzalez Berges (EN-ICE) for this slide] 5th LHCb Computing Workshop, 22 May 2015

5th LHCb Computing Workshop, 22 May 2015 GitLab: good to know The code review workflow replaces fine-grained permissions: KB0003135 GitLab has just a few predefined roles: Guest, Developer, Master, Owner Branches have a ‘protected’ flag (on for master by default) to: Prevent force push and branch deletion Force developers to use feature branches and the code review workflow SSH access via nonstandard port 7999: KB0003136 Available from outside CERN. Copy URL from project page! The Public visibility level really is public: KB0003122 Worldwide anonymous access, incl. search engines no “CERN Public” visibility level! Use SSH Deploy Keys for automated pull operations (build, deploy jobs etc.): KB0003129 Don’t forget to add [gitlab.cern.ch]:7999 to known_hosts E-groups can be used at the Group level, but not for individual projects I.e. all projects in a group are more or less expected to share same permissions. Workarounds possible. A future KB article will cover this. 5th LHCb Computing Workshop, 22 May 2015

Summary of GitLab resources Getting started: KB0003137 Set up SSH keys: KB0003136 Permissions in GitLab: KB0003122 Moving repositories from git.cern.ch to GitLab: KB0003111 Other KB articles: see GitLab topic in the Service Portal GitLab help: https://gitlab.cern.ch/help Feedback & support: Git Service in the Service Portal 5th LHCb Computing Workshop, 22 May 2015

5th LHCb Computing Workshop, 22 May 2015 Questions? 5th LHCb Computing Workshop, 22 May 2015