Modernising rstan's development infrastructure
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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