Belle II - Git migration

Similar documents
Git for Subversion users

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

Continuous integration & continuous delivery. COSC345 Software Engineering

The Old World. Have you ever had to collaborate on a project by

Treating Deployments as Code with Puppet and the Atlassian Toolsuite Puppet Camp, Geneva

Visualizing Git Workflows. A visual guide to 539 workflows

Beyond git add/commit/push

Git and Gerrit Workflows. Enforcing Manual & Automated Review

Welcome! Virtual tutorial will start at 15:00 GMT. Please leave feedback afterwards at:

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

FPLLL. Contributing. Martin R. Albrecht 2017/07/06

Revision Control. An Introduction Using Git 1/15

Introduction to Git and Github Repositories

git Version: 2.0b Merge combines trees, and checks out the result Pull does a fetch, then a merge If you only can remember one command:

FreeBSD and Git. Ed Maste - FreeBSD Vendor Summit 2018

GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX DOWNLOAD EBOOK : GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX PDF

Configuration Management

CS314 Software Engineering Configuration Management

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

Brief overview of the topic and myself the 7 VCS used so far (different one each time), still many unused Acts as a time-machine, and almost as

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

PowerShell-Module Documentation. Release docs

Version Control: Gitting Started

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

CS 390 Software Engineering Lecture 5 More Git

Using the SQL CI TeamCity plugin in SQL Automation Pack

INET

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Technical Architecture & Analysis

Call for Discussion: Project Skara Investigating source code management options for the JDK sources

Continuous Integration (CI) with Jenkins

Contribute To Linux Mainline

Eclipse Tutorial How To Write Java Program In Eclipse Step By Step Eclipse Tutorial For Beginners Java

L25: Modern Compiler Design Exercises

M E R C U R I A L (The Source Control Management)

CS 390 Software Engineering Lecture 3 Configuration Management

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

Skyhook designs and deploys high performance mobile location solutions, and exists to make location faster, more precise and practical.

February 2 nd Jean Parpaillon

Bitdock. Release 0.1.0

Version Control with Git

GIT for companies Mark Struberg, INSO TU Vienna

Software Development I

Technology Background Development environment, Skeleton and Libraries

Version Control. Version Control

Version control system (VCS)

Version Control with Git ME 461 Fall 2018

Continuous Integration & Code Quality MINDS-ON NUNO 11 APRIL 2017

contribution-guide.org Release

chatterbot-weather Documentation

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

Git. A Distributed Version Control System. Carlos García Campos

News from Git in Eclipse. Matthias Sohn (SAP)

JenkinsPipelineUnit. Test your Continuous Delivery Pipeline. Ozan Gunalp - Emmanuel Quincerot

DEAD-SIMPLE VERSION CONTROL FOR YOUR TEAM GIT WITH MATTHEW REIDSMA GRAND VALLEY STATE UNIVERSITY

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

Poulpe Documentation. Release Edouard Klein

Creating a Patch. Created by Carl Heymann on 2010 Sep 14 1

django simple pagination Documentation

Index. Alias syntax, 31 Author and commit attributes, 334

ci-management Release 1.0.0

GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY

LLVM Summer School, Paris 2017

AIS Grid School 2015

Introduction to Version Control

Do not sketch Finite State Machines on a first date

Git Tutorial. André Sailer. ILD Technical Meeting April 24, 2017 CERN-EP-LCD. ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36

Github/Git Primer. Tyler Hague

gedit developer plugins Configuring and extending gedit for development

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson

TangeloHub Documentation

Configuration Management

Git better. Collaborative project management using Git and GitHub. Matteo Sostero March 13, Sant Anna School of Advanced Studies

Advanced Configuration Management with Config Split et al. Fabian Bircher

Using Git For Development. Shantanu Pavgi, UAB IT Research Computing

Programming with Haiku

AgileSCM Release 4.1. AgileSCM Release 4.0. AgileSCM Release 3.2. New Features. Bug Fixes. New Features. Bug Fixes

a handful of Git workflows for the agilist steven harman twitter: stevenharman

Version Control. Version Control

SCAP Security Guide Questions / Answers. Contributor WorkShop Volume #2

A BASIC UNDERSTANDING OF VERSION CONTROL

SCAP Security Guide Questions / Answers. Ján Lieskovský Contributor WorkShop November 2015

Version Control Systems

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

Continuous Integration / Continuous Testing

699DR git/github Tutorial

EPICS Base Status and Plans. Ralph Lange for the EPICS Core Developers

Version control CSE 403

Introduction to distributed version control with git

TPS Documentation. Release Thomas Roten

Version control CSE 403

JetBrains TeamCity Comparison

Software configuration management

Managing a WordPress 2.6 installation with Subversion. Sam Bauers - Automattic

Getting the Source Code

Using Git and GitLab: Your first steps. Maurício

Aldryn Installer Documentation

Software Project (Lecture 4): Git & Github

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Outline The three W s Overview of gits structure Using git Final stuff. Git. A fast distributed revision control system

Transcription:

Belle II - Git migration

Why git? Stash GIT service managed by DESY Powerful branching and merging capabilities Resolution of (JIRA) issues directly be map to branches and commits Feature freeze in pre-release Allows code publication before integration Librarian reviews / mentoring No more look at this patch emails Encourages smaller commits Conceptually better handling of external resources (with git subtree) Developers love its powerful tooling (>50% of the commits to the main software are made with git svn) Industry / Open Source community standard ROOT, CMS, Python, Genfit2, FastBDT,... migrate to git Emerging tools based on it

Workflow considerations SVN has a centralised workflow with one branch -> generally master Same style should be allowed in git for contributors that do not (want to) rely on branching Individuals / working groups may adopt a feature branch model Favoured is Git flow model Feature branches merged by pull requests Approval by responsible librarians Releases branch from master Finish release with pull request to stable Approval by all librarians GIT Flow model master stable

Status Setup of test git repository on the DESY Stash system https://stash.desy.de/projects/b2 documented in https://belle2.cc.kek.jp/~twiki/bin/viewauth/software/gitrepository Currently three parts of the SVN repository cloned to experiment with: git clone ssh://git@stash.desy.de:7999/b2/tools.git git clone ssh://git@stash.desy.de:7999/b2/externals.git git clone ssh://git@stash.desy.de:7999/b2/software.git Allowed early access with public key auth for all twiki users.

Experimental Bamboo build service Bamboo: Build service well integrated with Stash / git Big plus : Allow branch builds for feature / release branches Managing and sharing build / validation artefacts (e.g. compiled externals, docs, plots ) Automatic email notifications REST API triggers etc. Experimental build plans in https://bamboo.desy.de/browse/b2 Need more and specialised build agents for Scientific Linux 5 / 6, 32-bit systems, compilations with clang / icc

Caveats Social Learning curve Workflow changes Require librarians to integrate and review code Branching and merging confusion Commit / publish hurdle Three steps to publish Stage, commit, push Aid with scripts? Technical Splitting the repository Unpacking SVN externals Rewrite of managing scripts Enforcing of code policies Coding styles Commit rights to folders Package tags / release Release creation from tagged folders in earlier commits

Social change management Get all parties involved to agree on the code repository Collect Feedback Ideas Concerns as early as possible

Splitting the repositories The big svn serves multiple purposes Main software Admin scripts Grid software Belle II notes User analysis Group repositories Necessary split into separate git repositories Requires in depth understanding of the content Difficult for group repositories featuring nested git repositories SVN externals repositories Start has been made with main software tools / externals / software

SVN externals - Genfit2 Problem: SVN repository links against SVN external repositories Solution: Inline the source from the external repositories Done for the Genfit2 external resource Prospect: Use git subtree or git submodule to track and commit to the linked repository on github/genfit

Package tags Problem: Package tags mark subfolder <-> GIT tags mark the whole repository Solution: Translated the SVN tags to the commits in the master branch Remaining problems: How to combine releases from package tags

Code policies Use git hooks on both: Server side Client side Possible solution: Introduce server hooks with plugin Needs activation of by DESY IT Local hooks with special setup for the user repository