GitHub and the MPI Forum: The Short Version December 9, 2015 San Jose, CA.
-
Upload
martin-robbins -
Category
Documents
-
view
229 -
download
0
description
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 ([email protected]) or Jeff ([email protected]) 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