Skip to content

Commit 89c306e

Browse files
authored
Merge pull request #150 from philvarner/pull-stac-spec-1.0.0
Pull stac spec 1.0.0
2 parents e339ab7 + 1c5f5f6 commit 89c306e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1346
-648
lines changed

stac-spec/.circleci/config.yml

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
version: 2
22
jobs:
3-
test_examples:
3+
test_examples_node:
44
working_directory: ~/stac
55
docker:
66
- image: circleci/node:12
@@ -12,6 +12,18 @@ jobs:
1212
- run:
1313
name: validate
1414
command: npm run check-examples
15+
# test_examples_python:
16+
# working_directory: ~/stac
17+
# docker:
18+
# - image: circleci/python:3.8
19+
# steps:
20+
# - checkout
21+
# - run:
22+
# name: install
23+
# command: pip install stac-validator
24+
# - run:
25+
# name: validate
26+
# command: find ./examples -type f -name "*.json" | xargs -L1 stac_validator
1527
test_docs:
1628
working_directory: ~/stac
1729
docker:
@@ -43,7 +55,8 @@ workflows:
4355
version: 2
4456
ci:
4557
jobs:
46-
- test_examples
58+
- test_examples_node
59+
# - test_examples_python
4760
- test_docs
4861
- publish_schemas:
4962
filters:

stac-spec/.circleci/rc.yaml

+9-12
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,15 @@ plugins:
44
# Apply some recommended defaults for consistency
55
- remark-preset-lint-consistent
66
- remark-preset-lint-recommended
7-
# No HTML for security - can't activate yet due to STAC logo in README.md
8-
# - lint-no-html
7+
- lint-no-html
98
# General formatting
10-
# - - remark-lint-emphasis-marker
11-
# - '*'
9+
- - remark-lint-emphasis-marker
10+
- '*'
1211
- remark-lint-hard-break-spaces
1312
- remark-lint-blockquote-indentation
1413
- remark-lint-no-consecutive-blank-lines
15-
# Detect overly long lines - be liberal for now and don't restrict to 80 yet
16-
# - - remark-lint-maximum-line-length
17-
# - 150
14+
- - remark-lint-maximum-line-length
15+
- 150
1816
# Code
1917
- remark-lint-fenced-code-flag
2018
- remark-lint-fenced-code-marker
@@ -23,24 +21,23 @@ plugins:
2321
- 'fenced'
2422
# Headings
2523
- remark-lint-heading-increment
26-
- remark-lint-no-duplicate-headings
2724
- remark-lint-no-multiple-toplevel-headings
2825
- remark-lint-no-heading-punctuation
2926
- - remark-lint-maximum-heading-length
3027
- 70
3128
- - remark-lint-heading-style
3229
- atx
30+
- - remark-lint-no-shortcut-reference-link
31+
- false
3332
# Lists
3433
- remark-lint-list-item-bullet-indent
3534
- remark-lint-ordered-list-marker-style
3635
- remark-lint-ordered-list-marker-value
3736
- remark-lint-checkbox-character-style
38-
# - - remark-lint-unordered-list-marker-style
39-
# - '-'
37+
- - remark-lint-unordered-list-marker-style
38+
- '-'
4039
- - remark-lint-list-item-indent
4140
- space
4241
# Tables
4342
- remark-lint-table-pipes
44-
# - remark-lint-table-pipe-alignment # Wait for https://github.com/remarkjs/remark-lint/issues/226
45-
# Urls
4643
- remark-lint-no-literal-urls

stac-spec/.github/pull_request_template.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,7 @@
1010

1111
- [ ] This PR is made against the dev branch (all proposed changes except releases should be against dev, not master).
1212
- [ ] This PR has **no** breaking changes.
13-
- [ ] I have added my changes to the [CHANGELOG](https://github.com/radiantearth/stac-spec/blob/dev/CHANGELOG.md) **or** a CHANGELOG entry is not required.
14-
- [ ] This PR affects the [STAC API spec](https://github.com/radiantearth/stac-api-spec), and I have opened issue/PR #XXX to track the change.
13+
- [ ] I have added my changes to the [CHANGELOG](https://github.com/radiantearth/stac-spec/blob/dev/CHANGELOG.md)
14+
**or** a CHANGELOG entry is not required.
15+
- [ ] This PR affects the [STAC API spec](https://github.com/radiantearth/stac-api-spec),
16+
and I have opened issue/PR #XXX to track the change.

stac-spec/.remarkignore

-1
This file was deleted.

stac-spec/CHANGELOG.md

+100-46
Large diffs are not rendered by default.

stac-spec/CODE_OF_CONDUCT.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,21 @@ appearance, race, religion, or sexual identity and orientation.
1414
Examples of behavior that contributes to creating a positive environment
1515
include:
1616

17-
* Using welcoming and inclusive language
18-
* Being respectful of differing viewpoints and experiences
19-
* Gracefully accepting constructive criticism
20-
* Focusing on what is best for the community
21-
* Showing empathy towards other community members
17+
- Using welcoming and inclusive language
18+
- Being respectful of differing viewpoints and experiences
19+
- Gracefully accepting constructive criticism
20+
- Focusing on what is best for the community
21+
- Showing empathy towards other community members
2222

2323
Examples of unacceptable behavior by participants include:
2424

25-
* The use of sexualized language or imagery and unwelcome sexual attention or
25+
- The use of sexualized language or imagery and unwelcome sexual attention or
2626
advances
27-
* Trolling, insulting/derogatory comments, and personal or political attacks
28-
* Public or private harassment
29-
* Publishing others' private information, such as a physical or electronic
27+
- Trolling, insulting/derogatory comments, and personal or political attacks
28+
- Public or private harassment
29+
- Publishing others' private information, such as a physical or electronic
3030
address, without explicit permission
31-
* Other conduct which could reasonably be considered inappropriate in a
31+
- Other conduct which could reasonably be considered inappropriate in a
3232
professional setting
3333

3434
## Our Responsibilities

stac-spec/CONTRIBUTING.md

+8-6
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,30 @@ require you to switch from the default of 'master', which we keep so it displays
2424
Creating a Pull Request will show our PR template, which includes checkbox reminders for a number
2525
of things.
2626

27-
* Adding an entry the [CHANGELOG](CHANGELOG.md). If the change is more editorial and minor then this
27+
- Adding an entry the [CHANGELOG](CHANGELOG.md). If the change is more editorial and minor then this
2828
is not required, but any change to the actual specification should definitely have one.
29-
* Base the PR against dev, as mentioned above - even if the branch was made off of dev this reminds
29+
- Base the PR against dev, as mentioned above - even if the branch was made off of dev this reminds
3030
you to change the base in GitHub's PR creation page.
31-
* Make a ticket in the STAC API repo if anything here affects there.
32-
* Highlight if the PR makes breaking changes to the specification (in beta there can still be
31+
- Make a ticket in the STAC API repo if anything here affects there.
32+
- Highlight if the PR makes breaking changes to the specification (in beta there can still be
3333
select breaking changes, but after 1.0 this will change)
3434

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

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

4243
All pull requests additionally require a review of two STAC core team members. Releases are cut
4344
from dev to master (and require 3 approvals), see the [process](process.md) document for more details.
4445

4546
### Check files
4647

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

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

stac-spec/README.md

+28-31
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!--lint disable no-html-->
12
<img src="https://github.com/radiantearth/stac-site/raw/master/images/logo/stac-030-long.png" alt="stac-logo" width="700"/>
23

34
[![CircleCI](https://circleci.com/gh/radiantearth/stac-spec.svg?style=svg)](https://circleci.com/gh/radiantearth/stac-spec)
@@ -13,7 +14,9 @@ including sources such as aircraft and drone and data such as hyperspectral opti
1314
synthetic aperture radar (SAR), video, point clouds, lidar, digital elevation
1415
models (DEM), vector, machine learning labels, and composites like NDVI and
1516
mosaics. STAC is intentionally designed with a minimal core and flexible
16-
extension mechanism to support a broad set of use cases.
17+
extension mechanism to support a broad set of use cases. This specification
18+
has matured over the past several years, and is used in [numerous production
19+
deployments](https://stacindex.org/catalogs).
1720

1821
This is advantageous to providers of geospatial data, as they can simply use a
1922
well-designed, standard format and API without needing to design their own proprietary one.
@@ -42,22 +45,15 @@ with a well-defined set of additional attributes ("foreign members"). The **STAC
4245
extends the **[OGC API - Features - Part 1: Core](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html)**
4346
with additional web service endpoints and object attributes.
4447

45-
## Stability Note
46-
47-
This specification has matured over the past several years, and is used in
48-
[numerous production deployments](https://stacindex.org/catalogs).
49-
With the 1.0.0 release, implementors should expect that most definitions will remain
50-
stable. Our goal
51-
is to maintain backwards-compatiblity within the core for a long time.
52-
The STAC specification follows [Semantic Versioning](https://semver.org/), so once
53-
1.0.0 is reached, any breaking change will require the spec to go to 2.0.0.
54-
5548
## Current version and branches
5649

5750
The [master branch](https://github.com/radiantearth/stac-spec/tree/master) is the 'stable'
58-
version of the spec. It is currently version **1.0.0** of the specification. The
59-
[dev](https://github.com/radiantearth/stac-spec/tree/dev) branch is where active development takes place,
60-
and may have inconsistent examples. Whenever dev stabilizes, a release is cut and we
51+
version of the spec. It is currently version **1.0.0** of the specification. The STAC specification
52+
follows [Semantic Versioning](https://semver.org/), so any breaking change will require the spec to
53+
go to 2.0.0.
54+
55+
The [dev](https://github.com/radiantearth/stac-spec/tree/dev) branch is where active development
56+
takes place, and may have inconsistent examples. Whenever dev stabilizes, a release is cut and we
6157
merge `dev` in to `master`. So `master` should be stable at any given time.
6258
More information on how the STAC development process works can be found in
6359
[process.md](process.md).
@@ -83,23 +79,24 @@ that enable clients to search for Item objects that match their filtering criter
8379
The **Item**, **Catalog**, **Collection**, and **STAC API** specifications are intended to be
8480
used together, but are designed so each piece is small, self-contained, and reusable in other contexts.
8581

86-
* **[Overview](overview.md)** describes the three core object type specifications and how they relate to one another.
87-
* **[Item Specification](item-spec/)** defines a STAC **Item**, which is a [GeoJSON](http://geojson.org) **Feature**
88-
with additional fields ("foreign members") for attributes like time and links to related entities and assets
89-
(including thumbnails). This is the core entity that describes the data to be discovered.
90-
* **[Catalog Specification](catalog-spec/)** specifies a structure to link various STAC Items together to be crawled or browsed. It is a
91-
simple, flexible JSON file of links to Items, Catalogs or Collections that can be used in a variety of ways.
92-
* **[Collection Specification](collection-spec/)** provides additional information about a spatio-temporal collection of data.
93-
In the context of STAC it is most likely a related group of STAC Items that is made available by a data provider.
94-
It includes things like the spatial and temporal extent of the data, the license, keywords, etc.
95-
It enables discovery at a higher level than individual Item objects, providing a simple way to describe sets of data.
96-
* **[Examples](examples/):** The *[examples/](examples/)* folder contains examples for all three specifications, linked together to form two
97-
complete examples. Each spec and extension links in to highlight particular files that demonstrate key concepts.
98-
* **[Extensions](extensions/README.md)** describe how STAC can use extensions that extend the functionality of the core spec or
99-
add fields for specific domains. Extensions can be published anywhere, although the preferred location for public extensions is in the [GitHub `stac-extensions` organization](https://github.com/stac-extensions).
100-
* **Additional documents:** The supporting documents include a complementary [best practices](best-practices.md)
101-
document, and information on contributing (links in the next section). We also maintain a [changelog](CHANGELOG.md) of
102-
what was modified in each version.
82+
- **[Overview](overview.md)** describes the three core object type specifications and how they relate to one another.
83+
- **[Item Specification](item-spec/)** defines a STAC **Item**, which is a [GeoJSON](http://geojson.org) **Feature**
84+
with additional fields ("foreign members") for attributes like time and links to related entities and assets
85+
(including thumbnails). This is the core entity that describes the data to be discovered.
86+
- **[Catalog Specification](catalog-spec/)** specifies a structure to link various STAC Items together to be crawled or browsed. It is a
87+
simple, flexible JSON file of links to Items, Catalogs or Collections that can be used in a variety of ways.
88+
- **[Collection Specification](collection-spec/)** provides additional information about a spatio-temporal collection of data.
89+
In the context of STAC it is most likely a related group of STAC Items that is made available by a data provider.
90+
It includes things like the spatial and temporal extent of the data, the license, keywords, etc.
91+
It enables discovery at a higher level than individual Item objects, providing a simple way to describe sets of data.
92+
- **[Examples](examples/):** The *[examples/](examples/)* folder contains examples for all three specifications, linked together to form two
93+
complete examples. Each spec and extension links in to highlight particular files that demonstrate key concepts.
94+
- **[Extensions](extensions/README.md)** describe how STAC can use extensions that extend the functionality of the core spec or
95+
add fields for specific domains. Extensions can be published anywhere,
96+
although the preferred location for public extensions is in the [GitHub `stac-extensions` organization](https://github.com/stac-extensions).
97+
- **Additional documents:** The supporting documents include a complementary [best practices](best-practices.md)
98+
document, and information on contributing (links in the next section). We also maintain a [changelog](CHANGELOG.md) of
99+
what was modified in each version.
103100

104101
## Contributing
105102

0 commit comments

Comments
 (0)