Contributing
Contributions are very welcome; please contact us by email or by filing an issue in our repository. All contributors must abide by our Code of Conduct.
Setup and Operation
- Install uv.
- Create a virtual environment by running
uv venv --python 3.12
in the root directory. - Activate it by running
source .venv/bin/activate
in your shell. - Install dependencies by running
uv sync
. - This project uses McCole to generate HTML and check the project's structure
- Run
make
on its own to see a list of common commands
make task | effect |
---|---|
clean | clean up |
commands | show available commands (default) |
lint | check structure and content |
render | convert to HTML |
serve | serve generated HTML |
Structure
- Lessons are in
nn_slug
directoriesnn
is two-digit sequence numberslug
is short mnemonic- Each lesson must have an
index.md
file containing its content
- Diagrams should be SVG files created with draw.io
bibliography.md
has the bibliography as a definition list- Citation keys have IDs for linking
- Use an inline HTML link
b:key
in files to create links
glossary.md
has the glossary as definition list- Reference keys have IDs for linking
- Use an inline HTML link
g:key
in files to create links
- The
static
directory contains static files - The
templates
directory contains Jinja templates used to generate HTMLpage.html
: template for website pages
FAQ
- Do you need any help?
- Yes—please see the issues in our repository.
- What sort of feedback would be useful?
- Everything is welcome, from pointing out mistakes in the code to suggestions for better explanations.
- Can I add a new section?
- Absolutely, but please reach out before doing so.
- Why is this material free to read?
- Because if we all give a little, we all get a lot.
Contributors
- Greg Wilson is a programmer, author, and educator based in Toronto. He was the co-founder and first Executive Director of Software Carpentry and received ACM SIGSOFT's Influential Educator Award in 2020.