Skip to content

Commit 1f56d0d

Browse files
committed
Document workflow based on the discussion in fortran-lang#5
1 parent 7a6108e commit 1f56d0d

File tree

1 file changed

+35
-3
lines changed

1 file changed

+35
-3
lines changed

WORKFLOW.md

+35-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,37 @@
11
# Workflow for the Fortran stdlib contributors
22

3-
This document will describe the workflow we'll follow when developing the Fortran stdlib.
4-
It's largely to be discussed and decided.
5-
For now, take a look at the [issues](https://github.com/fortran-lang/stdlib).
3+
This document describes our current workflow. You are welcome to propose
4+
changes in it by opening an
5+
[issue](https://github.com/fortran-lang/stdlib/issues).
6+
7+
1. You have an idea or a proposal. Open an issue to discuss it. This is on the
8+
level of "is there interest in having image reader/writer functions in
9+
stdlib?"
10+
11+
2. When there seems to be significant interest in the proposal, like 80/20
12+
participants think it's a good/bad idea, move on to discuss the specific
13+
API. It's OK to propose the API off the bat if you already have an idea for
14+
it.
15+
16+
3. Discuss the API and iterate. When there is ~80/20 approval for the API, move
17+
on to implement it and submit a PR. Small PRs are always better than large.
18+
It's OK to implement only a few functions of a new module, and continue work
19+
on the others in a later PR. All new functionality goes into an
20+
"experimental" namespace (`stdlib_experimental_*.f90`).
21+
22+
4. When opening a PR, request reviews from one or more people that are most
23+
relevant to it. These are likely to be people involved in prior steps of the
24+
workflow. Other contributors (not explicitly invited) are encouraged to
25+
provide reviews and suggestions as well. Iterate until all (or most)
26+
participants are on the same page. We should not merge if there is a strong
27+
objection from the reviewers or from somebody in the wider community.
28+
29+
5. Moving from experimental to main. Once new functionality lands into
30+
"experimental", the next step is to write a "specification". The
31+
specification is a document that describes the API and the functionality, so
32+
that anyone can use it to create an implementation from scratch without
33+
looking at `stdlib`. `stdlib` provides the reference implementation. When
34+
this specification document is approved by the wide community and the
35+
standards committee (informally), then we can move the code into main, and
36+
the particular specification document becomes part of the Fortran Standard
37+
Library.

0 commit comments

Comments
 (0)