--- title: "Contributing" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Contributing} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` Thank you for taking the time to contribute to **Micro-MoB** (Microsimulation for Mosquito-Borne pathogens). ## Issues If you find a bug, have a question about how to use a feature that does not have sufficient documentation, or have a suggestion for improvement, please leave an issue at our GitHub repo. For bug reports please include: * **Micro-MoB** version * Operating System * R version * Steps to recreate * Expected behaviour * Actual behaviour ## Git We use Git on this project. Which means we use `main`, `dev`, `feat/*`, `bug/*`, and `hotfix/*` branches. Please refer to [this post](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) for more information of each type of branch. * `main`: this branch always stores the last "production" release of the software, and is a protected branch. A pull request should not be submitted to `main` unless it is from `dev`, meaning that the software version should be updated. * `dev`: all pull requests from users should be made to the `dev` branch. This branch is protected from deletion. * `feat`: new and significantly enhanced features are made in `feat` branches before being merged with `dev`. After a `feat/*` branch is merged with `dev`, it can be deleted. * `bug`: these branches fix bugs, usually after being raised as an issue. After a `bug/*` branch is merged with `dev`, it can be deleted. * `hotfix`: the difference between a `bug/*` and `hotfix/*` branch is `hotfix` is for small quick fixes (misspellings, incorrect arguments, etc.) and are short-lived. After being merged with `dev`, they can be deleted. We periodically merge `dev` into `main` for small release updates. These releases will appear on the [GitHub releases page](https://github.com/dd-harp/MicroMoB/releases). ## Continuous integration We use GitHub Actions as our continuous integration platform to run workflows. The workflows we use are from [r-lib/actions](https://github.com/r-lib/actions) for R packages. We run three types of workflows. [R CMD check](https://github.com/r-lib/actions/blob/master/examples/check-standard.yaml) runs during any pull request to `[main, dev]` branches. [Test coverage](https://github.com/r-lib/actions/blob/master/examples/test-coverage.yaml) runs during pull requests to `[main, dev]` and uses our [codecov.io integration](https://app.codecov.io/gh/dd-harp/MicroMoB) for checking test coverage. Finally, [pkgdown](https://github.com/r-lib/actions/blob/master/examples/pkgdown.yaml) only runs on pushes to `main`, which will occur when `dev` is merged with `main` periodically. Please note that sometimes hard to diagnose bugs can be due to out of date workflows. If you find a strange or unusual bug coming from a workflow, this is something to consider checking. ## Pull Requests If making a pull request, please only use `dev` as the base branch. If you are adding a new feature (i.e. the pull is from a `feat/*` branch), please ensure you have added minimal tests using testthat so that the functionality of your feature can be tested.