Editing Github Migration

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 66: Line 66:
 
* no-diff commits result in no commit in git
 
* no-diff commits result in no commit in git
 
** for example 66607 merged from branch, no-op changes to include/bu/defines.h
 
** for example 66607 merged from branch, no-op changes to include/bu/defines.h
 
== Remaining Items to Consider ===
 
 
* IMPORTANT:  We need to set up protections for the historical branches in Github:  https://docs.github.com/en/github/administering-a-repository/managing-a-branch-protection-rule - without this, we can lose history if anyone accidentally deletes old branches whose commits are not referenced by any undeleted branches.  (Unfortunately Github doesn't yet support protecting tags (https://github.community/t/feature-request-protected-tags) but if/when that feature is added we will also want to use it.)
 
 
* Sourceforge also stores user reported issues, patches, and other secondary data we would like to migrate.  This migration has been less thoroughly explored, but it appears https://github.com/n-soda/gosf2github may be a good starting point.
 
 
* We need to investigate available hooks in git for enforcing standards, procedures, etc for pull requests and commits.
 
 
* Email is currently hosted on sourceforge - need to decide what to do about migrating it (or not...).  CMake recently switched to discourse - https://discourse.cmake.org/
 
 
== OLDER CONTENT ===
 
  
 
== Version Control History ==
 
== Version Control History ==
Line 94: Line 82:
 
* Announce the change on the email list and update the website links.
 
* Announce the change on the email list and update the website links.
 
* Ensure any testing infrastructure is updated to connect to the new git repository rather than the (now static) SVN repository.</s>
 
* Ensure any testing infrastructure is updated to connect to the new git repository rather than the (now static) SVN repository.</s>
 +
 +
IMPORTANT:  We need to set up protections for the historical branches in Github:  https://docs.github.com/en/github/administering-a-repository/configuring-protected-branches  - without this, we can lose history if anyone accidentally deletes old branches whose commits are not referenced by any undeleted branches.  (Unfortunately Github doesn't yet support protecting tags (https://github.community/t/feature-request-protected-tags) but if/when that feature is added we will also want to use it.)
  
 
<s>For completeness, the plan is to create a Git repository that preserves the CVS and SVN repository contents in their final states.  The original CVS history proved important when doing the Git conversion, and should another attempt be made someday to migrate BRL-CAD's history to a new VCS it may well prove useful to have the original early data available, as opposed to the (inevitably) lossy Git conversion of that data.  (A quick test indicates such a repository would be about 1.7G in size.)  For best behavior the repo should probably have a .gitattributes file identifying all file types as binary files.</s>
 
<s>For completeness, the plan is to create a Git repository that preserves the CVS and SVN repository contents in their final states.  The original CVS history proved important when doing the Git conversion, and should another attempt be made someday to migrate BRL-CAD's history to a new VCS it may well prove useful to have the original early data available, as opposed to the (inevitably) lossy Git conversion of that data.  (A quick test indicates such a repository would be about 1.7G in size.)  For best behavior the repo should probably have a .gitattributes file identifying all file types as binary files.</s>
  
 +
== Secondary Information ==
 +
 +
Sourceforge also stores user reported issues, patches, and other secondary data we would like to migrate.  This migration has been less thoroughly explored, but it appears https://github.com/cmungall/gosf2github may be a good starting point.
  
 
== In-Repository Updates ==
 
== In-Repository Updates ==
Line 110: Line 103:
 
== User Workflow Updates ==
 
== User Workflow Updates ==
  
<s>Over the years a number of convenience setups have been worked out for Subversion, such as the mime type defaults.  Once we convert to git, we want to establish similar defaults and standards in Git.  This will be ongoing, but already known:</s>
+
Over the years a number of convenience setups have been worked out for Subversion, such as the mime type defaults.  Once we convert to git, we want to establish similar defaults and standards in Git.  This will be ongoing, but already known:
  
 
* <s>UPDATE - after discussion, good reasons not to do this, skipping.  Add a .gitattributes file to the repository to establish default behavior for various file types - a prototype is at misc/repoconv/gitattributes.</s>
 
* <s>UPDATE - after discussion, good reasons not to do this, skipping.  Add a .gitattributes file to the repository to establish default behavior for various file types - a prototype is at misc/repoconv/gitattributes.</s>
 
* <s>Utilize github workflows to set up cross platform CI using github's infrastructure.  Some preliminary testing has been done in throw-away repositories, and once a working setup has been identified we will enable it in the main repository.</s>
 
* <s>Utilize github workflows to set up cross platform CI using github's infrastructure.  Some preliminary testing has been done in throw-away repositories, and once a working setup has been identified we will enable it in the main repository.</s>
 
* <s>Set up a recommended user git config that will establish some semi-standard convenience aliases - in particular, for working with the historical information encoded in the git notes.</s>
 
* <s>Set up a recommended user git config that will establish some semi-standard convenience aliases - in particular, for working with the historical information encoded in the git notes.</s>
 +
 +
We need to investigate available hooks in git for enforcing standards, procedures, etc for pull requests and commits.
 +
 +
== Email lists ==
 +
 +
Email is currently hosted on sourceforge - need to decide what to do about migrating it (or not...).  CMake recently switched to discourse - https://discourse.cmake.org/

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)