Thank you for taking the time to contribute to safir2.
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:
- safir2 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 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 tomain
unless it is fromdev
, meaning that the software version should be updated. -
dev
: all pull requests from users should be made to thedev
branch. This branch is protected from deletion. -
feat
: new and significantly enhanced features are made infeat
branches before being merged withdev
. After afeat/*
branch is merged withdev
, it can be deleted. -
bug
: these branches fix bugs, usually after being raised as an issue. After abug/*
branch is merged withdev
, it can be deleted. -
hotfix
: the difference between abug/*
andhotfix/*
branch ishotfix
is for small quick fixes (misspellings, incorrect arguments, etc.) and are short-lived. After being merged withdev
, they can be deleted.
We periodically merge dev
into master
for small release updates. These releases will appear on the GitHub releases page.
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.
Continuous integration
We use GitHub Actions as our continuous integration platform to run workflows. The workflows we use are from r-lib/actions for R packages.
We run three types of workflows.
R CMD check runs during any push to [main, feat/*, hotfix/*, bug/*, dev]
branches.
Test coverage runs during pull requests to [main, dev]
and uses our codecov.io integration for checking test coverage.
Finally, pkgdown 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 when pushing to a branch, this is one thing to consider checking.