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

Full tutorial review day 01 early-task #19

Closed
wants to merge 426 commits into from
Closed
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
426 commits
Select commit Hold shift + click to select a range
61eab21
add introduction episode for lesson_build
avallecam Nov 22, 2023
8dfc626
fix writing of objectives
avallecam Nov 22, 2023
72e2dd2
add structure of questions to last two sections
avallecam Nov 22, 2023
4a52fc3
remove temporally setup logs chunk
avallecam Nov 22, 2023
a49028c
reduce object names and visible arguments
avallecam Nov 22, 2023
4e7ffd7
change heading level
avallecam Nov 22, 2023
bcb2bc8
replace episode title
avallecam Nov 23, 2023
e58131e
add template and questions for read data episode
avallecam Nov 23, 2023
4d4e487
add draft chunk for discussion or challenge
avallecam Nov 23, 2023
e8e5121
add template and questions for describe data episode
avallecam Nov 23, 2023
e393b3c
add new episodes for build review
avallecam Nov 23, 2023
21b9fd9
update heading titles
avallecam Nov 23, 2023
1d937de
add paragraphs to the what and how
avallecam Nov 23, 2023
5d0eae8
add keypoints from episode
avallecam Nov 23, 2023
d03c70c
arrange text in what and how sections
avallecam Nov 23, 2023
cc8e33b
clear template content
avallecam Nov 23, 2023
5c1b6f9
rename figure
avallecam Nov 24, 2023
19cfe2b
remove space within epinow function
avallecam Nov 24, 2023
a770ac2
fix intro line to et1
avallecam Nov 24, 2023
7da8706
rewrite intro sentence
avallecam Nov 24, 2023
eb5cd1b
add prerequisites
avallecam Nov 24, 2023
b52eee9
replace prerequisite
avallecam Nov 24, 2023
1b4bdce
add clear wording
avallecam Nov 24, 2023
90ee9b1
add text on why and epinow2 steps
avallecam Nov 24, 2023
9354eaf
add definitions for delays
avallecam Nov 24, 2023
fce9c84
replace link with new R0 definition
avallecam Nov 24, 2023
47509bb
specify the task as a point of reference
avallecam Nov 24, 2023
dfe1f40
edits after first review with grammarly
avallecam Nov 24, 2023
bd769d2
relocate discussion after why section
avallecam Nov 24, 2023
be4d6d9
rename episode for delays previous to read data
avallecam Nov 29, 2023
65468d9
add placeholder for episoap episode
avallecam Nov 29, 2023
16af7b3
rename episode for read cases data
avallecam Nov 29, 2023
184dd8b
use a simpler epinow2 with generation time only
avallecam Nov 30, 2023
fdcbe1a
add summative code content
avallecam Nov 30, 2023
3e7288a
add sections content and names
avallecam Nov 30, 2023
9565255
add placeholder for describe cases episode
avallecam Nov 30, 2023
d2894c0
replace serial interval with generation time
avallecam Nov 30, 2023
c988567
add figure and references
avallecam Nov 30, 2023
0a8ae0b
expand argument detail in intro episode
avallecam Nov 30, 2023
3dc840b
update key points
avallecam Nov 30, 2023
6366b13
replace license file content to epiverse-trace
avallecam Dec 2, 2023
8a5d740
amend change in license by error
avallecam Dec 2, 2023
2b2f8dd
Revert "amend change in license by error"
Dec 2, 2023
51fb5fc
Revert "replace license file content to epiverse-trace"
Dec 2, 2023
ad2b9b9
add callout draft for delays from data
avallecam Dec 2, 2023
cf729e3
add placeholder to show how to get delays from contact data
avallecam Dec 2, 2023
a3263a6
add period delay figures
avallecam Dec 7, 2023
bcc3bff
edit text after review
avallecam Dec 7, 2023
bc1eabc
add symptom onset for reporting delay definition
avallecam Dec 7, 2023
4d3239f
remove figures replaced in previous commit
avallecam Dec 7, 2023
9aab370
add infectiousness to glossary
avallecam Dec 7, 2023
242a883
add new distribution delays figures
avallecam Dec 7, 2023
9e9a8a5
add more definitions
avallecam Dec 7, 2023
5d795b9
add figures and text for first section
avallecam Dec 7, 2023
69f244b
add callout on reminder about the adjustments for Rt
avallecam Dec 8, 2023
c676d92
add episode et1 content
avallecam Dec 8, 2023
9cc660b
fix and extend the definitions
avallecam Dec 11, 2023
55e9671
add objectives
avallecam Dec 11, 2023
37f7c0c
add an explanation on serial interval biases
avallecam Dec 11, 2023
c37a506
add content about growth rate curve
avallecam Dec 11, 2023
945d5b9
write text for epiparameter epidist_db
avallecam Dec 11, 2023
027ffae
add text before about exploring the epidist class object
avallecam Dec 11, 2023
a72eeb8
add challenge format
avallecam Dec 11, 2023
385fab9
complete with the max argument for dist_spec
avallecam Dec 11, 2023
6f1d3b1
add spoiler on distribution plus explore output
avallecam Dec 11, 2023
2f37372
add offspring distribution to glossary
avallecam Dec 12, 2023
24c9d79
add formative assessments on distributions
avallecam Dec 12, 2023
c863754
add text and assessment about continuous
avallecam Dec 14, 2023
958ede2
add normal distribution figure
avallecam Dec 14, 2023
5008827
complete with assessments until epiparam + epinow2
avallecam Dec 14, 2023
14d0ed1
relevel titles to isolate content index
avallecam Dec 14, 2023
7071036
add formative assessment + block all epinow2
avallecam Dec 14, 2023
8750f81
write the structure of content
avallecam Dec 14, 2023
7d18b4f
move questions to section on from your data
avallecam Dec 14, 2023
7c95333
translate questions to cases
avallecam Dec 14, 2023
5171cd0
update title
avallecam Dec 14, 2023
620b050
update questions and objectives
avallecam Dec 16, 2023
4343673
add question on serial interval from data
avallecam Dec 16, 2023
066f839
move read-cases file to separate branch
avallecam Dec 16, 2023
634680b
move describe-cases to separate branch
avallecam Dec 16, 2023
f70b634
move create-report to separate branch
avallecam Dec 16, 2023
785c52b
add chunk placeholder for reactive hexwall
avallecam Dec 17, 2023
b98964a
rephrase questions, move one to other branch
avallecam Dec 17, 2023
10a1134
add rcompendium paths to data as suggested in #90
avallecam Dec 17, 2023
f2f5aa5
add idea callout to move from lollipop chart to distribution
avallecam Dec 20, 2023
cbdd149
add one more figure on infectiousness
avallecam Dec 20, 2023
5c1a72d
add figure tags to url links
avallecam Dec 18, 2023
2f6b175
add reference on sampling and censoring bias to si
avallecam Dec 21, 2023
11c1fab
add distributions affected by censoring
avallecam Dec 21, 2023
eeb468f
add figures to callout on cases to distributions
avallecam Dec 21, 2023
67f0591
remove episodes out of feature branch
avallecam Dec 21, 2023
502a2af
fix text and references on distrib params
avallecam Dec 21, 2023
3974ee0
add figure of observed serial intervals
avallecam Dec 21, 2023
7951813
relocate bias section to generation time
avallecam Dec 21, 2023
8da35c9
remove figures from infectious period
avallecam Dec 21, 2023
113f1d6
edit text with grammarly
avallecam Dec 22, 2023
0d1fcdf
fix links to figures and tables in distribution presentation
avallecam Dec 22, 2023
963eae1
add presymptomatic line and reference
avallecam Dec 22, 2023
2cdbb66
edit challenge writing
avallecam Dec 22, 2023
5dc838d
remove installation code from episodes
avallecam Dec 22, 2023
1b7e1c5
replace ver to express calculation
avallecam Dec 22, 2023
9b03bff
add delay word for generation time
avallecam Dec 22, 2023
2f4d96a
review intro with grammarly
Dec 22, 2023
5f5fa69
add specific objectives and keypoints
avallecam Dec 23, 2023
7e3d759
homogenize reference to delays
avallecam Dec 23, 2023
e501160
complete introduction section
avallecam Dec 23, 2023
9ddd3f7
relocate episode goal to introduction
avallecam Dec 23, 2023
59b3256
complete content writing
avallecam Dec 23, 2023
beb25b8
separate linelist
avallecam Dec 23, 2023
8340f35
complete editing of episode
avallecam Dec 23, 2023
a032a60
add definitions on biases
avallecam Dec 23, 2023
cd50c56
reduce to lower keys on subtitle
avallecam Dec 23, 2023
08cd413
edit with grammarly
avallecam Dec 23, 2023
ec116ce
edits after visual inspection of render website
avallecam Dec 23, 2023
435141d
relocate one challenge, remove eval in solutions
avallecam Dec 23, 2023
9a57d24
add renv file for early task 1 episodes
avallecam Dec 23, 2023
d399c8f
add eval false to hints, edit one question and sol
avallecam Dec 23, 2023
9d3139b
fix typo to use incubation instead of serial
avallecam Jan 19, 2024
62530b0
remove redundant "delays" separator
avallecam Jan 23, 2024
a938f76
update renv after resolve conflicts
Jan 24, 2024
c422164
add install.R file to solve RcppParallel gh action
avallecam Jan 24, 2024
cb73f6e
install RcppParallel from RSPM to renv.lock
avallecam Jan 25, 2024
e170c63
fix lintr warnings and move hexwall code to issue
avallecam Feb 1, 2024
ec49081
fix partially lintr warnings
avallecam Feb 1, 2024
029b4c4
edits to reduce lintr warnings
avallecam Feb 1, 2024
0d88a8c
edits to reduce lintr warnings
avallecam Feb 2, 2024
fa030c8
relocate hint as extension of solution challenge
avallecam Feb 2, 2024
b630d60
remove discrete distribution plot output
avallecam Feb 2, 2024
08a73e4
remove cache from chunk options
avallecam Feb 6, 2024
4b92374
[actions] update 23 packages
Bisaloo Feb 6, 2024
8dcbabf
Keep only parts related to early tasks
Bisaloo Feb 8, 2024
d589ffb
runing for the first time
Degoot-AM Feb 15, 2024
f1f0be8
adding sections of read case data
Degoot-AM Feb 15, 2024
a534352
adding rio package to read from files.
Degoot-AM Feb 16, 2024
07b0a5c
Reading from databases
Degoot-AM Feb 16, 2024
1dd6aa5
adding examples of HIS apis
Degoot-AM Feb 16, 2024
c57a73b
block in-development episode + move to new branch
avallecam Feb 17, 2024
b8c04c4
remove read-cases content + now in-dev branch
avallecam Feb 17, 2024
8fd4e65
Adding new links
Degoot-AM Feb 20, 2024
df4b26e
addign readepi introd
Degoot-AM Feb 20, 2024
d106b40
New R version
Degoot-AM Mar 22, 2024
94424ea
Re-addad the read cases episode
Degoot-AM Mar 22, 2024
2c91584
add some lintr requirments
Degoot-AM Mar 25, 2024
61de2c2
add describe-cases file
avallecam Dec 16, 2023
a4c713b
add optional question to use
avallecam Dec 17, 2023
80d9084
adding ebola_2014 dataset.
Degoot-AM Feb 20, 2024
dec6edc
added some links
Degoot-AM Feb 21, 2024
5032e29
change xticts angle to 90
Degoot-AM Feb 22, 2024
5ff8ab3
adding code chuck for moving average
Degoot-AM Feb 26, 2024
fe8b15d
add code for calculating growth or decay rate
Degoot-AM Feb 26, 2024
cf5adae
add code for estimating peak time
Degoot-AM Feb 26, 2024
c497370
resolve
Degoot-AM Mar 25, 2024
f7f510a
Early task describe-partialy work (#10)
Degoot-AM Mar 25, 2024
9855fca
block temporally read and describe cases episodes
avallecam Mar 25, 2024
73133d8
solve linters to pass checks in main
avallecam Mar 25, 2024
0f76b1a
fix i2extras lintr message
avallecam Mar 25, 2024
8549620
add step to show get_parameters function
avallecam Feb 20, 2024
3cca40b
fix all epiparameter and epinow2 connections
avallecam Feb 20, 2024
a2f007b
change solutions to TRUE
avallecam Feb 20, 2024
7d9ca9f
remove introduction to get_parameters
avallecam Feb 22, 2024
be735c5
use mean sd max distrib for epinow2 connection
avallecam Feb 22, 2024
7dc6a0c
use convert from params to summary stats
avallecam Feb 22, 2024
6567c4b
use pmf for a weibull distribution!
avallecam Feb 22, 2024
18c1956
clean renv
avallecam Feb 22, 2024
c7abdbb
remove usage of `$prob_dist$` from epidist objects
avallecam Feb 23, 2024
c401245
simplify code to plot
avallecam Feb 23, 2024
968feab
add detail to use summary stats for epinow2
avallecam Feb 23, 2024
5ee9b52
specify instructions to use pmf
avallecam Feb 23, 2024
9d7f4fa
add key tab to callout
avallecam Feb 23, 2024
1f2ee68
add lintr edits
avallecam Feb 23, 2024
d2d875b
fix reference to calculate density values
avallecam Feb 23, 2024
5defd9b
add note on using serial interval for generation t
avallecam Feb 23, 2024
fbb15f1
remix and edit challenge content + minor edits
avallecam Feb 24, 2024
d7b8f16
split one episode content into three
avallecam Feb 24, 2024
571a9e7
add specification in hint
avallecam Feb 24, 2024
35d4397
rename read-delays episode
avallecam Feb 24, 2024
c0d52e1
rename file with ordered numbers
avallecam Feb 24, 2024
8c28528
update config file with ordered episodes
avallecam Feb 24, 2024
b6dd84d
update questions, objectives and keypoints on each
avallecam Feb 24, 2024
071270a
fix code issues after error
avallecam Feb 24, 2024
0622205
update question and objectives + new subtitle
avallecam Feb 24, 2024
8b61030
use grammarly
avallecam Feb 24, 2024
d63c750
use lintr
avallecam Feb 24, 2024
eeb8254
emphasis to summary stats for epinow2
avallecam Feb 24, 2024
cfcb21b
use grammarly
avallecam Feb 24, 2024
25db1f9
use grammarly
avallecam Feb 24, 2024
64e2397
add minor space at end
avallecam Feb 24, 2024
f85f12f
use lintr
avallecam Feb 24, 2024
bbd8ea3
prefer literature search over systematic review
avallecam Mar 20, 2024
24e8fe1
recover objective bullet
avallecam Mar 20, 2024
a02ad95
locate glossary entry within right letter section
avallecam Mar 20, 2024
2d1c616
use comma-separated list in prereq
avallecam Mar 20, 2024
84d173d
rephrase contribution of epiparameter to modeling
avallecam Mar 20, 2024
0099e78
add hint + homogenise using database
avallecam Mar 21, 2024
fca5aab
add epinow2 context for challenge and hint info
avallecam Mar 21, 2024
d1293f8
relocate plot and interactive distributions to ep1
avallecam Mar 21, 2024
99ff71f
add reason behind distribution notation
avallecam Mar 21, 2024
c0e86a9
relocate parametrise spoiler to episode 1
avallecam Mar 21, 2024
58d7ae0
move uncertainty task from episode 1 to episode 2
avallecam Mar 21, 2024
23911ce
epiparameter aids to choose rather than copy/paste
avallecam Mar 21, 2024
c6e4cd2
relocate time periods callout to problem section
avallecam Mar 21, 2024
a0fda88
add closure to episode on read delays
avallecam Mar 21, 2024
2b08dc6
move the reporting delays challenge to previous ep
avallecam Mar 21, 2024
74a11ba
simplify introduction to episode 2
avallecam Mar 21, 2024
b1ffb7f
move sections from challenges episode to first two
avallecam Mar 21, 2024
abc4332
block delays challenges episode (#11)
avallecam Mar 21, 2024
931d9eb
replace to magrittr to load the pipe
avallecam Mar 21, 2024
1d8aa21
move package loading at end of intro
avallecam Mar 21, 2024
7f2fbcb
divide testimonial callout in two
avallecam Mar 21, 2024
1f89c22
fix authorship tags
avallecam Mar 21, 2024
84a10f1
refer multi_epidist class as epidist objects
avallecam Mar 21, 2024
32c796f
add package specification
avallecam Mar 21, 2024
f890498
merge bullet points
avallecam Mar 21, 2024
e4e3e3b
rephrase question
avallecam Mar 21, 2024
67e648b
rephrase for clarity
avallecam Mar 21, 2024
7c361f5
update prereq for episode 2 after quantify Rt
avallecam Mar 21, 2024
54f0b48
rephrase summary statistics not as numbers
avallecam Mar 21, 2024
cb552e6
homogenize epinow2 code interface with quantify Rt
avallecam Mar 21, 2024
67b5257
add epiparameter get_parameters for epinow2 (#4)
avallecam Mar 21, 2024
430be6a
fix na visibility in callout
avallecam Mar 21, 2024
9ea14c9
add rephrase of copy/paste
avallecam Mar 25, 2024
af2c608
adding {tidyverse} due to dplyr use
avallecam Mar 25, 2024
029d968
add tidyverse to code chunk
avallecam Mar 25, 2024
3d51454
fix rename episode
avallecam Mar 25, 2024
fe2d00f
fix lintr checks
avallecam Mar 25, 2024
b759e7d
fix lintr check
avallecam Mar 25, 2024
4cacdae
add context on transmissibility package
avallecam Mar 28, 2024
3891370
use specific namespace for EpiNow2 dist_spec()
avallecam Mar 28, 2024
77761a6
fix typo
avallecam Mar 28, 2024
4af5153
clarify action
avallecam Mar 28, 2024
d014ebb
clarify reference to model fit in figure
avallecam Mar 28, 2024
c3c352b
make NA visible
avallecam Mar 28, 2024
6167d4d
Merge branch 'full-review-upcoming' of https://github.com/epiverse-tr…
avallecam Mar 28, 2024
0e3b1eb
relocate lognormal distribution step to get_params
avallecam Mar 28, 2024
81ab900
clarify the aim of epiparameter
avallecam Mar 28, 2024
6b78eb2
rename episode
avallecam Mar 28, 2024
3fa2519
relocate from time periods 2 distributions callout
avallecam Mar 28, 2024
8291df4
fix NA expression in callout title
avallecam Mar 28, 2024
5fe9aea
rephrase challenge to an open exploration of delay
avallecam Mar 28, 2024
0439144
relocate closure and specify challenges section
avallecam Mar 28, 2024
96e45eb
clean redundant outputs
avallecam Mar 28, 2024
722f1af
rewrite episode wrapup and episodes connection
avallecam Mar 28, 2024
2dd3975
remove reduntant output in intro and rewrite text
avallecam Mar 28, 2024
b37eb39
move warning after all analysis steps
avallecam Mar 28, 2024
263208c
move discussion to a stand-alone callout
avallecam Mar 28, 2024
44f97af
add lognormal step and code completion tip
avallecam Mar 28, 2024
b03280b
move influenza challenge to functions episode
avallecam Mar 28, 2024
6749c76
move ebola challenge to end of episode
avallecam Mar 28, 2024
c5d5c0e
add detail to challenges
avallecam Mar 28, 2024
2206cd4
edits to pass lintr checks
avallecam Mar 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ are okay.

This update is run ~~weekly or~~ on demand.

### 03 Maintain: Update Pacakge Cache (update-cache.yaml)
### 03 Maintain: Update Package Cache (update-cache.yaml)

For lessons that have generated content, we use {renv} to ensure that the output
is stable. This is controlled by a single lockfile which documents the packages
Expand Down
42 changes: 42 additions & 0 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]

name: lint

jobs:
lint:
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
RENV_PATHS_ROOT: ~/.local/share/renv/
steps:
- uses: actions/checkout@v3

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- name: "Setup Lesson Engine"
uses: carpentries/actions/setup-sandpaper@main
with:
cache-version: ${{ secrets.CACHE_VERSION }}

- name: "Setup Package Cache"
uses: carpentries/actions/setup-lesson-deps@main
with:
cache-version: ${{ secrets.CACHE_VERSION }}

- uses: r-lib/actions/setup-r-dependencies@v2
with:
packages: any::lintr

- name: Lint
run: lintr::lint_dir("episodes")
shell: Rscript {0}
env:
LINTR_ERROR_ON_LINT: true
2 changes: 1 addition & 1 deletion .github/workflows/sandpaper-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.11.12
0.16.1
16 changes: 16 additions & 0 deletions .lintr
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
linters: all_linters(
packages = "lintr",
object_name_linter = NULL,
implicit_integer_linter = NULL,
brace_linter = NULL,
extraction_operator_linter = NULL,
missing_package_linter = NULL,
library_call_linter = NULL,
namespace_linter = NULL,
undesirable_function_linter(
modify_defaults(
default_undesirable_functions,
library = NULL # this is fine in Rmd files
)
)
)
8 changes: 5 additions & 3 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@ title: "Contributor Code of Conduct"
---

As contributors and maintainers of this project,
we pledge to follow the [The Carpentries Code of Conduct][coc].
we pledge to follow the [The Epiverse-TRACE Code of Conduct][coc].

<!--
Instances of abusive, harassing, or otherwise unacceptable behavior
may be reported by following our [reporting guidelines][coc-reporting].
-->

[coc-reporting]: https://forms.gle/guKqVXPk6K43jPn59
[coc]: https://github.com/epiverse-trace/.github/blob/main/CODE_OF_CONDUCT.md

[coc-reporting]: https://docs.carpentries.org/topic_folders/policies/incident-reporting.html
[coc]: https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html
159 changes: 140 additions & 19 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
## Contributing

[The Carpentries][cp-site] ([Software Carpentry][swc-site], [Data
Carpentry][dc-site], and [Library Carpentry][lc-site]) are open source
projects, and we welcome contributions of all kinds: new lessons, fixes to
[The Epiverse-TRACE][cp-site] is an open source
project, and we welcome contributions of all kinds: new documentation, fixes to
existing material, bug reports, and reviews of proposed changes are all
welcome.

Expand All @@ -11,7 +10,7 @@ welcome.
By contributing, you agree that we may redistribute your work under [our
license](LICENSE.md). In exchange, we will address your issues and/or assess
your change proposal as promptly as we can, and help you become a member of our
community. Everyone involved in [The Carpentries][cp-site] agrees to abide by
community. Everyone involved in [Epiverse-TRACE][cp-site] agrees to abide by
our [code of conduct](CODE_OF_CONDUCT.md).

### How to Contribute
Expand All @@ -32,14 +31,14 @@ introduce yourself and to meet some of our community members.
3. If you are comfortable with Git, and would like to add or change material,
you can submit a pull request (PR). Instructions for doing this are
[included below](#using-github). For inspiration about changes that need to
be made, check out the [list of open issues][issues] across the Carpentries.
be made, check out the [list of open issues][issues].

Note: if you want to build the website locally, please refer to [The Workbench
documentation][template-doc].

### Where to Contribute

1. If you wish to change this lesson, add issues and pull requests here.
1. If you wish to change this tutorial, add issues and pull requests here.
2. If you wish to change the template used for workshop websites, please refer
to [The Workbench documentation][template-doc].

Expand All @@ -50,18 +49,17 @@ There are many ways to contribute, from writing new exercises and improving
existing ones to updating or filling in the documentation and submitting [bug
reports][issues] about things that do not work, are not clear, or are missing.
If you are looking for ideas, please see [the list of issues for this
repository][repo-issues], or the issues for [Data Carpentry][dc-issues],
[Library Carpentry][lc-issues], and [Software Carpentry][swc-issues] projects.
repository][repo-issues].

Comments on issues and reviews of pull requests are just as welcome: we are
smarter together than we are on our own. **Reviews from novices and newcomers
are particularly valuable**: it's easy for people who have been using these
lessons for a while to forget how impenetrable some of this material can be, so
tutorials for a while to forget how impenetrable some of this material can be, so
fresh eyes are always welcome.

### What *Not* to Contribute

Our lessons already contain more material than we can cover in a typical
Our tutorials already contain more material than we can cover in a typical
workshop, so we are usually *not* looking for more concepts or tools to add to
them. As a rule, if you want to introduce a new idea, you must (a) estimate how
long it will take to teach and (b) explain what you would take out to make room
Expand All @@ -70,9 +68,117 @@ second, to think hard about priorities.

We are also not looking for exercises or other material that only run on one
platform. Our workshops typically contain a mixture of Windows, macOS, and
Linux users; in order to be usable, our lessons must run equally well on all
Linux users; in order to be usable, our tutorials must run equally well on all
three.

### Contribution roles

For a tutorial your role could be of a __Developer__, __Reviewer__, or __Maintainer__. Our goal is to keep an homogeneous package environment among Developers and Reviewers of a “feature branch” different to main. This implies that:

- We will use [`sandpaper::use_package_cache()`](https://carpentries.github.io/sandpaper/reference/package_cache.html#background) in the R project.
- The Developer will need to register the package version to use in a `renv.lock` file.
- The Reviewer will need to restore environment defined by Developer, if needs to build the website locally.


#### Developer:

You can follow these steps:

- [Update](https://carpentries.github.io/workbench/#updating) the set of workbench packages:

```r
install.packages(c("sandpaper", "varnish", "pegboard", "tinkr"),
repos = c("https://carpentries.r-universe.dev/", getOption("repos")))
```

To contribute with a new episode:

- [Create](https://happygitwithr.com/git-branches#create-a-new-branch) a new feature branch. Write in there your contribution.
- Create an Issue to report the start of your WIP feature branch. Add the [WIP label](https://github.com/epiverse-trace/tutorials/labels/WIP) to it. This aims to keep one contributor per feature branch.
- [Create](https://carpentries.github.io/sandpaper-docs/aio.html#episodes) a new episode with `sandpaper::create_episode_md("Episode Name")`

If you need to work with the most recent versions of packages:

- Use [`sandpaper::update_cache()`](https://carpentries.github.io/sandpaper/reference/dependency_management.html). This will:
+ Fetch updates from CRAN or GitHub,
+ Update the `renv.lock` file with package specific versions, and
+ Update the cache. This is located in a folder called `renv/library/` in the same directory of the `renv.lock`, only visible locally.
- Push the updated `renv.lock` file to the GitHub “development branch”.

If you need to work with a specific stable version of a package:

- Use [`sandpaper::pin_version()`](https://carpentries.github.io/sandpaper/articles/building-with-renv.html#pinning-specific-package-versions). This will:
+ Update the `renv.lock` file with the specific version,
+ Update the cache.
- Push the updated `renv.lock` file.

If you need the version of a package that is not programmatically loaded, i.e., is loaded as part of the dependency tree of an specific package:

- [Create](https://carpentries.github.io/sandpaper/articles/building-with-renv.html#adding-new-packages-to-the-cache) an `episodes/install.R` file that lists the installation scripts for the packages in your lesson.
- Run the `episodes/install.R` file to install the list of packages.
- Run `sandpaper::update_cache()`. Before you accept the update, verify that the expected version number is listed as an update. After this, review the `renv.lock` file if this modified the file as expected.

To merge your new episodes:

- Make a Pull request (PR). You can follow the stesp on [using GitHub](#using-github).

#### Reviewer:

You can follow these steps:

- [Install](https://carpentries.github.io/workbench/#installation) the set of workbench packages:

```r
install.packages(c("sandpaper", "varnish", "pegboard", "tinkr"),
repos = c("https://carpentries.r-universe.dev/", getOption("repos")))
```

- [Clone](https://happygitwithr.com/new-github-first.html#new-rstudio-project-via-git) the repository or [Pull](https://www.epirhandbook.com/en/version-control-and-collaboration-with-git-and-github.html?q=github#in-rstudio-1) to update the branch to review on Rstudio.
- [Checkout](https://happygitwithr.com/git-branches#switching-branches) or [Switch](https://rstudio.github.io/cheatsheets/html/rstudio-ide.html#version-control) to the branch to review.
- Use [`sandpaper::manage_deps()`](https://carpentries.github.io/sandpaper/reference/dependency_management.html) to align the packages in your cache with the ones in the `renv.lock` file (defined by the Developer).
- You may need to manually install certain packages used in the lesson - please check the output in case [`sandpaper::manage_deps()`](https://carpentries.github.io/sandpaper/reference/dependency_management.html) fails. This can be resolved on a trial and error basis.
- Render lesson with [`sandpaper::build_lesson()`](https://carpentries.github.io/sandpaper/reference/build_lesson.html). This will open an HTML tab in your browser to review. This HTML format is how the website is going to look like online.
- Make any edit suggestion to the `.Rmd` files inside the `episodes/` folder of the branch under review. For big changes, [create an issue][issues] first.

If you have issues at the Render step, follow these two steps:

- Verify or wait until the branch is under Pull Request (PR) with all checks passed.
- Access to the [`md-outputs-PR-##` branch][repo-branches] on GitHub to read the `.md` files for each episode.

Consider that:

- The number `##` is equal to the PR number.
- `.md` files contain [generated lesson content](https://carpentries.github.io/sandpaper-docs/deployment.html) for review with knitted text, code, and figures.
- These `.md` files generate the `.html` of the website and look similar to how it's going to look like online.
<!-- - Locally, after switching to the review branch in Rstudio, you can use the [Visual editor](https://posit.co/blog/exploring-rstudio-visual-markdown-editor/), or Preview it as an HTML file (which later you will need to delete).-->
- Make any edit suggestions in the [PR online on GitHub](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request).

#### Maintainer:

You can follow this reference:

- Update steps above from any discussion on [issues][repo-issues].
- Review how to [maintain a Healthy Infrastructure](https://carpentries.github.io/sandpaper-docs/update.html).
- Review how to [Automate a Pull Request](https://carpentries.github.io/sandpaper-docs/pull-request.html#automated-pull-requests).
- Review topics on [Collaborative Lesson Development](https://carpentries.github.io/lesson-development-training/)

### Writing guidelines

To write a new episode, follow these guidelines

- Add new `.Rmd` files to the `episode/` folder.
- Add file name to the `config.yaml` under `episodes:` in the order you want the tutorials to appear in.
- Add required data sets to the `episodes/data/` folder.
- Add glossary terms to `learners/reference.md`.
- Add commonly used links to `links.md`.
- Add a visible callout for prerequisites at the beginning following the [ETK modules notation](https://github.com/epiverse-trace/tutorials/issues/19).
- Add an [introduction section](https://github.com/epiverse-trace/tutorials/issues/17) with the expected summative assessment.
- Add diagrams using Diagrammer with greek letters for parameters to [visually represent mathematical models](https://github.com/epiverse-trace/tutorials/issues/21).
- Use [callouts](https://carpentries.github.io/sandpaper-docs/instructor/component-guide.html) for complementary concepts and function arguments details.
- Review how callouts need to be [coded in plain text](https://github.com/carpentries/sandpaper-docs/blob/main/learners/component-guide.md?plain=1).
- Review when to use the [spoiler snipped](https://carpentries.github.io/sandpaper-docs/aio.html#use-spoilers-instead-of-floating-solution-blocks).
- Request a review via PR.

### Using GitHub

If you choose to contribute via GitHub, you may want to look at [How to
Expand All @@ -93,19 +199,33 @@ Each lesson has a team of maintainers who review issues and pull requests or
encourage others to do so. The maintainers are community volunteers, and have
final say over what gets merged into the lesson.

#### Rebase

- If you need to get the latest commits in the `main` branch to use them in your development, we recommend rebasing your feature branch. Rebase will keep the [commit history linear](https://epiverse-trace.github.io/blueprints/git-branching-merging.html#merging-pull-requests-merge-commits-vs-squash-and-merge-vs-rebase-and-merge). First, make sure that you are the only contributor in the `feature` branch, then:
- In the local repository, follow all these five steps:
1. Switch to the `main` branch: `git checkout main`
2. Pull the `main` branch: `git pull`
3. Switch to your `feature` branch: `git checkout feature`
4. [Rebase](https://docs.gitlab.com/ee/topics/git/git_rebase.html) your `feature` branch onto `main` branch: `git rebase main`
5. Push your rebased `featured` branch using the `--force` option (this must be a forced update): `git push --force`
- In the remote repository, only if you are in a PR:
- Update your PR branch with [Update with Rebase](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch#updating-your-pull-request-branch).
- To pull changes to your local repository from an updated PR branch with rebase in the remote, run: `git pull --rebase`
<!-- - Go to Git tab in the environments pane. Click on `Pull options` > `Pull with rebase`.-->

### Other Resources

The Carpentries is a global organisation with volunteers and learners all over
The Epiverse-TRACE is a global organisation with volunteers and learners all over
the world. We share values of inclusivity and a passion for sharing knowledge,
teaching and learning. There are several ways to connect with The Carpentries
community listed at <https://carpentries.org/connect/> including via social
teaching and learning. There are several ways to connect with The Epiverse-TRACE
community listed at <https://github.com/epiverse-trace/> including via social
media, slack, newsletters, and email lists. You can also [reach us by
email][contact].

[repo]: https://example.com/FIXME
[repo-issues]: https://example.com/FIXME/issues
[contact]: mailto:[email protected]
[cp-site]: https://carpentries.org/
[repo]: https://github.com/epiverse-trace/tutorials-early
[repo-issues]: https://github.com/epiverse-trace/tutorials-early/issues
[contact]: mailto:[email protected]
[cp-site]: https://epiverse-trace.github.io/
[dc-issues]: https://github.com/issues?q=user%3Adatacarpentry
[dc-lessons]: https://datacarpentry.org/lessons/
[dc-site]: https://datacarpentry.org/
Expand All @@ -114,10 +234,11 @@ email][contact].
[github-flow]: https://guides.github.com/introduction/flow/
[github-join]: https://github.com/join
[how-contribute]: https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github
[issues]: https://carpentries.org/help-wanted-issues/
[issues]: https://github.com/epiverse-trace/tutorials/issues
[lc-issues]: https://github.com/issues?q=user%3ALibraryCarpentry
[swc-issues]: https://github.com/issues?q=user%3Aswcarpentry
[swc-lessons]: https://software-carpentry.org/lessons/
[swc-site]: https://software-carpentry.org/
[lc-site]: https://librarycarpentry.org/
[template-doc]: https://carpentries.github.io/workbench/
[repo-branches]: https://github.com/epiverse-trace/tutorials/branches
17 changes: 6 additions & 11 deletions LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ title: "Licenses"

## Instructional Material

All Carpentries (Software Carpentry, Data Carpentry, and Library Carpentry)
The tutorials in this repository are developed by Epiverse-TRACE, based on the [lesson template from the Carpentries](https://github.com/carpentries/workbench-template-rmd) (template under CC BY license).

All Epiverse-TRACE
instructional material is made available under the [Creative Commons
Attribution license][cc-by-human]. The following is a human-readable summary of
(and not a substitute for) the [full legal text of the CC BY 4.0
Expand All @@ -23,8 +25,8 @@ terms.
Under the following terms:

- **Attribution**---You must give appropriate credit (mentioning that your work
is derived from work that is Copyright (c) The Carpentries and, where
practical, linking to <https://carpentries.org/>), provide a [link to the
is derived from work that is Copyright (c) Epiverse-TRACE, where
practical, linking to <https://epiverse-trace.github.io/>), provide a [link to the
license][cc-by-human], and indicate if changes were made. You may do so in
any reasonable manner, but not in any way that suggests the licensor endorses
you or your use.
Expand All @@ -45,7 +47,7 @@ Notices:
## Software

Except where otherwise noted, the example programs and other software provided
by The Carpentries are made available under the [OSI][osi]-approved [MIT
by Epiverse-TRACE are made available under the [OSI][osi]-approved [MIT
license][mit-license].

Permission is hereby granted, free of charge, to any person obtaining a copy of
Expand All @@ -66,14 +68,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

## Trademark

"The Carpentries", "Software Carpentry", "Data Carpentry", and "Library
Carpentry" and their respective logos are registered trademarks of [Community
Initiatives][ci].

[cc-by-human]: https://creativecommons.org/licenses/by/4.0/
[cc-by-legal]: https://creativecommons.org/licenses/by/4.0/legalcode
[mit-license]: https://opensource.org/licenses/mit-license.html
[ci]: https://communityin.org/
[osi]: https://opensource.org
Loading
Loading