Skip to content

Commit d154a8b

Browse files
committed
Add initial project structure, configuration files, and workflows
- Create .Rbuildignore and .gitignore for ignoring build artifacts and IDE files - Add DESCRIPTION file with package metadata and URLs - Include README files for documentation - Set up GitHub Actions workflows for R CMD check, test coverage, and documentation rendering - Add Makefile for common development tasks - Introduce configuration files for VSCode and skills management - Implement initial project documentation structure in altdoc
1 parent 0ed9e22 commit d154a8b

23 files changed

Lines changed: 549 additions & 1 deletion

.Rbuildignore

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,38 @@
22
^\.Rproj\.user$
33
^LICENSE\.md$
44
^README\.Rmd$
5+
^[.]?air[.]toml$
6+
^\.vscode$
7+
^\.github$
8+
^docs$
9+
^altdoc$
10+
^\.agents$
11+
^skills$
12+
^skills-lock\.json$
13+
^\.adal$
14+
^\.augment$
15+
^\.codebuddy$
16+
^\.commandcode$
17+
^\.continue$
18+
^\.cortex$
19+
^\.crush$
20+
^\.factory$
21+
^\.goose$
22+
^\.iflow$
23+
^\.junie$
24+
^\.kilocode$
25+
^\.kiro$
26+
^\.kode$
27+
^\.mcpjam$
28+
^\.mux$
29+
^\.neovate$
30+
^\.openhands$
31+
^\.pi$
32+
^\.pochi$
33+
^\.qoder$
34+
^\.qwen$
35+
^\.roo$
36+
^\.trae$
37+
^\.vibe$
38+
^\.windsurf$
39+
^\.zencoder$

.claude/settings.local.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(grep -E '\\\\.\\(Rmd|md|LICENSE|NAMESPACE\\)$')"
5+
]
6+
}
7+
}

.github/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.html

.github/workflows/R-CMD-check.yaml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
2+
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
3+
on:
4+
push:
5+
branches: [main, master]
6+
pull_request:
7+
8+
name: R-CMD-check.yaml
9+
10+
permissions: read-all
11+
12+
jobs:
13+
R-CMD-check:
14+
runs-on: ${{ matrix.config.os }}
15+
16+
name: ${{ matrix.config.os }} (${{ matrix.config.r }})
17+
18+
strategy:
19+
fail-fast: false
20+
matrix:
21+
config:
22+
- {os: macos-latest, r: 'release'}
23+
- {os: windows-latest, r: 'release'}
24+
- {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
25+
- {os: ubuntu-latest, r: 'release'}
26+
- {os: ubuntu-latest, r: 'oldrel-1'}
27+
28+
env:
29+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
30+
R_KEEP_PKG_SOURCE: yes
31+
32+
steps:
33+
- uses: actions/checkout@v4
34+
35+
- uses: r-lib/actions/setup-pandoc@v2
36+
37+
- uses: r-lib/actions/setup-r@v2
38+
with:
39+
r-version: ${{ matrix.config.r }}
40+
http-user-agent: ${{ matrix.config.http-user-agent }}
41+
use-public-rspm: true
42+
43+
- uses: r-lib/actions/setup-r-dependencies@v2
44+
with:
45+
extra-packages: any::rcmdcheck
46+
needs: check
47+
48+
- uses: r-lib/actions/check-r-package@v2
49+
with:
50+
upload-snapshots: true
51+
build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")'

.github/workflows/altdoc.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
on:
2+
push:
3+
branches: [main, master]
4+
workflow_dispatch:
5+
6+
name: altdoc
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
altdoc:
13+
runs-on: ubuntu-latest
14+
env:
15+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- uses: r-lib/actions/setup-r@v2
20+
with:
21+
use-public-rspm: true
22+
23+
- uses: r-lib/actions/setup-r-dependencies@v2
24+
with:
25+
extra-packages: any::altdoc
26+
needs: website
27+
28+
- name: Render docs
29+
run: altdoc::render_docs(freeze = FALSE)
30+
shell: Rscript {0}
31+
32+
- name: Deploy to GitHub Pages
33+
uses: JamesIves/github-pages-deploy-action@v4
34+
with:
35+
branch: gh-pages
36+
folder: docs
37+
clean: true
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
on:
2+
push:
3+
branches: [main, master]
4+
pull_request:
5+
branches: [main, master]
6+
7+
name: format-check
8+
9+
jobs:
10+
air:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
- uses: posit-dev/setup-air@v1
15+
- run: air format . --check
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
2+
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
3+
on:
4+
push:
5+
branches: [main, master]
6+
pull_request:
7+
8+
name: test-coverage.yaml
9+
10+
permissions: read-all
11+
12+
jobs:
13+
test-coverage:
14+
runs-on: ubuntu-latest
15+
env:
16+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
17+
18+
steps:
19+
- uses: actions/checkout@v4
20+
21+
- uses: r-lib/actions/setup-r@v2
22+
with:
23+
use-public-rspm: true
24+
25+
- uses: r-lib/actions/setup-r-dependencies@v2
26+
with:
27+
extra-packages: any::covr, any::xml2
28+
needs: coverage
29+
30+
- name: Test coverage
31+
run: |
32+
cov <- covr::package_coverage(
33+
quiet = FALSE,
34+
clean = FALSE,
35+
install_path = file.path(normalizePath(Sys.getenv("RUNNER_TEMP"), winslash = "/"), "package")
36+
)
37+
print(cov)
38+
covr::to_cobertura(cov)
39+
shell: Rscript {0}
40+
41+
- uses: codecov/codecov-action@v5
42+
with:
43+
# Fail if error if not on PR, or if on PR and token is given
44+
fail_ci_if_error: ${{ github.event_name != 'pull_request' || secrets.CODECOV_TOKEN }}
45+
files: ./cobertura.xml
46+
plugins: noop
47+
disable_search: true
48+
token: ${{ secrets.CODECOV_TOKEN }}
49+
50+
- name: Show testthat output
51+
if: always()
52+
run: |
53+
## --------------------------------------------------------------------
54+
find '${{ runner.temp }}/package' -name 'testthat.Rout*' -exec cat '{}' \; || true
55+
shell: bash
56+
57+
- name: Upload test results
58+
if: failure()
59+
uses: actions/upload-artifact@v4
60+
with:
61+
name: coverage-test-failures
62+
path: ${{ runner.temp }}/package

.gitignore

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,38 @@
22
.Rhistory
33
.RData
44
.httr-oauth
5-
.DS_Store
65
.quarto
6+
7+
.DS_Store
8+
docs/
9+
altdoc/freeze.rds
10+
11+
# Agent-specific skill symlink directories (canonical source is .agents/)
12+
skills/
13+
.adal/
14+
.augment/
15+
.codebuddy/
16+
.commandcode/
17+
.continue/
18+
.cortex/
19+
.crush/
20+
.factory/
21+
.goose/
22+
.iflow/
23+
.junie/
24+
.kilocode/
25+
.kiro/
26+
.kode/
27+
.mcpjam/
28+
.mux/
29+
.neovate/
30+
.openhands/
31+
.pi/
32+
.pochi/
33+
.qoder/
34+
.qwen/
35+
.roo/
36+
.trae/
37+
.vibe/
38+
.windsurf/
39+
.zencoder/

.vscode/extensions.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"recommendations": [
3+
"Posit.air-vscode"
4+
]
5+
}

.vscode/settings.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"files.exclude": {
3+
".adal": true,
4+
".agents": true,
5+
".augment": true,
6+
".codebuddy": true,
7+
".commandcode": true,
8+
".continue": true,
9+
".cortex": true,
10+
".crush": true,
11+
".factory": true,
12+
".goose": true,
13+
".iflow": true,
14+
".junie": true,
15+
".kilocode": true,
16+
".kiro": true,
17+
".kode": true,
18+
".mcpjam": true,
19+
".mux": true,
20+
".neovate": true,
21+
".openhands": true,
22+
".pi": true,
23+
".pochi": true,
24+
".qoder": true,
25+
".qwen": true,
26+
".roo": true,
27+
".trae": true,
28+
".vibe": true,
29+
".windsurf": true,
30+
".zencoder": true,
31+
"skills": true
32+
},
33+
"[r]": {
34+
"editor.formatOnSave": true,
35+
"editor.defaultFormatter": "Posit.air-vscode"
36+
},
37+
"[quarto]": {
38+
"editor.formatOnSave": true,
39+
"editor.defaultFormatter": "quarto.quarto"
40+
}
41+
}

0 commit comments

Comments
 (0)