https://github.com/nhsengland/package-your-code-workshop
Learn how to package your code effectively for better collaboration, distribution, and reuse of your code. This workshop is being held at the Data Science Mini-Conference, but is available for anyone to complete in their own time.
https://github.com/nhsengland/package-your-code-workshop
data-science mkdocs python rap workshop
Last synced: 9 months ago
JSON representation
Learn how to package your code effectively for better collaboration, distribution, and reuse of your code. This workshop is being held at the Data Science Mini-Conference, but is available for anyone to complete in their own time.
- Host: GitHub
- URL: https://github.com/nhsengland/package-your-code-workshop
- Owner: nhsengland
- License: mit
- Created: 2025-09-05T15:40:07.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-09T15:52:03.000Z (10 months ago)
- Last Synced: 2025-09-09T19:00:08.237Z (10 months ago)
- Topics: data-science, mkdocs, python, rap, workshop
- Language: Python
- Homepage: https://nhsengland.github.io/package-your-code-workshop/
- Size: 36.8 MB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Package Your Code - Data Science Mini-Conference Workshop
This repository contains materials for the "Package Your Code" workshop held at the Data Science Mini-Conference. The workshop aims to teach participants how to package their code effectively for better collaboration, distribution, and reuse.
## Workshop Overview
In the live section of this workshop, we will cover the following topics:
* **Dependency Management**: Learning how to manage project dependencies using tools like `uv` and splitting dependencies into production, development, and documentation categories.
* **Packaging with `pyproject.toml`**: Understanding the structure and purpose of `pyproject.toml` files, and how to use them to define project metadata and dependencies so you can reuse your code in other projects.
* **Mkdocs and Mkdocstrings**: Setting up documentation for your project using `mkdocs` and `mkdocstrings` to create user-friendly and maintainable documentation.
There is also bonus content available in the repository, which can be explored at your own pace, including:
* **Cookiecutter Templates**: Using cookiecutter templates to quickly scaffold new projects with best practices in mind.
* **Setting up Pre-Commit Hooks**: Implementing pre-commit hooks to automate code quality checks, enforcing coding standards, and preventing secrets from being committed to version control.
* **Setting up CI/CD with GitHub Actions**: Automating testing, building, and deploying your code using GitHub Actions for continuous integration and continuous deployment.
## Pre-requisite Knowledge
The workshop assumes that participants have a basic understanding of the following concepts:
| Pre-requisite | Description |
|---------------|-------------|
| Python | Knowledge of how to write and run Python code |
| Git | Basic command line usage and version control concepts |
| GitHub | Familiarity with repositories, Codespaces, and forking |
| RAP | Understanding of the core principles of Reproducible Analytical Pipelines (RAP), particularly the [levels of RAP](https://nhsdigital.github.io/rap-community-of-practice/introduction_to_RAP/levels_of_RAP) |
| Virtual Environments & Package Management | Basic understanding of virtual environments and package management in Python (e.g., `pip`, `venv`, `conda`, etc.) |
## Workshop Website
The workshop materials are hosted on a dedicated website built with MkDocs: [Package Your Code Workshop](https://nhsengland.github.io/package-your-code-workshop/). On the website, you will find information about the workshop, how to get started, and the workshop content itself.
## Have an issue?
If you encounter any issues or have questions, please open an issue in this repository. We welcome feedback and contributions to improve the workshop materials.
--------
## Licence
Unless stated otherwise, the codebase is released under the [MIT Licence](./LICENSE). This covers both the codebase and any sample code in the documentation.
HTML and Markdown documentation is © Crown copyright and available under the terms of the [Open Government 3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/) licence.