Skip to contents

Workflow

{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.

Execution Conditions

The following list describes the conditions which need to be fulfilled for each state:

  • pre_release():
    • No CRAN-SUBMISSION file exists.
    • The package version number has a four component scheme.
    • There is no cran-comments.md file.
  • release():
    • Three component package version.
    • A cran-comments.md file exists.
    • The local package version is smaller than the one on CRAN.
  • post_release():
    • The local version is equal to the CRAN version.
    • All boxes in 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

Execution Actions

The following list describes the actions of each state function:

After post_release(), the Pull Request should be merged and the branch deleted.