Skip to content

Commit 78ef7be

Browse files
committed
Clarify the SPEC process: scope, procedure
1 parent eefb9ab commit 78ef7be

File tree

2 files changed

+45
-18
lines changed

2 files changed

+45
-18
lines changed

_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ Community discussions take place on the
1414
[`SPECs` Discourse forum](https://discuss.scientific-python.org/c/specs/6).
1515
SPEC development takes place in the [SPEC repository](https://github.com/scientific-python/specs).
1616

17+
If you want to **contribute a SPEC**, start by reading [SPEC Purpose and Process](/specs/purpose-and-process).
1718
Contributors must adhere to our [code of conduct](https://scientific-python.org/code_of_conduct/).

purpose-and-process/_index.md

Lines changed: 44 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,31 @@ several projects—and their authority stems from the extent to which they are.
3838
Participants in the SPEC process must adhere to our
3939
[Code of Conduct](https://scientific-python.org/code_of_conduct/).
4040

41+
## What is a SPEC?
42+
43+
A SPEC (Scientific Python Ecosystem Coordination) is a document that captures an idea.
44+
A SPEC is the product of discussions with developers across the ecosystem.
45+
SPECs capture the following types of narratives:
46+
47+
- We recommend that you do X (e.g., [SPEC 8 — Securing the Release Process](https://scientific-python.org/specs/spec-0008/)).
48+
- Some projects may need to do X. If you do X, we recommend that you do it as follows (e.g., [SPEC 1 — Lazy Loading](https://scientific-python.org/specs/spec-0001/)).
49+
- If you do X, you should be aware of the following (we don't have any such advisories yet).
50+
51+
{{< admonition important >}}
52+
**What a SPEC is not**
53+
54+
SPECs are _not_ meant to be extensive technical documents that capture a large amount of detail.
55+
SPECs typically _summarize_ an idea, referring to external sources for further detail.
56+
These external resources may be GitHub repositories, external websites, etc.
57+
58+
If you find yourself wanting to _disseminate information_ across the
59+
ecosystem, it may be better to write a blog post on
60+
https://blog.scientific-python.org or to contribute to an existing
61+
piece of documentation, such as https://learn.scientific-python.org.
62+
A blog post is also a good mechanism to get initial engagement around
63+
an idea that is not mature enough, or in scope, to become a SPEC.
64+
{{< /admonition >}}
65+
4166
### Key Terms
4267

4368
Scientific Python Ecosystem
@@ -113,9 +138,11 @@ style START fill:#FFFFFF, stroke:#FFFFFF;
113138
```
114139
<!-- prettier-ignore-end -->
115140

116-
The authors starts by _proposing_ a SPEC, as outlined in [New SPEC
117-
Proposals](#new-spec-proposals).
118-
The decision to **accept** a SPEC is made by the Steering Committee,
141+
The authors starts by _proposing_ a SPEC idea, as outlined in [New
142+
SPEC Proposals](#new-spec-proposals)—please read that section carefully before
143+
proposing a new SPEC.
144+
145+
The decision to **accept** (and number) a SPEC is made by the Steering Committee,
119146
at which point it is added to the main branch of the [SPEC
120147
repository](https://github.com/scientific-python/specs), clearly
121148
labeled as a draft.
@@ -238,44 +265,43 @@ content = '''
238265
### New SPEC Proposals
239266

240267
A good SPEC proposal focuses on a single key recommendation or idea
241-
for coordinating projects in the scientific Python ecosystem.
242-
Before proposing a SPEC, we highly recommended that you first **vet
268+
for coordinating projects in the scientific Python ecosystem. Please
269+
also see the [What is a SPEC?](#what-is-a-spec) section above.
270+
271+
**Before proposing** a SPEC, we highly recommended that you first **vet
243272
the idea** by doing one or more of the following:
244273

245274
1. discuss the idea with at least one project in the ecosystem,
246275
2. discuss the idea with at least one other member of the ecosystem, or
247-
3. create a minimal, proof of concept prototype.
276+
3. if it is a technical idea, create a minimal proof of concept.
248277

249-
Before a proposed SPEC can be accepted:
278+
**Before submitting** a proposed SPEC:
250279

251-
1. The idea must be proposed on the discussion forum under the [`SPECS/Ideas`
280+
1. The **idea must be proposed** on the discussion forum under the [`SPECS/Ideas`
252281
topic](https://discuss.scientific-python.org/c/specs/ideas/9).
253-
2. A draft SPEC document must be submitted via pull request to the [SPEC repository](https://github.com/scientific-python/specs).
282+
283+
2. If the SPEC committee considers the idea suitable for a SPEC, a
284+
number will be allocated.
285+
286+
At this point, you should **draft your SPEC document and submit it**
287+
via pull request to the [SPEC repository](https://github.com/scientific-python/specs).
254288

255289
Use the `quickstart.py` script to create the new SPEC document.
256290
Located at the top-level of the [SPEC
257291
repository](https://github.com/scientific-python/specs), the script
258292
will ask you a few questions[^newspec] and then create a new file
259293
appropriately named with a basic template for you to complete (e.g.,
260294
`spec-0000/index.md`).
295+
Leave the `draft` field set to `true` and the `endorsed-by` field empty.
261296
Once the SPEC is in reasonable shape, file a pull request against the
262297
[SPEC repository](https://github.com/scientific-python/specs).
263298

264299
## Notes
265300

266301
[^newspec]:
267-
When asked to enter the SPEC number, choose the next available number that
268-
has not yet been used.
269-
Before the SPEC is merged, the Steering Committee may ask you to change the SPEC number so
270-
that it doesn't conflict with another pull request.
271-
If so, just rename the file as appropriate and update the SPEC number in the
272-
`title` field of the SPEC header.
273-
274302
The script currently only supports adding one author.
275303
If you need to add additional authors, just edit the text file.
276304

277305
Additional files associated with a SPEC document may be kept in the directory
278306
containing the SPEC.
279307
For example, files associated with `spec-0000/index.md` are in `spec-0000/`.
280-
281-
Leave the `draft` field set to `true` and the `endorsed-by` field empty.

0 commit comments

Comments
 (0)