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

Revise the starter selection journey #1970

Closed
yetudada opened this issue Oct 25, 2022 · 2 comments
Closed

Revise the starter selection journey #1970

yetudada opened this issue Oct 25, 2022 · 2 comments
Labels
Issue: Feature Request New feature or improvement to existing feature

Comments

@yetudada
Copy link
Contributor

yetudada commented Oct 25, 2022

Description

This change proposes creating a more intuitive user journey for finding the starter templates without consulting the documentation. This change would affect new users of Kedro so that they could easily locate the starters and get started.

Context

Our current CLI journey to use a starter is the following:

  • Run kedro info to see that there is a kedro starter command
  • Run kedro starter
  • Run kedro starter list to see the full list of starters
  • See a list of starters without a description of what each starter contains, to find the descriptions of each starter you have to click on hyperlinks in the CLI, open your browser and go through to each starter to find out more
  • When you've picked a starter, you have to somehow know to run kedro new --starter=<starter_name>
(my-virtual-environment) ➜ kedro starter
Usage: kedro starter [OPTIONS] COMMAND [ARGS]...

  Commands for working with project starters.

Options:
  -h, --help  Show this message and exit.

Commands:
  list  List all official project starters available.
(my-virtual-environment) ➜  kedro starter list

Starters from kedro

astro-airflow-iris:
  template_path: git+https://github.com/kedro-org/kedro-starters.git
  directory: astro-airflow-iris
astro-iris:
  template_path: git+https://github.com/kedro-org/kedro-starters.git
  directory: astro-airflow-iris
pandas-iris:
  template_path: git+https://github.com/kedro-org/kedro-starters.git
  directory: pandas-iris
pyspark:
  template_path: git+https://github.com/kedro-org/kedro-starters.git
  directory: pyspark
pyspark-iris:
  template_path: git+https://github.com/kedro-org/kedro-starters.git
  directory: pyspark-iris
spaceflights:
  template_path: git+https://github.com/kedro-org/kedro-starters.git
  directory: spaceflights
standalone-datacatalog:
  template_path: git+https://github.com/kedro-org/kedro-starters.git
  directory: standalone-datacatalog

Possible Implementation

A future user journey could be:

  • Run kedro new
  • Be asked to select a starter template and see a description of what each starter contains
  • Choose a starter
  • Enter project name

This journey reduces the need for:

  • The starter flag, -s or --starter, which should be kept for CI/CD purposes and to not break power users experiences
  • kedro starter list which on its own is not helpful

This design also combines all the starters into one list, including the blank template that we support by default in Kedro (the one that is not in Kedro Starters).

(my-virtual-environment) ➜  kedro new 

Project Template
=============
Choose a project template for your new project. 
- astro-airflow-iris: An Iris dataset example project with a minimal setup for deploying the pipeline on Airflow with Astronomer
- blank: A minimal project template
- pandas-iris: An Iris dataset example using Pandas
- pyspark: Configuration and inistialisation for a PySpark pipeline
- pyspark-iris: An Iris dataset example using PySpark 
- spaceflights: Spaceflights tutorial example code
- standalone-datacatalog: A minimum setup to use Kedro's DataCatalog

 [Select your template]: blank

Project Name
============
Please enter a human readable name for your new project.
Spaces, hyphens, and underscores are allowed.

 [New Kedro Project]: My ML pipeline 

The project name 'My ML pipeline' has been applied to: 
- The project title in /Users/yetunde_dada/PycharmProjects/kedro-cli-redesign/my-ml-pipeline/README.md 
- The folder created for your project in /Users/yetunde_dada/PycharmProjects/kedro-cli-redesign/my-ml-pipeline 
- The project's python package in /Users/yetunde_dada/PycharmProjects/kedro-cli-redesign/my-ml-pipeline/src/my_ml_pipeline

A best-practice setup includes initialising git and creating a virtual environment before running 'pip install -r src/requirements.txt' to install project-specific dependencies. Refer to the Kedro documentation: https://kedro.readthedocs.io/

Change directory to the project generated in /Users/yetunde_dada/PycharmProjects/kedro-cli-redesign/my-ml-pipeline by entering 'cd /Users/yetunde_dada/PycharmProjects/kedro-cli-redesign/my-ml-pipeline'

Other notes

Why do we support astro-airflow-iris and astro-iris still? Should we deprecate astro-iris?

@amandakys
Copy link

in line with the work in #2388 - this ia prototype flow for adding starter selection into the project creation journey in the CLI

(my-virtual-environment) ➜  kedro new 

Project Template
=============
Choose a project template for your new project. 
- astro-airflow-iris: An Iris dataset example project with a minimal setup for deploying the pipeline on Airflow with Astronomer
- blank: A minimal project template
- pandas-iris: An Iris dataset example using Pandas
- pyspark: Configuration and inistialisation for a PySpark pipeline
- pyspark-iris: An Iris dataset example using PySpark 
- spaceflights: Spaceflights tutorial example code
- standalone-datacatalog: A minimum setup to use Kedro's DataCatalog

 [Select your template]: blank

Project Name
============
Please enter a human readable name for your new project.
Spaces, hyphens, and underscores are allowed.

 [New Kedro Project]: My ML pipeline 
 

the template step can be bypassed using kedro new --template=blank and similarly for the project name step
kedro new --project-name="My ML pipeline"

This work can be done independently of the utilities and serve as a testing ground for the idea of a Project Creation Wizard #2506

@yetudada
Copy link
Contributor Author

yetudada commented Sep 1, 2023

I'm going to close this issue. We have others which have adopted this work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue: Feature Request New feature or improvement to existing feature
Projects
Archived in project
Development

No branches or pull requests

4 participants