[edit, 17 August 2019; I (Bob) just want to make it clear that this proposal was never ratified by the SGB and no longer reflects my views on the way Stan should be run. If there’s an official document on how the TWG is being run, please edit this document to start with a link to that document and indicate that this disucssion is outdated. Thanks. The only thing I know of now outlining the role of the TWG is this Discourse post announcing Sean Talts as new Director.]
The Stan governing gody asked me to put together a plan for the technical working group and how the project's technical aspects will be managed. Comments are welcome.Note: I would like to change the name of my own role from “chair of technical working group” to “technical director”, but I can’t do that without approval from the governing body. I don’t want to run the technical working group as a committee, as should be clear from the outline below.
Stan Technical Working Group
Stan governing body
The governing body is a committee charged with final authority for all decisions related to Stan and controls the direct Stan budget through NumFOCUS. It is also in charge of appointing the executive director and chair of the technical working group.
The governing body has the authority to override any decisions made by the executive director and has the authority to replace
Executive director
All operational decisions rest with the executive director, who is appointed by the governing body. The governing body may replace the executive director at any time.
The executive director has the authority to override decisions made by the technical working group chair.
Technical working group chair
The governing body appoints a chairperson of the technical working group. The governing body may replace the technical working group chair at any time.
The technical group chair has the authority to override any decisions made by a technical lead.
Technical lead
Each functional module of Stan will have a single technical lead. The lead is responsible for creating the roadmap for the module and making all technical decisions with respect to their module. The technical leads are appointed by the technical working group chair and may be replaced by the chair at any time.
The technical lead has the authority to override any decision made by a reviewer in the module they are leading.
Reviewer
With sustained non-trivial development activity (this is not calendar related, but scope of contributoion related), developers will be asked to start reveiwing pull requests by a technical lead. These initial reviews will be backed up by an existing reviewer. After this trial period, the developer will be promoted to reviewer status and given permission to approve and merge pull requests.
A reviewer has the authority to override any decisions with respect to code, documentation, and testing made by a developer or contributor as part of a pull request (including another reviewer or the chair of the technical working group).
Developer
With sustained non-trivial contribution activity, contributors will be considered to be Stan developers by the relevant technical lead(s). It is the responsibility of the technical leads to recognize developers and invite them to become part of the developer team. Developers will have authority to create branches and work directly on stan-dev.
Contributor
Anyone who has submitted a pull request that has been reviewed and merged is considered a contributor. Such contributions may range from typo fixes in the doc to a new feature in C++. There is no official process for recognizing contributors—anyone who contributes is considered a contributor.
Background references
Current appoinments
Governing body members:
- Andrew Gelman (chair)
- Breck Baldwin (presiding officer)
- Daniel Lee (secretary)
- Julie Bertrand
- Michael Betancourt
- Jonah Gabry
- Daniel Simpson
- Sean Talts
- Lizzie Wolkovich
Executive director
- Breck Baldwin
Technical working group chair
- Bob Carpenter
Technical leads
Core Stan
- Math Library: Daniel Lee
- Language: Sean Talts
- Algorithms: Michael Betancourt
- Services: Mitzi Morris
Interfaces to Core Stan
- CmdStan: Mitzi Morris
- RStan: Ben Goodrich
- PyStan: Allen Riddell
- MatlabStan: Brian Lau
- Stan.jl: Rob Goedman
- StataStan: Robert Grant
- MathematicaStan: Vincent Picaud
R packages and extensions
- rstanarm: Ben Goodrich
- brms: Paul Bürkner
- ShinyStan: Jonah Gabry
- rstantools: Jonah Gabry
- loo: Jonah Gabry
- bayesplot: Jonah Gabry
Code reviewers
Technically, reviewing (merge) privilege is on a per-module basis, but I’m not listing the modules here.
- Jeffrey Arnold
- Ben Bales
- Michael Betancourt
- Steve Bronder
- Marcus Brubaker
- Paul Bürkner
- Bob Carpenter
- Rok Češnovar
- Jonah Gabry
- Rob Goedman
- Ben Goodrich
- Robert L. Grant
- Jiqiang Guo
- Ari Hartikainen
- Marco Inacio
- Brian Lau
- Daniel Lee
- Charles Margossian
- Mitzi Morris
- Vincent Picaud
- Allen Riddell
- Krzysztof Sakrejda
- Sean Talts
- Rob Trangucci
- Sebastian Weber
- Matthijs Vákár
- Yi Zhang
Developers
- Imad Ali
- Andrew Gelman
- Andrew Johnson
- Rayleigh Lei
- Edward A. Roulades
- Dan Simpson
- Erik Štrumbelj
- Aki Vehtari