#RpackageAdvent2025
Anyways. Lots to explore: new datasets, friendly/informative summary messages of scraped variables, tabling of latent correlations...

Next update will probably be less function-forward. @drmowinckels.io's #RPackageAdvent2025 thread has got me exited about website and documentation improvements.
January 7, 2026 at 4:49 PM
My #RPackageAdvent2025 recap is live! 📦✨ Get the complete guide to modern R package development: setup, docs, testing, CI/CD, and CRAN submission. All 25 days of tips, tools, and best practices in one place! Dive in! #RStats #RPackageDevelopment
Link: https://drmo.site/8ny3eU
December 28, 2025 at 10:48 PM
Excited to share my R Package Development Advent Calendar 2025 summary! 🎁 All 25 days of modern R pkg dev in one guide. Master `usethis`, GitHub Actions, `pkgdown`, `testthat`, & CRAN prep. Level up your R packages! 🚀 #RStats #RPackageAdvent2025 #Rpkg https://drmo.site/8ny3eU
December 28, 2025 at 10:37 PM
Your Next Steps:
✨ Apply these tools to your packages
📚 Bookmark for reference
🤝 Share knowledge with community
🚀 Build amazing R packages

Thank you for following #RPackageAdvent2025! Now go make the R ecosystem better! 🎄📦
Keep Learning: r-pkgs.org | usethis.r-lib.org
R Packages (2e)
Learn how to create a package, the fundamental unit of shareable, reusable, and reproducible R code.
r-pkgs.org
December 26, 2025 at 11:01 AM
We Made It! 🎉

25 days. Complete modern R package development workflow. From usethis automation to CRAN submission. You have everything you need!

#rstats #CRAN #RPackageAdvent2025 #ThatsAWrap
December 26, 2025 at 11:01 AM
Day 25: CRAN Submission Checklist and cran-comments.md

Final steps for successful CRAN submission.

Pro Tip: Be proactive about communicating any unusual aspects of your package to CRAN reviewers.

#rstats #RPackageAdvent2025
December 25, 2025 at 11:01 AM
Day 24: rlang - Tidy Evaluation in Packages

Handle user expressions safely in package functions.

Pro Tip: Use {{ }} (embrace) for single arguments, ... for multiple arguments.
Resources: rlang.r-lib.org

#rstats #RPackageAdvent2025
December 24, 2025 at 11:02 AM
Oh wow, that's a neat/powerful idea. Do you have an exemplar of this in action (that's convenient for you to recall)?

I think for our next release I'm just going to be working my way through a bunch of the suggestions in your #RPackageAdvent2025 (pkgdown themes!!!), and this one sounds really cool
December 23, 2025 at 4:44 PM
Day 23: cli - Beautiful Command Line Interfaces

Create user-friendly messages and progress indicators.

Pro Tip: Use semantic markup like {.fn function_name} and {.val value} for consistent formatting.
Resources: cli.r-lib.org

#RpackageAdvent2025 #rstats
December 23, 2025 at 11:01 AM
Day 22: S3, S4, and S7 Object Systems

Create robust object-oriented interfaces with R's object systems.

Pro Tip: Use S3 for simple classes, S4 for complex validation, S7 for modern OOP.
Resources: rconsortium.github.io/S7

#rstats #RPackageAdvent2025
December 22, 2025 at 11:01 AM
Day 21: rhub - Multi-Platform Testing (Thread)

Test your package on multiple platforms before CRAN submission.

Resources: r-hub.github.io/rhub/

#rstats #RPackageAdvent2025
December 21, 2025 at 11:01 AM
Day 20: Performance Testing with bench

Profile and benchmark your package functions.

Pro Tip: Include benchmarks in your test suite to catch performance regressions.
Resources: bench.r-lib.org

#rstats #RPackageAdvent2025
December 20, 2025 at 11:00 AM
Day 19: goodpractice - Package Health Checks

Get comprehensive feedback on package quality

goodpractice::gp()

Checks include:
⬩ Function length and complexity
⬩ Namespace usage
⬩ DESCRIPTION completeness
⬩ Code coverage

Resources: github.com/mangothecat/goodpractice

#rstats #RPackageAdvent2025
GitHub - ropensci-review-tools/goodpractice: Advice on R Package Building
Advice on R Package Building. Contribute to ropensci-review-tools/goodpractice development by creating an account on GitHub.
github.com
December 19, 2025 at 11:01 AM
Day 18: Use linters!

Maintain consistent, readable code style automatically.

Usage:
lintr::lint_package()
styler::style_pkg()

Pro Tip: Add both to pre-commit hooks for automatic code formatting.
Resources: lintr.r-lib.org

#rstats #RPackageAdvent2025
December 18, 2025 at 11:01 AM
Day 17: vcr - Recording API Calls for Tests

Record real API responses for reliable, fast tests without hitting live APIs.

Pro Tip: Commit cassette files to git for reproducible tests across environments.
Resources: docs.ropensci.org/vcr

#rstats #RPackageAdvent2025
December 17, 2025 at 11:02 AM
Day 16: Testing with Mocks using testthat
Test functions that depend on external resources using testthat's built-in mocking.

Pro Tip: Use local_mocked_bindings() to mock functions within the test scope only.
Resources: testthat.r-lib.org

#rstats #RPackageAdvent2025
December 16, 2025 at 11:01 AM
Day 15: Snapshot Testing with testthat

Test complex outputs that are hard to specify exactly.

Pro Tip: Review snapshot changes carefully - they capture everything, including whitespace and formatting.

#rstats #RPackageAdvent2025
December 15, 2025 at 11:01 AM
Day 14: testthat 3rd Edition Features
Modern testing with the latest testthat features.

Setup:
usethis::use_testthat(3)

Pro Tip: Use test_that() with descriptive names that explain what should happen.
Resources: testthat.r-lib.org

#rstats #RPackageAdvent2025
December 14, 2025 at 11:01 AM
Day 13: covr - Test Coverage Reporting

Track how much of your code is tested.

use #nocov for code you don't want to cover (like basic R functions etc)

Pro Tip: Focus on testing critical functions thoroughly rather than chasing 100%.
Resources: covr.r-lib.org

#rstats #RPackageAdvent2025
December 13, 2025 at 11:01 AM
Day 12: README.Rmd Automation

Create dynamic READMEs that stay up-to-date with your code.

Setup:
usethis::use_readme_rmd()

Include these sections:

󠁯•󠁏󠁏 Installation instructions
󠁯•󠁏󠁏 Basic usage example
󠁯•󠁏󠁏 Lifecycle badges
󠁯•󠁏󠁏 Build status badges

#rstats #RPackageAdvent2025
December 12, 2025 at 11:01 AM
Day 11: NEWS.md and Semantic Versioning
Keep users informed about package changes.

Create NEWS.md:
usethis::use_news_md()

Pro Tip: Follow semantic versioning: MAJOR.MINOR.PATCH for breaking.feature.bugfix changes.

#rstats #RPackageAdvent2025
December 11, 2025 at 11:01 AM
Day 10: lifecycle - Managing Function Deprecation

Communicate changes to users gracefully with lifecycle badges.

Setup:
usethis::use_lifecycle()

Pro Tip: Use lifecycle stages: experimental → stable → superseded → deprecated.
Resources: lifecycle.r-lib.org

#rstats #RPackageAdvent2025
December 10, 2025 at 11:01 AM
Day 9: Vignettes with knitr and rmarkdown

Create comprehensive tutorials and examples for your package.

usethis::use_vignette("getting-started")

● Start with a clear problem statement
● Show realistic examples
● Keep computational time under 5 minutes

#rstats #RPackageAdvent2025
December 9, 2025 at 11:01 AM
I'm also a keen R package developer, and huge fan of the devtools/usethis/r-lib ecosystem which provides the tooling to make package development intuitive, (relatively) easy and joyous.

@drmowinckels.io is currently posting an amazing series on this: check out #RPackageAdvent2025
December 8, 2025 at 3:29 PM
Day 8: pkgdown Customization and Deployment

Transform your package documentation into a polished website.

Advanced customization:

Auto-deployment:
usethis::use_github_action("pkgdown")

Pro Tip: Group functions logically in the reference section for better navigation.

#rstats #RPackageAdvent2025
December 8, 2025 at 11:01 AM