Skip to content

Merge latest development in main - #8

Merged
achubaty merged 26 commits into
mainfrom
development
May 25, 2026
Merged

achubaty merged 26 commits into
mainfrom
development

Conversation

@achubaty

Copy link
Copy Markdown
Contributor

Summary

Modernize fpCompare against current best practices (r-pkgs.org, R-extensions manual, devtools/usethis conventions). Brings the package
onto testthat 3 + pkgdown 2, refreshes the GitHub Actions matrix, raises the minimum R version to 4.1 to match current dependency
requirements, and adds standard community files (CITATION, Code of Conduct, Contributing). Local R CMD check is clean (0 errors / 0
warnings / 0 notes), CI is green across all 5 matrix jobs, and the current CRAN check page is OK across all 13 flavors. Version bumped to
0.2.6 for the next CRAN release.

Changes since master

CI & infrastructure

  • Replaced the 13-job R-CMD-check matrix with the standard r-lib template (macOS/Windows release + Ubuntu devel/release/oldrel-1)
  • Switched test-coverage workflow to the modern cobertura + codecov/codecov-action@v6 flow
  • Bumped actions/checkout to v6, pinned third-party actions by SHA
  • Earlier work on this branch: moved CI to ubuntu-latest, updated workflows for Node 20

Package metadata

  • Bumped version to 0.2.6
  • Dropped stale Date: field; let roxygen2 8.x manage its own version field
  • Raised Depends: R (>= 3.6) → R (>= 4.1) to match the current testthat requirement
  • Added Config/testthat/edition: 3, Config/Needs/coverage: covr, Config/Needs/website: pkgdown
  • Added pkgdown site to the URL: field; added withr to Suggests

R source

  • Added a package-level help page (R/fpCompare-package.R with "_PACKAGE" sentinel)
  • Removed deprecated @docType methods tag
  • Factored out a fp_tolerance() helper that supplies a sensible default when options(fpCompare.tolerance) is unset — operators stay
    correct even if the option is cleared
  • Converted operator-table roxygen block to a markdown table

Tests

  • Renamed tests/test-all.R → tests/testthat.R (usethis convention)
  • Replaced expect_true/expect_false with specific expectations for better failure output
  • Added tests for vector recycling, NA/Inf propagation, custom tolerance via withr::local_options(), and fallback when the option is
    unset
  • 23 tests pass under testthat 3 edition

Docs

  • _pkgdown.yml: HTTPS, dropped pkgdown 1.x bootswatch syntax, template.bootstrap: 5
  • README: HTTPS-only badges, fixed R-CMD-check badge to the new actions/workflows/*.yaml URL, switched install recommendation to
    pak::pak(), added a Code of Conduct reference
  • Vignette: fixed telorance typo, switched install instructions to pak::pak()

Community files

  • inst/CITATION enables citation("fpCompare")
  • .github/CODE_OF_CONDUCT.md (Contributor Covenant 2.1)
  • .github/CONTRIBUTING.md (tidyverse template)

Housekeeping

  • Replaced .lintr with air.toml (air formatter)
  • Aligned .gitignore with GitHub's canonical R template
  • Dropped the bundled full GPL-3 text from the build (per R-exts) and added a rendered LICENSE.md for pkgdown only
  • Refreshed .Rbuildignore (add .claude/, .DS_Store, air.toml, LICENSE.md)
  • Older work on this branch: dropped R 3.4/3.5 support, copyright update (Queen → King), markdown documentation, vignette polish, deleted
    vendored docs/

Test plan

  • Local R CMD check — 0 errors / 0 warnings / 0 notes
  • devtools::test() — 23/23 passing
  • CI: R-CMD-check matrix green on macOS, Windows, Ubuntu (devel/release/oldrel-1)
  • CI: test-coverage workflow green
  • citation("fpCompare") renders cleanly
  • Current CRAN check page OK across all 13 flavors (v0.2.4)
  • pkgdown site builds (will run after merge to master)
  • Revdep check before CRAN submission

Notes

  • cran-comments.md has been refreshed for the upcoming release.
  • The PR includes ~18 older commits that were already on development before the modernization work began (R 3.4/3.5 drops, copyright
    update, etc.) — these were never merged to master.

website now being buildt + deployed to gh-pages branch
  Update R-CMD-check, pkgdown, and test-coverage workflows to match the
  current r-lib/actions v2 templates: slim R-CMD-check matrix to standard
  5 jobs (macOS/Windows release + Ubuntu devel/release/oldrel-1), switch
  test-coverage to the cobertura + codecov-action v6 flow, bump
  actions/checkout to v6, and pin third-party actions by SHA.
Align .gitignore with the canonical GitHub R template (add .RDataTmp,
  .Ruserdata, R CMD build/check artefacts, .httr-oauth, knitr/rmarkdown
  caches, .Renviron, docs/, rsconnect/, revdep/, .DS_Store).

  Add .claude/, .DS_Store, air.toml, and LICENSE.md to .Rbuildignore;
  drop entries for the removed .lintr and full GPL-3 LICENSE file (R-exts
  discourages shipping yet another copy of the GNU COPYING file).

  Replace the lintr config with an air formatter config; ship a rendered
  LICENSE.md (excluded from the build tarball) so pkgdown can link to
  the full GPL-3 text.
DESCRIPTION:
  * drop stale Date field and bump R minimum to 4.1 to match the
    current testthat (3.3.2) requirement
  * add Config/testthat/edition: 3 and Config/Needs/{coverage,website}
  * add pkgdown site to URL
  * add withr to Suggests; let roxygen2 8.x manage its own version field

  R source:
  * add package-level help page via R/fpCompare-package.R ("_PACKAGE")
  * remove deprecated @doctype methods tag
  * convert operator-table roxygen block to a markdown table
  * factor out fp_tolerance() helper that supplies a default when
    options(fpCompare.tolerance) is unset, making the operators robust
    against accidental option clearing
  * re-document; switch examples to ## for inline comments
* rename tests/test-all.R to tests/testthat.R (usethis convention) and
    use the standard testthat preamble
  * replace expect_true/expect_false with specific expectations for
    better failure output
  * add tests for vector recycling, NA/Inf propagation, custom tolerance
    via withr::local_options(), and fallback when the option is unset
  * drop the seed-dependent jitter-near-epsilon test in favour of a
    deterministic tolerance-boundary test
* _pkgdown.yml: switch to HTTPS, drop pkgdown 1.x bootswatch syntax,
    use template.bootstrap: 5
  * README: HTTPS-only badges, fix R-CMD-check badge to the new
    actions/workflows/*.yaml URL, recommend pak::pak() for GitHub
    install, add a Code of Conduct reference
  * vignette: fix "telorance" typo, switch install instructions to
    pak::pak(), use ## for inline comments inside code blocks
* inst/CITATION: enables citation("fpCompare") via bibentry()
  * .github/CODE_OF_CONDUCT.md: Contributor Covenant 2.1
  * .github/CONTRIBUTING.md: tidyverse contributing guidelines
* NEWS.md: note R 4.1 minimum, tolerance fallback, and infrastructure
    modernization
  * cran-comments.md: refresh test environments and submission notes
Resolve conflicts:
  * .Rbuildignore: combine modernization entries with main's CRAN
    release artefact pattern. Drop obsolete CRAN-RELEASE pattern
    (predates usethis 2.0).
  * docs/: honour development's deletion of the vendored pkgdown site
    (commit 915888d); pkgdown output is now generated by CI, not
    committed.
  * Drop stale CRAN-RELEASE (2019) and CRAN-SUBMISSION (v0.2.4) stubs
    from main; usethis::submit_cran() will regenerate as needed.
@achubaty
achubaty merged commit a82a2d9 into main May 25, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant