diff --git a/sessions/automated-testing.qmd b/sessions/automated-testing.qmd index 0bc7139..73893e0 100644 --- a/sessions/automated-testing.qmd +++ b/sessions/automated-testing.qmd @@ -12,21 +12,21 @@ The overall **learning outcome** for this session is to: -- Explain the meaning of continuous integration and *automated +1. Explain the meaning of continuous integration and *automated testing* in the context of developing R packages and set up the automation infrastructure. Specific **objectives** are to: -- Describe the meaning of continuous integration (CI), how automated +1. Describe the meaning of continuous integration (CI), how automated testing connects to it, and both of their roles in effective development of R packages. -- Explain how GitHub Actions are a form of CI and how they they fit +2. Explain how GitHub Actions are a form of CI and how they they fit within the R package development workflow. -- Set up a file by using the `{usethis}` package that tells GitHub +3. Set up a file by using the `{usethis}` package that tells GitHub Actions to automatically test and run checks on your package whenever you push code to GitHub. -- Navigate the logs of the GitHub Actions to assess errors, warnings, +4. Navigate the logs of the GitHub Actions to assess errors, warnings, and other messages that may arise during the automated testing process. diff --git a/sessions/creating-website.qmd b/sessions/creating-website.qmd index 1e56185..30e0434 100644 --- a/sessions/creating-website.qmd +++ b/sessions/creating-website.qmd @@ -8,14 +8,14 @@ ## Learning objectives -The overall **learning outcome** for this session is: +The overall **learning outcome** for this session is to: 1. Explain the main benefits to creating a website for your package, describe items that are useful to communicate to (potential) users, and use the `{pkgdown}` package to auto-generate a website for you whenever changes are made. -Specific **objectives** are: +Specific **objectives** are to: 1. Identify and list some benefits of using a website to communicate details about your package. diff --git a/sessions/debugging.qmd b/sessions/debugging.qmd index 50382ac..bad45b4 100644 --- a/sessions/debugging.qmd +++ b/sessions/debugging.qmd @@ -13,21 +13,21 @@ debugger to debug code. ## Learning objectives -The overall learning outcome of this session is to: +The **overall learning** outcome of this session is to: -- Explain the concept of debugging in package development and apply +1. Explain the concept of debugging in package development and apply formal tools and workflows within R and RStudio. -Specific objectives are: +Specific **objectives** are to: -- Explain debugging in the context of package development, and compare +1. Explain debugging in the context of package development, and compare formal vs informal workflows for debugging. -- Identify how to start the debugger tool in RStudio, what it looks +2. Identify how to start the debugger tool in RStudio, what it looks like when it is running, and use it to debug functions that cause issues. -- Navigate and explain some basic `traceback()` error messages to help +3. Navigate and explain some basic `traceback()` error messages to help identify which function is causing an error. -- Describe how "defensive programming" can help reduce errors and +4. Describe how "defensive programming" can help reduce errors and inform where errors may occur by applying functions from the `{checkmate}` and `{cli}` packages. diff --git a/sessions/documenting-functions.qmd b/sessions/documenting-functions.qmd index f46bdb6..223cf88 100644 --- a/sessions/documenting-functions.qmd +++ b/sessions/documenting-functions.qmd @@ -10,22 +10,22 @@ ## Learning objectives -The overall **learning outcome** for this session is: +The overall **learning outcome** for this session is to: -- Explain why high-quality, well-written function documentation is +1. Explain why high-quality, well-written function documentation is important when creating a package intended to be used by others. -Specific **objectives** are: +Specific **objectives** are to: -- Describe the purpose of function-specific documentation and identify +1. Describe the purpose of function-specific documentation and identify core components to include in the documentation. -- Use `{roxygen2}` to setup a template documentation structure and +2. Use `{roxygen2}` to setup a template documentation structure and then write Markdown-based documentation within that template for functions. -- Use the examples section of the documentation to help prototype and +3. Use the examples section of the documentation to help prototype and informally check that the function works. Then later write more example code that highlights how to use the function. -- Use `{devtools}` to automatically generate package documentation +4. Use `{devtools}` to automatically generate package documentation that can be accessible when using `?function_name`. ## Documenting Functions diff --git a/sessions/function-development.qmd b/sessions/function-development.qmd index 2ddd795..4ee0099 100644 --- a/sessions/function-development.qmd +++ b/sessions/function-development.qmd @@ -30,21 +30,21 @@ package, documenting them, and how to stop your functions with an error. ## Learning objectives -The overall **learning outcome** for this session is: +The overall **learning outcome** for this session is to: 1. Review the core workflow in creating functions and describe additional workflows and software development principles required to formally (and effectively) develop functions within an R package. -Specific **objectives** are: +Specific **objectives** are to: -- Review and apply the workflow for converting code into a function. -- Identify approaches and "code patterns" for writing your functions +1. Review and apply the workflow for converting code into a function. +2. Identify approaches and "code patterns" for writing your functions that ensure they are internally self-contained and reusable. -- Explain what package dependency means in the context of packages and +3. Explain what package dependency means in the context of packages and how you formally manage dependencies when writing functions as part of a package. -- Use control flow processes like `if () {} else() {}` to modify what +4. Use control flow processes like `if () {} else() {}` to modify what a function does based on a condition. ## TODO: Section diff --git a/sessions/introduction.qmd b/sessions/introduction.qmd index 17b3c9a..4f564e3 100644 --- a/sessions/introduction.qmd +++ b/sessions/introduction.qmd @@ -21,13 +21,13 @@ the keyboard. ## Learning objectives -The overall **learning outcome** for this session is: +The overall **learning outcome** for this session is to: 1. Explain in general terms why and how an R package can simplify your work, as well as a high-level overview of the workflow in developing an R package. -Specific **objectives** are: +Specific **objectives** are to: 1. Compare the differences in work and effort between creating simple scripts to help with your and others' work and making a simple R package of diff --git a/sessions/package-setup.qmd b/sessions/package-setup.qmd index 4f7d7b6..50bf92e 100644 --- a/sessions/package-setup.qmd +++ b/sessions/package-setup.qmd @@ -10,13 +10,13 @@ ## Learning objectives -The overall **learning outcome** for this session is: +The overall **learning outcome** for this session is to: 1. Describe what an R package looks like and create a basic package setup using tools that help streamline and assist with these initial tasks. -Specific **objectives** are: +Specific **objectives** are to: 1. Describe what a basic R package "physically" looks like, what the required files and folders are, and what their purpose is. diff --git a/sessions/testing.qmd b/sessions/testing.qmd index 6ed8e8c..7cf320c 100644 --- a/sessions/testing.qmd +++ b/sessions/testing.qmd @@ -15,13 +15,13 @@ ## Learning objectives -The overall **learning outcome** for this session is: +The overall **learning outcome** for this session is to: 1. Explain what *formal testing* means when developing packages, describe how they are structured, and construct simple tests of functions. -Specific **objectives** are: +Specific **objectives** are to: 1. Explain the difference between informal testing and formal testing, as well as the different types of formal testing when developing R diff --git a/sessions/writing-guides.qmd b/sessions/writing-guides.qmd index 4cd8267..81d3da6 100644 --- a/sessions/writing-guides.qmd +++ b/sessions/writing-guides.qmd @@ -10,22 +10,22 @@ ## Learning objectives -The overall learning outcome of this session is to: +The overall **learning outcome** of this session is to: -- Describe the different types of documentation and explain when and +1. Describe the different types of documentation and explain when and why to use each of them. Use this knowledge to create two types of documentation within the context of an R package. -Specific learning objectives are to: +Specific **objectives** are to: -- Explain the purpose of a properly written README file and use the +1. Explain the purpose of a properly written README file and use the `{usethis}` package to create one. -- Explain the purpose of writing vignettes for your package, the +2. Explain the purpose of writing vignettes for your package, the different types of vignettes available, and create some using the `{usethis}` package. -- Use the `{spelling}` package to ensure there are no major spelling +3. Use the `{spelling}` package to ensure there are no major spelling issues in the documentation of your package. -- Describe where to look within R as well as outside of R to find +4. Describe where to look within R as well as outside of R to find longer-form documentation of a package. ## TODO: Section