pepkit / looper

A job submitter for Portable Encapsulated Projects
http://looper.databio.org
BSD 2-Clause "Simplified" License
20 stars 7 forks source link

Making looper approachable for a new project #466

Open nsheff opened 4 months ago

nsheff commented 4 months ago

I find the current documentation on how to configure a new project with looper to be really difficult. There are basically 2 problems:

  1. the documentation is outdated and incomplete.
  2. the process of getting started is too complex, even if there were documentation

It needs to be intuitive enough that we don't need so much documentation, and then, whatever minimal documentation remains needs to actually be correct.

Documentation

Just a few things I notice at first glance:

Getting started

I propose a new looper init utility that walks you through the process of creating a new looper project. I'll push an example script that will do this. I have it basically working, but I haven't been able to finish the pipestat configuration, which is too complex. It's not clear to me how looper and pypiper should share pipestat configuration. It seems like I should just configure pipestat, I guess in the .looper.yaml file, and that should be it.

donaldcampbelljr commented 5 days ago

I started a PR to polish the looper init tutorial: #508

I've also created a PR to begin staging documentation changes for Looper 2.0.0 here: https://github.com/pepkit/pepspec/pull/34

The combination of these two PRs should close this issue with a 2.0.0 release.

donaldcampbelljr commented 1 day ago

Prompt user to create pipeline interface if it doesn't exist to make this even easier.

donaldcampbelljr commented 1 day ago

Have tutorial remind user that they add additional pipeline interfaces if desired.

Or add another loop to keep adding them.

nsheff commented 1 day ago
  1. Improved first steps documentation;
    • tutorials (learning oriented)
    • explanation (understanding oriented)
    • need more graphics
  2. Divide how-tos into new sections:
    • pipeline user guides
    • pipeline developer guides
  3. Consolidate and clarify:
    • user guides should be problem-oriented (how to do something)
    • divvy can have maybe 1 section for "use of divvy without looper"; the rest should be somehow integrated
nsheff commented 1 day ago

for tutorials, we have: hello looper, but we need: tutorial on "your own project" (looper init tutorial). and hello looper should be simplified; the advanced stuff moves to "how to guides".

donaldcampbelljr commented 18 hours ago

Ok, I've added some improvements to the looper init tutorial. The user can now add multiple pifaces. Looper will also offer to spawn a generic pipeline interface (for each piface) if the piface does not exist.