Lesson statuses

Our lessons are in varipous stages of development - stable, beta, and alpha.


These lessons are mature and ready to be taught. Most have been taught multiple times. The content is well-established, but minor changes and improvements (e.g. better explanations, spelling/grammar corrections, improved exercises) are always welcome.


These lessons are largely complete and should be ready to teach, but would benefit from improvements based on feedback from instructors who have taught them. New sections and rewrites/reorganisations of existing sections will be considered.


These lessons are under active development and may not be ready to teach without additional preparation and background knowledge. Further development work is strongly encouraged - please get in touch or check out outstanding issues on GitHub to find out what is needed.

Contributing to Lessons

All contributions are welcome, but if you would like to focus your efforts where they are most needed, please work on the alpha and beta lessons.

Lesson development process

Our recommended process for developing a new lesson is as follows:

  1. Develop the initial content on GitHub using the Carpentries’ set up instructions for new lessons. New lessons are built from clones of this repo.
  2. Introduce yourself and the lesson on our Gitter channel — there may well be willing volunteers to help with the content.
  3. Teach the lesson, collect feedback, and perhaps raise issues or pull requests to improve the content.
  4. Propose your lesson for the incubator by making a pull request (PR) against the Library Carpentry website, adding a link to your lesson repository as an alpha lesson.
  5. Discuss the lesson with the community and, if necessary, offer suggestions on how to improve the lesson; if the lesson is considered suitable material for the Library Carpentry curriculum, a website maintainer will merge your PR into the main site
  6. You and others will teach the lesson, collect feedback, and improve the content.
  7. Propose your lesson for beta/stable by making a pull request against the Library Carpentry website, updating the status of your lesson.
  8. Discuss the lesson further with the community; when the lesson is ready, a website maintainer will merge your pull request(PR).
  9. Congratulations! Your lesson is now part of stable Library Carpentry!

New lesson expectations

In order to maintain consistent quality and style in the Library Carpentry lessons, we have a community-driven set of expectations for what a good lesson should look like. These should guide the review process at steps 5 and 8 above. Lesson developers and reviewers should also read and follow the guidelines in the Software Development instructor training manual.

All stable lessons should:

  1. have at least two active maintainers.
  2. include a short learner profile (i.e. who the lesson is designed for).
  3. include concrete learning objectives.
  4. be teachable in around three hours under normal circumstances.