Skip to content

Releases: ESMCI/manage_externals

manic-1.2.3

03 Mar 22:59
82d3b24
Compare
Choose a tag to compare

What's Changed

New Contributors

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

03 Mar 17:35
fde04e4
Compare
Choose a tag to compare
(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

18 Apr 16:05
1926530
Compare
Choose a tag to compare

Add ability to pass --ignore-ancestry to svn switch

v1.1.5

22 Aug 16:53
fc5acda
Compare
Choose a tag to compare
  • 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

08 May 19:26
0427305
Compare
Choose a tag to compare
v1.1.4 - Few updates Pre-release
Pre-release
  • Add message describing meaning of '?'
  • Run through make style
  • Make no-logging be the default

v1.1.3 Improve performance

13 Apr 17:30
Compare
Choose a tag to compare
add --quiet argument to improve performance

v1.1.2 Argument to only process components listed

11 Apr 16:33
b2f3ae8
Compare
Choose a tag to compare

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

10 Apr 18:50
6923119
Compare
Choose a tag to compare

Rework two aspects of the logic for git repositories; both of these can
change behavior in some cases when printing status:

  1. 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.

  2. 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

06 Apr 18:46
Compare
Choose a tag to compare

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

03 Apr 17:14
Compare
Choose a tag to compare

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.