1.8.8rc1
SpacemanPaul
released this
29 Sep 03:02
·
459 commits
to develop
since this release
RC release to facilitate development in downstream packages using the new transaction API.
Most notable new feature is the new database transaction API, as discussed in ODC-EP07 Database Transaction API. API Example:
with dc.index.transaction() as trans:
# Archive old datasets and add new ones in single transaction
dc.index.datasets.archive([old_ds1.id, old_ds2.id])
dc.index.datasets.add(ds1)
dc.index.datasets.add(ds2)
# If execution gets to here, the transaction is committed.
# If an exception was raised by any of the above methods, the transaction is rolled back.
Also includes an update of the main test docker build to Ubuntu 22.04 and Python 3.10, and significant progress on the new postgis index driver.
Please note that the postgis index driver is still flagged as "experimental" and is missing several key features.
Full list of changes since 1.8.7:
- Migrate main test docker build to Ubuntu 22.04 and Python 3.10. (#1283)
- Dynamically create tables to serve as spatial indexes in postgis driver. (#1312)
- Populate spatial index tables, automatically and manually. (#1314)
- Perform spatial queries against spatial index tables in postgis driver. (#1316)
- EO3 data fixtures and tests. Fix SQLAlchemy bugs in postgis driver. (#1309)
- Dependency updates. (#1308, #1313)
- Remove several features that had been deprecated in previous releases. (#1275)
- Fix broken paths in api docs. (#1277)
- Fix readthedocs build. (#1269)
- Add doc change comparison for tuple and list types with identical values (#1281)
- Add flake8 to Github action workflow and correct code base per flake8 rules (#1285)
- Add
dataset id
check to dataset doc resolve to preventuuid
returning error whenid
used inNone
(#1287) - Add how to run targeted single test case in docker guide to README (#1288)
- Add
help message
for alldataset
,product
andmetadata
subcommands when required arg is not passed in (#1292) - Add
error code 1
to all incompletedataset
,product
andmetadata
subcommands (#1293) - Add
exit_on_empty_file
message toproduct
anddataset
subcommands instead of returning no output when file is empty (#1294) - Add flags to index drivers advertising what format datasets they support (eo/eo3/non-geo (e.g. telemetry only))
and validate in the high-level API. General refactor and cleanup of eo3.py and hl.py. (#1296) - Replace references to 'agdc' and 'dataset_type' in postgis driver with 'odc' and 'product'. (#1298)
- Add warning message for product and metadata add when product and metadata is already in the database. (#1299)
- Ensure SimpleDocNav.id is of type UUID, to improve lineage resolution (#1304)
- Replace SQLAlchemy schema and query definitions in experimental postgis driver with newer "declarative" style ORM.
Portions of API dealing with lineage handling, locations, and dynamic indexes are currently broken in the postgis
driver. As per the warning message, the postgis driver is currently flagged as "experimental" and is not considered
stable. (#1305) - Implement
patch_url
argument todc.load()
anddc.load_data()
to provide a way to sign dataset URIs, as
is required to access some commercial archives (e.g. Microsoft Planetary Computer). API is based on theodc-stac
implementation. Only works for direct loading. More work required for deferred (i.e. Dask) loading. (#1317) - Implement public-facing index-driver-independent API for managing database transactions, as per Enhancement Proposal
EP07 (#1318) - Update Conda environment to match dependencies in setup.py (#1319)