pystac icon indicating copy to clipboard operation
pystac copied to clipboard

Support STAC spec version 1.1.0

Open jsignell opened this issue 1 year ago • 6 comments

At some point in the near future version 1.1.0 of the STAC spec will be released. PRs are still being merged in, but the current list of high-profile changes is at: https://github.com/radiantearth/stac-spec/blob/v1.1.0-release/CHANGELOG.md

These are the changes that I think will need to be made in pystac (in the order they appear in the stac-spec changelog):

  • [x] https://github.com/stac-utils/pystac/pull/1427
  • [ ] make bands core instead of being within the eo and raster extensions (WIP PR #1238)
  • [x] #1376
  • [x] #1377
  • [x] #1378
  • [x] #1379
  • [x] #1380
  • [ ] #1347
  • [x] #1381
  • [ ] Ensure that APIs have trailing slashes and files do not (not sure this one requires any action)
  • [x] #1382
  • [ ] item.geometry cannot be a GeometryCollection (not sure this one requires any action)
  • [x] #1383

jsignell avatar Jul 31 '24 14:07 jsignell

Note: I ended up making a milestone for this and making all the items into individual tickets.

jsignell avatar Jul 31 '24 15:07 jsignell

@jsignell I'm starting work on v1.1.0 support, and I think I'd like to get rid of the milestone and only use this ticket to track v1.1.0 issues. My reasoning is that some of these issues can be solved without breaking pystac (e.g. #1379) and others are breaking (e.g. changing the docstring for #1377 will inherently "move" pystac to v1.1.0). We'll also eventually need to update DEFAULT_STAC_VERSION which will be breaking as well.

Tl;dr: I'm proposing closing the STAC spec version 1.0.0 milestone in favor of this tracking issue, and instead opening a v1.11 milestone to go along with the existing v2.0 milestone.

gadomski avatar Aug 21 '24 19:08 gadomski

I'm proposing closing the STAC spec version 1.0.0 milestone in favor of this tracking issue, and instead opening a v1.11 milestone to go along with the existing v2.0 milestone.

That plan sounds good to me! I felt a little wierd making a milestone that wasn't necessarily tied to a release.

jsignell avatar Sep 04 '24 13:09 jsignell

Ok, I've got things sorted into three milestones (I added one):

  • I'd like to cut v1.11 soon-ish to get it out before we start in earnest on STAC v1.1 work
  • v1.12 is the (hopefully) non-breaking STAC v1.1 changes
  • v2.0 gets us home

gadomski avatar Sep 23 '24 09:09 gadomski

Hi! I am working on a stactools package and am considering using pystac>=1.12 but I want to be able to write items/collections that are compliant with STAC v1.0.0. I found the set_stac_version function but that doesn't seem to do much besides set the stac_version property in the items/collections that I create. Is it incumbent upon me to add the newly absorbed extensions (e.g. item-assets, raster) manually if I want to create items/collections that are compliant with v1.0.0?

hrodmn avatar Jan 29 '25 12:01 hrodmn

Is it incumbent upon me to add the newly absorbed extensions (e.g. item-assets, raster) manually if I want to create items/collections that are compliant with v1.0.0?

All the same functionality that was available pre-v1.12 is still there, meaning you can still write eo:bands, raster:bands, etc using the extension interface. There's nothing "non-compliant" about writing item_assets or bands directly on a v1.0.0 item (STAC allows for arbitrary additional fields), it's more a question of whether tooling will understand it.

gadomski avatar Jan 29 '25 12:01 gadomski