Skip to content

Finalizing a Course

Ryan Holbrook edited this page Jan 22, 2021 · 1 revision

Create Course Description Spreadsheet

  1. Create a course description spreadsheet in Google Sheets with your course name as the title.
  2. Enter values like:
Lesson # Tut / Ex Description Slug Script ID ? count Lesson IDs
1 Tut What shows up on the course card. lesson-name 4
Ex

Create Production Notebooks

  1. Create prod.yaml in learntools/notebooks/course_name/
  2. Paste in this template:
# Rendered ipynb files and kernel metadata json files for this config will be saved at notebooks/<track>/<tag>/
tag: prod
public: false
# If true, then exercise kernels synced to kaggle will have internet enabled and will begin
# with a cell that pip installs the current learntools branch. (Useful for testing 
# notebooks on Kernels without requiring image docker deploy for every learntools change)
development: false
# By itself, this flag does nothing. But it can be useful to have 'testing' cells in exercise
# notebooks (testing the checking code on various correct and incorrect solutions) whose 
# inclusion in the rendered notebook is conditioned on this flag (using a macro like #%%RM_IF(PROD)%%
# where "prod" is the opposite of "testing")
testing: false
# A string to append to titles and slugs of kernels generated under this config (so that the generated
# kernels are pushed to a separate destination from the default config). If testing is true, suffix 
# defaults to 'testing'
#suffix: foo
# Author username usually gets set in track_meta.py. The following optional key will overwrite
# the author for kernels generated under this particular config. (Example use case: author A
# is working on notebooks originally authored by author B. The default 'production' notebooks
# should keep their original slugs under author B's namespace. But if author A wants to push
# new testing versions of the notebook, they can set author: author_A in testing.yaml to generate
# new versions of the kernels under their own username.
#author: jane_doe

Note that public is currently set to false. Before the announcement email, this should be changed to true.

  1. Run learntools/notebooks/prepare_push.py course_name. This renders the notebooks in course_name/prod/.
  2. Run learntools/notebooks/pushall.sh course_name/prod. This pushes the notebooks to Kaggle through the Kaggle CLI.
  3. Get the Script ID for each notebook. Using admin.kaggle.com, navigate to each notebook. The Script ID is in the right-hand panel under ???. Enter the Script ID for each notebook in the description spreadsheet for your course.

Fill Out Announcement Email Request

  1. TODO
  2. Make sure it's scheduled without conflicts.