stan-dev / stan-dev/rstan

Modernising rstan's development infrastructure

Open
#907 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
R
Stars
1.1k
Forks
266
Avg merge
2h 56m
Merged PRs (30d)
1

Description

Summary

{rstan} does not use modern R infrastructure packages potentially limiting contributions and affecting maintainability. Should this be fixed?

Body

rstan was created* in 2011 when the R package development landscape looked quite different. Because of this rstan does not use many tools such as testthat and roxygen2 that are now widely used, including in other Stan developed R packages such as cmdstanr and loo.

I should stress that I don't think that not using modern tools makes rstan worse to use now, but I do think it may be having an effect on rstan's development. Specifically, I think that using not using modern tools has the following effects:

  • It makes it overall more difficult for new contributors to contribute to rstan as they are likely more familiar with modern tools
  • It makes updating some parts of rstan which use older tools such as the current unit tests more difficult.

Having said this updating the tools used is not without it's costs:

  • It would be a lot of work!
  • Substantial care would have to be taken to maintain backwards compatibility around things like exports
  • It may disrupt the workflow of current maintainers.

From my perspective the benefits outweigh the costs, especially if the implementation burden can be spread widely. Clearly, however, that is just my opinion, so I wanted to open this issue to generate discussion and to see if there is support for this sort of change in the community.

Lastly, I would like to thanks all of the many people who have contributed to rstan over the years!

cc @rok-cesnovar @jgabry

*Or at least that's when the git repository was created

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by reviewing rstan's current package development, unit-test, export, and documentation setup, then compare it with cmdstanr and loo's use of testthat and roxygen2. Define a staged migration plan that preserves exports and backwards compatibility; completion would require community agreement on the scope and implementation path.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
build-system, testing, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.