Skip to content

Commit 92926e0

Browse files
committed
Make the specification requirement part of step 3.
1 parent 1f56d0d commit 92926e0

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

WORKFLOW.md

+13-9
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ changes in it by opening an
1818
It's OK to implement only a few functions of a new module, and continue work
1919
on the others in a later PR. All new functionality goes into an
2020
"experimental" namespace (`stdlib_experimental_*.f90`).
21+
As part of the PR, when submitting a new public facing API, please provide
22+
the initial draft of the specification document as well as the the initial
23+
reference implementation of this specification.
24+
The specification is a document that describes the API and the
25+
functionality, so that anyone can use it to create an implementation from
26+
scratch without looking at `stdlib`. The `stdlib` library then provides the
27+
reference implementation.
2128

2229
4. When opening a PR, request reviews from one or more people that are most
2330
relevant to it. These are likely to be people involved in prior steps of the
@@ -26,12 +33,9 @@ changes in it by opening an
2633
participants are on the same page. We should not merge if there is a strong
2734
objection from the reviewers or from somebody in the wider community.
2835

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.
36+
5. Moving from experimental to main. The experimental "namespace" contains new
37+
functionality together with its specification. In order to move from
38+
experimental to main, the specification document must be approved by the
39+
wide community and the standards committee (informally). If that happens,
40+
then we can move the code into main, and the particular specification
41+
document becomes part of the Fortran Standard Library.

0 commit comments

Comments
 (0)