Cylc-flow: Rationalize the CLI command set.

Created on 3 Dec 2014  Â·  18Comments  Â·  Source: cylc/cylc-flow

The cylc CLI command set has gradually grown over a long period, so it could do with a rethink. Some commands could be removed, renamed, or combined with others. For instance, should all commands that retrieve information from a suite daemon be combined into one, or should they at least have a common prefix that is not shared by commands that retrieve information from parsing suite definitions? Is the "set-verbosity" command ever used? (suite reload can do "set-xxx" jobs, although it could be made more efficient - not reload task definitions if task definitions haven't changed).

(Edit: Bruno, added task list)

  • Move to build/setup.py/make/etc

    • [x] cylc make-docs #2983
    • [x] cylc profile-battery - it became a blocker for #2989, and so far the consensus seems to be to promote it to a top level project (e.g. cylc/cylc-profile or so). Removed in #3006
    • [x] cylc test-battery - we need to drop it, or come up with a workaround, to unblock #2989
    • [x] cylc documentation - sphinx can be called from Make, or from setup.py/setuptools via a sphinx contrib plugin, mentioned in #2933. cylc-make-docs was removed in #2989
  • Remove

    • [x] cylc [license] warranty - users can view the licence in GitHub, or the copy included with the software - removed by #3091
    • [x] cylc [license] conditions - ditto - removed by #3091
    • [x] cylc cat-state - proposed in #2980, following up on a comment in #2912, removed by #3090
  • Related tasks

    • [x] #1030
    • [ ] #2123

Most helpful comment

We can probably get rid of the cylc documentation command now?

All 18 comments

(I'd imagine that we'll do this as part of the communication API refactor.)

(I'd imagine that we'll do this as part of the communication API refactor.)

Well, to me this is not obviously related to that. Some CLI commands call the high level suite daemon info and control API, but that is largely independent of the underlying communication protocols that are the main focus of that refactor (i.e. moving from Pyro to RESTful HTTP); and many commands don't interact with suite daemons at all.

OK. I guess I misunderstood this issue somewhat. However, for those commands that do interact with the suite daemon, I would expect us to just put a very thin CLI on top, once we have got #1250 sorted.

Agreed.

[meeting] - do this after #1250, at least for the commands that do interact with suite daemons.

cylc-make-docs had issues with setup.py, as it was trying to generate the documentation using a location relative to the cylc-make-docs script. That script is now in some venv/bin/cylc-make-docs for virtual environments. So that command simply cannot work that way.

Instead now we will be able to just use Sphinx integration with setuptools :+1: Marked as done in this check list.

(Only item left is cylc documentation.)

I'd be keen to remove it, and perhaps add a note to --help. I think the previous command would simply open the browser with the doc url. Fine it others prefer to keep it and just use the new URL

It appears to have some kind of suite-task documentation functionality. In the world of Cylc 8, I guess this can easily be absorbed into the UI?

Yes, cylc doc can be removed. It was a just a quick way to fire up a browser on a URL parsed from global (Cylc docs) or suite config (suite or task URL metadata). That should not be needed any more.

(Only item left is cylc documentation.)

Well... the bullet points and check boxes were added later, I think. The original intent of this issue was to review the entire command set, which seems overly huge:

~/c/cylc-flow (master|…) $ cylc --help all | wc -l
67

However, not a high priority I guess.

Agreed not high priority. Should probably get it done for Cylc-8.0.0 though.

We can probably get rid of the cylc documentation command now?

After discussions on Riot the next two commands to bite the dust are:

  • cylc submit

    • Incompatible with the new architecture.

    • No longer needed due to live reload functionality.

    • Can consider doing something like adding a --reload option to cylc trigger if needed.

  • cylc jobscript

    • Dependent on cylc submit

    • Also deemed unnecessary.

    • Can potentially be re-implemented in a different form if required.

Ping @datamel (cite this issue in your PR).

For the record we also removed cylc scp-transfer after a discussion at CylcCon2020

See #3634

The following commands to be removed by Cylc8
* checkpoint - #3891
* client - somewhat obsolete since GraphQL, remove or rename to query to match subscribe.
* get-directory - will be made obsolete by #3889
* ls-checkpoints - #3891
* register - will be made obsolete by #3889

I think we have done everything on the list :tada:, CLI well rationalized!

Only one dangling comment:

  • client - somewhat obsolete since GraphQL, remove or rename to query to match subscribe.

Since that comment the client command and some others have been marked as "internal" so don't show up in cylc help or cylc help all output so no longer a big deal.

Not really enough to keep this issue open so closing.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

oliver-sanders picture oliver-sanders  Â·  3Comments

hjoliver picture hjoliver  Â·  5Comments

kinow picture kinow  Â·  4Comments

dwsutherland picture dwsutherland  Â·  3Comments

dpmatthews picture dpmatthews  Â·  3Comments