Skip to content

Commit 5e79a1e

Browse files
authored
Contributing updates (#173)
* update contributing, esp. governance
1 parent 87812cf commit 5e79a1e

File tree

1 file changed

+41
-36
lines changed

1 file changed

+41
-36
lines changed

CONTRIBUTING.md

Lines changed: 41 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
# STAC API Development & Release Process
2-
31
## Contributing
42

5-
Anyone building software that catalogs imagery or other geospatial assets is welcome to collaborate.
6-
Our goal is to be a collaboration of developers, not [architecture astronauts](http://www.joelonsoftware.com/articles/fog0000000018.html).
3+
Pull Requests are the primary method of contributing to the spec itself, and everyone is welcome to submit
4+
changes. Suggestions for changes to the core will be taken with higher priority if a clear implementation
5+
of STAC API has been built that can highlight the problem.
76

8-
The best way to contribute is to try to implement the specification and give feedback on what worked
9-
well and what could be improved. Any proposed changes to the specification should be done as pull requests. Ideally a
10-
proposed change would also update all of the examples, but for now that is not required - the team
11-
can validate and update all examples before a release. But it is recommended to update at least a
12-
couple examples to reflect the change.
7+
We consider everyone using the specification to catalog their data to be a 'contributor', as STAC is
8+
really about the end result of more interoperable data, not just creating a spec for the sake of it.
9+
So if you want to help then the best thing you can do is make new catalogs or build software that uses
10+
the spec. And please do give us feedback. The best place to do so is on our
11+
[gitter channel](https://gitter.im/SpatioTemporal-Asset-Catalog/Lobby). If you are interested in helping
12+
but aren't sure where to, then see the [stac-ecosystem](https://github.com/stac-utils/stac-ecosystem) repo
13+
for ideas on projects to advance STAC.
1314

1415
## Development Process
1516

@@ -25,50 +26,56 @@ examples.
2526
### Submitting Pull Requests
2627

2728
Any proposed changes to the specification should be done as pull requests. Please make these
28-
requests against the [`dev`](https://github.com/radiantearth/stac-api-spec/tree/dev) branch (this will
29+
requests against the [dev](https://github.com/radiantearth/stac-api-spec/tree/dev) branch (this will
2930
require you to switch from the default of 'master', which we keep so it displays first).
3031

3132
Creating a Pull Request will show our PR template, which includes checkbox reminders for a number
32-
of things.
33-
34-
- Adding an entry the [CHANGELOG](CHANGELOG.md). If the change is more editorial and minor then this
35-
is not required, but any change to the actual specification should definitely have one.
36-
- Base the PR against dev, as mentioned above - even if the branch was made off of dev this reminds
37-
you to change the base in GitHub's PR creation page.
38-
- Highlight if the PR makes breaking changes to the specification (in beta there can still be
39-
select breaking changes, but after 1.0 this will change)
33+
of things, including adding an entry the [CHANGELOG](CHANGELOG.md) and making the PR against the `dev`
34+
branch.
4035

4136
All pull requests should submit clean markdown, which is checked by the continuous integration
42-
system. Please use `npm run check-markdown` locally, as described in the [next section](#using-check-markdown-locally),
37+
system. Please use `npm run check` locally, as described in the [next section](#check-files),
4338
to ensure that the checks on the pull request succeed. If it does not then you can look at the
44-
mistakes online, which are the same as running `check-markdown` locally would surface.
39+
mistakes online, which are the same as running `npm run check` locally would surface.
4540

46-
All pull requests that modify or create JSON examples should use [JSON
47-
formatter](https://jsonformatter.org/) to keep files consistent across the repo.
41+
All pull requests that modify or create JSON schema files or examples should use
42+
[JSON formatter](https://jsonformatter.org/) to keep files consistent across the repo.
4843

4944
All pull requests additionally require a review of two STAC core team members. Releases are cut
5045
from dev to master (and require 3 approvals).
5146

52-
### Using check-markdown locally
47+
### Check files
5348

54-
The same check-markdown program that runs as a check on PR's is part of the repo and can be run locally.
55-
To install you'll need npm, which is a standard part of any [node.js installation](https://nodejs.org/en/download/).
56-
Alternatively, you can also use [yarn](https://yarnpkg.com/) instead of npm. In this case replace all occurrences of
57-
`npm` with `yarn` below.
49+
The same check-markdown and check-openapi programs that runs as a check on PR's is part of the repo and can be run locally.
50+
To install you'll need npm, which is a standard part of any [node.js installation](https://nodejs.org/en/download/).
51+
Alternatively, you can also use [yarn](https://yarnpkg.com/) instead of npm. In this case replace all occurrences of `npm` with `yarn` below.
5852

5953
First you'll need to install everything with npm once. Just navigate to the root of the stac-spec repo and on
6054
your command line run:
6155

6256
```bash
6357
npm install
6458
```
65-
Then to do the check on your markdown you run:
59+
60+
Then to do the check for markdown and examples you run:
61+
62+
```bash
63+
npm run check
64+
```
65+
66+
This will spit out the same texts that you see online, and you can then go and fix your markdown or examples.
67+
68+
To just check the markdown, run:
6669

6770
```bash
6871
npm run check-markdown
6972
```
7073

71-
This will spit out the same text that you see online, and you can then go and fix your markdown.
74+
To just validate the OpenAPI definitions, run:
75+
76+
```bash
77+
npm run check-openapi
78+
```
7279

7380
### Working with the OpenAPI files
7481

@@ -78,6 +85,10 @@ various parts of the specification. Currently we expect developers to be up to s
7885
OpenAPI and using their own tools to modify things. In the future we will provide tools to make it easier to work with.
7986
There are html version of the OpenAPI files online at `https://api.stacspec.org/{version_number}` with `{version_number}` being the git tag or `dev`.
8087

88+
Often, updating
89+
the JSON Schema and OpenAPI files is one of the harder aspects of creating a change, so please, don't
90+
hesitate to ask for help in doing this!
91+
8192
## Release Process
8293

8394
To release a new version of the STAC spec the following list of tasks must be done.
@@ -125,10 +136,4 @@ with no changes to the spec - just updating the version numbers.
125136

126137
## Governance
127138

128-
The goal of STAC is to have a Project Steering Committee of core contributors, representing diverse organizations and
129-
implementations. To bootstrap Chris Holmes is the Benevolent Dictator for
130-
Life or until a PSC is formed, so we don't get stuck waiting for votes when there is not enough activity.
131-
132-
The longer term goal is to contribute STAC spec to the Open Geospatial Consortium, and indeed to align as much as possible
133-
with their next generation spec. The current plan is to contribute STAC API as an OGC 'community module' when we reach
134-
1.0.0, and to work to have it become part of the OGC API baseline.
139+
The STAC API spec follows the same governance as the [core STAC spec](https://github.com/radiantearth/stac-spec/blob/master/process.md#governance).

0 commit comments

Comments
 (0)