Skip to content

Releases: GEOS-ESM/mepo

Allow checkout on all repos

10 Jun 13:39
1cebc4f
Compare
Choose a tag to compare

DOI

Much like how v1.34.0 allowed fetch to run on all repos if no components are specified, with this release, mepo checkout also can now run on all repos if no components are specified.

NOTE: We DO NOT ALLOW mepo checkout -b to run on all components at once. If you want to make a new branch, we want you to think about it and be specific.

Fix for tags

10 Jun 12:39
Compare
Choose a tag to compare

DOI

This release fixes a bug in the tag subcommand.

Clean up and add doc script

27 May 16:38
092c9e7
Compare
Choose a tag to compare

DOI

This release is mainly a clean up, but it does have a couple substantive changes:

  1. The fetch-all command is removed and "subsumed" into the fetch command. fetch-all was written at a time when the developer's Python skills were worse than they presently are.
  2. The push-all command was removed. This was always a scary command that mainly existed to push tags on all repos. Once that functionality went to mepo tag push, this is now cause issues if you pushed when not desired. So, instead, users need to use mepo push on specific repos.

Beyond this, the main addition is a script that aids in making the Mepo Commands wiki page. For Markdown reasons, some of the Argparse parsers had to be changed to better work with Markdown syntax.

Obey config file for no style

26 May 13:39
1bd0212
Compare
Choose a tag to compare

DOI

This is a bugfix release. Previously, if no style was passed into mepo, by default it chose prefix. This is fine for GEOSgcm, etc. but broke MAPL which uses naked.

For now, if no style is found passed in on the command line or in .mepoconfig assume what is in components.yaml is the correct sytle.

(Updates will be needed to fixtures to support all styles.)

Changes to tag handling

25 May 16:42
4e590d8
Compare
Choose a tag to compare

DOI

Tags in mepo were always iffy, so this now has better support. With this release these commands:

mepo push --tags

and:

mepo push-all --tags

are now no longer available. To push tags, you now use mepo tag push:

mepo tag push --help
usage: mepo tag push [-h] [-f] tag-name [comp-name ...]

Push tag <tag-name> in component <comp-name>. If no component is specified, runs over all components

positional arguments:
  tag-name
  comp-name    Component to push tags in

optional arguments:
  -h, --help   show this help message and exit
  -f, --force  Force push (be careful!)

Multiple Enhancements and Fixes

25 May 12:03
fec4dd4
Compare
Choose a tag to compare

DOI

This release of mepo has many enhancements.

Updates

Mepo Styles

With this PR, one can do:

mepo init --style <foo>

or:

mepo clone --style <foo> URL

and the --style <foo> can be one of naked, prefix, and postfix with the default as prefix as that is the current dominant style.

These styles are prefix leads to @subrepo, postfix leads to subrepo@, and naked leads to subrepo when mepo clones the subrepos

Mepo Config

Add support for a ~/.mepoconfig file and adds a new command:

usage: mepo config [-h] {get,set,delete,print} ...

Runs config commands.

positional arguments:
  {get,set,delete,print}

which has four subcommands. I tried to make it like git-config in many respects, but I'm not that good at Python and Argparse so it's like many other mepo commands with subcommands.

NOTE: This capability is not as powerful as git-config is. For example, this:

[alias]
ci = commit

is allowed. But this:

[alias]
cm = commit -m

is not. This is a limitation of what I could do in Python and with Argparse. You can make an alias of a command, but not any of the options of commands. And I couldn't figure out how to do aliases with subcommands.

For "style" (see above) the entry would be:

[init]
style = postfix

It's in the [init] section because technically that is where the command is used. It's just that mepo clone "piggybacks" on init so that if you do:

mepo clone --style naked

it's actually doing:

mepo init --style naked
mepo clone

Examples

mepo config print

To print the .mepoconfig file:

mepo config print
mepo config set

To set a value in the .mepoconfig file:

mepo set alias.st status

In "gitconfig" style, this is equivalent to adding to the file:

[alias]
st = status
mepo config get

This command gets section.option:

mepo config get alias.st

    [alias]
    st = status
mepo config delete

This command deletes the section.option from the file

Tagging Updates

Allow mepo tag create and mepo tag delete to work on all components if none are passed in.

Push-All

Created mepo push-all to so one can do mepo push-all --tags to push tags on all repos

ETA: Update to 1.32.0 and use mepo tag push

Fixes

Status and Compare Weirdness

This update uses git rev-list to try and see if two tags are the same. This can then be used in status and compare so that just in case mepo is seeing different tags, we can check if they point to the same commit. If they do, then we just "re-use" the original tag that mepo clone used.

Add -q flag

30 Mar 18:53
9a29100
Compare
Choose a tag to compare

DOI

This just adds a -q flag for the commands with --quiet.

Detect illegal components.yaml

30 Mar 18:47
7e1c3ef
Compare
Choose a tag to compare

DOI

This release adds a check to make sure a component in components.yaml does not do something like this:

ESMA_cmake:
  local: ./ESMA_cmake
  remote: ../ESMA_cmake.git
  tag: v3.3.6
  branch: develop
  develop: develop

Now, mepo will not allow a tag: and branch: key in a component.

Also, mepo checkout and mepo develop gain useful prints like mepo checkout-if-exists:
adds some useful prints to mepo checkout and mepo develop such that if you do:

mepo checkout v3.1.3 ESMA_env
Checking out v3.1.3 in ESMA_envmepo checkout -b feature/amazing ESMA_cmake
Creating and checking out branch feature/amazing in ESMA_cmakemepo develop MAPL
Checking out development branch develop in MAPL

Clean up of mepo save

19 Mar 17:44
a393404
Compare
Choose a tag to compare

DOI

This release adds nicety to mepo save where it will add blank lines between the sections in the components-new.yaml file.

Fix for cloning

16 Mar 19:40
5fa4144
Compare
Choose a tag to compare

DOI

This is a bugfix for mepo. Before, mepo did this when cloning a branch/tag called foo:

git clone repo.git
git checkout foo

This worked just fine until an update to the MOM6 repo in GEOS. The issue is that in MOM6, the fork was updated and in that update, the submodules underneath changed on the default branch and there were less. So, in doing so, you couldn't get the new submodules. The solution is to do:

git clone -b foo repo.git

This exposed some other issues in status and compare which seem to be fixed, but time will tell.