-
Notifications
You must be signed in to change notification settings - Fork 12
Home
CI testing is done for every PR with git 2.15, svn 1.8 and python 2.7, 3.4, 3.5 and 3.6.
manage_externals production environments include older version of svn and git, and is generally expected to work with:
- python
- python2 > 2.7.z
- python3 > 3.4.z
- git - 1.8, 2.3 <= version <= 2.15
- svn - 1.6.11 <= version <= 1.9.4
The most transparent way to deliver manage_externals to users of a repository is to included it in the repository as a git subtree.
The development history of manage_externals is not relevant to most uses of the tool, so the subtree history should be squashed to avoid polluting the client repository with unneeded history and tags.
All tags in manage_externals are annotated tags. Git subtrees and annotated tags have problems in older versions of git. These older versions of git are still common on production machines where manage_externals is developed, tested and used. The recommended workflow for including manage_externals as a subtree is to pull a branch whose head is at the desired tag instead of the tag itself.
git clone [email protected]:NCAR/manage_externals
cd manage_externals
# if a branch head does not exist at the desired tag/commit
git checkout -b tmp-release manic-v0.8.0
cd ..
git clone [email protected]:some_org/some_repository
cd some_repository
git subtree pull --squash --prefix manage_externals ../manage_externals tmp-release
cd manage_externals/test
make test
cd ../..
# manually verify manage_externals works as expected with the client externals description files