esm-tools / esm_version_checker

GNU General Public License v2.0
0 stars 0 forks source link

esm_versions upgrade crashes if esm_tools directory is not clean #16

Closed seb-wahl closed 3 years ago

seb-wahl commented 3 years ago

I don't understand why esm_tools is supposed to be clean when I want to upgrade to the latest version. And if this should be enforced, esm_versions shouldn't crash.

blogin3:~/gitlab/esm_runscripts $ esm_versions upgrade
esm_versions automatically does git operations for esm_tools
Your esm_tools directory is not clean!
Please make sure you check in and commit everything before proceeding!
Traceback (most recent call last):
  File "/home/shkifmsw/.local/bin/esm_versions", line 10, in <module>
    sys.exit(main())
  File "/sw/tools/anaconda3/2019.10/skl/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/sw/tools/anaconda3/2019.10/skl/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/sw/tools/anaconda3/2019.10/skl/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/sw/tools/anaconda3/2019.10/skl/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/sw/tools/anaconda3/2019.10/skl/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/shkifmsw/.local/lib/python3.7/site-packages/esm_version_checker/cli.py", line 244, in upgrade
    pip_or_pull(tool)
  File "/home/shkifmsw/.local/lib/python3.7/site-packages/esm_version_checker/cli.py", line 204, in pip_or_pull
    assert not esm_tools_repo.is_dirty()
AssertionError
blogin3:~/gitlab/esm_runscripts $
denizural commented 3 years ago

What is the result of the git status? Are there uncommitted modifications?

seb-wahl commented 3 years ago

Yes they are but only in esm_tools and not in my dev install of esm_version_checker

pgierz commented 3 years ago

No longer a problem in 5.1.0 of version checker.

seb-wahl commented 3 years ago

...still a problem. Both tested on JUWELS and BLOGIN:


upgrading the tool: esm_runscripts
  WARNING: esm_runscripts is installed in editable mode! No upgrade performed. You may consider doing a git pull here:
/p/project/hirace/wahl1/esm/github/esm_runscripts

upgrading the tool: esm_tools
esm_versions automatically does git operations for esm_tools
Your esm_tools directory is not clean!
Please make sure you check in and commit everything before proceeding!
Traceback (most recent call last):
  File "/p/home/jusers/wahl1/juwels/.local/bin/esm_versions", line 11, in <module>
    sys.exit(main())
  File "/gpfs/software/juwels/stages/Devel-2019a/software/Python/3.6.8-GCCcore-8.3.0/lib/python3.6/site-packages/Click-7.0-py3.6.egg/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/gpfs/software/juwels/stages/Devel-2019a/software/Python/3.6.8-GCCcore-8.3.0/lib/python3.6/site-packages/Click-7.0-py3.6.egg/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/gpfs/software/juwels/stages/Devel-2019a/software/Python/3.6.8-GCCcore-8.3.0/lib/python3.6/site-packages/Click-7.0-py3.6.egg/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/gpfs/software/juwels/stages/Devel-2019a/software/Python/3.6.8-GCCcore-8.3.0/lib/python3.6/site-packages/Click-7.0-py3.6.egg/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/gpfs/software/juwels/stages/Devel-2019a/software/Python/3.6.8-GCCcore-8.3.0/lib/python3.6/site-packages/Click-7.0-py3.6.egg/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages/esm_version_checker/cli.py", line 443, in upgrade
    pip_or_pull(tool)
  File "/p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages/esm_version_checker/cli.py", line 385, in pip_or_pull
    assert not esm_tools_repo.is_dirty()
AssertionError
[wahl1@jwlogin04 esm_runscripts]$ esm_versions check
+---------------------+-----------+----------------------------------------------------------------+----------------------+-------------------------+
| package_name        | version   | file                                                           | branch               | tags                    |
|---------------------+-----------+----------------------------------------------------------------+----------------------+-------------------------|
| esm_calendar        | 5.0.0     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
| esm_database        | 5.0.0     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
| esm_environment     | 5.0.0     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
| esm_master          | 5.0.1     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
| esm_motd            | 5.0.1     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
| esm_parser          | 5.0.2     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
| esm_plugin_manager  | 5.0.0     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
| esm_profile         | 5.0.0     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
| esm_rcfile          | 5.0.0     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
| esm_runscripts      | 5.0.4     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
| esm_tools           | 5.0.0     | /p/project/hirace/wahl1/esm/esm_tools                          | feature/geomar-setup | v5.0.0-1-g57c1694-dirty |
| esm_version_checker | 5.1.1     | /p/home/jusers/wahl1/juwels/.local/lib/python3.6/site-packages |                      |                         |
+---------------------+-----------+----------------------------------------------------------------+----------------------+-------------------------+
seb-wahl commented 3 years ago

Also why do get different output on blogin from esm_versions check:

...
esm_version_checker
├─ version: 5.1.1
├─ path: /home/shkifmsw/.local/lib/python3.7/site-packages
├─ branch:
└─ tags:

Is it because we use python3.6 on juwels and 3.7 on blogin?

pgierz commented 3 years ago

Hi @seb-wahl, going through old issues for a relaxed Friday morning...that seems better than paper reviews ;-)

The different output is a "dynamic sizing" that @denizural implemented. It checks how big your terminal window currently is and either makes a pretty list or a beautiful table.

The error from your comment above is basically "your repo is not clean, I won't do anything". I can build a nicer error message for that.

pgierz commented 3 years ago

Alright, looks like none of the AssertionErrors we have try/except around currently raise anything, so I guess this gives you a friendly print statement at this point (version 5.1.4 or newer).

@seb-wahl, if that is not the case, please reopen the issue