knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
Thank you for taking the time to contribute to Individual. We're grateful that you would take some time to make Individual-Based Modeling easier in R. Pull requests are very welcome.
For major changes, please open an issue first to give other developers a heads up on what you would like to add or change. That way we can reduce any redundant efforts and give any resources if needed.
For bug reports please include:
We use Git on this project. Which means we use master
, dev
, feat/*
, bug/*
, hotfix/*
and release/*
branches. Please refer to this post for more information of each type of branch. NOTE: bug/*
branches are feat/*
branches which fix a bug.
Practically speaking, all new code contributions should be feature branches. You should branch off of the dev
branch into one called feat/[your feature name here]
. When we consider pull requests from forked repositories to the mrc-ide/individual repository, we will expect this convention.
We periodically merge dev
into master
for small release updates. These releases will appear on the GitHub releases page. Please use Conventional Commits as it helps us version Individual properly.
Large releases will have a release/*
branch to manage the transition. No new features will be merged into release/*
branches. Only documentation and bug fixes will be considered.
R/simulation.R - Contains the main entry point and configuration for models
R/variables.R - Defines classes for the available variables
R/events.R - Defines classes for the available events
src/ - The C++ side of the R interface and tests
inst/include/Variable.h - The implementations of Variables
inst/include/Event.h - The implementations of Events
tests/ - are divided into unit, integration and performance tests. Integration tests are strongly recommended for large functions and unit tests for everything else
Here's a checklist for a successful PR:
These are the things we check for:
Our review process is based off of RESIDE's PR review process
We use google benchmark for our microbenchmarks. You can compile and run the benchmarks like this:
cd tests/performance g++ *_benchmark.cpp -std=c++14 -lbenchmark -lpthread -o benchmark.out ./benchmark.out
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.