Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Questions related to STAC versions #850

Closed
m-mohr opened this issue Jun 17, 2020 · 2 comments · Fixed by #855
Closed

Questions related to STAC versions #850

m-mohr opened this issue Jun 17, 2020 · 2 comments · Fixed by #855
Assignees
Labels
Milestone

Comments

@m-mohr
Copy link
Collaborator

m-mohr commented Jun 17, 2020

Due to my work on a specification (openEO) that is based on STAC, some questions came up recently:

  1. Is STAC (i.e. releases and the field stac_version) following Semantic Versioning? So is any breaking change after 1.0.0 leading to a version 2.0? If not, how is the procedure regarding version numbers and breaking changes?
    Why is this important? I want to future-proof the openEO API and not just allow version 0.9.0, but also also all versions that are non-breaking after 1.0.0. Getting this information allows me to actually validate the stac_version field (e.g. with a pattern such as ^(0\.9|1)\.).
  2. Is it fine to deliver any STAC version via any STAC API version? For example, can I implement STAC API 0.9 and it responds with STAC 1.0 or 0.8 items/collections? According to the OpenAPI file it seems allowed: https://github.com/radiantearth/stac-api-spec/blob/master/STAC.yaml#L1311
    Why is this important? How can I base a specification on STAC API that is STAC 1.0 compliant without having a "final" STAC API spec yet?
  3. To use 1.0 extensions that are not part of 0.9, I think the way to expose these via "stac_extensions" is to not use timestamps, but (see Unique schema $id's (host schemas on stacspec) #835) https://schemas.stacspec.org/v1.0.0-beta.1/extensions/timestamps/schema.json, right? (Edit: yes, seems to be backed by "If the versions of the extension and the item diverge, you can specify the URL of the JSON schema file.")
@cholmes
Copy link
Contributor

cholmes commented Jun 22, 2020

  1. I'll take on - put in language about sem ver
  2. Discussed on call for 6-22-20, decided that the answer is 'yes', a STAC API can respond with different versions. For the betas we don't have a great way to resolve which api version is implemented, though the features api version may help a bit. And we will work to get it more clear for 1.0 of stac api.
  3. This is resolved

cholmes added a commit that referenced this issue Jun 23, 2020
@m-mohr m-mohr linked a pull request Jun 23, 2020 that will close this issue
3 tasks
@m-mohr m-mohr added this to the 1.0.0-beta.2 milestone Jun 23, 2020
@m-mohr
Copy link
Collaborator Author

m-mohr commented Jun 24, 2020

  1. PR is added sem ver clarification - #850 #855

  2. I guess the way to resolve it is as follows:

    • All STAC APIs prior to 0.9 are bound to the respective STAC versions
    • STAC 0.9 can either be a STAC 0.9 or 1.0 API. It is distinguishable by the stac_api_version field, which we'll include for 1.0. If it's not available, it's a 0.9 API.
    • Everything after STAC API 1.0 has the stac_api_version field.

    Do we need to document that somewhere? I just wrote and pinned STAC API for STAC 1.0 #858 for now. So this issue can be closed after added sem ver clarification - #850 #855 is merged.

matthewhanson added a commit that referenced this issue Jul 1, 2020
@m-mohr m-mohr closed this as completed Jul 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants