From cc75b60ee7f793d3d8bd5d7d339eb30ee4944270 Mon Sep 17 00:00:00 2001 From: Florian M Date: Tue, 17 Dec 2024 14:28:55 +0100 Subject: [PATCH 1/2] Bump FossilDB to 0.1.33 (#8287) * Bump FossilDB version to 0.1.33 * also adapt hosting/docker-compose.yml * migration guide * Apply suggestions from code review --------- Co-authored-by: Norman Rzepka --- MIGRATIONS.unreleased.md | 1 + docker-compose.yml | 2 +- fossildb/version | 2 +- tools/hosting/docker-compose.yml | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/MIGRATIONS.unreleased.md b/MIGRATIONS.unreleased.md index 681f5a88093..6e0d5ec66d8 100644 --- a/MIGRATIONS.unreleased.md +++ b/MIGRATIONS.unreleased.md @@ -8,6 +8,7 @@ User-facing changes are documented in the [changelog](CHANGELOG.released.md). ## Unreleased [Commits](https://github.com/scalableminds/webknossos/compare/24.12.0...HEAD) - Removed support for HTTP API versions 3 and 4. [#8075](https://github.com/scalableminds/webknossos/pull/8075) +- New FossilDB version `0.1.33` (docker image `scalableminds/fossildb:master__504`) is required. ### Postgres Evolutions: - [124-decouple-dataset-directory-from-name](conf/evolutions/124-decouple-dataset-directory-from-name) diff --git a/docker-compose.yml b/docker-compose.yml index 879f777e4f7..8d811af7dfe 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -269,7 +269,7 @@ services: # FossilDB fossildb: - image: scalableminds/fossildb:master__484 + image: scalableminds/fossildb:master__504 command: - fossildb - -c diff --git a/fossildb/version b/fossildb/version index db7a480479e..50140e35363 100644 --- a/fossildb/version +++ b/fossildb/version @@ -1 +1 @@ -0.1.31 +0.1.33 diff --git a/tools/hosting/docker-compose.yml b/tools/hosting/docker-compose.yml index f60b1c09b55..997cd9ead41 100644 --- a/tools/hosting/docker-compose.yml +++ b/tools/hosting/docker-compose.yml @@ -2,7 +2,7 @@ version: "2.2" services: webknossos: - image: scalableminds/webknossos:${DOCKER_TAG:-23.04.0} + image: scalableminds/webknossos:${DOCKER_TAG:-24.12.0} ports: - "127.0.0.1:9000:9000" depends_on: @@ -58,7 +58,7 @@ services: # FossilDB fossildb: - image: scalableminds/fossildb:master__489 + image: scalableminds/fossildb:master__504 command: - fossildb - -c From fe533750d194b439d7dee5f93352c2d1da00bfde Mon Sep 17 00:00:00 2001 From: frcroth Date: Wed, 18 Dec 2024 09:47:17 +0100 Subject: [PATCH 2/2] Don't require zarr 3 Bytes Codec configuration key (#8282) --- CHANGELOG.unreleased.md | 3 ++- .../datareaders/zarr3/Zarr3ArrayHeader.scala | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index e4e02843cd7..1f0225d766c 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -28,13 +28,14 @@ For upgrade instructions, please check the [migration guide](MIGRATIONS.released - Fixed a bug that uploading a zarr dataset with an already existing `datasource-properties.json` file failed. [#8268](https://github.com/scalableminds/webknossos/pull/8268) - Fixed the organization switching feature for datasets opened via old links. [#8257](https://github.com/scalableminds/webknossos/pull/8257) - Fixed that uploading an NML file without an organization id failed. Now the user's organization is used as fallback. [#8277](https://github.com/scalableminds/webknossos/pull/8277) -- Fixed that the frontend did not ensure a minium length for annotation layer names. Moreover, names starting with a `.` are also disallowed now. [#8244](https://github.com/scalableminds/webknossos/pull/8244) +- Fixed that the frontend did not ensure a minimum length for annotation layer names. Moreover, names starting with a `.` are also disallowed now. [#8244](https://github.com/scalableminds/webknossos/pull/8244) - Fixed a bug where in the add remote dataset view the dataset name setting was not in sync with the datasource setting of the advanced tab making the form not submittable. [#8245](https://github.com/scalableminds/webknossos/pull/8245) - Fix read and update dataset route for versions 8 and lower. [#8263](https://github.com/scalableminds/webknossos/pull/8263) - Fixed that task bounding boxes are again converted to user bounding boxes when uploading annotations via nmls. [#8280](https://github.com/scalableminds/webknossos/pull/8280) - Added missing legacy support for `isValidNewName` route. [#8252](https://github.com/scalableminds/webknossos/pull/8252) - Fixed some layout issues in the upload view. [#8231](https://github.com/scalableminds/webknossos/pull/8231) - Fixed `FATAL: role "postgres" does not exist` error message in Docker compose. [#8240](https://github.com/scalableminds/webknossos/pull/8240) +- Fixed the Zarr 3 implementation not accepting BytesCodec without "configuration" key. [#8282](https://github.com/scalableminds/webknossos/pull/8282) ### Removed - Removed support for HTTP API versions 3 and 4. [#8075](https://github.com/scalableminds/webknossos/pull/8075) diff --git a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/datareaders/zarr3/Zarr3ArrayHeader.scala b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/datareaders/zarr3/Zarr3ArrayHeader.scala index 1706960b235..4d4caf26967 100644 --- a/webknossos-datastore/app/com/scalableminds/webknossos/datastore/datareaders/zarr3/Zarr3ArrayHeader.scala +++ b/webknossos-datastore/app/com/scalableminds/webknossos/datastore/datareaders/zarr3/Zarr3ArrayHeader.scala @@ -211,12 +211,19 @@ object Zarr3ArrayHeader extends JsonImplicits { val codecSpecs = rawCodecSpecs.map(c => { for { spec: CodecConfiguration <- c("name") match { - case JsString(BytesCodecConfiguration.name) => c(configurationKey).validate[BytesCodecConfiguration] - case JsString(BytesCodecConfiguration.legacyName) => c(configurationKey).validate[BytesCodecConfiguration] - case JsString(TransposeCodecConfiguration.name) => c(configurationKey).validate[TransposeCodecConfiguration] - case JsString(GzipCodecConfiguration.name) => c(configurationKey).validate[GzipCodecConfiguration] - case JsString(BloscCodecConfiguration.name) => c(configurationKey).validate[BloscCodecConfiguration] - case JsString(ZstdCodecConfiguration.name) => c(configurationKey).validate[ZstdCodecConfiguration] + // BytesCodec may have no "configuration" key + case JsString(BytesCodecConfiguration.name) => + (c \ configurationKey).toOption + .map(_.validate[BytesCodecConfiguration]) + .getOrElse(JsSuccess(BytesCodecConfiguration(None))) + case JsString(BytesCodecConfiguration.legacyName) => + (c \ configurationKey).toOption + .map(_.validate[BytesCodecConfiguration]) + .getOrElse(JsSuccess(BytesCodecConfiguration(None))) + case JsString(TransposeCodecConfiguration.name) => c(configurationKey).validate[TransposeCodecConfiguration] + case JsString(GzipCodecConfiguration.name) => c(configurationKey).validate[GzipCodecConfiguration] + case JsString(BloscCodecConfiguration.name) => c(configurationKey).validate[BloscCodecConfiguration] + case JsString(ZstdCodecConfiguration.name) => c(configurationKey).validate[ZstdCodecConfiguration] case JsString(Crc32CCodecConfiguration.name) => JsSuccess(Crc32CCodecConfiguration) // Crc32 codec has no configuration case JsString(ShardingCodecConfiguration.name) => readShardingCodecConfiguration(c(configurationKey))