ci: keep Cloud Agent install revision-agnostic - #258
Conversation
Add a versioned .cursor/environment.json plus .cursor/install.sh that provision the R toolchain and CRAN dependencies (mirt, testthat, rcmdcheck, roxygen2) as prebuilt binaries and install the checked-out aFIPC package into the R user library. - R comes from the CRAN 'release' channel to match the r.yml CI. - CRAN packages come from r2u as Ubuntu binaries to avoid compiling mirt. - install step is idempotent and self-contained. - .cursor is added to .Rbuildignore so R CMD check stays clean. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Stop R CMD INSTALL of the current tree in .cursor/install.sh so environment-build snapshots cannot freeze library(aFIPC) at the build revision. Detect Ubuntu codename/arch, require CRAN deps before skipping the toolchain, and document .cursor/ in ARCHITECTURE.md, AGENTS.md, and CLAUDE.md. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
There was a problem hiding this comment.
Review: Cloud Agent install stays revision-agnostic
Prefer this PR over #257 (aa0476f). Close #257; do not merge it.
What was verified
- Diff
35e4498...0718debis 6 files, +68/−2.R/aFIPC.Randtests/are unchanged. - All #257 blockers are addressed:
.cursor/install.shno longerR CMD INSTALLs the current tree.ARCHITECTURE.md§1/§8 documents.cursor/.- Apt uses
/etc/os-releaseVERSION_CODENAMEanddpkg --print-architecture. toolchain_readyrequires R andmirt/testthat/roxygen2/rcmdcheck.
- Local evidence on this head:
bash -n .cursor/install.shOK;environment.jsonis valid JSON (name+install);bash .cursor/install.shis idempotent (aFIPC toolchain ready, R 4.6.1);.Rbuildignoreexcludes.cursor/;install.shis mode100755. - Linking-contract smoke:
testthat::test_local(filter = "fixed-parameter-calibration")→[ FAIL 0 | WARN 0 | SKIP 0 | PASS 24 ]. - Docs lint matching CI (
markdownlint-cli2@0.18.1) is clean on the documented set. - CodeRabbit CLI 0.7.3 is present here but
coderabbit auth login --agenttimed out (exit 124). This review is not a CodeRabbit result.
Residual (not merge-blocking)
.cursor/install.shline 11 says the CRAN apt channel is “matching r.yml”. CI installs R viar-lib/actions/setup-r+ public RSPM. The intent (release-channel R, no source-build of mirt) is right; soften that comment in a follow-up.- Line 50
R --version | head -1underset -o pipefailcan SIGPIPE. It did not fail here (exit 0). CONTRIBUTING.mdstill has no Cloud Agent note. Optional.
Merge contract
Do not merge until required checks (R CMD check check, Code Quality quality, Security Scan including trivy-fs) are green on 0718deb and a non-author approval lands. Do not self-approve. Hosted jobs are still queued on the org runner; that is not a content defect.
Next product gap (separate PR)
Keep #189 as the issue #7 safety-net vehicle. Do not mix that work into this branch. Do not land Bolt PRs that edit R/aFIPC.R until that suite is on master.
This repository has no frontend. Do not add Figma or Storybook here.
Sent by Cursor Automation: Fix Issues
Address review on #257 (folds in #258): - .cursor/install.sh no longer R CMD INSTALLs the current tree. Environment builds snapshot install and do not rerun it, so a source install would freeze library(aFIPC) at the build revision. Documented checks use testthat::test_local() / rcmdcheck against the checkout. - Toolchain readiness now gates on R AND mirt/testthat/roxygen2/rcmdcheck. - apt lines derive Ubuntu codename from /etc/os-release and arch from dpkg --print-architecture instead of hardcoding noble/amd64. - Document .cursor/ in ARCHITECTURE.md (1/8), AGENTS.md, CLAUDE.md and correct the repository URL to ContextualWisdomLab/aFIPC. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
@coderabbitai review |
|
|
Warning Review limit reached
Next review available in: 36 minutes Limit details: You’ve used all 1 included review currently available under your plan. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
|
seonghobae
left a comment
There was a problem hiding this comment.
Approving. #258 is the correct successor to #257: it keeps the Cloud Agent environment but makes install revision-agnostic (no R CMD INSTALL of the current tree, which environment builds would freeze), gates toolchain_ready() on R plus mirt/testthat/roxygen2/rcmdcheck, and derives the Ubuntu codename/arch from /etc/os-release + dpkg --print-architecture instead of hardcoding noble/amd64. .cursor/ is documented in ARCHITECTURE.md/AGENTS.md/CLAUDE.md.
Validated the equivalent change end-to-end on a fresh checkout: install.sh provisions R 4.6.1 + r2u binaries, testthat::test_local() passes 55/55 via source loading (no persistent install needed), and rcmdcheck is clean (0 errors/0 warnings). All required checks are green here. A follow-up will add per-repo signed-by APT keyrings and a post-install version report (CodeRabbit hardening suggestions) so those don't block this merge.


Pull Request
Summary
aa0476f). Keeps the Cloud Agent environment, but makesinstallrevision-agnostic..cursor/install.shno longerR CMD INSTALLs the current tree. Environment builds snapshotinstalland do not rerun it, so a source install would freezelibrary(aFIPC)at the build revision. Documented checks already usetestthat::test_local()/rcmdcheckagainst the checkout.mirt/testthat/roxygen2/rcmdcheck, and apt lines use/etc/os-releaseVERSION_CODENAMEplusdpkg --print-architectureinstead of hardcodednoble/amd64..cursor/inARCHITECTURE.md§1/§8,AGENTS.md, andCLAUDE.md. Points the architecture repo URL at ContextualWisdomLab/aFIPC.Do not merge #257 at
aa0476f. Land this successor instead.Validation
R CMD check(or equivalent CI) succeeded —testthat::test_local()→[ FAIL 0 | WARN 0 | SKIP 0 | PASS 55 ]after removing the source install.bash -n .cursor/install.sh;environment.jsonis valid JSON; markdownlint-cli2@0.18.1 pending in CI.bash .cursor/install.shsucceeds when R 4.6.1 + CRAN deps are already present (aFIPC toolchain ready).Risk and Rollback
Behavioral Impact
R/aFIPC.RunchangedChecklist
README.md,ARCHITECTURE.md,CONTRIBUTING.md) as needed —ARCHITECTURE.md,AGENTS.md,CLAUDE.md.