GitHub and the MPI Forum: The Short Version December 9, 2015 San Jose, CA.

Post on 17-Jan-2018

229 views 0 download

description

How do I get access? Read and agree to the terms (on the wiki)wiki Don’t post unofficial copies, don’t post the source publicly Set up a GitHub account Enable 2-factor authentication on your GitHub account! All the cool kids are doing it Send an to Wesley or Jeff with your

Transcript of GitHub and the MPI Forum: The Short Version December 9, 2015 San Jose, CA.

GitHub and the MPI Forum:The Short Version

December 9, 2015San Jose, CA

RTFW (Read the Fine Wiki)Getting started with GitGetting started with GitHubWorkflows

Filing an issue (“ticket”)Filing a pull request

Migrating from SVN / Trac

https://github.com/mpi-forum/mpi-issues/wiki

How do I get access?Read and agree to the terms (on the wiki)

Don’t post unofficial copies, don’t post the source publiclySet up a GitHub account

Enable 2-factor authentication on your GitHub account!All the cool kids are doing it

Send an email to Wesley (wesley.bland@intel.com) or Jeff (jsquyres@cisco.com) with your username

General MPI Forum GitHub schemeIssue#28

Describe proposal

Attach PDFs

Refer to its corresponding

PR (#107)

...etc.(Public)

Pull Request #107

Easily see text / LaTeX diff

Should refer to its

corresponding issue (#28)

(Private)

Git repo for LaTeX source code(Private)

Wiki(Public)

mpi-forum /mpi-issues(public)

mpi-forum /mpi-standard(private)

Working Group workflows: general

mpi-forumGithub organization

Chapter authors, editors have write access to

private repos

mpi-standardGit repo[Private]

mpi-issuesGit repo[Public]

mpiwg-toolsGithub organization

Working group members have write access to

private repos

mpi-standardGit repo[Private]

Fork

jdinanuser

mpi-standardGit repo[Private]

Fork

Pull Request

Pull Request

tools-issuesGit repo[Public] Pull

Request

Typical proposal workflow

Create an issue:

describe the proposal

Create a pull request:

implement proposal in text

Link the issue and pull request

MPI Forum votes to

approve the proposal

Get chapter committee to approve the pull request

(NEW)

Author

Editor

Forum

Chapter Committees

Pull request is merged

Chapter Committees / Authors help

resolve merge issues (if any)

RTFW (Read the Fine Wiki)https://github.com/mpi-forum/mpi-issues/wiki

Getting started with GitGetting started with GitHubWorkflows

Filing an issue (“ticket”)Filing a pull request

Migrating from SVN / Trac

Git / GitHub terminologyGit: Distributed version control system

Subversion has a single “upstream”Git can have multiple “upstreams”

GitHub(.com): hosting serviceRepositories: Git repositories and associated toolsOrganizations: Groups of GitHub repositories and users

General MPI Forum GitHub schemeOrganization:

mpi-forum

Repositories:mpi-issues (public)mpi-standard (private)

You must be a member of the mpi-fourm org to see the private mpi-standard repo

“Absolute” repo names:mpi-forum/mpi-issuesmpi-forum/mpi-standard

Who can access the source repo?Anyone on the Forum

Just like previous access to SVNNew: Anyone who agrees to our rules

Don’t publish bogus copies of the StandardDon’t publish the source publicly...etc.https://github.com/mpi-forum/mpi-issues/wiki

Branch scheme

3.x branch

4.x branch

MPI 4.0 MPI 4.1

MPI 3.2

Git tags

MPI 3.0 MPI 3.1

https://github.com/mpi-forum/mpi-issues/wiki/Branch-Management

Errata WorkflowAuthors make a pull request on the appropriate branch

with:Addition(s) to errata document (if there is one)Corresponding change(s) in main document

When new version of MPI standard document released, errata document is cleared out

Errata Workflow (2)

3.x branch

MPI 3.2

Git tags

MPI 3.0 MPI 3.1

Pull request:Clarify MPI_CANCEL for send requests (errata)

Create a new issue on the main repository (not WG)Create a new pull request from WG or user repository

Target desired branch (3.x, 4.x, etc.)Reference Issue in pull request description

Get pull request reviewed by appropriate chapter committee(s) before first vote

After passing votes, Editor clicks “merge” button (hopefully)

https://github.com/mpi-forum/mpi-issues/wiki/Working-Group-Guidelines

Proposal Workflow

Proposal Workflow: current branch

3.x branch

MPI 3.0 MPI 3.1 MPI 3.2

Pull request (for 3.2):MPI_TYPE_GET_EXTENT is defined via deprecated features

Proposal Workflow: next branch

3.x branch

4.x branch

MPI 3.0 MPI 3.1

Pull request:Fault Tolerance (for MPI-4)

Branch does not exist yet

Where to base the pull request?

Proposal Workflow: next branch

3.x branch

4.x branch

MPI 3.0 MPI 3.1

Pull request:Fault Tolerance (for MPI-4)

Branch does not exist yet

Until 4.x branch exists,base it against 3.x branch

Proposal Workflow: next branch

3.x branch

4.x branch

MPI 3.0 MPI 3.1

Pull request:Fault Tolerance (for MPI-4)

When 4.x branch is created,rebase the pull request to 4.x branch

Proposal Workflow: current branch, when next branch already exists

3.x branch

4.x branch

MPI 3.0 MPI 3.1 MPI 3.2

Pull request:Datatype support functionality (for MPI-3.2)

Merge down to 4.x branchwhen PR merged to 3.x branch

Working Group workflow: option 1

mpi-forumGithub organization

mpi-standardGit repo

mpiwg-ftGithub organization

mpi-standardGit repo

Pull Request

mpi-3.xbranch

mpi-3.xbranch

ticketbranch

Sync from Forum to WG

Working Group workflow: option 2

mpi-forumGithub organization

mpi-standardGit repo

mpiwg-toolsGithub organization

mpi-standardGit repo

Pull Request

integrationbranch

ticketbranch

mpi-3.xbranch

mpi-3.x branch

Sync from Forum to WG

Preserved SVN history for MPI-3.0 / MPI-3.1Did not preserve SVN commit history for prior versions -- just saved the

final state of each documentTickets will be moved manually (by authors) from Trac

Use this opportunity to purge old tickets that are not activeTrac will remain available in read-only state for historical

reference

Other Notes

Demonstration: Simple pull requestHigh level steps for a pull request:

1. Create an mpi-forum/mpi-issues issue2. Fork the mpi-forum/mpi-standard repo

(once) 3. Clone your repo to your work machine

(once)4. Make a branch in your clone5. Make and commit your edits to the

branch6. Push your branch to your GitHub fork7. Create the pull request

mpi-forum / mpi-issues repo

mpi-forum / mpi-standard repo

Public issue

Demonstration: Simple pull requestHigh level steps for a pull request:

1. Create an mpi-forum/mpi-issues issue2. Fork the mpi-forum/mpi-standard repo

(once)3. Clone your repo to your work machine

(once)4. Make a branch in your clone5. Make and commit your edits to the

branch6. Push your branch to your GitHub fork7. Create the pull request

mpi-forum / mpi-standard repo

jsquyres / mpi-standard repo

Fork

Demonstration: Simple pull requestHigh level steps for a pull request:

1. Create an mpi-forum/mpi-issues issue2. Fork the mpi-forum/mpi-standard repo

(once)3. Clone your repo to your work machine

(once)4. Make a branch in your clone5. Make and commit your edits to the

branch6. Push your branch to your GitHub fork7. Create the pull request

jsquyres / mpi-standard repo

mpi-standard repo

Clone

Demonstration: Simple pull requestHigh level steps for a pull request:

1. Create an mpi-forum/mpi-issues issue2. Fork the mpi-forum/mpi-standard repo

(once)3. Clone your repo to your work machine

(once)4. Make a branch in your clone5. Make and commit your edits to the

branch6. Push your branch to your GitHub fork7. Create the pull request

mpi-standard repo

mpi

-3.x

bra

nch

my-

chan

ges

bran

ch

Demonstration: Simple pull requestHigh level steps for a pull request:

1. Create an mpi-forum/mpi-issues issue2. Fork the mpi-forum/mpi-standard repo

(once)3. Clone your repo to your work machine

(once)4. Make a branch in your clone5. Make and commit your edits to the

branch6. Push your branch to your GitHub fork7. Create the pull request

mpi-standard repo

mpi

-3.x

bra

nch

my-

chan

ges

bran

ch

Demonstration: Simple pull requestHigh level steps for a pull request:

1. Create an mpi-forum/mpi-issues issue2. Fork the mpi-forum/mpi-standard repo

(once)3. Clone your repo to your work machine

(once)4. Make a branch in your clone5. Make and commit your edits to the

branch6. Push your branch to your GitHub fork7. Create the pull request

jsquyres / mpi-standard repo

mpi-standard repo

Push

my-

chan

ges

bran

ch

my-

chan

ges

bran

ch

Demonstration: Simple pull requestHigh level steps for a pull request:

1. Create an mpi-forum/mpi-issues issue2. Fork the mpi-forum/mpi-standard repo

(once)3. Clone your repo to your work machine

(once)4. Make a branch in your clone5. Make and commit your edits to the

branch6. Push your branch to your GitHub fork7. Create the pull request

mpi-forum / mpi-standard repo

jsquyres / mpi-standard repo

Pull request

my-

chan

ges

bran

ch

mpi

-3.x

bra

nch

Demonstration