Description
Ideal Plan
Here is a proposal that I would like to get feedback on and discuss. This is my idea how this GitHub repository can work.
How Opensource Works
Successful open source projects, such as SymPy that I started 13 years ago, have:
- one or two owners/leaders
- 10-20 core developers with push access, those people can merge GitHub Pull
Requests (PRs) - hundreds of people who contribute PRs
- thousands of people who open issues and discuss them
How the Fortran Committee Could Work
The Fortran Standards document is compiled from LaTeX source code, and
proposals that eventually get approved must be of very high quality and must
succeed multiple rounds of approvals. Fundamentally this is no different to
opensource development.
Here is how it could work:
-
The J3 committee chair and the WG5 committee chair are the two owners/leaders
-
The J3 and WG5 comittee voting members are the core developers, who approve
proposals in the same way they currently do (the proposal must be submited at
the J3 website, then advocated at the committee, and eventually approved). -
Hundreds of people use this GitHub repository to submit PRs, where each PR is
a particular proposal. We all collaborate on the PRs, and if it gets merged,
it means that the proposal is of very high quality and is worth for the
committee to spend their time to consider it. We use issues to track how the
proposal gets processed by the committee and either approved or rejected. We
send further PRs to improve upon it based on the committee feedback. -
Thousands of people open issues to propose new features and discuss them.
-
Anybody can create a PR to try to create a proposal. Only members of the
committee have push access (are allowed to merge PRs) and if they merge a PR,
they are responsible to advocate for it at the committee and collect the
commitee's feedback. -
The committee itself does not need to change at all how it works, members of
the committee who do not have time or interest to be involved at GitHub do
not need to. For this plan to work, just several members of the committee
need to be actively involved (we already have 3 or 4 members who are
involved, and that is enough to get us started). As this GitHub repository
becomes more popular, I can imagine eventually all members of the committee
to at least read some of the responses and activity and what issues are
popular. -
The whole community works on PRs and essentially works nonstop (with hundreds
of people in all time zones one gets a new PR every couple days, as in
SymPy). That way, when the committee meets, it has high quality proposals to
consider, and it does not need to spend precious committee time to develop
high quality proposals, because that work is outsourced to the wide
community. -
The core developers (committee members) are the ones who ultimately decide
what goes in, and what does not. Just like now. The only thing that changes
is that the workflow becomes more efficient.
Some lessons from open source development that will apply here:
-
If we are successful, we will get thousands of issues from people all over
the world. Some good, some not as high quality. People will discuss issues.
Initially, many will be frustrated at how slow the committee works. The best
reaction that we can do is to encourage people to create PRs and try to
create high quality proposals for the issue(s) that they care about. And
invite them to collaborate on the PRs. -
Experience shows that this scales really well. We build a team. People start
feeling positive about the future, because their voice is heard, and their
work (in PRs) is used and their (small or large) contributions help shape the
future of Fortran.