1 MOOSE-Based Application Development on GitLab MOOSE Team Idaho National Laboratory September 9, 2014
2 Introduction The intended audience for this talk is developers of INL-hosted, MOOSE-based applications. For information on contributing to the MOOSE framework itself, please see:
3 Introduction This talk is divided into the following sections: Setup Commands you run one time, when getting started. Workflow Commands you ll run every time you develop on GitLab. We will issue all commands in a separate terminal as we go. Please ask questions at any time!
4 Introduction This talk assumes you: Have access to the INL HPC enclave, and can browse to Have uploaded your public SSH key to GitLab, for help on this, please see:
5 Introduction We will refer back to this figure several times... GitLab (hpcgitlab.inl.gov) upstream master devel 1 devel review, test, merge idaholab/<appname> git checkout devel [ git pull - rebase upstream devel ] 3 git add [ git commit ] origin 5 Pull Request feature_ [ git checkout b feature_1729 devel ] username/<appname> feature_ [ git push origin feature_1729 ] ~/projects/<appname>
10 Setup Step 1: Fork the application repository 1 Go to 2 Click the Fork repository button.
11 Setup Step 2: Make a clone of your fork 1 Go to your fork, 2 On the right side, it should say: Forked from: idaholab/<appname>
12 Setup Step 2: Make a clone of your fork 3 Copy the SSH URL, you will use it momentarily...
13 Setup Step 2: Make a clone of your fork 4 Go to a terminal. 5 $ cd ~/projects 6 $ git clone 7 $ cd <appname> 8 $ git config user.name "Your Name" 9 $ git config user. your
14 Setup Step 3: Add a remote for the upstream application repository $ git remote add upstream Adding a remote allows you to stay up-to-date with changes to your application. The name upstream is standard in git parlance, it refers to the central repository for your application. The name origin refers to your personal fork of the application repository.
15 Setup Step 4: Give other users access to your fork Click Settings
16 Setup Step 4: Give other users access to your fork Click Members
17 Setup Step 4: Give other users access to your fork Click Import members
18 Setup Step 4: Give other users access to your fork Choose the appropriate upstream project
19 Setup Summary 1 Fork the application repository. 2 Make a clone of your fork. 3 Add a remote for the upstream application repository. 4 Give other users access to your fork.
20 Workflow 1 Introduction 2 Setup 3 Workflow
21 Workflow Step 0: Create or pick an issue Visit Click the green menu button in the top right and select New Issue
22 Workflow Step 0: Create or pick an issue Enter a title, brief description, and labels for the issue, then click the Submit new issue button.
23 Workflow Step 1: Pull down the latest changes from upstream Change directories to where you cloned your fork, and run: $ git checkout devel $ git pull --rebase upstream devel The --rebase flag to pull is important! Don t forget it! Always do this before starting work to ensure you are up to date.
25 Workflow Step 2: Create a new branch for your work Name your branch with your issue number, say #1729. Branch off from devel: $ git checkout -b feature_1729 devel In the command above, feature 1729 is the name of the branch being created. Please don t use the word feature when naming your branch!
26 Workflow Step 2: Create a new branch for your work GitLab (hpcgitlab.inl.gov) upstream master devel 1 devel review, test, merge idaholab/<appname> git checkout devel [ git pull - rebase upstream devel ] 3 git add [ git commit ] origin 5 Pull Request feature_ [ git checkout b feature_1729 devel ] username/<appname> feature_ [ git push origin feature_1729 ] ~/projects/<appname>
27 Workflow Step 3: Add, modify, and commit code to address the issue This step is obviously specific to the problem at hand, but you will frequently use the commands: 1 git add Add untracked files. 2 git status Print a summary of what s changed. 3 git checkout Revert changes to particular files. 4 git diff Print a detailed view of your changes. When you are done, commit your changes locally: $ git commit -a -m"some message which mentions #1729."
29 Workflow Step 4: Push your work up to your fork When you are ready to share your work with others, first make sure you are up to date: $ git pull --rebase upstream devel Make sure the code still compiles and the tests run. Then push the branch to your fork, which by default is called origin : $ git push origin feature_1729 You (and others!) should now be able to see this new branch, and browse the commits directly on the GitLab site. You can also easily share work between different computers you own using GitLab.
30 Workflow Step 4: Push your work up to your fork GitLab (hpcgitlab.inl.gov) upstream master devel 1 devel review, test, merge idaholab/<appname> git checkout devel [ git pull - rebase upstream devel ] 3 git add [ git commit ] origin 5 Pull Request feature_ [ git checkout b feature_1729 devel ] username/<appname> feature_ [ git push origin feature_1729 ] ~/projects/<appname>
31 Workflow Step 4: Push your work up to your fork The Network shows your commits in relation to others.
32 Workflow Step 5: Create a Merge Request on GitLab Once your branch is ready to be merged, you can alert other developers by creating a Merge Request.
33 Workflow Step 5: Create a Merge Request on GitLab Your merge request should be made on your project s devel branch (not master).
35 Workflow Step 6: Monitor and respond to comments on your merge request Your merge request will be automatically updated when: 1 The continuous integration system, moosebuild, tests your new code. 2 The application developers make comments. 3 Your code is merged, or your merge request is closed for any reason. Important: pushing new commits to the Merge Request branch does not trigger moosebuild to re-test your code (we will support this soon). As a workaround, simply edit the Merge Request description to trigger moosebuild to re-test.
36 Workflow Step 6: Monitor and respond to comments on your merge request If you change a commit that has already been pushed to your fork, it s called rewriting history. Let s say you want to edit only the most recently pushed commit. First make all the necessary changes, including adding new files, and then run $ git commit -a --amend You will also be able to edit the most recent commit message. This is a good way to add a forgotten issue number! Push the change up to your fork using the -f flag: $ git push -f origin feature_1729
37 Workflow Summary 0 Create/decide issue to work on, say # Pull down the latest changes from upstream. 2 Create a branch named feature Modify code, create new files, etc. to fix the issue. 4 Push your work up to your fork. 5 Create a merge request from your fork into idaholab:devel. 6 Monitor and respond to comments on your merge request.
1 MATLAB & Git Versioning: The Very Basics basic guide for using git (command line) in the development of MATLAB code (windows) The information for this small guide was taken from the following websites:
FEEG6002 - Applied Programming 3 - Version Control and Git II Sam Sinayoko 2015-10-16 1 / 26 Outline Learning outcomes Working with a single repository (review) Working with multiple versions of a repository
Git Basics Christopher Simpkins firstname.lastname@example.org Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Version Control Systems Records changes to files over time Allows you to
Using GitHub for Rally Apps (Mac Version) SOURCE DOCUMENT (must have a rallydev.com email address to access and edit) Introduction Rally has a working relationship with GitHub to enable customer collaboration
Git vs Subversion Andrey Kotlarski 13.XII.2011 Outline Annoyances with our current source control Can it get more comfortable? Git Appendix Rant Network traffic Hopefully we have good repository backup
Introduction to the Sebastian Rockel email@example.com University of Hamburg Faculty of Mathematics, Informatics and Natural Sciences Department of Informatics Technical Aspects of Multimodal
Version Control CS440 Introduction to Software Engineering 2013, 2015 John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important
Introduction to Version Control with Git Dark Cosmology Centre Niels Bohr Institute License All images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0. See
1 Version Control with Git Kate Hedstrom ARSC, UAF Linus Torvalds 3 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last
Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove
1 Version Control with Svn, Git and git-svn Kate Hedstrom ARSC, UAF 2 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last
Adapt Learning: Gitflow process Document control Abstract: Presents Totara Social s design goals to ensure subsequent design and development meets the needs of end- users. Author: Fabien O Carroll, Sven
i i Systems and Internet Infrastructure Security Institute for Networking and Security Research Department of Computer Science and Engineering Pennsylvania State University, University Park, PA Version
Version control with git and GitHub Karl Broman Biostatistics & Medical Informatics, UW Madison kbroman.org github.com/kbroman @kwbroman Course web: kbroman.org/tools4rr Slides prepared with Sam Younkin
How to Create a Free Private GitHub Repository Educational Account Computer Science Department College of Engineering, Computer Science, & Technology California State University, Los Angeles What is GitHub?
MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time
Research Institute for Symbolic Computation Johannes Kepler University Linz, Austria Winter semester 2014 Outline General Remarks about Version Control 1 General Remarks about Version Control 2 Outline
Git Basics Christian Hanser Institute for Applied Information Processing and Communications Graz University of Technology 6. March 2013 Christian Hanser 6. March 2013 Seite 1/39 Outline Learning Targets
Lunds tekniska högskola Datavetenskap, Nov 25, 2013 EDA260 Programvaruutveckling i grupp projekt Labb 2 (part II: Git): Labbhandledning Checked on Git versions: 220.127.116.11 Lab Exercise Part II: Git: A distributed
Introduction to Version Control with Git Dark Cosmology Centre Niels Bohr Institute License Most images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0. See
Source Code Management for Continuous Integration and Deployment Version 1.0 Copyright 2013, 2014 Amazon Web Services, Inc. and its affiliates. All rights reserved. This work may not be reproduced or redistributed,
Git A Distributed Version Control System Carlos García Campos firstname.lastname@example.org Carlos García Campos email@example.com - Git 1 A couple of Quotes For the first 10 years of kernel maintenance, we literally
Introduc)on to Version Control with Git Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT Contents 1. What is Version Control? 2. Why use Version control? 3. What is Git? 4. Create
MATLAB @ Work MATLAB Source Control Using Git Richard Johnson Using source control is a key practice for professional programmers. If you have ever broken a program with a lot of editing changes, you can
Version Control Script Mike Jackson, The Software Sustainability Institute Things you should do are written in bold. Suggested dialog is in normal text. Command- line excerpts and code fragments are in
A Git Development Environment Installing and using Git for Drupal and WordPress site development using Ubuntu/Mint and a Hostgator Reseller or VPS account. By: Andrew Tuline Date: February 7, 2014 Version:
Git - Working with Remote Repositories Handout New Concepts Working with remote Git repositories including setting up remote repositories, cloning remote repositories, and keeping local repositories in-sync
Using Git for Centralized and Distributed Version Control Workflows - Day 3 1 April, 2016 Presenter: Brian Vanderwende Git jargon from last time... Commit - a project snapshot in a repository Staging area
Version Control for Computational Economists: An Introduction Jake C. Torcasso April 3, 2014 Starting Point A collection of files on your computer Changes to files and new files over time Interested in
OSPI SFTP User Guide NOTE: Please contact OSPI to request an account BEFORE setting up this software. In order to configure the software you will need account information from OSPI. Here are some steps
Version Control with Subversion and Xcode Author: Mark Szymczyk Last Update: June 21, 2006 This article shows you how to place your source code files under version control using Subversion and Xcode. By
Version Control Key Points ========================== Mike Jackson, The Software Sustainability Institute. This work is licensed under the Creative Commons Attribution License. Copyright (c) Software Carpentry
Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a
Continuous Version 1.0 Copyright 2013, 2014 Amazon Web Services, Inc. and its affiliates. All rights reserved. This work may not be reproduced or redistributed, in whole or in part, without prior written
Two Best Practices for Scientific Computing Version Control Systems & Automated Code Testing David Love Software Interest Group University of Arizona February 18, 2013 How This Talk Happened Applied alumnus,
OpenStax-CNX module: m37404 1 Distributed Version Control with Mercurial and git Hannes Hirzel This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract
Version Control Tutorial using TortoiseSVN and TortoiseGit Christopher J. Roy, Associate Professor Virginia Tech, firstname.lastname@example.org This tutorial can be found at: www.aoe.vt.edu/people/webpages/cjroy/software-resources/tortoise-svn-git-tutorial.pdf
APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion
Platform for Github.com LinuxCon Europe 2014 October 13, 2014 Ralf Lang Linux Consultant / Developer email@example.com - Linux/Open Source Consulting, Training, Support & Development Introducing B1 Systems
The Bazaar Version Control System Michael Hudson, Canonical Ltd firstname.lastname@example.org What is Bazaar? Bazaar is a Distributed Version Control System (DVCS) You probably know what a VCS is by now:
Git on Drupal.org: It's Easier Than You Think Randy Fay and Alan Burke http://chicago2011.drupal.org/sessions/git-drupal-org-it-s-easier-you-think Cheers! An incredible team worked with amazing intensity
StriderCD Book Release 1.4 Niall O Higgins August 22, 2015 Contents 1 Introduction 3 1.1 What Is Strider.............................................. 3 1.2 What Is Continuous Integration.....................................
Introduction to Git Markus Kötter email@example.com Leinelab Workshop July 28, 2015 Motivation - Why use version control? Versions in file names: does this look familiar? $ ls file file.2 file.
TortoiseGIT / GIT Tutorial: Hosting a dedicated server with auto commit periodically on Windows 7 and Windows 8 Abstract This is a tutorial on how to host a dedicated gaming server on Windows 7 and Windows
Using Microsoft Azure for Students Dive into Azure through Microsoft Imagine s free new offer and learn how to develop and deploy to the cloud, at no cost! To take advantage of Microsoft s cloud development
Version Control with Git Claudius Coenen License: CC-BY-4.0 What We're Not Talking About Conceived by Linus Torvalds around 2005 Distributed Version Control vs. Central Version Control Why git is better
Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy
Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source
An Introduction to Mercurial Version Control Software CS595, IIT [Doc Updated by H. Zhang] Oct, 2010 Satish Balay firstname.lastname@example.org Outline Why use version control? Simple example of revisioning Mercurial
1 Chapter 1 Software Configuration Management and Continuous Integration Matthias Molitor, 1856389 Reaching and maintaining a high quality level is essential for each today s software project. To accomplish
Using Oracle Cloud to Power Your Application Development Lifecycle Srikanth Sallaka Oracle Product Management Dana Singleterry Oracle Product Management Greg Stachnick Oracle Product Management Using Oracle
School of Electrical and Computer Engineering Cornell University revision: 2015-09-08-11-01 1 Introduction 2 2 Setting up Your GitHub Account 2 3 Git and GitHub 3 3.1 Single-User Workflow.....................................
i About the Tutorial Git is a distributed revision control and source code management system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development.
MadCap Software Source Control Guide: Git Flare 11.1 Copyright 2015 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this
Version Control Systems: SVN and GIT How do VCS support SW development teams? CS 435/535 The College of William and Mary Agile manifesto We are uncovering better ways of developing software by doing it
Version Control Using Subversion Version Control Using Subversion 1 / 27 What Is Version Control? Version control is also known as revision control. Version control is provided by a version control system
Journal of pen research SoftWare Slaughter, A E et al 2015 Continuous Integration for Concurrent MOOSE. Journal of Open Research Software, 3: e14, DOI: http://dx.doi.org/10.5334/jors.bx ISSUES IN RESEARCH
Data management on HPC platforms Transferring data and handling code with Git scitas.epfl.ch September 10, 2015 http://bit.ly/1jkghz4 What kind of data Categorizing data to define a strategy Based on size?
CSE 374 Programming Concepts & Tools Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person,
AVOIDING THE GIT OF DESPAIR EMMA JANE HOGBIN WESTBY SITE BUILDING TRACK @EMMAJANEHW http://drupal.org/user/1773 Avoiding The Git of Despair @emmajanehw http://drupal.org/user/1773 www.gitforteams.com Local
DevShop Drupal Infrastructure in a Box Jon Pugh CEO, Founder ThinkDrop Consulting Brooklyn NY Who? Jon Pugh ThinkDrop Consulting Building the web since 1997. Founded in 2009 in Brooklyn NY. Building web
Online Funding Application Guidance Our online application process is fast and efficient and it means you have peace of mind financially before embarking on student life with us. Please ensure that you
29 September 1 October, 2014 Version Control What is Version Control? You re emailing your project back and forth with your partner. An hour before the deadline, you and your partner both find different
JBoss Developer Studio 6.0 OpenShift Tools Reference Guide 1 JBoss Developer Studio 6.0 OpenShift Tools Reference Guide Provides information about the use of the JBoss Developer Studio with the Red Hat
Paper PA-04 The Hitchhiker s Guide to Github: SAS Programming Goes Social Jiangtang Hu d-wise Technologies, Inc., Morrisville, NC ABSTRACT Don't Panic! Github is a fantastic way to host, share, and collaborate
CS108, Stanford Handout #33 Winter, 2006-07 Nick Parlante CVS in Eclipse Source Control Any modern software project of any size uses "source control" Store all past revisions - Can see old versions, see
Mantis Bug Tracker Developers Guide Mantis Bug Tracker Developers Guide Copyright 2014 The MantisBT Team A reference guide and documentation of the Mantis Bug Tracker for developers and community members.
Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal
Technology Business Solutions Online Backup Manager 1. Go to the TBS OBM Software Registration Page Click the TBS Logo Under the select an account type choose the PRO version. Page1 of7 2.) Create a new
An Introduction to Mercurial Version Control Software LANS Weekly Seminar October 17, 2006 Satish Balay email@example.com Outline Why use version control? Simple example of revisioning Mercurial introduction
Axis 360 Administrator User Manual May 2015 Table of Contents 1 Introduction... 4 1.1 Site Access and Home Page... 4 2 Settings... 5 2.1 Library Settings... 5 2.1.1 Library Site Settings...5 2.1.2 Lending
ICT-2011.1.2 Cloud Computing, Internet of Services & Advanced Software Engineering, FP7-ICT-2011-8 Open-Source, Web-Based, Framework for Integrating Applications with Social Media Services and Personal
Contents For Administrators... 3 Set up SourceAnywhere... 3 SourceAnywhere Service Configurator... 3 Start Service... 3 IP & Port... 3 SQL Connection... 4 SourceAnywhere Server Manager... 4 Add User...
School of Computer Science 1 Using Subversion in Computer Science Last modified July 28, 2006 Starting from semester two, the School is adopting the increasingly popular SVN system for management of student
DDNS Management System User Manual V1.0 1 03/01/2012 Table of Contents 1. Introduction.3 2. Network Configuration 3 2.1. Configuring DDNS locally through DVR Menu..3 2.2. Configuring DDNS through Internet
Zero-Touch Drupal Deployment Whitepaper Date 25th October 2011 Document Number MIG5-WP-D-004 Revision 01 1 Table of Contents Preamble The concept Version control Consistency breeds abstraction Automation
page of 4 oit UMass Office of Information Technologies Setting Up a Dreamweaver Site Definition for OIT s Web Hosting Server This includes Web sites on: https://webadmin.oit.umass.edu/~user http://people.umass.edu/