Skip to content

Commit

Permalink
Merge pull request #745 from radiantearth/dev
Browse files Browse the repository at this point in the history
Release 0.9.0
  • Loading branch information
cholmes authored Feb 26, 2020
2 parents 2dc0024 + fef19d5 commit 568a048
Show file tree
Hide file tree
Showing 72 changed files with 257 additions and 210 deletions.
7 changes: 4 additions & 3 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,18 @@ jobs:
build:
working_directory: ~/stac
docker:
- image: circleci/python:3.6.9
- image: circleci/python:3.7

steps:
- checkout
- run: sudo chown -R circleci:circleci /usr/local/bin
- run: sudo chown -R circleci:circleci /usr/local/lib/python3.6/site-packages
- run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages
- run:
name: install
command: |
pip install stac-validator
sudo apt-get install curl software-properties-common
sudo apt-get update
sudo apt-get install curl -y software-properties-common
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g remark-cli remark-validate-links
Expand Down
100 changes: 45 additions & 55 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,69 +6,45 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

## Unreleased

## [v0.9.0-rc2] - 2020-02-12

### Added
- [Basics](item-spec/common-metadata.md#basics) added to Common Metadata definitions with new `description` field for
Item properties
- New fields to the `link` object to facilitate [pagination support for POST requests](api-spec/api-spec.md#paging-extension)
- Data role, as a suggestion for a common role for data files to be used in case data providers don't come up with their own names and semantics
- Clarification text on HTTP verbs in STAC API
- [View Geometry Extension](extensions/view/README.md)

### Changed
- Item `title` definition moved from core Item fields to [Common Metadata Basics](item-spec/common-metadata.md#basics)
fields. No change is required for STAC Items.
- `putFeature` can return a `PreconditionFailed` to provide more explicit information when the resource has changed in the server
- [Sort extension](api-spec/extensions/sort) now uses "+" and "-" prefixes for GET requests to denote sort order.
- Clarified how `/search` links must be added to `/` and changed that links to both GET and POST must be provided now that the method can be specified in links.
- Moved angle definitions between extensions `view` and `sat`
- `sat:off_nadir_angle` -> `view:off_nadir`
- `sat:azimuth_angle` -> `view:azimuth`
- `sat:incidence_angle` -> `view:incidence_angle`
- `sat:sun_azimuth_angle` -> `view:sun_azimuth`
- `sat:sun_elevation_angle` -> `view:sun_elevation`


### Removed
- In API, removed any mention of using media type `multipart/form-data` and `x-www-form-urlencoded`

### Fixed
- Fixed Item JSON Schema now `allOf` optional Common Metadata properties are evaluated
- Clarified usage of optional Common Metadata fields for STAC Items
- Clarified usage of paging options, especially in relation to what OGC API - Features offers
- Allow Commonmark in asset description, as it's allowed everywhere else
- Put asset description in the API
- Fixed API spec regarding license expressions
- Added missing schema in the API Version extension

## [v0.9.0-rc1] - 2020-01-06
## [v0.9.0] - 2020-02-26

### Added
- ItemCollection requires `stac_version` field, `stac_extensions` has also been added
- A `description` field has been added to Item assets (also Asset definitions extension)
- Field `mission` to [Common Metadata fields](item-spec/common-metadata.md).
- Field `mission` to [Common Metadata fields](item-spec/common-metadata.md)
- Extensions:
- [Version Indicators extension](extensions/version/README.md), adds `version` and `deprecated` fields to STAC Items and Collections
- [Version Indicators extension](extensions/version/README.md), new `version` and `deprecated` fields in STAC Items and Collections
- Data Cube extension can be used in Collections, added new field `description`
- Added `description` and `roles` fields to the Asset in the [Asset Extension](extensions/asset/README.md)
- Projection Extension to describe Items with Assets that have an associated geospatial projection
- [Asset Extension](extensions/asset/README.md): new `description` and `roles` fields
- New [Projection Extension](extensions/projection/README.md) to describe Items with Assets that have an associated geospatial projection
- New [View Geometry Extension](extensions/view/README.md)
- STAC API:
- Added the [Item and Collection API Version extension](api-spec/extensions/version/README.md) to support versioning in the API specification
- Run `npm run serve` or `npm run serve-ext` to quickly render development versions of the OpenAPI spec in the browser
- [Basics](item-spec/common-metadata.md#basics) added to Common Metadata definitions with new `description` field for
Item properties
- New fields to the `link` object to facilitate [pagination support for POST requests](api-spec/api-spec.md#paging-extension)
- `data` role, as a suggestion for a common role for data files to be used in case data providers don't come up with their own names and semantics
- Clarification text on HTTP verbs in STAC API

### Changed
- Support for [CommonMark 0.29 instead of CommonMark 0.28](https://spec.commonmark.org/0.29/changes.html)
- Collection field `property` and the merge ability moved to a new extension 'Commons'
- Added attribute `roles` to Item assets (also Asset definitions extension), to be used similarly to Link `rel`
- Updated API yaml to clarify bbox filter should be implemented without brackets. Example: `bbox=160.6,-55.95,-170,-25.89`
- Collection `summaries` merge array fields now.
- Collection `summaries` merge array fields now
- Several fields have been moved from extensions or item fields to the [Common Metadata fields](item-spec/common-metadata.md):
- `eo:platform` / `sar:platform` => `platform`
- `eo:instrument` / `sar:instrument` => `instruments`, also changed from string to array of strings
- `eo:constellation` / `sar:constellation` => `constellation`
- `dtr:start_datetime` => `start_datetime`
- `dtr:end_datetime` => `end_datetime`
- `eo:platform` / `sar:platform` => `platform`
- `eo:instrument` / `sar:instrument` => `instruments`, also changed from string to array of strings
- `eo:constellation` / `sar:constellation` => `constellation`
- `dtr:start_datetime` => `start_datetime`
- `dtr:end_datetime` => `end_datetime`
- Moved angle definitions from extensions `eo` and new `view` extension
- `eo:off_nadir` -> `view:off_nadir`
- `eo:azimuth` -> `view:azimuth`
- `eo:incidence_angle` -> `view:incidence_angle`
- `eo:sun_azimuth` -> `view:sun_azimuth`
- `eo:sun_elevation` -> `view:sun_elevation`
- Extensions:
- Data Cube extension: Changed allowed formats (removed PROJ string, added PROJJSON / WKT2) for reference systems
- [Checksum extension](extensions/checksum/README.md) is now using self-identifiable hashes ([Multihash](https://github.com/multiformats/multihash))
Expand All @@ -80,28 +56,43 @@ fields. No change is required for STAC Items.
- Fields extension has a simplified format for GET parameters
- `search` extension renamed to `context` extension. JSON object renamed from `search:metadata` to `context`
- Removed "next" from the search metadata and query parameter, added POST body and headers to the links for paging support
- Query Extension - type restrictions on query predicates are more accurate, which may require additional implementation support.
- Query Extension - type restrictions on query predicates are more accurate, which may require additional implementation support
- Item `title` definition moved from core Item fields to [Common Metadata Basics](item-spec/common-metadata.md#basics)
fields. No change is required for STAC Items.
- `putFeature` can return a `PreconditionFailed` to provide more explicit information when the resource has changed in the server
- [Sort extension](api-spec/extensions/sort) now uses "+" and "-" prefixes for GET requests to denote sort order.
- Clarified how `/search` links must be added to `/` and changed that links to both GET and POST must be provided now that the method can be specified in links

### Removed
- `version` field in STAC Collections. Use [Version Extension](extensions/version/README.md) instead
- `summaries` field from Catalogs. Use Collections instead
- Asset Types (pre-defined values for the keys of individual assets, *not* media types) in Items. Use the asset's `roles` instead.
- `license` field doesn't allow SPDX expressions any longer. Use `various` and links instead.
- Asset Types (pre-defined values for the keys of individual assets, *not* media types) in Items. Use the asset's `roles` instead
- `license` field doesn't allow SPDX expressions any longer. Use `various` and links instead
- Extensions:
- `eo:platform`, `eo:instrument`, `eo:constellation` from EO extension, and `sar:platform`, `sar:instrument`, `sar:constellation` from the [SAR extension](extensions/sar/README.md)
- Removed from EO extension field `eo:epsg` in favor of `proj:epsg`
- `gsd` and `accuracy` from `eo:bands` in the [EO extension](extensions/eo/README.md)
- `sar:absolute_orbit` and `sar:center_wavelength` fields from the [SAR extension](extensions/sar/README.md)
- `data_type` and `unit` from the `sar:bands` object in the [SAR extension](extensions/sar/README.md)
- Datetime Range (`dtr`) extension. Use the [Common Metadata fields](item-spec/common-metadata.md) instead.
- Datetime Range (`dtr`) extension. Use the [Common Metadata fields](item-spec/common-metadata.md) instead
- STAC API:
- `next` from the search metadata and query parameter
- In API, removed any mention of using media type `multipart/form-data` and `x-www-form-urlencoded`

### Fixed

- The `license` field in Item and Collection spec explicitly mentions that the value `proprietary` without a link means that the data is private.
- Clarified how to fill `stac_extensions`.
- The `license` field in Item and Collection spec explicitly mentions that the value `proprietary` without a link means that the data is private
- Clarified how to fill `stac_extensions`
- More clarifications; typos fixed
- Fixed Item JSON Schema now `allOf` optional Common Metadata properties are evaluated
- Clarified usage of optional Common Metadata fields for STAC Items
- Clarified usage of paging options, especially in relation to what OGC API - Features offers
- Allow Commonmark in asset description, as it's allowed everywhere else
- Put asset description in the API
- Fixed API spec regarding license expressions
- Added missing schema in the API Version extension
- Fixed links in the Landsat example in the collection-spec


## [v0.8.1] - 2019-11-01

Expand Down Expand Up @@ -311,8 +302,7 @@ Thanks @hgs-msmith, @matthewhanson, @hgs-trutherford, @rouault, @joshfix, @alkam


[Unreleased]: https://github.com/radiantearth/stac-spec/compare/master...dev
[v0.9.0-rc2]: https://github.com/radiantearth/stac-spec/compare/v0.9.0-rc1...v0.9.0-rc2
[v0.9.0-rc1]: https://github.com/radiantearth/stac-spec/compare/v0.8.0...v0.9.0-rc1
[v0.9.0]: https://github.com/radiantearth/stac-spec/compare/v0.8.1...v0.9.0
[v0.8.1]: https://github.com/radiantearth/stac-spec/compare/v0.8.0...v0.8.1
[v0.8.0]: https://github.com/radiantearth/stac-spec/compare/v0.7.0...v0.8.0
[v0.7.0]: https://github.com/radiantearth/stac-spec/compare/v0.6.2...v0.7.0
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ The minimal amount is specified right now, but best practices should emerge with
## Current version and branches

The [master branch](https://github.com/radiantearth/stac-spec/tree/master) is the 'stable' version of the spec. It is currently version
**0.9.0-rc2** of the specification. The
**0.9.0** of the specification. The
[dev](https://github.com/radiantearth/stac-spec/tree/dev) branch is where active development takes place, and may have inconsistent examples.
Whenever dev stabilizes a release is cut and we merge dev in to master. So master should be stable at any given time.
It is possible that there may be small releases in quick succession, especially if they are nice improvements that do
Expand Down
10 changes: 5 additions & 5 deletions api-spec/STAC-extensions.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
openapi: 3.0.1
info:
title: The SpatioTemporal Asset Catalog API + Extensions
version: 0.9.0-rc2
version: 0.9.0
license:
name: Apache License 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0'
Expand Down Expand Up @@ -786,7 +786,7 @@ components:
- type: string
- type: number
example:
stac_version: 0.9.0-rc2
stac_version: 0.9.0
stac_extensions: []
id: Sentinel-2
title: 'Sentinel-2 MSI: MultiSpectral Instrument, Level-1C'
Expand Down Expand Up @@ -1610,7 +1610,7 @@ components:
stac_version:
title: STAC version
type: string
example: 0.9.0-rc2
example: 0.9.0
stac_extensions:
title: STAC extensions
type: array
Expand Down Expand Up @@ -1696,7 +1696,7 @@ components:
assets:
$ref: '#/components/schemas/itemAssets'
example:
stac_version: 0.9.0-rc2
stac_version: 0.9.0
stac_extensions:
- eo
- view
Expand Down Expand Up @@ -2106,7 +2106,7 @@ components:
rel: search
type: application/json
title: Search across feature collections
stac_version: 0.9.0-rc2
stac_version: 0.9.0
id: naip
text/html:
schema:
Expand Down
10 changes: 5 additions & 5 deletions api-spec/STAC.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
openapi: 3.0.1
info:
title: The SpatioTemporal Asset Catalog API
version: 0.9.0-rc2
version: 0.9.0
license:
name: Apache License 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0'
Expand Down Expand Up @@ -490,7 +490,7 @@ components:
- type: string
- type: number
example:
stac_version: 0.9.0-rc2
stac_version: 0.9.0
stac_extensions: []
id: Sentinel-2
title: 'Sentinel-2 MSI: MultiSpectral Instrument, Level-1C'
Expand Down Expand Up @@ -1311,7 +1311,7 @@ components:
stac_version:
title: STAC version
type: string
example: 0.9.0-rc2
example: 0.9.0
stac_extensions:
title: STAC extensions
type: array
Expand Down Expand Up @@ -1378,7 +1378,7 @@ components:
assets:
$ref: '#/components/schemas/itemAssets'
example:
stac_version: 0.9.0-rc2
stac_version: 0.9.0
stac_extensions:
- eo
- view
Expand Down Expand Up @@ -1554,7 +1554,7 @@ components:
rel: search
type: application/json
title: Search across feature collections
stac_version: 0.9.0-rc2
stac_version: 0.9.0
id: naip
text/html:
schema:
Expand Down
10 changes: 5 additions & 5 deletions api-spec/openapi/STAC.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
openapi: 3.0.1
info:
title: The SpatioTemporal Asset Catalog API
version: 0.9.0-rc2
version: 0.9.0
description: >-
This is an OpenAPI definition of the core SpatioTemporal Asset Catalog API
specification. Any service that implements this endpoint to allow search of
Expand Down Expand Up @@ -200,7 +200,7 @@ components:
content:
application/json:
example:
stac_version: 0.9.0-rc2
stac_version: 0.9.0
id: naip
title: NAIP Imagery
description: Catalog of NAIP Imagery.
Expand Down Expand Up @@ -291,7 +291,7 @@ components:
- type: string
- type: number
example:
stac_version: 0.9.0-rc2
stac_version: 0.9.0
stac_extensions: []
id: Sentinel-2
title: 'Sentinel-2 MSI: MultiSpectral Instrument, Level-1C'
Expand Down Expand Up @@ -660,7 +660,7 @@ components:
stac_version:
title: STAC version
type: string
example: 0.9.0-rc2
example: 0.9.0
stac_extensions:
title: STAC extensions
type: array
Expand Down Expand Up @@ -737,7 +737,7 @@ components:
assets:
$ref: '#/components/schemas/itemAssets'
example:
stac_version: 0.9.0-rc2
stac_version: 0.9.0
stac_extensions:
- eo
- view
Expand Down
2 changes: 1 addition & 1 deletion api-spec/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion api-spec/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "api-spec",
"version": "0.9.0-rc2",
"version": "0.9.0",
"description": "Generate STAC openapi defintions from fragments.",
"repository": "https://github.com/radiantearth/stac-spec",
"license": "Apache-2.0",
Expand Down
20 changes: 10 additions & 10 deletions catalog-spec/catalog-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,14 @@ guidance for good recommendations when implementing.

## Catalog fields

| Element | Type | Description |
| ------------ | ------------- | ------------------------------------------------------------ |
| stac_version | string | **REQUIRED.** The STAC version the catalog implements. STAC versions can be mixed, but please keep the [recommended best practices](../best-practices.md#mixing-stac-versions) in mind. |
| stac_extensions | [string] | A list of extensions the Catalog implements. |
| id | string | **REQUIRED.** Identifier for the catalog. |
| title | string | A short descriptive one-line title for the catalog. |
| description | string | **REQUIRED.** Detailed multi-line description to fully explain the catalog. [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for rich text representation. |
| links | [[Link Object](#link-object)] | **REQUIRED.** A list of references to other documents. |
| Element | Type | Description |
| --------------- | ------------- | ------------------------------------------------------------ |
| stac_version | string | **REQUIRED.** The STAC version the catalog implements. STAC versions can be mixed, but please keep the [recommended best practices](../best-practices.md#mixing-stac-versions) in mind. |
| stac_extensions | [string] | A list of extension identifiers the Catalog implements. |
| id | string | **REQUIRED.** Identifier for the catalog. |
| title | string | A short descriptive one-line title for the catalog. |
| description | string | **REQUIRED.** Detailed multi-line description to fully explain the catalog. [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for rich text representation. |
| links | [[Link Object](#link-object)] | **REQUIRED.** A list of references to other documents. |

**stac_extensions**: A list of extensions the Catalog implements. This does NOT declare the extensions of children or Items. The list contains URLs to the JSON Schema files it can be validated against. For official [content extensions](../extensions/README.md#list-of-content-extensions), a "shortcut" can be used. This means you can specify the folder name of the extension, for example `pointcloud` for the Point Cloud extension. This does *not* apply for API extensions. If the versions of the extension and the catalog diverge, you can specify the URL of the JSON schema file.
This list must only contain extensions that extend the Catalog itself, see the the 'Scope' column in the list of extensions.
Expand Down Expand Up @@ -145,7 +145,7 @@ might look something like this:

```json
{
"stac_version": "0.9.0-rc2",
"stac_version": "0.9.0",
"id": "NAIP",
"description": "Catalog of NAIP Imagery",
"links": [
Expand All @@ -163,7 +163,7 @@ A typical '_child_' sub-catalog could look similar:

```json
{
"stac_version": "0.9.0-rc2",
"stac_version": "0.9.0",
"id": "NAIP",
"description": "Catalog of NAIP Imagery - 30087",
"links": [
Expand Down
2 changes: 1 addition & 1 deletion catalog-spec/examples/catalog.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"stac_version": "0.9.0-rc2",
"stac_version": "0.9.0",
"id": "sample",
"description": "This is a very basic sample catalog.",
"links": [
Expand Down
2 changes: 1 addition & 1 deletion catalog-spec/json-schema/catalog.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "0.9.0-rc2"
"const": "0.9.0"
},
"stac_extensions": {
"title": "STAC extensions",
Expand Down
Loading

0 comments on commit 568a048

Please sign in to comment.