Skip to content

Commit d7184c6

Browse files
committed
source commit: 693f70d
0 parents  commit d7184c6

File tree

11 files changed

+441
-0
lines changed

11 files changed

+441
-0
lines changed

CODE_OF_CONDUCT.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: "Contributor Code of Conduct"
3+
---
4+
5+
As contributors and maintainers of this project,
6+
we pledge to follow the [The Carpentries Code of Conduct][coc].
7+
8+
Instances of abusive, harassing, or otherwise unacceptable behavior
9+
may be reported by following our [reporting guidelines][coc-reporting].
10+
11+
12+
[coc-reporting]: https://docs.carpentries.org/topic_folders/policies/incident-reporting.html
13+
[coc]: https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html

LICENSE.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
title: "Licenses"
3+
---
4+
5+
## Instructional Material
6+
7+
All Carpentries (Software Carpentry, Data Carpentry, and Library Carpentry)
8+
instructional material is made available under the [Creative Commons
9+
Attribution license][cc-by-human]. The following is a human-readable summary of
10+
(and not a substitute for) the [full legal text of the CC BY 4.0
11+
license][cc-by-legal].
12+
13+
You are free:
14+
15+
- to **Share**---copy and redistribute the material in any medium or format
16+
- to **Adapt**---remix, transform, and build upon the material
17+
18+
for any purpose, even commercially.
19+
20+
The licensor cannot revoke these freedoms as long as you follow the license
21+
terms.
22+
23+
Under the following terms:
24+
25+
- **Attribution**---You must give appropriate credit (mentioning that your work
26+
is derived from work that is Copyright (c) The Carpentries and, where
27+
practical, linking to <https://carpentries.org/>), provide a [link to the
28+
license][cc-by-human], and indicate if changes were made. You may do so in
29+
any reasonable manner, but not in any way that suggests the licensor endorses
30+
you or your use.
31+
32+
- **No additional restrictions**---You may not apply legal terms or
33+
technological measures that legally restrict others from doing anything the
34+
license permits. With the understanding that:
35+
36+
Notices:
37+
38+
* You do not have to comply with the license for elements of the material in
39+
the public domain or where your use is permitted by an applicable exception
40+
or limitation.
41+
* No warranties are given. The license may not give you all of the permissions
42+
necessary for your intended use. For example, other rights such as publicity,
43+
privacy, or moral rights may limit how you use the material.
44+
45+
## Software
46+
47+
Except where otherwise noted, the example programs and other software provided
48+
by The Carpentries are made available under the [OSI][osi]-approved [MIT
49+
license][mit-license].
50+
51+
Permission is hereby granted, free of charge, to any person obtaining a copy of
52+
this software and associated documentation files (the "Software"), to deal in
53+
the Software without restriction, including without limitation the rights to
54+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
55+
of the Software, and to permit persons to whom the Software is furnished to do
56+
so, subject to the following conditions:
57+
58+
The above copyright notice and this permission notice shall be included in all
59+
copies or substantial portions of the Software.
60+
61+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
62+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
63+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
64+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
65+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
66+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
67+
SOFTWARE.
68+
69+
## Trademark
70+
71+
"The Carpentries", "Software Carpentry", "Data Carpentry", and "Library
72+
Carpentry" and their respective logos are registered trademarks of [The Carpentries Inc][the-carpentries].
73+
74+
[cc-by-human]: https://creativecommons.org/licenses/by/4.0/
75+
[cc-by-legal]: https://creativecommons.org/licenses/by/4.0/legalcode
76+
[mit-license]: https://opensource.org/licenses/mit-license.html
77+
[ci]: https://communityin.org/
78+
[osi]: https://opensource.org
79+
[the-carpentries]: https://carpentries.org

config.yaml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#------------------------------------------------------------
2+
# Values for this lesson.
3+
#------------------------------------------------------------
4+
5+
# Which carpentry is this (swc, dc, lc, or cp)?
6+
# swc: Software Carpentry
7+
# dc: Data Carpentry
8+
# lc: Library Carpentry
9+
# cp: Carpentries (to use for instructor training for instance)
10+
# incubator: The Carpentries Incubator
11+
#
12+
# This option supports custom types so lessons can be branded
13+
# and themed with your own logo and alt-text (see `carpentry_description`)
14+
# See https://carpentries.github.io/sandpaper-docs/editing.html#adding-a-custom-logo
15+
carpentry: 'incubator'
16+
17+
# Alt-text description of the lesson.
18+
carpentry_description: 'Lesson Description'
19+
20+
# c.f. https://carpentries.github.io/sandpaper-docs/introduction.html
21+
# Overall title for pages.
22+
title: 'Reproducible Machine Learning Workflows for Scientists'
23+
24+
# Date the lesson was created (YYYY-MM-DD, this is empty by default)
25+
created: 2025-03-16
26+
27+
# Comma-separated list of keywords for the lesson
28+
keywords: 'software, lesson, The Carpentries, machine learning, CUDA, hardware acceleration, reproducible'
29+
30+
# Life cycle stage of the lesson
31+
# possible values: pre-alpha, alpha, beta, stable
32+
life_cycle: 'pre-alpha'
33+
34+
# License of the lesson
35+
license: 'CC-BY 4.0'
36+
37+
# Link to the source repository for this lesson
38+
source: 'https://github.com/carpentries-incubator/reproducible-ml-workflows'
39+
40+
# Default branch of your lesson
41+
branch: 'main'
42+
43+
# Who to contact if there are any issues
44+
45+
46+
# Navigation ------------------------------------------------
47+
#
48+
# Use the following menu items to specify the order of
49+
# individual pages in each dropdown section. Leave blank to
50+
# include all pages in the folder.
51+
#
52+
# Example -------------
53+
#
54+
# episodes:
55+
# - introduction.md
56+
# - first-steps.md
57+
#
58+
# learners:
59+
# - setup.md
60+
#
61+
# instructors:
62+
# - instructor-notes.md
63+
#
64+
# profiles:
65+
# - one-learner.md
66+
# - another-learner.md
67+
68+
# Order of episodes in your lesson
69+
episodes:
70+
- introduction.md
71+
72+
# Information for Learners
73+
learners:
74+
75+
# Information for Instructors
76+
instructors:
77+
78+
# Learner Profiles
79+
profiles:
80+
81+
# Customisation ---------------------------------------------
82+
#
83+
# This space below is where custom yaml items (e.g. pinning
84+
# sandpaper and varnish versions) should live
85+
86+

index.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
site: sandpaper::sandpaper_site
3+
---
4+
5+
This is a new lesson built with [The Carpentries Workbench][workbench].
6+
7+
8+
[workbench]: https://carpentries.github.io/sandpaper-docs
9+

instructor-notes.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 'Instructor Notes'
3+
---
4+
5+
This is a placeholder file. Please add content here.

introduction.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
---
2+
title: "Using Markdown"
3+
teaching: 10
4+
exercises: 2
5+
---
6+
7+
:::::::::::::::::::::::::::::::::::::: questions
8+
9+
- How do you write a lesson using Markdown and `{sandpaper}`?
10+
11+
::::::::::::::::::::::::::::::::::::::::::::::::
12+
13+
::::::::::::::::::::::::::::::::::::: objectives
14+
15+
- Explain how to use markdown with The Carpentries Workbench
16+
- Demonstrate how to include pieces of code, figures, and nested challenge blocks
17+
18+
::::::::::::::::::::::::::::::::::::::::::::::::
19+
20+
## Introduction
21+
22+
This is a lesson created via The Carpentries Workbench. It is written in
23+
[Pandoc-flavored Markdown](https://pandoc.org/MANUAL.html) for static files and
24+
[R Markdown][r-markdown] for dynamic files that can render code into output.
25+
Please refer to the [Introduction to The Carpentries
26+
Workbench](https://carpentries.github.io/sandpaper-docs/) for full documentation.
27+
28+
What you need to know is that there are three sections required for a valid
29+
Carpentries lesson:
30+
31+
1. `questions` are displayed at the beginning of the episode to prime the
32+
learner for the content.
33+
2. `objectives` are the learning objectives for an episode displayed with
34+
the questions.
35+
3. `keypoints` are displayed at the end of the episode to reinforce the
36+
objectives.
37+
38+
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: instructor
39+
40+
Inline instructor notes can help inform instructors of timing challenges
41+
associated with the lessons. They appear in the "Instructor View"
42+
43+
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
44+
45+
::::::::::::::::::::::::::::::::::::: challenge
46+
47+
## Challenge 1: Can you do it?
48+
49+
What is the output of this command?
50+
51+
```r
52+
paste("This", "new", "lesson", "looks", "good")
53+
```
54+
55+
:::::::::::::::::::::::: solution
56+
57+
## Output
58+
59+
```output
60+
[1] "This new lesson looks good"
61+
```
62+
63+
:::::::::::::::::::::::::::::::::
64+
65+
66+
## Challenge 2: how do you nest solutions within challenge blocks?
67+
68+
:::::::::::::::::::::::: solution
69+
70+
You can add a line with at least three colons and a `solution` tag.
71+
72+
:::::::::::::::::::::::::::::::::
73+
::::::::::::::::::::::::::::::::::::::::::::::::
74+
75+
## Figures
76+
77+
You can use standard markdown for static figures with the following syntax:
78+
79+
`![optional caption that appears below the figure](figure url){alt='alt text for
80+
accessibility purposes'}`
81+
82+
![You belong in The Carpentries!](https://raw.githubusercontent.com/carpentries/logo/master/Badge_Carpentries.svg){alt='Blue Carpentries hex person logo with no text.'}
83+
84+
::::::::::::::::::::::::::::::::::::: callout
85+
86+
Callout sections can highlight information.
87+
88+
They are sometimes used to emphasise particularly important points
89+
but are also used in some lessons to present "asides":
90+
content that is not central to the narrative of the lesson,
91+
e.g. by providing the answer to a commonly-asked question.
92+
93+
::::::::::::::::::::::::::::::::::::::::::::::::
94+
95+
96+
## Math
97+
98+
One of our episodes contains $\LaTeX$ equations when describing how to create
99+
dynamic reports with {knitr}, so we now use mathjax to describe this:
100+
101+
`$\alpha = \dfrac{1}{(1 - \beta)^2}$` becomes: $\alpha = \dfrac{1}{(1 - \beta)^2}$
102+
103+
Cool, right?
104+
105+
::::::::::::::::::::::::::::::::::::: keypoints
106+
107+
- Use `.md` files for episodes when you want static content
108+
- Use `.Rmd` files for episodes when you need to generate output
109+
- Run `sandpaper::check_lesson()` to identify any issues with your lesson
110+
- Run `sandpaper::build_lesson()` to preview your lesson locally
111+
112+
::::::::::::::::::::::::::::::::::::::::::::::::
113+
114+
[r-markdown]: https://rmarkdown.rstudio.com/

learner-profiles.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: FIXME
3+
---
4+
5+
This is a placeholder file. Please add content here.

links.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!--
2+
Place links that you need to refer to multiple times across pages here. Delete
3+
any links that you are not going to use.
4+
-->
5+
6+
[pandoc]: https://pandoc.org/MANUAL.html
7+
[r-markdown]: https://rmarkdown.rstudio.com/
8+
[rstudio]: https://www.rstudio.com/
9+
[carpentries-workbench]: https://carpentries.github.io/sandpaper-docs/
10+

md5sum.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"file" "checksum" "built" "date"
2+
"CODE_OF_CONDUCT.md" "c93c83c630db2fe2462240bf72552548" "site/built/CODE_OF_CONDUCT.md" "2025-04-16"
3+
"LICENSE.md" "16e8eaad880865bc4a41811b3e8fa945" "site/built/LICENSE.md" "2025-04-16"
4+
"config.yaml" "3d2ac02f5410e0aa29b7c999d5098b95" "site/built/config.yaml" "2025-04-29"
5+
"index.md" "a02c9c785ed98ddd84fe3d34ddb12fcd" "site/built/index.md" "2025-04-16"
6+
"links.md" "8184cf4149eafbf03ce8da8ff0778c14" "site/built/links.md" "2025-04-16"
7+
"pixi.lock" "49230335af6ae57457fbf81456984e37" "site/built/pixi.lock" "2025-04-29"
8+
"episodes/introduction.md" "083b4b050f08100db65af47082e12105" "site/built/introduction.md" "2025-04-16"
9+
"instructors/instructor-notes.md" "cae72b6712578d74a49fea7513099f8c" "site/built/instructor-notes.md" "2025-04-16"
10+
"learners/reference.md" "ee8aac2b5f1e80b406154ad56a7b6803" "site/built/reference.md" "2025-04-29"
11+
"learners/setup.md" "725894174d3e70dbae791c7301038970" "site/built/setup.md" "2025-04-29"
12+
"profiles/learner-profiles.md" "60b93493cf1da06dfd63255d73854461" "site/built/learner-profiles.md" "2025-04-16"

reference.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
title: 'Reference'
3+
---
4+
5+
## Glossary
6+
7+
[Pixi](https://pixi.sh/)
8+
: A package and software environment management tool that allows for fully reproducible multi-platform software environments.
9+
Pixi currently supports management of conda packages from conda package indexes (e.g. [conda-forge](https://conda-forge.org/), [S3 buckets](https://pixi.sh/latest/deployment/s3/)) and Python packages from Python package indexes (e.g. [PyPI](https://pypi.org/)).

0 commit comments

Comments
 (0)