From a9ae42ab2e8e0484d63a3fe2d4586684814d6c99 Mon Sep 17 00:00:00 2001 From: Lillian Weng Date: Tue, 14 May 2024 16:55:06 -0700 Subject: [PATCH] update readme --- README.md | 58 +++++++++++++++++++++++++++++++++++++++-------- git_comment.png | Bin 0 -> 27538 bytes git_files.png | Bin 0 -> 22922 bytes requirements.txt | 20 ++++++++++++++++ 4 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 git_comment.png create mode 100644 git_files.png create mode 100644 requirements.txt diff --git a/README.md b/README.md index bbf31d8..f3b7b79 100644 --- a/README.md +++ b/README.md @@ -2,18 +2,37 @@ Website link: https://ds100.org/debugging-guide/ -## Quarto Set-Up +## Repo Setup + +### Quarto Set-Up Begin by [installing Quarto](https://quarto.org/docs/get-started/). Texts can be authored in Quarto using VSCode, JupyterLab, or classic Jupyter Notebook. We suggest using [VSCode](https://quarto.org/docs/get-started/hello/vscode.html) -## Repo Setup +### Cloning the Repo After you've installed quarto, go into your terminal on your *local* device and type + `git clone https://github.com/DS-100/debugging-guide.git` +If you're unable to clone the repo, please contact the head/infra TAs to make sure you have read/write access to this repository. + +### Environment Setup +This section will ensure that you have all the necessary packages to render the website. We recommend using Conda ([download here](https://www.anaconda.com/download)) to keep track of your environment. + +If you've already set up your environment for the [Data 100 Course Notes Repo](https://github.com/DS-100/course-notes), run the following in your terminal in the main `debugging-guide` directory: `conda activate data100quarto`. The course note environment will work for the debugging guide (not but vice versa) + +If you haven't set up the course notes environment, run the following in your terminal within the main directory: + +``` +conda create --name data100-debug-guide --file requirements.txt +conda activate data100-debug-guide +``` + +Remember to always activate the right environment before running anything. + ## Repo Organization -This website uses Quarto to render pages. The main index can be found in `_quarto.yml`, and subpages are organized under the `chapters` section. Each subpage has it's own folder and `.md` (markdown) file. Note that unlike the [Course Notes repo](https://github.com/DS-100/course-notes), the debugging guide rarely runs any code, so we rely on `.md` files rather than `.qmd`, saving us the trouble of converting from `.qmd` to `.ipynb` for editing, then back to `.qmd` to render the website. Instead we can make edits directly to the `.md` file. +This website uses Quarto to render pages. The main index can be found in `_quarto.yml`, and subpages are organized under the `chapters` section. Each subpage has it's own folder and `.md` (markdown) file. Note that unlike the [Course Notes repo](https://github.com/DS-100/course-notes), the debugging guide rarely runs any code, so we rely on `.md` files rather than `.qmd` to save us the trouble of converting from `.qmd` to `.ipynb` for editing, then back to `.qmd` to render the website. Instead we can make edits directly to the `.md` file. ## Creating a new section To start a new document, create an empty folder `topic_name` and create an empty markdown file `topic_name.md`. Start each document like so: @@ -49,9 +68,10 @@ Now, the notebook is ready for writing content. In VSCode, you can activate a l ![](md_preview.png) -Note that clicking on the quarto `Preview` button does not generate a *live* preview but rather a static one. +Note that clicking on the quarto `Preview` button does not generate a *live* preview but rather a static one. Hence, we click the button on its right. ## Document Formatting +**Always `git pull` before making any new changes**. A pdf view of how this notebook renders in Quarto can be found [here](https://drive.google.com/file/d/17ga5wvfcmvAzQ1rbnCP4kEf5bckST3--/view?usp=sharing). @@ -61,13 +81,33 @@ To give you the most control when inserting images, we use html with the followi ```
``` +For example, `
`. + + ## Generating Output + Rendering Website -After making edits to the `.md` files, ensure that the right documents are un-commented under `_quarto.yml`'s `chapter` section. Then, run `quarto render` to render the entire website. Push your changes to Github, and you should see the changes reflected in the [website](https://ds100.org/debugging-guide/) after a few minutes. +After making edits to the `.md` files, ensure that the right documents are un-commented under `_quarto.yml`'s `chapter` section. Then, make sure you're using the right environment, and run `quarto render` in the main folder to render the entire website. + +To preview your changes, run `quarto preview`. + +## Pushing to Github +Once you're satisfied and *thoroughly tested* your changes, you can push your edits onto Github. There are two ways to do this: + +1. **Command Line**. Navigate to the main `debugging-guide` folder if you haven't already and make sure you're in the right environment. + +``` +git add . # this makes sure git tracks any new files created +git commit -m # please commit with an informative message +git push # push your changes to github +``` + +2. **Github Desktop** ([download](https://desktop.github.com/)). This is the GUI version of the command line. + + * Choose the files you want to commit on the left hand menu. By default, github will select all changes/new files. ![](git_files.png) + * Write an informative comment on the bottom left hand corner and click "commit to main" once finished ![](git_comment.png) + * Push your changes using the button on the top right. + +Once your changes are pushed, you can see the progress of your build in the ["Actions" tab](https://github.com/DS-100/debugging-guide/actions); green means the website built successfully, yellow/orange indicates that it's still building, and red means there was an error and the website was unable to build. The website should take less than 5 minutes to build, and you will see the changes reflected in the [website](https://ds100.org/debugging-guide/). -* Publish notes to GitHub pages: - * `quarto render` everything - * `git add`, `git commit`, `git push` - * Can view website compilation on GitHub (look for yellow-to-green button next to commit number) ## Other Quarto Resources diff --git a/git_comment.png b/git_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..54409054b0fd6694abac10f400f04d80172ad676 GIT binary patch literal 27538 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 E4=c7P{r~^~ literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..63ac6e3 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,20 @@ +SQLAlchemy==2.0.16 +folium==0.14.0 +ipywidgets==8.0.7 +jupysql==0.8.0 +jupyterlab==4.0.4 +matplotlib==3.7.1 +mdit-py-plugins==0.4.0 +numpy==1.24.2 +nbconvert +otter-grader==5.4.0 +pandas==2.0.2 +pandoc +plotly==5.13.1 +requests==2.28.2 +scikit-image==0.19.3 +scikit-learn==1.2.2 +scipy==1.10.1 +seaborn==0.12.2 +statsmodels==0.14.0 +ypy-websocket==0.12.1 \ No newline at end of file