Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove non cycling commands from cylc #2983

Closed
kinow opened this issue Mar 10, 2019 · 5 comments
Closed

Remove non cycling commands from cylc #2983

kinow opened this issue Mar 10, 2019 · 5 comments

Comments

@kinow
Copy link
Member

kinow commented Mar 10, 2019

Hi,

This may be a bit controversial, but given we have in Cylc 8 the opportunity for more drastic changes, I thought it would be worth suggesting this one.

Cylc provides the cylc entry command, which gives the user several sub commands, or utilities. They are nicely grouped (control, information, tasks, admin, etc).

Many of these commands will disappear with the Web GUI, for instance cylc gscan, and cylc gui.

This behaviour is similar to git. git is a distributed version-control system (from their Wikipedia), and using git you have access to several commands which they group in high level ("porcelain") commands and low level ("plumbing") commands. But all the commands are related to git.

But we have commands in Cylc that are not related to cycling workflows, like

  • cylc make-docs
  • cylc profile-battery
  • cylc test-battery
  • cylc license
  • cylc warranty
  • cylc documentation
  • and we could have others that I have not seen/used before

There are commands that are not really related to cycling workflows, but more to the build of Cylc, such as make-docs, profile-battery, and test-battery. We will start using tools like sphinx and setuptools that provide ways to generate documentation and to run tests.

These tools are normally used in other projects to build, generate documentation, even to include the project license metadata. Having part of the build process in setuptools, and another part in Python and Shell would be redundant.

cylc documentation opens the link to the documentation page in a browser. I like the approach suggested in #2972 , the item 9: "Consider building a Cylc man page (we can do this with Sphinx!)".

Having a man page for Cylc, we could include the license information (cylc warranty, cylc license), also include a link to the project documentation as in Git. Git includes a few pointers for users, e.g. The Git User’s Manual[1] has a more in-depth intro..., and A formatted and hyperlinked copy of the latest Git documentation can be viewed at https://git.github.io/htmldocs/git.html..

The website has moved to another repository. If some day we need to move the documentation to another repository (which I don't believe we will need, but just a hypothesis), that would mean that in setup.py, we would have to include a dependency to that project (IOW that project would have to be a dependency, and also a module), or we would have to write some custom shell code to fetch the documentation, so that cylc make-docs still worked (or find some other solution).

I think displaying only options that users of cylc need for cycling workflows, suites, tasks, etc, would make it easier for users. Also, having less commands to maintain, and the build commands being responsibility of the build tools, would make it easier the maintenance for developers.

To complete the comparison with git, man pages are created with make, profiling tests are also executed with make, as well as tests, html documentation, and other build related tasks.

Cheers
Bruno

@matthewrmshin matthewrmshin added this to the cylc-8.0.0 milestone Mar 10, 2019
@matthewrmshin
Copy link
Contributor

Agreed in principle.

@matthewrmshin
Copy link
Contributor

I guess we can do this some time after packaging is done.

@hjoliver
Copy link
Member

@kinow - yes I agree with your proposal.

Some of the quirks you've mentioned really date way back, to when I didn't know any better, or are a result of some quick solution that I never came back to tidy up.

@hjoliver
Copy link
Member

(god knows why I made commands to print the license and warranty, for instance - I can't even remember that myself ... but it's safe to say no one has ever used those commands!)

@kinow
Copy link
Member Author

kinow commented Mar 25, 2019

Closing in favour of #2972 . Will move the list of commands there, and link back to this issue.

@kinow kinow closed this as completed Mar 25, 2019
@kinow kinow removed this from the cylc-8.0.0 milestone Mar 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants