Skip to content

Commit

Permalink
Merge pull request #390 from Appsilon/release-instructions
Browse files Browse the repository at this point in the history
Write down release instructions
  • Loading branch information
Leszek-Sieminski authored Nov 25, 2022
2 parents fd01b6f + 3e4cd9e commit 3a89692
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 14 deletions.
59 changes: 47 additions & 12 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,55 @@
# Contributing Guidelines
# Contributing guidelines

This document contains guidelines specific to Rhino. [Appsilon's general contributing
guidelines](https://github.com/Appsilon/.github/blob/main/CONTRIBUTING.md) still apply.
This document contains guidelines specific to Rhino.
[Appsilon's general contributing guidelines](https://github.com/Appsilon/.github/blob/main/CONTRIBUTING.md) still apply.

## Contributing to Rhino
## Development tools

Pull requests to Rhino are welcome!
1. R CMD check<br>
`devtools::check()` or `rcmdcheck::rcmdcheck()`

| Tool | Command | `devtools` equivalent | Comment
|----------------|--------------------------|--------------------------|-
| Unit tests | `testthat::test_local()` | `devtools::test()` |
| Linter | `lintr::lint_package()` | `devtools::lint()` |
| `pkgdown` site | `pkgdown::build_site()` | `devtools::build_site()` | If built successfully, the website will be in `docs` directory. Requires `pkgdown` version >= 2.0.0.
2. Run linter<br>
`devtools::lint()` or `lintr::lint_package()`

3. Run unit tests<br>
`devtools::test()`or `testthat::test_local()`

## Development Process
4. Check spelling<br>
`devtools::spell_check()` or `spelling::spell_check_package()`

5. Build documentation<br>
`devtools::build_site()` or `pkgdown::build_site()`

6. Build package<br>
`devtools::build()` or `pkgbuild::build()`

## Release process

1. Bump the package version in `DESCRIPTION` according to [SemVer](https://semver.org/).
Drop the development version (last component, e.g. `.9001`).
2. Update `NEWS.md`.
Create a new header for the release.
Edit the list of changes: reorder, reword, and add or remove details as appropriate.
See [keep a changelog](https://keepachangelog.com/) for some guidelines.
3. Submit the changes in a pull request titled "Release X.Y.Z".
Get it approved and merged.
4. [Publish a new pre-release](https://github.com/Appsilon/rhino/releases/new) on GitHub.
Create a new `vX.Y.Z-rc.1` tag on the `main` branch (`rc` stands for release candidate).
Use the same string for title, leave description blank.
5. Build the package with `devtools::build()`
and [submit it to CRAN](https://cran.r-project.org/submit.html).
Use your own name and email.
You will need access to `[email protected]` to receive the confirmation link.
6. If CRAN reviewers ask for changes,
implement them and return to step 4
(use `rc.2`, `rc.3` and so on for subsequent submissions).
7. Once the package is accepted to CRAN,
[publish a new release](https://github.com/Appsilon/rhino/releases/new) on GitHub.
Create a new `vX.Y.Z` tag on the `main` branch.
Use the same string for title, fill the description from `NEWS.md`.
8. Announce the release on `#proj-rhino`.

## Development process

1. All changes are introduced in pull requests to the `main` branch,
which must be always kept in a "potentially shippable" state.
Expand All @@ -27,5 +62,5 @@ Starting with `1.0.0`, all versions should be released to CRAN.
## Definition of Done

1. The PR has at least 1 approval and 0 change requests.
2. The CI passes (`R CMD check`, linter, unit tests).
2. The CI passes (`R CMD check`, linter, unit tests, spelling).
3. The change is thoroughly documented.
6 changes: 4 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@ Title: A Framework for Enterprise Shiny Applications
Version: 1.1.1.9009
Authors@R:
c(
person("Kamil", "Zyla", role = c("aut", "cre"), email = "[email protected]"),
person("Kamil", "Żyła", role = c("aut", "cre"), email = "opensource+[email protected]"),
person("Jakub", "Nowicki", role = "aut", email = "[email protected]"),
person("Tymoteusz", "Makowski", role = "aut", email = "tymoteusz@appsilon.com"),
person("Leszek", "Siemiński", role = "aut", email = "leszek.sieminski@appsilon.com"),
person("Marek", "Rogala", role = "aut", email = "[email protected]"),
person("Recle", "Vibal", role = "aut", email = "[email protected]"),
person("Tymoteusz", "Makowski", role = "aut", email = "[email protected]"),
person("Appsilon Sp. z o.o.", role = "cph", email = "[email protected]")
)
Description: A framework that supports creating and extending enterprise Shiny applications using best practices.
Expand Down

0 comments on commit 3a89692

Please sign in to comment.