Skip to content

Commit 2e7340b

Browse files
authored
Prepare pcatR 1.0.1 for CRAN (#2)
* Prepare pcatR 1.0.1 for CRAN * Record passing GitHub Actions checks * Address CRAN submission review feedback * Diagnose full R-devel manual checks * Expose R TeX macros to full manual checks * Install TeX index tool for R manuals * Record successful candidate archive checks * Record joint software copyright ownership * Update TinyTeX before installing manual tools * Record joint-copyright archive validation * Address final CRAN review corrections
1 parent 3e65815 commit 2e7340b

34 files changed

Lines changed: 2280 additions & 982 deletions

.Rbuildignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
^\.editorconfig$
66
^_pkgdown\.yml$
77
^README\.Rmd$
8-
^TECHNICAL_USER_GUIDE\.md$
98
^RELEASE_CHECKLIST\.md$
109
^PUBLISHING\.md$
1110
^ROADMAP\.md$
@@ -26,3 +25,7 @@
2625
^LICENSE\.md$
2726
^REFERENCES\.md$
2827
^RELEASE_VALIDATION\.md$
28+
^CRAN_SUBMISSION\.md$
29+
^pcatR_.*\.tar\.gz$
30+
^pcatR\.Rcheck$
31+
^tmp$

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ body:
1010
id: version
1111
attributes:
1212
label: pcatR version
13-
placeholder: "1.0.0"
13+
placeholder: "1.0.1"
1414
validations:
1515
required: true
1616
- type: textarea

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

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ jobs:
2222
- {os: ubuntu-latest, r: devel, http-user-agent: release}
2323
- {os: ubuntu-latest, r: release}
2424
- {os: ubuntu-latest, r: oldrel-1}
25+
- {os: ubuntu-22.04, r: '4.1'}
2526

2627
env:
2728
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
@@ -47,3 +48,118 @@ jobs:
4748
with:
4849
upload-snapshots: true
4950
build_args: 'c("--no-manual")'
51+
52+
cran-build:
53+
name: Build exact CRAN source archive (R release)
54+
runs-on: ubuntu-latest
55+
timeout-minutes: 30
56+
env:
57+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
58+
R_KEEP_PKG_SOURCE: yes
59+
60+
steps:
61+
- uses: actions/checkout@v7
62+
63+
- uses: r-lib/actions/setup-pandoc@v2
64+
65+
- uses: r-lib/actions/setup-r@v2
66+
with:
67+
r-version: release
68+
use-public-rspm: true
69+
70+
- uses: r-lib/actions/setup-r-dependencies@v2
71+
with:
72+
needs: check
73+
74+
- name: Build and identify the exact archive
75+
run: |
76+
R CMD build .
77+
test -f pcatR_1.0.1.tar.gz
78+
sha256sum pcatR_1.0.1.tar.gz | tee pcatR_1.0.1.sha256
79+
80+
- name: Upload exact source archive
81+
uses: actions/upload-artifact@v7
82+
with:
83+
name: pcatR-1.0.1-source
84+
path: |
85+
pcatR_1.0.1.tar.gz
86+
pcatR_1.0.1.sha256
87+
if-no-files-found: error
88+
89+
cran-check:
90+
name: Exact archive, full manual (R ${{ matrix.config.r }})
91+
needs: cran-build
92+
runs-on: ubuntu-latest
93+
timeout-minutes: 40
94+
strategy:
95+
fail-fast: false
96+
matrix:
97+
config:
98+
- {r: release}
99+
- {r: devel, http-user-agent: release}
100+
env:
101+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
102+
R_KEEP_PKG_SOURCE: yes
103+
104+
steps:
105+
- uses: actions/checkout@v7
106+
107+
- uses: actions/download-artifact@v8
108+
with:
109+
name: pcatR-1.0.1-source
110+
path: dist
111+
112+
- name: Verify the downloaded archive checksum
113+
working-directory: dist
114+
run: sha256sum --check pcatR_1.0.1.sha256
115+
116+
- uses: r-lib/actions/setup-pandoc@v2
117+
118+
- uses: r-lib/actions/setup-r@v2
119+
with:
120+
r-version: ${{ matrix.config.r }}
121+
http-user-agent: ${{ matrix.config.http-user-agent }}
122+
use-public-rspm: true
123+
124+
- uses: r-lib/actions/setup-tinytex@v2
125+
126+
- name: Install the PDF manual index tool
127+
run: |
128+
tlmgr update --self
129+
tlmgr install makeindex
130+
131+
- uses: r-lib/actions/setup-r-dependencies@v2
132+
with:
133+
needs: check
134+
135+
- name: Configure R manual TeX macros
136+
run: |
137+
R_TEXMF="$(R RHOME)/share/texmf/tex/latex"
138+
test -f "$R_TEXMF/Rd.sty"
139+
echo "TEXINPUTS=$R_TEXMF//:" >> "$GITHUB_ENV"
140+
141+
- name: Check the downloaded archive with CRAN settings
142+
id: cran-check
143+
continue-on-error: true
144+
run: R CMD check --as-cran dist/pcatR_1.0.1.tar.gz
145+
146+
- name: Diagnose a failed PDF manual build
147+
if: steps.cran-check.outcome == 'failure'
148+
continue-on-error: true
149+
working-directory: pcatR.Rcheck
150+
run: texi2dvi --pdf --batch pcatR-manual.tex
151+
152+
- name: Upload check logs
153+
if: always()
154+
uses: actions/upload-artifact@v7
155+
with:
156+
name: cran-check-${{ matrix.config.r }}
157+
path: |
158+
pcatR.Rcheck/00check.log
159+
pcatR.Rcheck/00install.out
160+
pcatR.Rcheck/pcatR-manual.*
161+
if-no-files-found: warn
162+
163+
- name: Confirm the CRAN check passed
164+
if: always()
165+
run: test "${{ steps.cran-check.outcome }}" = "success"

.github/workflows/pkgdown.yaml

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
name: pkgdown
22

33
on:
4+
pull_request:
45
push:
56
branches: [main]
67
release:
78
types: [published]
89
workflow_dispatch:
910

1011
permissions:
11-
contents: write
12+
contents: read
1213

1314
jobs:
14-
pkgdown:
15+
build:
16+
name: pkgdown
1517
runs-on: ubuntu-latest
16-
concurrency:
17-
group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }}
18+
permissions:
19+
contents: read
1820
env:
1921
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
2022
steps:
@@ -30,9 +32,39 @@ jobs:
3032
- name: Build site
3133
run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)
3234
shell: Rscript {0}
35+
36+
- name: Upload built site
37+
uses: actions/upload-artifact@v7
38+
with:
39+
name: pkgdown-site
40+
path: docs
41+
include-hidden-files: true
42+
if-no-files-found: error
43+
44+
deploy:
45+
name: Deploy pkgdown site
46+
if: github.event_name != 'pull_request'
47+
needs: build
48+
runs-on: ubuntu-latest
49+
permissions:
50+
contents: write
51+
concurrency:
52+
group: pkgdown-deploy
53+
cancel-in-progress: false
54+
steps:
55+
- uses: actions/checkout@v7
56+
with:
57+
persist-credentials: false
58+
59+
- name: Download built site
60+
uses: actions/download-artifact@v8
61+
with:
62+
name: pkgdown-site
63+
path: site
64+
3365
- name: Deploy to GitHub Pages
3466
uses: JamesIves/github-pages-deploy-action@v4
3567
with:
36-
folder: docs
68+
folder: site
3769
branch: gh-pages
3870
clean: true

CITATION.cff

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
cff-version: 1.2.0
22
message: "Please cite the software and the original pCAT article. Cite the 2026 article when using updated CFIR mappings."
33
title: "pcatR: Analyze and Visualize Pragmatic Context Assessment Tool Data"
4-
version: 1.0.0
5-
date-released: 2026-07-12
4+
version: 1.0.1
65
type: software
76
authors:
87
- family-names: Li
@@ -45,6 +44,20 @@ references:
4544
given-names: Jessica
4645
- family-names: Pfeiffer
4746
given-names: Paul N.
47+
- family-names: Robinson
48+
given-names: Claire H.
49+
- family-names: Evans
50+
given-names: Lacey
51+
- family-names: Damschroder
52+
given-names: Laura J.
53+
- family-names: Stewart
54+
given-names: Madison A.
55+
- family-names: Garlick
56+
given-names: Brittani
57+
- family-names: Sussman
58+
given-names: Jeremy B.
59+
- family-names: Nevedal
60+
given-names: Andrea L.
4861
journal: Implementation Science Communications
4962
year: 2026
5063
volume: 7

CRAN_SUBMISSION.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# pcatR 1.0.1 CRAN submission record
2+
3+
This file tracks the initial CRAN submission separately from the immutable
4+
GitHub `v1.0.0` release.
5+
6+
## Completed in the source tree
7+
8+
- Package version advanced to 1.0.1.
9+
- DESCRIPTION cites both source articles by DOI.
10+
- Source-derived content and adaptations are documented in `LICENSE.note` and
11+
installed `inst/COPYRIGHTS`.
12+
- Package citation is generated from DESCRIPTION metadata; both source articles
13+
have complete author lists.
14+
- Installed technical guides include PDF and self-contained HTML plus editable
15+
R Markdown source, CSS, and rendering instructions.
16+
- Unreleased-version metadata identifies the guide as a CRAN submission
17+
candidate rather than assigning version 1.0.1 a release date.
18+
- The documented minimum R version is exercised by an R 4.1 CI job.
19+
20+
## Required evidence before submission
21+
22+
- [x] Local source spelling and URL checks reviewed.
23+
- [x] `R CMD build` produces exactly `pcatR_1.0.1.tar.gz`.
24+
- [x] `R CMD check --as-cran pcatR_1.0.1.tar.gz` reviewed with no errors or
25+
warnings and all notes explained.
26+
- [x] Archive contents inspected for excluded development and release files.
27+
- [x] GitHub Actions pass on Windows, macOS, Linux, R devel, release, oldrel,
28+
and R 4.1.
29+
- [x] The exact uploaded source archive passes full-manual `--as-cran` checks
30+
under current R-release and R-devel.
31+
- [x] A clean local pkgdown build was inspected for its home, reference,
32+
article, citation, author, license, attribution, and release pages.
33+
- [x] Joint software copyright ownership is implemented consistently in
34+
`Authors@R`, `LICENSE`, `LICENSE.md`, and `inst/COPYRIGHTS`.
35+
- [ ] Retain Lilac Li's written approval of her authorship and copyright-holder
36+
role, Jae Man Park's maintainer role, the MIT and CC BY 4.0 licensing
37+
treatment, public distribution, and submission to CRAN.
38+
- [ ] Win-builder R-devel and R-release results reviewed.
39+
- [ ] Freeze one final source archive and retain its generated `.sha256` file;
40+
send those exact archive bytes to Win-builder and CRAN without rebuilding.
41+
- [ ] Maintainer obtains confirmation of the package name and source-content
42+
treatment from the original instrument authors before submission.
43+
- [ ] Maintainer submits only the source archive through CRAN's submission form
44+
and responds to CRAN's confirmation email.
45+
46+
Registry searches can show that a name is currently unused, but they do not
47+
reserve it. Recheck CRAN and Bioconductor immediately before submission.
48+
49+
## Pre-freeze automated evidence
50+
51+
Candidate workflows have successfully checked exact uploaded archives under
52+
current R-release and R-devel with full PDF manuals. The workflow now stores a
53+
generated `.sha256` file beside each archive and verifies it before both checks.
54+
55+
The final source head, run IDs, and SHA-256 are deliberately pending. Record
56+
them only after the external approvals are retained, the source is frozen, and
57+
one exact archive is selected for Win-builder and CRAN submission.
58+
59+
## Registry check recorded July 12, 2026
60+
61+
- `pcatR` was absent from the current CRAN package index.
62+
- CRAN's exact `src/contrib/Archive/pcatR/` path returned HTTP 404, indicating
63+
no historical archive at that exact case-sensitive name.
64+
- The exact package name was absent from Bioconductor's release package page.
65+
66+
These observations are point-in-time checks, not a reservation or acceptance
67+
decision.

DESCRIPTION

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
Package: pcatR
22
Type: Package
33
Title: Analyze and Visualize Pragmatic Context Assessment Tool Data
4-
Version: 1.0.0
4+
Version: 1.0.1
55
Authors@R: c(
66
person(
77
given = "Lilac",
88
family = "Li",
99
email = "lix@unk.edu",
10-
role = "aut",
10+
role = c("aut", "cph"),
1111
comment = c(
1212
URL = "https://www.unk.edu/academics/management/lilac-li.php"
1313
)
@@ -16,7 +16,7 @@ Authors@R: c(
1616
given = "Jae Man",
1717
family = "Park",
1818
email = "jaemanblp2@gmail.com",
19-
role = c("aut", "cre"),
19+
role = c("aut", "cre", "cph"),
2020
comment = c(
2121
URL = "https://www.linkedin.com/in/jae-man-park/"
2222
)
@@ -29,7 +29,10 @@ Description: Provides a reproducible workflow for importing, validating,
2929
updated Consolidated Framework for Implementation Research ('CFIR')
3030
mappings, describes team agreement and disagreement, compares repeated
3131
assessments, and creates implementation action-planning outputs. It does
32-
not calculate or claim a validated total pCAT scale score.
32+
not calculate or claim a validated total pCAT scale score. The instrument
33+
is described by Robinson and Damschroder (2023)
34+
<doi:10.1186/s43058-022-00380-5>; updated 'CFIR' mappings are from Domlyn
35+
et al. (2026) <doi:10.1186/s43058-026-00956-5>.
3336
License: MIT + file LICENSE
3437
Encoding: UTF-8
3538
Language: en-US

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
YEAR: 2026
2-
COPYRIGHT HOLDER: Jae Man Park
2+
COPYRIGHT HOLDER: Lilac Li and Jae Man Park

LICENSE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
MIT License
1+
# MIT License
22

3-
Copyright (c) 2026 Jae Man Park
3+
Copyright (c) 2026 Lilac Li and Jae Man Park
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

0 commit comments

Comments
 (0)