Skip to content

GithubMigration

ompiteam edited this page Sep 16, 2014 · 12 revisions

The Conversion

There are several things that need to be migrated:

  1. SVN repository needs to be (intelligently) converted to Git
  2. Trac wiki needs to be converted to Github Markdown
  3. (Relevant) Trac tickets need to be converted to Github Issues
  4. Nightly build scripts and release scripts need to be converted to Git
  5. Convert ompi-tests SVN to a private Github repo

Notes for developers:

  1. The abbreviated commit diff "svn" mailing list no longer exists.
  2. The full commit diff "svn-full" mailing list has been renamed to "ompi-commits".
  3. The Trac bug activity "bugs" mailing list no longer exists. You must join the ompi repo at Github (and subscribe to notices) to receive email notifications for bugs.

SVN -> Git conversion

The procedure is essentially:

  1. Use git-svn to clone the SVN repo
  2. Fix a bunch of the remote refs
  3. Delete a bunch of old/stale branches (mostly by-products of the git-svn clone)
  4. Edit every SVN commit message:
    • Add mention of what SVN r number this commit was
    • Find mentions of "rXXX" and add new git reference hash
    • Find mentions of "#XXX" and add link to old Trac ticket
  5. Fix git tags (our SVN tags weren't accurate)

Here's an example SVN commit message:

Fixes #4884: Move r32628 to v1.8 branch (usnic: remove suggestion of enabling)  
---svn-pre-commit-ignore-below---  
r32628  
usnic: remove suggestion of enabling no-drop in the fabric  
Reviewed by Reese Faucette  
cmr=v1.8.3:reviewer=ompi-rm1.8

Here's how it was translated for Git:

Fixes trac:4884: Move r32628 to v1.8 branch (usnic: remove suggestion of enabling)  
---svn-pre-commit-ignore-below---  
r32628  
usnic: remove suggestion of enabling no-drop in the fabric  
Reviewed by Reese Faucette  
cmr=v1.8.3:reviewer=ompi-rm1.8

This commit was SVN r32641.

The following SVN revision numbers were found above:
  r32628 -> 971fa467c0d9a6d549e6aeb50b59c332028f4359

The following Trac tickets were found above:
  Ticket 4884 -> https://svn.open-mpi.org/trac/ompi/ticket/4884

Trac wiki -> Github Markdown

Converted over all OMPI Trac wiki pages that were reachable from the main wiki page via some hand-written perl regular expressions.

After that, did a bunch of visual inspection to fix up remaining issues.

Also updated pages about SVN/Trac interaction to be about Git/Github interaction. Go read them.

(Relevant) Trac tickets -> Github issues

There is a process ready to convert over all "relevant" Trac tickets into Github issues.

"Relevant" means tickets that are both open and not CMRs.

However, before running this procedure, I must have everyone added to the final OMPI Github repo first (so that it can assign tickets properly, etc.). This is why I posted recently asking for everyone's Github IDs.

Read how to open new issues on Github.

WARNING: You really want to "Unwatch" the ompi Github repo, first. Otherwise, Github will mail you for every Issue created and every comment/action added to that issue. This will likely range from dozens to (many) hundreds of emails.

After the tickets have been migrated, you can set the "Subscribe" settings back to defaults (i.e., be notified when an issue is assigned to you, someone @mentions you, etc.).

YOU HAVE BEEN WARNED

Nightly build scripts

The bulk of this work has already been done when hwloc converted over to Git/Github. I will simply adapt hwloc's scripts for Open MPI.

Note that the format of the nightly tarball names will be changing. Instead of containing an absolute r number in the filename, like this:

# On the SVN v1.8 branch, before the 1.8.3 release
openmpi-1.8.3a1r32695.tar.bz2

and

# On the SVN trunk, before the 1.9 release
openmpi-1.9a1r32706.tar.bz2

It will be the number of commits after the last tag on that branch. For example:

# On the v1.8 branch, 21 commits after the v1.9 tag
hwloc-1.9-21-gfd56b4e.tar.bz2

and

# On the master branch, 211 commits after the [artificial] "dev" tag
hwloc-dev-211-gddefb2f.tar.bz

Convert ompi-tests SVN to Git

The private ompi-tests SVN repository is now the private ompi-tests Git repo at Github.

It is still private.

Scheduling

I need approximately 1 business day to do this conversion. Need to find a day to do it that is permissable in my schedule and as non-disruptive to the community as possible.

When's good?

DECIDED: Wednesday, September 24, 2014

After the conversion

  • All developers will start using the ompi repo master branch immediately.
  • All new tickets will be filed as Github issues.
  • Developers are encouraged to use the Github code review tools (annotation, etc.). You can use @mentions to add someone else to a conversation thread.
  • All open CMRs will need to be re-filed as pull requests. Trac CMRs are not automatically being converted.
  • Anyone using the existing Github ompi-svn-mirror repo will likely need to extract their non-upstream work and rebase it onto a fresh ompi clone.
  • SVN and Trac will be preserved in read-only modes. I.e., old links to SVN and Trac will still work, but you won't be able to change anything.
Clone this wiki locally