#1802: move AEIThorns into git repositories ------------------------------------+--------------------------------------- Reporter: rhaas | Owner: Type: enhancement | Status: new Priority: minor | Milestone: Component: EinsteinToolkit thorn | Version: development version Resolution: | Keywords: ADMMass AEILocalInterp PunctureTracker SystemStatistics Trigger ------------------------------------+---------------------------------------
Comment (by barry.wardell):
As Ian says, we discussed this on Skype yesterday and worked out a solution which should hopefully satisfy all of our desires/requirements. In short, the thorns have been moved and everything is now working the way we want it.
For those who are interested, a more detailed explanation follows. What was done: 1. Merge the master branches of the to-be-moved thorns into the master branches of the arrangement repository they are moving to. 2. Push other branches and tags from the moved thorns' repository into the arrangement repository under their own namespace (so we have, e.g., PunctureTracker/ET_2015_05) 3. Do *not* merge the release branches of the moved thorns into the arrangement release branches. This would have too many weird side-effects (multiple copies of a thorn in the Cactus tree, not reflecting any true history, having the merged thorns appear on the tips of branches but not being present in any intervening commits between branches, etc.).
This is all we need going forward and will work for all future releases. I have gone ahead and pushed these changes to the official repositories.
This strategy also preserves the full history of the thorns in a faithful way and makes it easy to go back to older versions. For example, if one wants to go back to a previous version of PunctureTracker while keeping it in the new EinsteinAnalysis arrangement, they can just checkout that version using, e.g., {{{ git checkout origin/PunctureTracker/ET_2011_05 PunctureTracker }}} This will move the PunctureTracker directory back to the ET_2011_05 release version while keeping other thorns at the current release.
Alternatively, if one wants to move the entire arrangement back to the ET_2011_05 release, they can use {{{ git checkout ET_2011_05 }}} as normal. This will then not have PunctureTracker present, as expected since it wasn't in the EinsteinAnalysis arrangement at the time of the ET_2011_05 release. However, if one really does want to have the ET_2011_05 version of PunctureTracker, then that's easily achieved too: {{{ git checkout origin/PunctureTracker/ET_2011_05 PunctureTracker }}} I think making this step explicit is better (less confusing) than merging the PunctureTracker/ET_2011_05 branch into the ET_2011_05 branch. It also means that old release thornlists should still work fine without any modification.
A separate issue is that the AEI are keen to retire their svn server. It's running an old version of the OS, is becoming a chore to maintain, and isn't being used by anyone any more. Once it goes offline, old release thornlists will no longer work. To work around this, we can make git versions of the relevant thorn repositories available on BitBucket. In principle, this could be achieved using the existing merged arrangement repositories and just checking out, e.g., the PunctureTracker/ET_2011_05 branch in the EinsteinAnalysis repository, which will only give the PunctureTracker files and not the other files in the arrangement. The only catch is that this would make checkouts larger, since each of these thorns will now have a repository which contains the history of the whole arrangement. To cut down on repository size/download time, the best solution is to make the relevant release branches available in separate read-only repositories, one for each thorn. I have done this for the both AEIThorns and LSUThorns repositories, so we now have, e.g., a [https://bitbucket.org/einsteintoolkit/archivedthorns-puncturetracker PunctureTracker repository], which only contains the necessary release branches. I have also updated all of the old release branch thornlists in the Einstein Toolkit manifest repository, so that new downloads of the ET will use the git versions of the repositories from BitBucket in place of the old svn repositories. I have tested that I can use GetComponents with these updated release thornlists to check out the old releases.