{fledge} is able to automate a CRAN release, both locally and via
continuous integration (CI). The only difference between the local and
the CI approach is that the user has to call
fledge::unleash()
(or its child functions) manually after
each step.
In the following we describe the workflow via the CI approach. If a
CI build is triggered by a tag (i.e. a release was made), a specific
runner in the build matrix is being run which calls
fledge::unleash()
. This runner is run every 2h (?) on the
branch and calls fledge::unleash()
every time.
The following list describes the conditions which need to be fulfilled for each state:
pre_release()
:
CRAN-SUBMISSION
file exists.cran-comments.md
file.release()
:
cran-comments.md
file exists.post_release()
:
cran-comments.md
are checked.Possible improvements: - Let the user forward specific CRAN mails so
fledge can check the required boxes itself. Currently users needs to
check the boxes in cran-comments.md
themselves. - Make
strict NEWS checking optional - The branch creation should be optional
(TRUE by default).
unleash()
wraps
fledge::pre_release()
fledge::release()
fledge::post_release()
The following list describes the actions of each state function:
pre_release()
cran-comments.md
from template.r-release<version>
.eddelbuettel/crp@master
.devtools::check_win_devel()
.rhub::check_for_cran()
.foghorn::cran_details()
.release()
devtools::submit_cran()
.fledge:::confirm_submission()
.post_release()
fledge::tag_version()
.git push --tags
.usethis::use_github_release()
.fledge::bump_version()
to switch to dev version
again.After post_release()
, the Pull Request should be merged
and the branch deleted.