This document serves as a guide for new maintainers of and contributors to the arcticdatautils package.
Note: This is a work-in-progress, so expect it to change and improve over time.
So users can use new features. Ideally, no one is installing from source, i.e., remotes::install_github("nceas/arcticdatautils")
.
Whenever, really. Since this package isn't on CRAN, you can release it as much as you like or need to. You might want to release either when:
There are a few steps in releasing a new version of the package:
Version
tag in the DESCRIPTION
file to the appropriate next version.What this is set to specifies what the user sees from R when they run sessionInfo()
or devtools::session_info()
and tell you what version they have installed.
This package tries to use Semantic Versioning (semver) which can be summarized in three bullets:
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
Note: A common mistake people make is thinking that the next version after 0.9 is 1.0, but it could be 0.10, then 0.11, and so on.
git
and GitHub helps us a lot with determining what has changed so we can determine what the next release version number should be. We can compare a previous release to master
to get a list of all commits what were made between that release and now:
https://github.com/NCEAS/arcticdatautils/compare/v0.6.3...master
sh
git add DESCRIPTION
git commit -m "vx.y.z"
git push
Go to the releases tab and click "Draft a new release"
Tag version and Release title should match v{MAJOR}.{MINOR}.{PATCH}, e.g., v6.4.5
The release description should include:
Example: https://github.com/NCEAS/arcticdatautils/releases/tag/v0.6.2
Make liberal use of GitHub's Compare feature: Example comparing v0.6.3
to master
.
You're done, now go tell people to upgrade!
remotes::install_github("nceas/arcticdatautils@*release")
Note: @*release
specifies that the latest release should be installed.
stopifnot()
statements for all functionsdevtools::check()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.