Want to help out or contribute?

If you find any typos, errors, or places where the text may be improved, please let us know by providing feedback using GitHub.

On GitHub open an issue or submit a pull requests by clicking the " Edit this page" link at the side of this page.

5  Want to contribute? Great! :tada:

There are a few ways in which you can contribute:

5.1 Participating in issue discussions ๐Ÿ’ญ โ“

Helping to contribute can be as simple as giving feedback, suggestions, or thoughts about a topic or issue. Youโ€™ll need a GitHub account to add your comments on the course development in the repository. As always, make sure to adhere to the Code of Conduct.

5.2 Adding to or editing lesson material ๐Ÿ“ ๐Ÿ’ป

The lesson material and website are created using Quarto, which renders the .Rmd or .qmd documents and converts the source material into a static website. A few things to consider when contributing to the lesson material:

  1. All lesson material that contains R code chunks needs to be in R Markdown (.Rmd) or Quarto (.qmd) format.
  2. Every lesson โ€œchapterโ€ starts with and has only one first level โ€œheaderโ€ (#).
  3. Lessons include a mix of code chunks and text, organized using Markdown headers.
  4. Participants should be able to follow the content of the lesson from the text alone; i.e. the file should contain all conceptual explanations.
  5. We teach the tidyverse way of using R, meaning we use packages like dplyr, tidyr, rmarkdown, ggplot2, and so on. This also means making use of the pipe %>% operator.
  6. We follow the tidyverse way of writing and styling R code.

Anyone can contribute to the course repository through GitHub by creating a new Issue to make comments and give feedback for the material in the course repository. This is the easiest way to contribute.

You can also contribute by adding or modifying text or code either directly on GitHub through their editing interface (easier way) or you can create a clone of the repository and edit through RStudio (harder but the preferred way). If you go the clone route, please use the GitHub flow style to manage changes. Here are some steps to follow:

  1. Clone the repository to your local computer.
  2. In your local copy of this repository, create a new branch that will address one or two Issues.
  3. Make edits to files and content that is specific to only a few Issues. Smaller changes made as a Pull Request are easier to review and merge than bigger changes. The more targeted and specific the changes are, the better.
  4. As you make edits, commit your changes to that branch.
  5. Push the edits on that branch to the course repository. Note that this assumes you have been added to the repository as a contributor. Otherwise, youโ€™ll need to make a fork of the repository first.
  6. Submit a merge/pull request of the branch into the main branch.
  7. If you receive feedback on your pull request, make further commits to the branch on your cloned local copy. These will automatically be added to your merge request after you commit and push.

Alternatively, use the usethis package pr_ helpers to contribute. Read over the Coding Clubโ€™s post on how to use usethis to contribute to a project on GitHub.

Making videos (on Linux) is done using Peek (setting the window size to 1280x720), OpenShot (to edit the video if necessary), and the below command to reduce the video file size:

ffmpeg -i input.mp4 -crf 28 output.mp4

5.2.1 (Re-)Building the website

In order to build the website, you need to have the dependent packages installed. Packages used and depended on for this course are included in the DESCRIPTION file. To install the packages, run this function in the root directory (where the .Rproj file is located):

# install.packages("pak")
pak::pak()

If the project is managed by renv (there is an renv.lock file), you need to install the dependent packages by:

# install.packages("renv")
renv::restore()

To re-build the website from the source R Markdown or Quarto files, use the keybinding Ctrl-Shift-B while in the RStudio Project of the repository or by clicking the โ€œRenderโ€ button at the top of the Source Pane.

5.3 Code of Conduct

We adhere to a Code of Conduct and by participating, you agree to also uphold this code.

5.4 Acknowledgements

Parts of the file were modified from UofTCoders and The Carpentries contributing guidelines.