You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+41-36Lines changed: 41 additions & 36 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,16 @@
1
-
# STAC API Development & Release Process
2
-
3
1
## Contributing
4
2
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.
7
6
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.
13
14
14
15
## Development Process
15
16
@@ -25,50 +26,56 @@ examples.
25
26
### Submitting Pull Requests
26
27
27
28
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
29
30
require you to switch from the default of 'master', which we keep so it displays first).
30
31
31
32
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.
40
35
41
36
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),
43
38
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.
45
40
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.
48
43
49
44
All pull requests additionally require a review of two STAC core team members. Releases are cut
50
45
from dev to master (and require 3 approvals).
51
46
52
-
### Using check-markdown locally
47
+
### Check files
53
48
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.
58
52
59
53
First you'll need to install everything with npm once. Just navigate to the root of the stac-spec repo and on
60
54
your command line run:
61
55
62
56
```bash
63
57
npm install
64
58
```
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:
66
69
67
70
```bash
68
71
npm run check-markdown
69
72
```
70
73
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
+
```
72
79
73
80
### Working with the OpenAPI files
74
81
@@ -78,6 +85,10 @@ various parts of the specification. Currently we expect developers to be up to s
78
85
OpenAPI and using their own tools to modify things. In the future we will provide tools to make it easier to work with.
79
86
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`.
80
87
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
+
81
92
## Release Process
82
93
83
94
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.
125
136
126
137
## Governance
127
138
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