IML Contributor Workflow

Software Contributor Documentation Table of Contents

workflow

Overview

iml_flow

1. Clone Repo

Clone the desired repository locally, for example, GUI.git

git clone git@github.com:whamcloud/GUI.git

2. Add - Modify - Delete Code

List the current branches

cd gui
git branch
git branch --all

Create a new branch for example, my-new-branch

git branch my-new-branch

Change to the branch called, my-new-branch

git checkout my-new-branch

- OR -

git checkout -b my-new-branch

> Add, modify and delete code <

Commit the code

git commit -s -m "This is my fix"

If necessary, sync the code with the origin master if anything has changed:

List the current origin and switch to the master branch

git remote -v 
git checkout master

Perform a fetch and rebase (Instead of fetch and merge)

git pull --rebase

Checkout the working branch

git checkout my-new-branch

Put any changes on top of what everyone else has done

git rebase master

Push the changes

git push origin my-new-branch

3. Code Review

Create a pull request in github

Browse to https://github.com/whamcloud

Copy the URL and request a code review

If the code review is approved by at least two developers, the gatekeeper will merge the pull request onto the master branch.

If comments are left in the PR page, then the developer is responsible for addressing each comment.

4. Travis CI Platform

Travis provides Continuous Integration testing along with generating releases.

Each Pull Request…

5. Jenkins Automated Build Server

Whamcloud provides a Jenkins build server that performs automated tests and generates IML tarball releases for download.

6. Fedora Copr Automated Build System

A number of software dependencies for IML reside in the github repository: manager-for-lustre-dependecies.

The dependencies are reflected in our copr project.

7. Lustre Nodes

In order to install IML and lustre onto a lustre cluster, the following are necessary:

  1. A Lustre Cluster - Either of the following:
    • “Bare-metal” set of servers.
    • Virtual machine environment such as vagrant, KVM or docker.
  2. Network access to the Fedora Copr RPMs.
  3. Ability to copy the proper IML tarball to the administrator node of the cluster.

Top of page