The information provided here are for the maintainers of the project. Contributors should read the Contributing Guide instead.
A PR can only be merged into master by a maintainer, if all of these conditions are met:
main
branch.Maintainers need to perform the following actions in the order described here to push out a release.
The CRAN policy states the following:
Submitting updates should be done responsibly and with respect for the volunteers’ time. Once a package is established (which may take several rounds), “no more than every 1–2 months” seems appropriate. ℹ️ For more information, see https://r-pkgs.org/release.html#cran-policies and https://cran.r-project.org/web/packages/policies.html.
But on our end, we can provide more frequent releases. In this case, do not publish to CRAN. The new version will only be available via an installation from GitHub.
rhub
NOTES: required only if we decide to publish to CRAN
Before starting a release, check that the output of the rhub
package is stored in cran-comments.md (the most recent output is at the top of the file, and the oldest at the bottom).
If this is not the case, you must perform the following steps.
install.packages("rhub")
library(rhub)
Locally, configure the email address of the maintainer (described in DESCRIPTION): - retrieve the token you previously received by email - call the validate_email.html by passing the maintainer email and the token
If you don't have any token, rhub
will prompt you to generate a token (on the first check).
Follow this procedure: https://r-hub.github.io/rhub/articles/rhub.html#prepare-a-cran-submission.
cran_prep <- check_for_cran()
⚠️ Locally, you can only see one run of the environment. To see the other one, you can get the URLs from the top of the local run, and open it on a browser.
Example:
─ Preparing build, see status at
https://builder.r-hub.io/status/bpmnVisualizationR_X.Y.Z.tar.gz-A
https://builder.r-hub.io/status/bpmnVisualizationR_X.Y.Z.tar.gz-B
https://builder.r-hub.io/status/bpmnVisualizationR_X.Y.Z.tar.gz-C
In cran-comments.md: - At the top, add this template:
# bpmnVisualizationR <X.Y.Z>.9000
This is a <re-submission | new submission>. In this version, we have:
* <NEW CHANGE>
## Test environments
<RESULT OF check_for_cran()>
## R CMD check results
<RESULT OF check_for_cran()>
## Response to CRAN for last submission
> <CITATION>
re-submission
or a new submission
.check_for_cran()
:cran_prep$cran_summary()
Version contains large components (X.Y.Z.9000)"
and update the counter of detected NOTE
in the summary of all environmentsre-submission
, copy and paste the result for the last CRAN submission, and answer to false NOTES.
Otherwise, remove the part:## Response to CRAN for last submission
> <CITATION>
Note: we always put issues related to a version in a Milestone whose name matches the version.
Next
(the name is not relevant and will be replaced automatically later).
This ensures that development can continue without impacting the writing of the content of the in progress release. That way,
if a PR is merged, release-drafter
will update the Next
draft release keeping the in-progress release untouched.master
branch.This is a pre-release
is unchecked (except if we are releasing alpha, beta, rc, ...)⚠️⚠️⚠️ Only if the GitHub job that release this repository fails after manual re-run! ⚠️⚠️⚠️
Check that the files are using the version to be released: - DESCRIPTION - index (used in the HTML documentation) - README
Create a new PR (it must have the skip-changelog
label as we don't want it to appear in the release notes) and merge it,
if some files require changes. The PR/commit message should be chore(release): set version to x.y.z
.
Once this is done, tag manually with the following command (do not forget to replace x.y.z
by the actual version):
git tag -a vx.y.z -m "chore(release): x.y.z"
git push && git push --tags
Add the .9000
suffix to the Version
field in the DESCRIPTION file to indicate that this is a development version (for more explanations, see the R documentation).
For instance, if the released version was 0.3.0
, the Version
field in the DESCRIPTION
file should be 0.3.O.9000
.
Create a new PR (it must have the skip-changelog
label as we don't want it to appear in the release notes) and merge it.
The PR/commit message should be chore(release): set the development version to x.y.z.9000
.
The bpmnVisualizationR package now uses [bpmn-visualization@0.29.0](https://github.com/process-analytics/bpmn-visualization-js/releases/tag/v0.29.0).
release-drafter
doesn't interfer with the writing of the Release Notes).NOTES: required only if we decide to publish to CRAN
It conforms to the CRAN Submission policies first
r-release
version, as shown in the screenshot below 👇bpmnVisualizationR_X.Y.Z.tar.gz
file.tar.gz
source previously retrievedtar.gz
source (in particular, the name and email of the maintainer of the package are available at the end of the file)CRAN Submission of bpmnVisualizationR 0.3.0 - Confirmation Link
CRAN Submission of bpmnVisualizationR 0.3.0
Once the submission has been confirmed, a CRAN manager examines the packages. While the process is lengthy for new packages, it is much quicker for established ones.
For example, it took some time and many exchanges with maintainers, involving several corrections and explanations, for the first version of the bpmnVisualizationR
package to be released as 0.3.2
.
But the next version, 0.5.0
, was accepted 20 minutes after submission.
The maintainer review is sent by email. Please keep an eye on the address used to submit the package.
Accepted submission
When accepted, the email content looks like:
Dear maintainer, thanks, package bpmnVisualizationR_0.5.0.tar.gz is on its way to CRAN.
Then, monitor the package propagation: - the version is first pushed at https://github.com/cran/bpmnVisualizationR/commits/main - the version is actually available when it can be seen at https://cran.r-project.org/package=bpmnVisualizationR
The package for Windows is published several hours or days after. As bpmnVisualizationR
doesn't include native code, we can announce the package availability without waiting the Windows flavor.
Rejected submission
If the submission is rejected, a new release is generally required as it involves changing the content of the main
branch.
In this case, update the release notes to mention that the version is not available on CRAN (you can explain why) and publish it.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.