Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions .github/workflows/rhub.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# R-hub's generic GitHub Actions workflow file. It's canonical location is at
# https://github.com/r-hub/actions/blob/v1/workflows/rhub.yaml
# You can update this file to a newer version using the rhub2 package:
#
# rhub::rhub_setup()
#
# It is unlikely that you need to modify this file manually.

name: R-hub
run-name: "${{ github.event.inputs.id }}: ${{ github.event.inputs.name || format('Manually run by {0}', github.triggering_actor) }}"

on:
workflow_dispatch:
inputs:
config:
description: 'A comma separated list of R-hub platforms to use.'
type: string
default: 'linux,windows,macos'
name:
description: 'Run name. You can leave this empty now.'
type: string
id:
description: 'Unique ID. You can leave this empty now.'
type: string

jobs:

setup:
runs-on: ubuntu-latest
outputs:
containers: ${{ steps.rhub-setup.outputs.containers }}
platforms: ${{ steps.rhub-setup.outputs.platforms }}

steps:
# NO NEED TO CHECKOUT HERE
- uses: r-hub/actions/setup@v1
with:
config: ${{ github.event.inputs.config }}
id: rhub-setup

linux-containers:
needs: setup
if: ${{ needs.setup.outputs.containers != '[]' }}
runs-on: ubuntu-latest
name: ${{ matrix.config.label }}
strategy:
fail-fast: false
matrix:
config: ${{ fromJson(needs.setup.outputs.containers) }}
container:
image: ${{ matrix.config.container }}

steps:
- uses: r-hub/actions/checkout@v1
- uses: r-hub/actions/platform-info@v1
with:
token: ${{ secrets.RHUB_TOKEN }}
job-config: ${{ matrix.config.job-config }}
- uses: r-hub/actions/setup-deps@v1
with:
token: ${{ secrets.RHUB_TOKEN }}
job-config: ${{ matrix.config.job-config }}
- uses: r-hub/actions/run-check@v1
with:
token: ${{ secrets.RHUB_TOKEN }}
job-config: ${{ matrix.config.job-config }}

other-platforms:
needs: setup
if: ${{ needs.setup.outputs.platforms != '[]' }}
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.label }}
strategy:
fail-fast: false
matrix:
config: ${{ fromJson(needs.setup.outputs.platforms) }}

steps:
- uses: r-hub/actions/checkout@v1
- uses: r-hub/actions/setup-r@v1
with:
job-config: ${{ matrix.config.job-config }}
token: ${{ secrets.RHUB_TOKEN }}
- uses: r-hub/actions/platform-info@v1
with:
token: ${{ secrets.RHUB_TOKEN }}
job-config: ${{ matrix.config.job-config }}
- uses: r-hub/actions/setup-deps@v1
with:
job-config: ${{ matrix.config.job-config }}
token: ${{ secrets.RHUB_TOKEN }}
- uses: r-hub/actions/run-check@v1
with:
job-config: ${{ matrix.config.job-config }}
token: ${{ secrets.RHUB_TOKEN }}
54 changes: 54 additions & 0 deletions RELEASE_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Release Checklist — entsoeapi

## 1. Prepare

- [ ] All planned changes merged into `develop`
- [ ] `NEWS.md` updated — new version header, all changes documented
- [ ] Version bumped in `DESCRIPTION` (follow semver: major.minor.patch)
- [ ] `RoxygenNote` in `DESCRIPTION` matches installed roxygen2 version
- [ ] Run `lintr::lint_package()` lint the scripts following general formatting rules

## 2. Documentation

- [ ] Run `devtools::document()` — regenerate all `.Rd` files and `NAMESPACE`
- [ ] Run `devtools::build_readme()` — locate README.Rmd and build it into a README.md
- [ ] Check that all exported functions have `@examples` or `@examplesIf`
- [ ] README examples still work (copy-paste test)
- [ ] Vignettes render without error: `devtools::build_vignettes()`

## 3. Tests

- [ ] `devtools::test()` — all tests pass, no unexpected skips
- [ ] `covr::package_coverage()` — no significant coverage regression

## 4. R CMD CHECK

- [ ] `devtools::check()` — **0 errors, 0 warnings, 0 notes**
- Common notes to fix before CRAN: `LazyData` without `LazyDataCompression`, missing `\value` in `.Rd` files
- [ ] `urlchecker::url_check()` — no broken URLs in docs

## 5. Merge & Tag

- [ ] Merge `develop` → `master` (PR or direct)
- [ ] Create a git tag: `git tag v0.9.5.1 && git push origin v0.9.5.1`
- [ ] Create a GitHub Release with the `NEWS.md` entry as release notes

## 6. Pkgdown Site

- [ ] `pkgdown::build_site()` locally — no errors
- [ ] Push to `master` to trigger the `pkgdown.yaml` workflow
- [ ] Verify live site at <https://krose.github.io/entsoeapi/>

## 7. (When ready) CRAN Submission

- [ ] `rhub::rhub_doctor(gh_url = "https://github.com/krose/entsoeapi")` — multi-platform check
- [ ] `devtools::spell_check()` — no spelling errors in docs
- [ ] Review [CRAN policies](https://cran.r-project.org/web/packages/policies.html)
- [ ] `devtools::submit_cran()` or upload via <https://cran.r-project.org/submit.html>
- [ ] Reply promptly to CRAN maintainer emails (within 2 weeks)

## 8. Announce

- [ ] Post on Mastodon with `#rstats` — short example showing new functionality
- [ ] Submit to [rweekly.org](https://rweekly.org/submit) (open a PR to their repo)
- [ ] Close / reference any related GitHub issues in the release notes