diff --git a/README.md b/README.md index 6f011bd..733eaba 100644 --- a/README.md +++ b/README.md @@ -13,25 +13,83 @@ Understanding how these codes work, and how to build accurate codelists from the The articles listed below explore the function of coding systems, the intricacies of SNOMED, and the careful methodology behind constructing reliable codelists. -https://www.carolinemorton.co.uk/blog/what-is-snomed/ -https://www.bennett.ox.ac.uk/blog/2023/09/what-are-codelists-and-how-are-they-constructed/ -https://www.bennett.ox.ac.uk/blog/2023/06/an-introduction-to-clinical-codes-and-terminology-systems/ +- [Blog on SNOMED](https://www.carolinemorton.co.uk/blog/what-is-snomed) +- [What is a codelist?](https://www.bennett.ox.ac.uk/blog/2023/09/what-are-codelists-and-how-are-they-constructed/) +- [Quick guide to clinical terminology servers](https://www.bennett.ox.ac.uk/blog/2023/06/an-introduction-to-clinical-codes-and-terminology-systems/) -### Structure of Project +## Structure of Project The project is divided into two main components: 1. **rust**: The libraries written in Rust. -2. **python**: Python bindings for the Rust library. +2. **bindings**: Bindings for the Rust library. + - _Python_ - Python bindings for our codelist tools + - _R_ - R bindings for codelist tools -#### Rust Library +### Rust Library The Rust library is a collection of modules for working with medical codelists: - **codelists-rs**: Base library for working with codelists. This has basic structs and functions for working with codelists. - **codelist-validator-rs**: Library for validating codelists. -- **codelist-builder-rs**: Library for building codelists. +- **codelist-builder-rs**: Library for building codelists. 🚧 **Under Construction** 🚧 + +## Development Utilities + +We use a [`justfile`](https://github.com/casey/just) to define common tasks for +development and CI. + +### How to Install `just` + +Install `just` using +[the instructions here](https://github.com/casey/just#installation), or with a +package manager: + +```bash +# macOS (Homebrew) +brew install just + +# Debian or Ubuntu +sudo apt install just + +# Arch Linux +pacman -S just +``` + +### How to Use It + +To run a task, use: + +```bash +just +``` + +For example: + +```bash +just ci +``` + +This will run the CI tasks defined in the `justfile`, which include running +tests, formatting checks, and linting. You can also run individual tasks like + +```bash +just fmt +``` + +These tasks help ensure consistent code style and formatting before committing +or opening a pull request. + +To see all available tasks, run: + +```bash +just --list +``` + +Make sure you run `just ci` before opening a pull request to ensure that all +tasks pass. This will help catch any issues early and ensure that the code is +formatted correctly and passes all tests. ## Formatting @@ -94,59 +152,3 @@ In VS Code, it's even easier to configure Prettier to run on save: 2. Open **Settings** and search for `Format On Save`. 3. Enable **Editor: Format On Save**. 4. Optionally, add a `.prettierrc` file to customize the formatting rules. - -## Development Utilities - -We use a [`justfile`](https://github.com/casey/just) to define common tasks for -development and CI. - -### How to Install `just` - -Install `just` using -[the instructions here](https://github.com/casey/just#installation), or with a -package manager: - -```bash -# macOS (Homebrew) -brew install just - -# Debian or Ubuntu -sudo apt install just - -# Arch Linux -pacman -S just -``` - -### How to Use It - -To run a task, use: - -```bash -just -``` - -For example: - -```bash -just ci -``` - -This will run the CI tasks defined in the `justfile`, which include running -tests, formatting checks, and linting. You can also run individual tasks like - -```bash -just fmt -``` - -These tasks help ensure consistent code style and formatting before committing -or opening a pull request. - -To see all available tasks, run: - -```bash -just --list -``` - -Make sure you run `just ci` before opening a pull request to ensure that all -tasks pass. This will help catch any issues early and ensure that the code is -formatted correctly and passes all tests.