{"id":30913968,"url":"https://github.com/nhsengland/package-your-code-workshop","last_synced_at":"2025-09-12T01:02:07.385Z","repository":{"id":313945593,"uuid":"1051198249","full_name":"nhsengland/package-your-code-workshop","owner":"nhsengland","description":"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.","archived":false,"fork":false,"pushed_at":"2025-09-09T15:52:03.000Z","size":38567,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-09T19:00:08.237Z","etag":null,"topics":["data-science","mkdocs","python","rap","workshop"],"latest_commit_sha":null,"homepage":"https://nhsengland.github.io/package-your-code-workshop/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nhsengland.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-05T15:40:07.000Z","updated_at":"2025-09-09T15:52:07.000Z","dependencies_parsed_at":"2025-09-09T19:10:31.247Z","dependency_job_id":null,"html_url":"https://github.com/nhsengland/package-your-code-workshop","commit_stats":null,"previous_names":["nhsengland/package-your-code-workshop"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/nhsengland/package-your-code-workshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhsengland%2Fpackage-your-code-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhsengland%2Fpackage-your-code-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhsengland%2Fpackage-your-code-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhsengland%2Fpackage-your-code-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nhsengland","download_url":"https://codeload.github.com/nhsengland/package-your-code-workshop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhsengland%2Fpackage-your-code-workshop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274378867,"owners_count":25274012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-science","mkdocs","python","rap","workshop"],"created_at":"2025-09-09T23:01:15.357Z","updated_at":"2025-09-11T00:03:44.833Z","avatar_url":"https://github.com/nhsengland.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Package Your Code - Data Science Mini-Conference Workshop\n\nThis 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.\n\n## Workshop Overview\n\nIn the live section of this workshop, we will cover the following topics:\n\n* **Dependency Management**: Learning how to manage project dependencies using tools like `uv` and splitting dependencies into production, development, and documentation categories.\n* **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.\n* **Mkdocs and Mkdocstrings**: Setting up documentation for your project using `mkdocs` and `mkdocstrings` to create user-friendly and maintainable documentation.\n\nThere is also bonus content available in the repository, which can be explored at your own pace, including:\n\n* **Cookiecutter Templates**: Using cookiecutter templates to quickly scaffold new projects with best practices in mind.\n* **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.\n* **Setting up CI/CD with GitHub Actions**: Automating testing, building, and deploying your code using GitHub Actions for continuous integration and continuous deployment.\n\n## Pre-requisite Knowledge\n\nThe workshop assumes that participants have a basic understanding of the following concepts:\n\n| Pre-requisite | Description |\n|---------------|-------------|\n| Python        | Knowledge of how to write and run Python code |\n| Git           | Basic command line usage and version control concepts |\n| GitHub        | Familiarity with repositories, Codespaces, and forking |\n| 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) |\n| Virtual Environments \u0026 Package Management | Basic understanding of virtual environments and package management in Python (e.g., `pip`, `venv`, `conda`, etc.) |\n\n## Workshop Website\n\nThe 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.\n\n## Have an issue?\n\nIf you encounter any issues or have questions, please open an issue in this repository. We welcome feedback and contributions to improve the workshop materials.\n\n--------\n\n## Licence\n\nUnless stated otherwise, the codebase is released under the [MIT Licence](./LICENSE). This covers both the codebase and any sample code in the documentation.\n\nHTML 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.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhsengland%2Fpackage-your-code-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnhsengland%2Fpackage-your-code-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhsengland%2Fpackage-your-code-workshop/lists"}