Difference between revisions of "Documentation/Labs/TransitionToGit"

From Slicer Wiki
Jump to: navigation, search
Line 1: Line 1:
 
This page keep tracks of the progress done toward the conversion from (1) Slicer svn repository mirror onto github into (2) a only git repository.
 
This page keep tracks of the progress done toward the conversion from (1) Slicer svn repository mirror onto github into (2) a only git repository.
  
= Related issues =
+
= Setup infrastructure to streamline writing of release notes =
* {{done}} [http://na-mic.org/Mantis/view.php?id=2834 2834: Consolidate svn and git hooks]
+
 
* {{wip}} [http://na-mic.org/Mantis/view.php?id=2060 2060: Move testing data onto Midas]
+
Motivation:
* [http://na-mic.org/Mantis/view.php?id=3156 3156: Automatic conversion of ExternalData to MD5]
+
* Reduce [[Documentation/Nightly/Developers/ReleaseProcess|Release Process]] overall time by streamlining the generation of the list of improvements and fixes associated with Release announcement. Compiling this list currently consists in scraping the list of commits and PRs since the last release.
* [http://na-mic.org/Mantis/view.php?id=2059 2059: Transition to Git]
+
* Involve developers of features and fixes in the writing and review of release note
 +
* Always have an up-to-date list documenting the list of features and fixes associated with the upcoming release
 +
 
 +
Possible Approach:
 +
* Developers should add a `name-of-the-note.rst` file for each topic branch making a noteworthy change. Each document should be named and titled to match the topic name to avoid merge conflicts. This is similar to approach used by CMake (see https://github.com/Kitware/CMake/tree/master/Help/release/dev). When releasing the collection of files is combined into one document.
 +
* When relevant, images should be associated.
 +
* Release highlight would still be manually crafted.  
  
== Removing binary data from history ==
+
= Removing binary data from history =
  
 
Motivation:
 
Motivation:
Line 15: Line 21:
 
Tasks:
 
Tasks:
 
* Filter the history
 
* Filter the history
** Fix  
+
** Fix [[#Authorship]] and [[#Commit_message]]
 
** experiment with history filter and compare with above stats
 
** experiment with history filter and compare with above stats
 
* Remove file above <= X MB that have a poor compression ratio. See [https://gist.github.com/jcfr/4348af13d2c8931daeab4ff9ab73e14b git_list_largest_file_from_history.sh] and [https://gist.github.com/jcfr/93fe51974d9db8ef55a6d3172c1de68d slicer_git_history_350_largest_files.txt]
 
* Remove file above <= X MB that have a poor compression ratio. See [https://gist.github.com/jcfr/4348af13d2c8931daeab4ff9ab73e14b git_list_largest_file_from_history.sh] and [https://gist.github.com/jcfr/93fe51974d9db8ef55a6d3172c1de68d slicer_git_history_350_largest_files.txt]
Line 28: Line 34:
 
* Andrey (SPL): 2m13s
 
* Andrey (SPL): 2m13s
 
* Steve (Cambridge): 21s (full history),  8s (with --depth=1)
 
* Steve (Cambridge): 21s (full history),  8s (with --depth=1)
 +
 +
== Related issues ==
 +
* {{done}} [http://na-mic.org/Mantis/view.php?id=2834 2834: Consolidate svn and git hooks]
 +
* {{wip}} [http://na-mic.org/Mantis/view.php?id=2060 2060: Move testing data onto Midas]
 +
* [http://na-mic.org/Mantis/view.php?id=3156 3156: Automatic conversion of ExternalData to MD5]
 +
* [http://na-mic.org/Mantis/view.php?id=2059 2059: Transition to Git]
  
 
== Authorship ==
 
== Authorship ==

Revision as of 17:25, 8 May 2019

Home < Documentation < Labs < TransitionToGit

This page keep tracks of the progress done toward the conversion from (1) Slicer svn repository mirror onto github into (2) a only git repository.

Setup infrastructure to streamline writing of release notes

Motivation:

  • Reduce Release Process overall time by streamlining the generation of the list of improvements and fixes associated with Release announcement. Compiling this list currently consists in scraping the list of commits and PRs since the last release.
  • Involve developers of features and fixes in the writing and review of release note
  • Always have an up-to-date list documenting the list of features and fixes associated with the upcoming release

Possible Approach:

  • Developers should add a `name-of-the-note.rst` file for each topic branch making a noteworthy change. Each document should be named and titled to match the topic name to avoid merge conflicts. This is similar to approach used by CMake (see https://github.com/Kitware/CMake/tree/master/Help/release/dev). When releasing the collection of files is combined into one document.
  • When relevant, images should be associated.
  • Release highlight would still be manually crafted.

Removing binary data from history

Motivation:

  • Speedup time required to checkout Slicer source code.
  • Quote "Because of the decentralized nature of Git, which means every developer has the full change history on his or her computer, changes in large binary files cause Git repositories to grow by the size of the file in question every time the file is changed and the change is committed. The growth directly affects the amount of data end users need to retrieve when they need to clone the repository." See https://www.perforce.com/blog/storing-large-binary-files-in-git-repositories

Tasks:

Some stats:

  • Hina, Jc (from Kitware Carrboro): 3min30sec
  • Andrey (SPL): 2m13s
  • Steve (Cambridge): 21s (full history), 8s (with --depth=1)

Related issues

Authorship

Since contribution have been integrated using the svn dcommit --add-from-author, the history should be filtered to change the commit author as specified in the From: statement.

In addition, the following update should be considered:

  • r22869 -> Franklinwk <franklin.king@queensu.ca>
  • r23080 -> Co-authored-by: Andras Lasso <lasso@queensu.ca>
  • r23506 -> Andras Lasso <lasso@queensu.ca>
  • r23758 -> Andras Lasso <lasso@queensu.ca>
  • r24061 -> Alireza Mehrtash <mehrtash@bwh.harvard.edu>
  • r24309 -> Andras Lasso <lasso@queensu.ca>
  • r24631 -> Co-authored-by: Max Smolens <max.smolens@kitware.com>
  • r24720 -> Change author email to zhangfanmark@gmail.com
  • r25140 -> Hastings Greer <hastings.greer@kitware.com>
  • r25744 -> Add Suggested-by: Alexis Girault <alexis.girault@kitware.com>
  • r26841 -> From: Gregory C. Sharp <gregsharp.geo@yahoo.com>, Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
  • r26856 -> Adam Rankin <adam.rankin@gmail.com>
  • r26987 -> Fernando Perez-Garcia <fepegar@gmail.com>

Commit message

The following commit message could be fixed:

STYLE: Add test for CLI Node status update

This commit adds a test checking that CLI status has the expected
value following StatusModifiedEvent.

Possible status are the following:

    Idle
    Scheduled
    Running
    Cancelling
    Cancelled
    Completing
    Completed
    ErrorsMask
    CompletedWithErrors
    BusyMask

Note that the status is inconsistently update between synchronous and asynchronous mode. This
will be addressed in a follow up commit.