Code Management Releases

Slides:



Advertisements
Similar presentations
Version Control What it is and why you want it. What is Version Control? A system that manages changes to documents, files, or any other stored information.
Advertisements

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.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Version control Using Git 1Version control, using Git.
Source Control Repositories for Team Collaboration: SVN, TFS, Git.
Git – versioning and managing your software L. Grewe.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
Version Control. What is it? Software to help keep track of changes made to files Tracks the history of your work Helps you collaborate with others.
Version control Using Git Version control, using Git1.
Source Control Primer Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Version Control. How do you share code? Discussion.
…using Git/Tortoise Git
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Version Control.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
Version Control Systems. Version Control Manage changes to software code – Preserve history – Facilitate multiple users / versions.
GitHub and the MPI Forum: The Short Version December 9, 2015 San Jose, CA.
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
SECTION 1: CODE REASONING + VERSION CONTROL slides borrowed and adapted from Alex Mariakis and CSE 390a Justin Bare & Deric Pang.
It’s not just an insult from Harry Potter!. What is Git? Distributed Version Control System (DVCS) – Compared to a Centralized Version Control System.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Introduction to Git - Chirag Dani. Objectives Basics of Git Understanding different “Mindset of Git” Demo - Git with Visual Studio.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Collaborative Git An introduction to Git with others
Git Girish Git VCS that I have used ClearCase, cvs, svn Happy p4 user.
GIT: (a)Gentle InTroduction Bruno Bossola. Agenda About version control Concepts Working locally Remote operations Enterprise adoption Q&A.
KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association STEINBUCH CENTRE FOR COMPUTING - SCC
Dr. Tanusri Bhattacharya
CompSci 230 Software Construction
CS5220 Advanced Topics in Web Programming Version Control with Git
Git primer Landon Cox January 19, 2017.
4 Version control (part 1)
Information Systems and Network Engineering Laboratory II
I Don’t Git It: A beginner’s guide to git Presented by Mathew Robinson
Git and GitHub primer.
LECTURE 2: Software Configuration Management
Version Control.
CS4961 Software Design Laboratory I Collaboration using Git and GitHub
Discussion 11 Final Project / Git.
Version control, using Git
Modern Version Control with Git
CS5220 Advanced Topics in Web Programming Version Control with Git
Version Control System using Git
Version Control with Git and GitHub
Macaualy2 Workshop Berkeley 2017
Storing, Sending, and Tracking Files Recitation 2
Version Control System
Version Control with Git accelerated tutorial for busy academics
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
LECTURE 3: Software Configuration Management
Introduction to Configuration Management
Getting Started with Git and Bitbucket
Part 1: Editing and Publishing Files
Git CS Fall 2018.
Version Control System - Git
Git started with git: 2018 edition
CMPE/SE 131 Software Engineering February 14 Class Meeting
Version Control with Git
GitHub and Git.
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Version Control with Git and GitHub
Systems Analysis and Design I
Hop Aboard the Git Train – Transitioning from TFVC
1. GitHub.
Introduction to The Git Version Control System
How l learned to work with others instead of working around them.
Presentation transcript:

Code Management Releases DIRAC Project

Overview We’re moving! Code management Code migration Where and why Code management How to make the life of the release manager a bit easier New release and installation tools DIRAC meeting Barcelona 13/05/2011

We’re moving! In the beginning… DIRAC and all the extensions were in a single code repo We’ve got multiple extensions from different people Not practical to have a single repo for all Each extension should be able to have it’s own repo DIRAC will have it’s own DIRAC meeting Barcelona 13/05/2011

Where do we move to? Not just migrating the location of the repository but also the Source Code Management (SCM) SCM Requirements Open source Allow anyone to contribute Fast operation of the SCM independently of location Branching has to be fast and easy, but merge has to be flawless DIRAC meeting Barcelona 13/05/2011

Merging is the key We need to support multiple releases Branches are the easiest way to: Apply a fix to several releases Develop new features Branching is usually not a problem, merging is the nightmare DIRAC meeting Barcelona 13/05/2011

Review of SCM Has to be an open source VCS Allow anyone to contribute CVS Allow anyone to contribute Fast operation of the VCS independently of location Only distributed SCM remain DIRAC meeting Barcelona 13/05/2011

Centralized SCM DIRAC meeting Barcelona 13/05/2011

What’s a distributed SCM? Everyone has the full history instead of only one central repository Network communication is only required when pushing (sending) or pulling (bringing) changes from another peer Fast because all operations are local Allows anyone to publish changes that can be integrated into the release repository DIRAC meeting Barcelona 13/05/2011

Distributed SCM DIRAC meeting Barcelona 13/05/2011

We need to decide on one Mercurial Bazaar Cannot delete branches “Cheap” branches are “cp” of the local repository Bazaar Tightly integrated with launchpad What if launchpad is stopped? DIRAC meeting Barcelona 13/05/2011

And the winner is… We’re migrating the code to Git ! Pros Cons Branches cost essentially nothing to create and delete Fast (all ops are local) Merge is nearly omniscient (a conflict still is a conflict) Not tied to any repository provider Cons Steeper learning curve than the alternatives DIRAC meeting Barcelona 13/05/2011

Release repository will is hosted at https://github.com/DIRACGrid Github provides: Code hosting Issue tracking Pull request management Since everyone can have a copy of the full history, if github closes doors, we can easily migrate somewhere else. DIRAC meeting Barcelona 13/05/2011

Code management How to decide what goes into the release? Since branch/merge is easy in Git, everyone is invited to use branches! Branch per fix, new feature… encouraged Why not use the branches to propose what is to go into the next release? DIRAC meeting Barcelona 13/05/2011

Distributed but centralized A single repo is agreed to be the “release” repository (github) Everyone clones (copies) the repository Developers commit changes to their local repositories Publish the changes to some public repo Send a pull request to the release manager telling: Where to pull (retrieve) the changes from (repo and branch) What is in that branch DIRAC meeting Barcelona 13/05/2011

How to work with Git and github? DIRAC meeting Barcelona 13/05/2011

DIRAC meeting Barcelona 13/05/2011

DIRAC meeting Barcelona 13/05/2011

DIRAC meeting Barcelona 13/05/2011

DIRAC meeting Barcelona 13/05/2011

DIRAC meeting Barcelona 13/05/2011

DIRAC meeting Barcelona 13/05/2011

DIRAC meeting Barcelona 13/05/2011

Overall picture DIRAC meeting Barcelona 13/05/2011

Releases Problem: To create a release for an extension DIRAC’s releases.cfg had to be modified We redesigned the release tools to each community can generate it’s own releases for it’s extensions For instance LHCb has LHCbDIRAC and LHCbWebDIRAC Each community release can depend on a certain version of DIRAC. For intance, LHCb v2p3 requires DIRAC v5r2 to be installed. DIRAC meeting Barcelona 13/05/2011

A single project release Can group multiple extensions LHCb v3r5 contains LHCbDIRAC v3r2 and LHCbWebDIRAC v1r2 Depend on one version of DIRAC When creating the release, dirac-distribution will create all the required files Files have to be uploaded to somewhere accessible to dirac-install When installing a project release dirac-install will install the dependencies automatically DIRAC meeting Barcelona 13/05/2011

Example of a releases.cfg DIRAC meeting Barcelona 13/05/2011

For a full tutorial on how to create releases please check: http://marwww.in2p3.fr/~atsareg/Docs/DIRAC/build/html/D eveloperGuide/ReleaseProcedure/index.html DIRAC meeting Barcelona 13/05/2011