Releases: ESMCI/manage_externals
manic-1.2.3
What's Changed
- ignore this silently, we use a hash so it does not matter by @jedwards4b in #139
- add an exclude option by @jedwards4b in #143
- Add some details to the error message when externals are modified by @billsacks in #144
- Sort by local path by @jedwards4b in #152
- fix to allow submodule name different from path by @gold2718 in #150
- When on a branch, show tag/hash, too by @billsacks in #156
- Add another option for when an external is in a modified state by @billsacks in #158
- Change shebang lines to python3 by @fischer-ncar in #162
- Add documentation about externals = None feature by @gold2718 in #165
- Fix svn on Windows by @billsacks in #167
- Document _Externals.status(). by @johnpaulalex in #169
- Print full paths to external.cfg files being read by @johnpaulalex in #170
- Document status data structures by @johnpaulalex in #171
- On checkout, refresh locally installed optional components regardless of whether -o is passed in. by @johnpaulalex in #172
- Further tiny refactorings and docs of checkout API (no-op). by @johnpaulalex in #173
- Fix broken checkout behavior introduced by PR #172. by @johnpaulalex in #175
- add github testing of prs and automatic tagging of main by @jedwards4b in #176
- get git workflow working by @jedwards4b in #177
- Additional documentation of system tests by @johnpaulalex in #178
New Contributors
- @fischer-ncar made his first contribution in #162
- @johnpaulalex made his first contribution in #169
Full Changelog: manic-v1.1.8...manic-1.2.3
manic-v1.1.8: Add support for git sparse checkout, and fixes for python3.8
(1) Add support for git sparse checkout Added a new, optional external property, sparse. sparse points to a file (relative to external repository local directory) with git sparse checkout patterns (e.g., directory names to include). If the sparse keyword is included, enable sparse checkout for that repository and use git read-tree to perform the sparse checkout. Added a new test for sparse checkout. The test is a repo with two externals which are both tag2 of the simple_ext repo with one of them configured for a sparse checkout. The test makes sure that both externals have the correct files. Updated the documentation for the externals configuration file. User interface changes?: Yes - New sparse keyword is optional with a blank default value which preserves current functionality. Fixes: #120 Testing: test removed: None unit tests: All passed system tests: All passed, including new test for sparse feature manual testing: Several manual tests of NASA test cases. (2) Fixes for python3.8, and tweak travis-ci testing - Critical fix needed for python3.8 - pylint fix needed for all versions of python 3 - Add python3.7 and python3.8 testing through travis-ci - Remove travis-ci testing on Mac OS (which was using python2, and was failing) User interface changes?: No Fixes ESMCI/cime#135 ("dictionary keys changed during iteration" when running checkout_externals) Testing: 'make lint', 'make test' test removed: travis-ci testing on Mac OS unit tests: pass system tests: pass manual testing: With these diffs in a CESM checkout: ```diff diff --git a/Externals.cfg b/Externals.cfg index b943c25..6b0f03e 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -39,7 +39,7 @@ required = True tag = release-cesm2.0.03 protocol = git repo_url = https://github.com/ESCOMP/mosart -local_path = components/mosart +local_path = ./components/mosart required = True [pop] ``` ensured that `manage_externals -S` gives the exact same output now as before.
v1.1.6
Add ability to pass --ignore-ancestry to svn switch
v1.1.5
- Fix hangs when a subcommand has a lot of output.
- Fixed and clarified help documentation.
- If you encounter an empty directory clone into it.
- Remove message about checking the log file for more details.
v1.1.4 - Few updates
- Add message describing meaning of '?'
- Run through make style
- Make no-logging be the default
v1.1.3 Improve performance
add --quiet argument to improve performance
v1.1.2 Argument to only process components listed
Add optional argument to only process components listed on the command line
checkout_externals cam clm
will only process externals associated with the listed components cam and clm.
Also add a test of the new functionality.
v1.1.1 bugfix
Rework two aspects of the logic for git repositories; both of these can
change behavior in some cases when printing status:
-
Determining whether the local checkout is in-sync with the expected
reference from the configuration file: Now we always convert the
expected reference to a hash and compare that with the
currently-checked-out hash. Previously, we sometimes did the
comparison using names, e.g., just ensuring that you're on the right
branch. -
Determining the current ref name (e.g., the branch or tag currently
checked out). Now we use a number of plumbing commands rather than
relying on regex parsing of 'git branch -vv'. The previous regex
parsing was fragile and hard to maintain, and was the source of a
number of bugs. In addition, differences between git v. 1 and git
v. 2 meant that the result was incorrect in some cases -
particularly, in the case where we have "detached from foo" (which is
the text that always appeared for a detached head in v 1, but in v 2
means we are no longer at foo).
This results in some subtle changes to status output. One particular
change is: If we're on a tracking branch, checkout_externals -S -v
will show the name of the local branch rather than the tracked
branch. (This is more accurate, because we may not actually be at the
head of the tracking branch.)
Also some other minor changes to documentation and running code coverage.
Tag 1.1 with new hash feature
Feature release 1.1.0 for manage_externals
- Add schema support for explicitly specifying a git hash. This schema change is
backwards compatible with older input files, but adds new functionality that
can not be used with prior versions of manage_externals.
v1.0.2 bugfix
Bugfix tag 1.0.2 for manage_externals
Includes bugfixes for:
-
svn and git authentication requests may not be displayed to the user on
some machines. Add a timeout limit to subprocess calls. -
explicit configuration file schema version checking.
-
Update readme and help, including working with local repositories, comments
in externals files, switching repository types not supported.