)]}'
{
  "log": [
    {
      "commit": "73383b6907ab0dd05956b9c4644703c5a76790e0",
      "tree": "cd909b1b3ad8bf0c89828f20b95142c6b8ab805b",
      "parents": [
        "01e0369fc47e13f250409017b02e7c8faa3aeb6d",
        "a175b926cf406f24c83ca073efe4935c6a72ee2d"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 17:29:19 2026 +0200"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 17:29:19 2026 +0200"
      },
      "message": "Merge of automatic reorganization of imports order.\n"
    },
    {
      "commit": "a175b926cf406f24c83ca073efe4935c6a72ee2d",
      "tree": "85f5564d1eec6c06f34e2d7335acf08edad72c11",
      "parents": [
        "76ac26bca233fd47b797ce44f4418b35c62bc849",
        "19892f6617e62099d99d68599821674033edd8e9"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 17:26:28 2026 +0200"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 17:26:28 2026 +0200"
      },
      "message": "Merge of automatic reorganization of imports order.\n"
    },
    {
      "commit": "19892f6617e62099d99d68599821674033edd8e9",
      "tree": "f1297185b14cc27702fa3f85d7d27bb281ae2fb4",
      "parents": [
        "3a021d234527488a0edcd951a04b50102d08466c"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 17:23:07 2026 +0200"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 17:23:07 2026 +0200"
      },
      "message": "Post-merge automatic reorganization of imports order.\n"
    },
    {
      "commit": "01e0369fc47e13f250409017b02e7c8faa3aeb6d",
      "tree": "1337b3719097e5e1cb56a633cf206004e530624c",
      "parents": [
        "8ef62b01f52635d9d5a22e3263294e6565bd1a34",
        "76ac26bca233fd47b797ce44f4418b35c62bc849"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 17:17:02 2026 +0200"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 17:17:02 2026 +0200"
      },
      "message": "Merge branch \u0027geoapi-3.1\u0027.\nContains (non-exhaustive list):\n\n- Implementation of `TileMatrixSet` by the GeoTIFF reader.\n- Redesign of the controls over coverage rendering in JavaFX.\n- Optimizations in filters and expressions.\n- Work in the geometry package (incubator).\n- Bug fixes.\n"
    },
    {
      "commit": "76ac26bca233fd47b797ce44f4418b35c62bc849",
      "tree": "5eee39bc9255b3e1efeda3f2eaa57454dc9961ae",
      "parents": [
        "8c45b25f06b47410928f2ed3db72cafd39364783",
        "3a021d234527488a0edcd951a04b50102d08466c"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 16:08:05 2026 +0200"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 16:08:05 2026 +0200"
      },
      "message": "Merge branch \u0027geoapi-4.0\u0027 into geoapi-3.1.\nContains (non-exhaustive list):\n\n- Implementation of `TileMatrixSet` by the GeoTIFF reader.\n- Redesign of the controls over coverage rendering in JavaFX.\n- Work in the geometry package (incubator).\n- Bug fixes.\n"
    },
    {
      "commit": "3a021d234527488a0edcd951a04b50102d08466c",
      "tree": "24f14a1feeb2db2599c5f11b6fb6ef34d0da1b4f",
      "parents": [
        "a3b83264468f82d9cf4a39503336d8492cec14db"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 15:55:58 2026 +0200"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 31 15:55:58 2026 +0200"
      },
      "message": "Consolidation of the handling of CRS shown in the status bar.\n"
    },
    {
      "commit": "a3b83264468f82d9cf4a39503336d8492cec14db",
      "tree": "8f2466890b1517d36f581e81815eeaf0f1b7408a",
      "parents": [
        "14a89a39bcf5af7b0f90353676eab2594009ba0a"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Mar 30 17:56:23 2026 +0200"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Mar 30 17:56:23 2026 +0200"
      },
      "message": "Move to `MapContextview` the widgets controlling the coverage appearence.\nMove to the status bar the label which was showing the CRS name.\n"
    },
    {
      "commit": "14a89a39bcf5af7b0f90353676eab2594009ba0a",
      "tree": "5b94e0bc3ae3690bad96870508eceb5e82cb1a4a",
      "parents": [
        "48633f037761e8b77ee14b8d3aacb23615d93802"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Mar 30 11:33:09 2026 +0200"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Mar 30 14:19:14 2026 +0200"
      },
      "message": "Move the widget for configuring the isoline as a `MapItem` to show in `MapContextView`.\n"
    },
    {
      "commit": "48633f037761e8b77ee14b8d3aacb23615d93802",
      "tree": "03ba20a3fe290358f50474e5827a9f00ce1a97d6",
      "parents": [
        "86bff97aa011aeb192d99307004eb2dff88f08dd"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Mar 30 11:07:38 2026 +0200"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Mar 30 11:07:38 2026 +0200"
      },
      "message": "Adds a \"Layers\" panel and move the \"Visual indication of tile loading\" checkbox as a map item.\nThis is the beginning of a `MapContextView` widget as a tree view with a configuration panel.\n"
    },
    {
      "commit": "86bff97aa011aeb192d99307004eb2dff88f08dd",
      "tree": "eb102bc46aa0835a03e2ef0cf161c4e07061eac8",
      "parents": [
        "028ac1be0847f1022c07aa0208be2373eaac4a32"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sun Mar 29 13:11:55 2026 +0200"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sun Mar 29 13:11:55 2026 +0200"
      },
      "message": "Avoid misleading classname as display name of a data store.\n"
    },
    {
      "commit": "028ac1be0847f1022c07aa0208be2373eaac4a32",
      "tree": "7abb2906479661a62f65524ffb359049ac560d14",
      "parents": [
        "e49c660ef2f133a46fabbf06aee3872c51256248"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Mar 27 16:10:39 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Mar 28 15:33:23 2026 +0100"
      },
      "message": "Allows `Containers.derivedList(…)` to return a list which supports addition of elements.\n"
    },
    {
      "commit": "e49c660ef2f133a46fabbf06aee3872c51256248",
      "tree": "02e3e20e4ad95464025523e68a0002a11c07b62c",
      "parents": [
        "d38375dcb340558d1f094d32d397b57dba09ca56"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Mar 28 15:30:48 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Mar 28 15:33:19 2026 +0100"
      },
      "message": "Adjustment in documentation, formatting and checks for null values.\nRemoval of a new method which is not going to be used after all.\n"
    },
    {
      "commit": "d38375dcb340558d1f094d32d397b57dba09ca56",
      "tree": "2922c6b0a2ef9cf0ed0ff3aed1b5cd93a527e97c",
      "parents": [
        "433c27f0fd50212c578f5fc4399a59b49dc3443f"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Mar 26 21:07:59 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Mar 26 21:07:59 2026 +0100"
      },
      "message": "Consolidation of `ResourceTree` making a better usage of JavaFX events.\nThis work is needed for reusing some properties in a future widget for configuring map items.\n"
    },
    {
      "commit": "433c27f0fd50212c578f5fc4399a59b49dc3443f",
      "tree": "6aa6df307b9fc4bcbfbb0a0a3c4898ffdbdc7ed7",
      "parents": [
        "c6225542f4fd15e630ba570f6e248b3b9291212f"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Mar 25 22:43:17 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Mar 25 22:43:17 2026 +0100"
      },
      "message": "Use shorter name in `TileMatrixSet` identifier.\nThe identifier now hides the image identifier.\n"
    },
    {
      "commit": "c6225542f4fd15e630ba570f6e248b3b9291212f",
      "tree": "ce9644816541244e737229d73cb7257a8748e7dc",
      "parents": [
        "a3003a5d58690bfc73790f1d1aedbfb02e77bd72"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Mar 25 21:41:24 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Mar 25 21:41:24 2026 +0100"
      },
      "message": "Rename `GridCoverageResource.getResolutions()` as `getAvailableResolutions()`.\nKeep the old method as a deprecated method. This is for compatibility.\n"
    },
    {
      "commit": "a3003a5d58690bfc73790f1d1aedbfb02e77bd72",
      "tree": "583672799ea807b51c254b5da0663c0c6a17f713",
      "parents": [
        "27ce7088b0092a2b907f762ec402f1f2e89a8ffa"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Mar 25 17:51:14 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Mar 25 17:51:14 2026 +0100"
      },
      "message": "Pyramid levels should be ordered from coarsest to finest resolution.\nhttps://issues.apache.org/jira/browse/SIS-628\n"
    },
    {
      "commit": "27ce7088b0092a2b907f762ec402f1f2e89a8ffa",
      "tree": "6489fab824103e6bf0177956c100766cce2ace48",
      "parents": [
        "0d285f701bebeff31da5c2b408191862d88fb24f"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Mar 25 12:05:00 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Mar 25 12:05:00 2026 +0100"
      },
      "message": "For an expression such as `equal(function(\"isNaN\", …), literal(true))`,\nsimplify to a more direct filter such as `function(\"isNaN\", …)`.\n"
    },
    {
      "commit": "0d285f701bebeff31da5c2b408191862d88fb24f",
      "tree": "a98e2f78488b6e966879a76178a8ca2e26956fb6",
      "parents": [
        "d22fd8761f37c1246877d760b79458e6a3b7453a"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 24 17:44:54 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 24 17:46:53 2026 +0100"
      },
      "message": "Fix a ClassCastException in the result of optimizing an `equal` filter when the operands are two Boolean values.\n"
    },
    {
      "commit": "d22fd8761f37c1246877d760b79458e6a3b7453a",
      "tree": "4386f801b67294328f9143d4059cd0c1a98e6ab4",
      "parents": [
        "e99ccc798adf70692253b1411840ea467e122032"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Mar 19 20:48:06 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 24 17:46:53 2026 +0100"
      },
      "message": "Provides a message saying that a CRS is missing instead of letting the exception propagate.\n"
    },
    {
      "commit": "e99ccc798adf70692253b1411840ea467e122032",
      "tree": "a4b8984b22cd1b365f701d8640360d86924b7955",
      "parents": [
        "cf8c06ee8643ad2eca5a0b574f689c05061ba1bf"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Mar 19 20:46:02 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 24 17:46:53 2026 +0100"
      },
      "message": "Fix wrong tooltip associated to button for switching between grid coverage visual and table of values.\nOpportunistic documentation fixes.\n"
    },
    {
      "commit": "cf8c06ee8643ad2eca5a0b574f689c05061ba1bf",
      "tree": "0dbe572f56b37f60312a91d9418c9bcada034e8f",
      "parents": [
        "6aab23a1595ff20384fd3b51e77f5af14b248762"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Tue Mar 17 16:40:33 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Fri Mar 20 11:13:50 2026 +0100"
      },
      "message": "feat(Geometry): add shortcut methods on Similarity\n"
    },
    {
      "commit": "6aab23a1595ff20384fd3b51e77f5af14b248762",
      "tree": "fb22b6d00c6892e5e72df6f62d5b892872fd64f7",
      "parents": [
        "feb9fe9c8a67478002287e8b9e4837ad4ab40401"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Mar 18 09:32:51 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Mar 18 09:32:51 2026 +0100"
      },
      "message": "chore(geoapi): update geoapi submodule\n"
    },
    {
      "commit": "feb9fe9c8a67478002287e8b9e4837ad4ab40401",
      "tree": "522e282f0a900b7b433e92b3fc188a3212c73712",
      "parents": [
        "517b8edb7e8a970f7ef7c24abdbf93c57f95df9e"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 17 15:49:35 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Mar 17 15:49:35 2026 +0100"
      },
      "message": "Requires PostgreSQL 18 instead of 15 for enabling the use of collation.\n"
    },
    {
      "commit": "517b8edb7e8a970f7ef7c24abdbf93c57f95df9e",
      "tree": "9845318e96d62df992501848af2bba06e04bb77c",
      "parents": [
        "d5ff44456b0f844f0a2aa68af9cf7105147d35b2"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Fri Mar 13 14:34:37 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Fri Mar 13 14:34:37 2026 +0100"
      },
      "message": "feat(Math): remove several matrix static methods, now part of matrix classes\n"
    },
    {
      "commit": "d5ff44456b0f844f0a2aa68af9cf7105147d35b2",
      "tree": "08da2ec56b763368f582f4822ffd9c1e6b4a647a",
      "parents": [
        "133d1e5b49d940a2dfc351d06ceb95a7f83ea92f"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Mar 13 06:23:56 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Mar 13 06:24:43 2026 +0100"
      },
      "message": "Fix version of visual indications of which tiles are loaded in the JavaFX application.\n"
    },
    {
      "commit": "133d1e5b49d940a2dfc351d06ceb95a7f83ea92f",
      "tree": "f0d0f4581c2d8571f5cbfe9b25668700a9a2d3af",
      "parents": [
        "6bd8f4811a37aecd1da8e38937eede59fe18f950"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Mon Mar 09 16:45:05 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Mon Mar 09 16:45:05 2026 +0100"
      },
      "message": "feat(Geometry): replace Affine.toMatrix(buffer) by Matrix.setFromAffine(affine)\n"
    },
    {
      "commit": "6bd8f4811a37aecd1da8e38937eede59fe18f950",
      "tree": "0f9a160f10d815cc456a838b98ec15013e584a19",
      "parents": [
        "09c39185cfcaec78cb10c52d71c36c65f2703ffb"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Fri Mar 06 16:56:20 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Fri Mar 06 16:56:20 2026 +0100"
      },
      "message": "feat(Geometry): add readonly super interface for Tuple,Vector,Matrix,Affine,Similarity\n"
    },
    {
      "commit": "09c39185cfcaec78cb10c52d71c36c65f2703ffb",
      "tree": "fd6e6e0b296ae7f07c044cb84b78c651e7db926a",
      "parents": [
        "ad1fce03567e9af399e4dcb3093c8f2f322d315c"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Mar 05 15:15:36 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Mar 05 15:15:36 2026 +0100"
      },
      "message": "feat(Geometry): add scene animation classes\n"
    },
    {
      "commit": "ad1fce03567e9af399e4dcb3093c8f2f322d315c",
      "tree": "d45815a28a9a4755ce9044f4691f654977977473",
      "parents": [
        "50b842aae4a47482202b7befe2beeb12286ee410"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Mar 05 14:41:27 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Mar 05 14:41:27 2026 +0100"
      },
      "message": "feat(Geometry): math Matrix extends geoapi Matrix, cleaning Similarity classes\n"
    },
    {
      "commit": "50b842aae4a47482202b7befe2beeb12286ee410",
      "tree": "611497c60d24eb9168f2dc5f2ea8ab6d63e8d591",
      "parents": [
        "c425e58d03fe85716b0587cab0d0b2f806c9dc72"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Mar 04 15:25:46 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Mar 04 15:25:46 2026 +0100"
      },
      "message": "feat(Geometry): review affine,matrix,similarity transforms. Follow the same pattern as Tuple and Vector, prepare Transform interface for Vector API and HAT Kernels\n"
    },
    {
      "commit": "c425e58d03fe85716b0587cab0d0b2f806c9dc72",
      "tree": "9b99d1395818c28bd145ba266db212ba720da1e7",
      "parents": [
        "a48ace0b263f9190171ab34ed4ec31f2084b33ae"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 26 12:16:02 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 26 12:16:02 2026 +0100"
      },
      "message": "Fix formatting of resolution in TileMatrixSet.\n"
    },
    {
      "commit": "a48ace0b263f9190171ab34ed4ec31f2084b33ae",
      "tree": "86320684b958a3fad521406e0b1d0d28617109ca",
      "parents": [
        "8d27cdfb7952b565e0e892a02987e7b2aa36a962"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 26 10:52:12 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 26 10:52:12 2026 +0100"
      },
      "message": "Fix an `IndexOutOfBoundsException`.\n"
    },
    {
      "commit": "8d27cdfb7952b565e0e892a02987e7b2aa36a962",
      "tree": "61682ce7841408cf5aca100867ad45bcb574932f",
      "parents": [
        "7819f1feed2bf45726ac24a30b5c14473183644b"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Feb 26 09:41:22 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Feb 26 09:41:22 2026 +0100"
      },
      "message": "chore(Geometry): regroup geometry operations (Delaunay,GreedyInsert,EarClipping,TextureAtlas) in the operation package\n"
    },
    {
      "commit": "7819f1feed2bf45726ac24a30b5c14473183644b",
      "tree": "3debe7e9a8350a29ed27d1a72e7082c86373ca3a",
      "parents": [
        "8546d59b4eaa3be88cc59fe03ff81245fdb7c978"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Feb 26 09:34:10 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Feb 26 09:34:10 2026 +0100"
      },
      "message": "feat(Geometry): merge geometry interfaces defined in different sections of ISO-19107\n"
    },
    {
      "commit": "8546d59b4eaa3be88cc59fe03ff81245fdb7c978",
      "tree": "7a5ea1420aaf0a1955160e4cf8c5349e6d06124d",
      "parents": [
        "f7fc74b4004d327a9016d021ce0125b292351101"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Feb 26 09:22:40 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Feb 26 09:22:40 2026 +0100"
      },
      "message": "doc(Geometry): document scene sampler\n"
    },
    {
      "commit": "f7fc74b4004d327a9016d021ce0125b292351101",
      "tree": "229986deead8d3604c1598a97bcfa2c4d10f3082",
      "parents": [
        "7c3fba2ec4a678eb561d1793be017829975fe9dc"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Feb 25 19:07:41 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Feb 25 19:09:11 2026 +0100"
      },
      "message": "Reuse the code of `TileMatrixSet.toString()` in the JavaFX widget.\nIt produces a table easier to read.\n"
    },
    {
      "commit": "7c3fba2ec4a678eb561d1793be017829975fe9dc",
      "tree": "51cda887a5d7b5faf14842aa550f0ea060b850de",
      "parents": [
        "d324b2e6bc4dcf9f3974e2100aab9bb4cb4c9ffb"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Feb 25 14:06:18 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Feb 25 14:06:18 2026 +0100"
      },
      "message": "feat(Geometry): add scene model as geometry aggregation tree\n"
    },
    {
      "commit": "d324b2e6bc4dcf9f3974e2100aab9bb4cb4c9ffb",
      "tree": "7745cae9dd53f151c7bd67865866efbc0221378f",
      "parents": [
        "5c3f12c80d480421d05da246a23c5556f871cac1"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Feb 25 11:48:24 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Feb 25 11:48:24 2026 +0100"
      },
      "message": "feat(Geometry): implement Java array factory builder, factorize array code, prepare FFM array factory classes\n"
    },
    {
      "commit": "5c3f12c80d480421d05da246a23c5556f871cac1",
      "tree": "3dae8bd9ed0c36f546c1964a9f38c919337596c8",
      "parents": [
        "d5d6c59c48d9f94806c8f86f308eac422bb23222"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Feb 24 20:09:24 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Feb 24 20:09:24 2026 +0100"
      },
      "message": "Replace the raw text in the \"Tiling\" pane by a `TableView`.\n"
    },
    {
      "commit": "d5d6c59c48d9f94806c8f86f308eac422bb23222",
      "tree": "604405f5c9ff904e4efdc9db87d9253e629f8cc4",
      "parents": [
        "32af8e44e57cc15db0e9043a297fe9aaf6c252c1"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Feb 24 11:46:44 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Feb 24 11:46:44 2026 +0100"
      },
      "message": "Adjust the handling of `Locale` in `TiledGridCoverage`.\nAdd a check of whether a `ComputedImage` tile is in error.\n"
    },
    {
      "commit": "32af8e44e57cc15db0e9043a297fe9aaf6c252c1",
      "tree": "7ec3a40eb8dde9e8c47ebadb2b24f2f51ad37b2b",
      "parents": [
        "7602b6cb178b28e58967b1b099761c606e00d2db"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Feb 23 19:46:46 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Feb 23 19:46:46 2026 +0100"
      },
      "message": "Implement `ImagePyramid.toString()` for easier debugging.\nUse that string representation for now in the widget.\n"
    },
    {
      "commit": "7602b6cb178b28e58967b1b099761c606e00d2db",
      "tree": "969990ccc3cc1c35282d99e950e0642af9ca176e",
      "parents": [
        "17ef8c51f83e4398012c1a0cb61d148c37232813"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Fri Oct 04 16:43:01 2024 +0200"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Mon Feb 23 09:33:18 2026 +0100"
      },
      "message": "feat(JavaFx): add a simple tile matrix set panel in CoverageExplorer\n"
    },
    {
      "commit": "17ef8c51f83e4398012c1a0cb61d148c37232813",
      "tree": "15c370aaa0b37bf5e18db03b268ea1668838ee91",
      "parents": [
        "de19b988f90d84c05efb4ea2f34a1729df5bc0e5"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Feb 23 00:07:52 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Feb 23 02:14:47 2026 +0100"
      },
      "message": "Retrofit the pyramid system of the GeoTIFF reader into the pyramid system of `TileMatrixSet`.\n"
    },
    {
      "commit": "de19b988f90d84c05efb4ea2f34a1729df5bc0e5",
      "tree": "83255889367a4ec7ab4a8d14a09200526c93c115",
      "parents": [
        "bfedee8a7bb0306d464b8c563964e76609976f04"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sun Feb 22 11:45:45 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sun Feb 22 17:31:24 2026 +0100"
      },
      "message": "Finer-grain detection of when the `CoordinateOperation` can be cached for a pair of CRS.\nIn particular, we now detect the case when the Area Of Interest (AOI) has not been used.\nIt covers a lot of cases, in particular map projections from grid geometry to target CRS.\n"
    },
    {
      "commit": "bfedee8a7bb0306d464b8c563964e76609976f04",
      "tree": "3061d016ac9f7724fb2c6426239a7079e5ff589b",
      "parents": [
        "acd0b93002a4d861eb7aa5dea75a38a8f2a106e4"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Feb 21 13:02:11 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Feb 21 13:02:11 2026 +0100"
      },
      "message": "Delegate to `WritablePixelIterator` the work of setting sample values from `IntBinaryOperator`.\n"
    },
    {
      "commit": "acd0b93002a4d861eb7aa5dea75a38a8f2a106e4",
      "tree": "362100df0dc9965531731325f8a4db8a2d0db286",
      "parents": [
        "8f90281df13604d6e3626e4430cc16a1e4955a57"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Feb 21 12:04:36 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Feb 21 12:07:18 2026 +0100"
      },
      "message": "Provide a better error message when an image cannot be rendered because of an invalid \"grid to CRS\" transform.\n"
    },
    {
      "commit": "8f90281df13604d6e3626e4430cc16a1e4955a57",
      "tree": "da1918de94968f7f429e679032a24ddb0effae07",
      "parents": [
        "beda4a89390fcf1003e2c07ef4aa1100c5d81fef"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 20 20:28:58 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 20 20:34:06 2026 +0100"
      },
      "message": "Make the test more stable by avoiding a dependency to the EPSG database which may or may not be present.\n"
    },
    {
      "commit": "beda4a89390fcf1003e2c07ef4aa1100c5d81fef",
      "tree": "1b49a246b47e828f6c42f856d9b0decbb3cb6f8e",
      "parents": [
        "4d1a8092ea9198c46ab80d3c91a9e6dfdb550517"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 20 18:36:03 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 20 18:36:03 2026 +0100"
      },
      "message": "Add a verification of the \"untiled.tiff\" image created for testing purposes in the previous commit.\n"
    },
    {
      "commit": "4d1a8092ea9198c46ab80d3c91a9e6dfdb550517",
      "tree": "a02a011b3a5cb7f87b51d265e6cb9645b46711d3",
      "parents": [
        "ebd3ddab597cf911ea6cc61c1b2ad9ef9a1e18b8"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Feb 14 23:48:14 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 20 15:57:34 2026 +0100"
      },
      "message": "Initial implementation of the `TileMatrixSet` interface.\nTests are still superficial for now.\n"
    },
    {
      "commit": "ebd3ddab597cf911ea6cc61c1b2ad9ef9a1e18b8",
      "tree": "c3a9e795fc0a9a8ec27492141b4eafce092f7b8a",
      "parents": [
        "f2101a867d6c68b151c982b10892c6546088200f"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Feb 17 12:15:02 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 20 02:09:38 2026 +0100"
      },
      "message": "Renamed `TiledGridResource` as `TiledGridCoverageResource`.\n"
    },
    {
      "commit": "f2101a867d6c68b151c982b10892c6546088200f",
      "tree": "0a6549159a82994bd9b6b3c4b52b436f77ed1f55",
      "parents": [
        "a1fa272d758d8761cbe1b7d14730868ee451d89b"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 20 01:06:37 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 20 01:59:13 2026 +0100"
      },
      "message": "Rework the way that native libraries are loaded for avoiding to destroy the same library many times when the library was loaded from a filename.\nThis is needed for avoiding a JVM crash if the `GDALStoreProvider(Path)` constructor was invoked many times with the same path.\n"
    },
    {
      "commit": "a1fa272d758d8761cbe1b7d14730868ee451d89b",
      "tree": "caa3f119f2c8c43932a9282d77bb5873db5a0a70",
      "parents": [
        "3953075dd25451aff4ba2b88543ae49fd03d7f34"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Feb 19 12:03:49 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Feb 19 12:03:49 2026 +0100"
      },
      "message": "feat(Math): add Similarity transform interface and Similarity3D\n"
    },
    {
      "commit": "3953075dd25451aff4ba2b88543ae49fd03d7f34",
      "tree": "d823657ae838f0c6ee7669b312e9dc95d887244d",
      "parents": [
        "36ffa6594a04b8dbdc8f190305d4a2151ace0385"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Feb 18 15:25:15 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Feb 18 15:25:15 2026 +0100"
      },
      "message": "feat(NetCDF): improve moving features read performances, fix moving feature time property single value for features which are not trajectories\n"
    },
    {
      "commit": "36ffa6594a04b8dbdc8f190305d4a2151ace0385",
      "tree": "7f51962535d53100f6be6fc24aa6f04d51ebf296",
      "parents": [
        "81cee606d91d502c9c3cdf42d593f161f81fdcd5"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Feb 18 09:11:18 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Feb 18 09:11:18 2026 +0100"
      },
      "message": "fix(NetCDF): fix dimension mismatch between geometry coordinates and it\u0027s declared CRS\n"
    },
    {
      "commit": "81cee606d91d502c9c3cdf42d593f161f81fdcd5",
      "tree": "e9d72763ad50b90604a88cbab7e16fbd3251841c",
      "parents": [
        "5431859977afae1e8d538e020aa3796af0ad369e"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Mon Feb 16 16:20:55 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Mon Feb 16 16:20:55 2026 +0100"
      },
      "message": "fix(Geometry): fix mesh primitive normal array larger then needed\n"
    },
    {
      "commit": "5431859977afae1e8d538e020aa3796af0ad369e",
      "tree": "52464bb765ea213d8e86554b8f9847ae8fb929ed",
      "parents": [
        "2358b982a043579d645ca8f6fce4fbd17b8bffd4"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 13 16:56:16 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 13 16:56:16 2026 +0100"
      },
      "message": "Adjust the API for future implementation of `TileMatrixSet`:\n- Simpler `TiledGridResource.read(…)` method to override.\n- Replace `ReshapedImage` constructors by static methods.\n"
    },
    {
      "commit": "2358b982a043579d645ca8f6fce4fbd17b8bffd4",
      "tree": "af0488b1031e23eeb77819a0798acf37f3261a7d",
      "parents": [
        "ca6eba4f648ec92a0f0513deb19e4141cf1706e9"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 12 15:27:12 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 12 15:27:12 2026 +0100"
      },
      "message": "Replace `X_DIMENSION` and `Y_DIMENSION` constant by configurable fields.\nThe intend it to reduce the risk of breaking API compatibility in future evolutions.\n"
    },
    {
      "commit": "ca6eba4f648ec92a0f0513deb19e4141cf1706e9",
      "tree": "093c04023235ced5453a3aa5319aa93033f1d46f",
      "parents": [
        "db9b5d4b649aa1e1a25d3b128bb44744731a2f21"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 12 12:46:57 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 12 14:55:25 2026 +0100"
      },
      "message": "Move `TiledGridResource` and `TiledGridCoverage` to public API.\n"
    },
    {
      "commit": "db9b5d4b649aa1e1a25d3b128bb44744731a2f21",
      "tree": "6dc53b01db4b0d7f9c0e2991b0c75b58086cc79b",
      "parents": [
        "9cb97c64c3e89899bef6299568ad5f1b2a33ec5f"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Feb 12 08:56:42 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Thu Feb 12 08:56:42 2026 +0100"
      },
      "message": "feat(Geometry): prepare ArrayFactory interface to support Java or FFM allocation\n"
    },
    {
      "commit": "9cb97c64c3e89899bef6299568ad5f1b2a33ec5f",
      "tree": "034b30758d90e825a4cd5b1ed803f2f4fe8d8f18",
      "parents": [
        "a42f8a7502954a67b8fa69f109494cabf0012817"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Feb 11 18:33:20 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Feb 11 18:36:00 2026 +0100"
      },
      "message": "Add a `GridExtent.reshape(long[])` method and use that for simplifying some code.\nMinor opportunistic reformating.\n"
    },
    {
      "commit": "a42f8a7502954a67b8fa69f109494cabf0012817",
      "tree": "eb708dce8d92d86811f7faf2b8086e7730b328f5",
      "parents": [
        "363c87b8226a138269f627deea9efbb169c77a6d"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Feb 06 12:03:48 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Feb 11 18:35:23 2026 +0100"
      },
      "message": "Safety against a possible integer overflow.\nSafety against precision loss.\n"
    },
    {
      "commit": "8ef62b01f52635d9d5a22e3263294e6565bd1a34",
      "tree": "710e8b0e74003a52f6cf2c610c79b513ba593d58",
      "parents": [
        "95477cf09405e3b8b0aaae03feda250d6f5ebd7f",
        "8c45b25f06b47410928f2ed3db72cafd39364783"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 16:22:47 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 16:22:47 2026 +0100"
      },
      "message": "Merge branch \u0027geoapi-3.1\u0027\n"
    },
    {
      "commit": "8c45b25f06b47410928f2ed3db72cafd39364783",
      "tree": "539c6109172238a273fe9cf9eff1e3a2dcf0784d",
      "parents": [
        "da07d96a9087f698696d44dcf7a8da6cb9af2f9f",
        "363c87b8226a138269f627deea9efbb169c77a6d"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 16:09:44 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 16:09:44 2026 +0100"
      },
      "message": "Merge branch \u0027geoapi-4.0\u0027 into geoapi-3.1\n"
    },
    {
      "commit": "363c87b8226a138269f627deea9efbb169c77a6d",
      "tree": "0e1d22e3facb67cc92f23062ebc6d7c3635a18d2",
      "parents": [
        "8d49b3b4458f2036232586727c33962c43865303"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Dec 10 16:49:21 2025 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 14:47:31 2026 +0100"
      },
      "message": "Adjustment in warning or error messages produced by the GIMI reader.\n"
    },
    {
      "commit": "8d49b3b4458f2036232586727c33962c43865303",
      "tree": "687a157265108f83464da302ac0bb28e9bf15d41",
      "parents": [
        "e74a19d653f42e868bfe5e0818ba9abe40a73801"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 12:05:43 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 12:05:43 2026 +0100"
      },
      "message": "Fix GDAL support on MacOS by using `System.mapLibraryName(String)`.\nOpportunistic documentation fixes and simplification.\n"
    },
    {
      "commit": "e74a19d653f42e868bfe5e0818ba9abe40a73801",
      "tree": "7135933c8fe208b8731c3dcb42d1631e8dc41b77",
      "parents": [
        "58e7210b1bce7c13d91b15850c2d1589226796f1"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 11:49:47 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 11:49:47 2026 +0100"
      },
      "message": "Fix some documentation about `NumberType`.\n"
    },
    {
      "commit": "58e7210b1bce7c13d91b15850c2d1589226796f1",
      "tree": "d065f33d5ff3a25cd6a087de1eaa4df3edab7475",
      "parents": [
        "3e7afe408561cb5ac48a1656132884592654fa89"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 11:47:27 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Feb 05 11:47:27 2026 +0100"
      },
      "message": "Add documentation and test in `DefaultEvaluator` in attempt to identify\nthe cause of a random JUnit test failure during parallel execution.\n"
    },
    {
      "commit": "3e7afe408561cb5ac48a1656132884592654fa89",
      "tree": "fa3512bf418d1dfaf635b44a68c0e0f271aeece0",
      "parents": [
        "13c708242ea1b125ea1d78e0828d30ad1d2162ff"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Feb 02 17:12:40 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Feb 02 17:12:40 2026 +0100"
      },
      "message": "Remove deprecated methods after release.\n"
    },
    {
      "commit": "95477cf09405e3b8b0aaae03feda250d6f5ebd7f",
      "tree": "3e94f7648ea0b5b7534d936007e389108848567a",
      "parents": [
        "fc4e562e7f60a2a66f46cef25ac8ab0fd45c5bae"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Feb 02 16:23:48 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Feb 02 16:23:48 2026 +0100"
      },
      "message": "Upgrade version number: missed an occurrence.\n"
    },
    {
      "commit": "fc4e562e7f60a2a66f46cef25ac8ab0fd45c5bae",
      "tree": "48d6bcb2d5ef181bb1d8ac6abe5d6d1b5931b529",
      "parents": [
        "80c1cdc8966794ed0e22803b521f6102e7d0c312"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Feb 02 16:13:02 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Feb 02 16:13:02 2026 +0100"
      },
      "message": "Upgrade version number to `1.7-SNAPSHOT` for next development cycle.\n"
    },
    {
      "commit": "80c1cdc8966794ed0e22803b521f6102e7d0c312",
      "tree": "5d5fdc59db43c7cd4f4c53c0b9582b95192e27d6",
      "parents": [
        "f2c76983431999b190b8ff5a8a53c9e2b7fac812",
        "da07d96a9087f698696d44dcf7a8da6cb9af2f9f"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 27 15:52:02 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 27 15:52:02 2026 +0100"
      },
      "message": "Merge branch \u0027geoapi-3.1\u0027: prepare for release of SIS 1.6.\n"
    },
    {
      "commit": "da07d96a9087f698696d44dcf7a8da6cb9af2f9f",
      "tree": "d7267f14c71e08c6ae7552efa9288ec7ead0065e",
      "parents": [
        "e447260eea4e0c91a19394d394c2dcba4f88e21b",
        "13c708242ea1b125ea1d78e0828d30ad1d2162ff"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 27 15:49:37 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 27 15:49:37 2026 +0100"
      },
      "message": "Merge branch \u0027geoapi-4.0\u0027 into geoapi-3.1:\nprepare for SIS 1.6 release.\n"
    },
    {
      "commit": "13c708242ea1b125ea1d78e0828d30ad1d2162ff",
      "tree": "6dffc2927d6c469bb820eb67b37e9bce6db8da68",
      "parents": [
        "42d3dcc2b00404624b929299cd426ecd81f58f45"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 27 13:17:17 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 27 13:17:17 2026 +0100"
      },
      "message": "Set version number and the EPSG geodetic dataset URL to expected values after release.\n"
    },
    {
      "commit": "f2c76983431999b190b8ff5a8a53c9e2b7fac812",
      "tree": "e1f88c89679d11e6acaf678c177055a3025614a0",
      "parents": [
        "f034daa245c647657ce75dfeea65ce131b99a1e6",
        "e447260eea4e0c91a19394d394c2dcba4f88e21b"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 23:03:31 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 23:03:31 2026 +0100"
      },
      "message": "Merge of automatic reorganization of imports order.\n"
    },
    {
      "commit": "e447260eea4e0c91a19394d394c2dcba4f88e21b",
      "tree": "1a8da32675d166404bac9b422d303af5582c822d",
      "parents": [
        "af22957697f96b54a32bdd28c5bb5d97ad72ea17",
        "42d3dcc2b00404624b929299cd426ecd81f58f45"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 22:56:39 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 22:56:39 2026 +0100"
      },
      "message": "Merge of automatic reorganization of imports order.\n"
    },
    {
      "commit": "42d3dcc2b00404624b929299cd426ecd81f58f45",
      "tree": "3dce9b744e7cfbc7b93d9b81f6865b821f682b87",
      "parents": [
        "9b4ee69f9de538de2adb514495e887d79612549e"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 22:49:23 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 22:49:23 2026 +0100"
      },
      "message": "Post-merge automatic reorganization of imports order.\n"
    },
    {
      "commit": "f034daa245c647657ce75dfeea65ce131b99a1e6",
      "tree": "1d98f6a4baa46c607539b4ca1b46f097272a0d6e",
      "parents": [
        "e336ffb266cdc37cdfabc11de7d43b81a4a2f21f",
        "af22957697f96b54a32bdd28c5bb5d97ad72ea17"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 22:38:32 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 22:38:32 2026 +0100"
      },
      "message": "Merge branch \u0027geoapi-3.1\u0027\n"
    },
    {
      "commit": "af22957697f96b54a32bdd28c5bb5d97ad72ea17",
      "tree": "204292848e2cb5861359139f7918d187d1eee164",
      "parents": [
        "e0d696a63a4003274c25847e2c0491b3f74fabe7",
        "9b4ee69f9de538de2adb514495e887d79612549e"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 22:23:06 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 22:23:06 2026 +0100"
      },
      "message": "Merge branch \u0027geoapi-4.0\u0027 into geoapi-3.1:\n- Optimization of the handling of `java.time` in filters.\n- Improve separation of math transform when wraparound step is present.\n"
    },
    {
      "commit": "9b4ee69f9de538de2adb514495e887d79612549e",
      "tree": "24988e71ade40b16c2d24989205c4053c23a2b6c",
      "parents": [
        "4065171388b647f26914d5fc7d34d21a221954b3"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 17:41:02 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 17:41:02 2026 +0100"
      },
      "message": "Update instructions about EPSG upgrade.\n"
    },
    {
      "commit": "4065171388b647f26914d5fc7d34d21a221954b3",
      "tree": "fe20b8484503c4f4f6be7cbef55eeccb35524aa1",
      "parents": [
        "28334378d5da45e67777d03ec785bad409e6eb46"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 16:55:07 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 16:55:07 2026 +0100"
      },
      "message": "Add a note about a work to do in `PassThroughTransform`.\n"
    },
    {
      "commit": "28334378d5da45e67777d03ec785bad409e6eb46",
      "tree": "5a96c2d7ae03721c47f070b7a1f89d2864f38780",
      "parents": [
        "9f766a14c9c4365cdd27e6516e98a3e8e9532214"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 16:34:21 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 16:34:21 2026 +0100"
      },
      "message": "Convert literal values in advance when possible.\n"
    },
    {
      "commit": "9f766a14c9c4365cdd27e6516e98a3e8e9532214",
      "tree": "f8cbe8d2985667d49cef428c8e141443cd1e527f",
      "parents": [
        "4cc6c97337065510f1762f17a8509adab1ad3621"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 13:07:30 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 13:07:30 2026 +0100"
      },
      "message": "Consolidation of the conversion of temporal objects before comparison.\nIt fixes a `NullPointerException` when there is no converter available.\n"
    },
    {
      "commit": "4cc6c97337065510f1762f17a8509adab1ad3621",
      "tree": "6e62e03bb169fcd01d4dfe3544ffafe58ba5028e",
      "parents": [
        "d6f35024a6e01bb0e11549e1f6ce2ce93d785197"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 01:14:31 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Mon Jan 26 01:14:31 2026 +0100"
      },
      "message": "Refactor `TimeMethods` with more support of conversions of `java.time` objects to compare.\nAdd in `TemporalFilter` an optimization for temporal objects similar to the optimization already done for numerical objects.\n"
    },
    {
      "commit": "d6f35024a6e01bb0e11549e1f6ce2ce93d785197",
      "tree": "049e55099ea54e6c7e3bc7fc84c384d5f742be75",
      "parents": [
        "ee3cd7d4eacd842f8d777ad0e8b9aed40d4f7236"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sun Jan 25 00:27:43 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sun Jan 25 10:40:37 2026 +0100"
      },
      "message": "Simplify `ComparisonFilter` by delegating to `TimeMethods` when the operands are temporal.\nIt will also enable optimization in future commits.\n"
    },
    {
      "commit": "ee3cd7d4eacd842f8d777ad0e8b9aed40d4f7236",
      "tree": "6b820d838ace0b36f23299bc3800fadcf49b5fda",
      "parents": [
        "4aef90224ea0f3db238bb2fe64bb28e9f33435d3"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Jan 24 16:57:04 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Jan 24 17:15:03 2026 +0100"
      },
      "message": "Move `ArithmeticFunctionTest` to the correct package.\nReuse existing `ScopedName` in `ArithmeticFunction`.\nDocumentation fixes.\n"
    },
    {
      "commit": "4aef90224ea0f3db238bb2fe64bb28e9f33435d3",
      "tree": "df21db095801768c01b31776167ceea4c34e6221",
      "parents": [
        "7e1361ad2a885a92135764a1d5f344c208c3c06d"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Jan 24 16:38:38 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Jan 24 16:38:38 2026 +0100"
      },
      "message": "Bug fixes in the reduction of dimensions of a wraparound transforms.\nImprove the coverage of the JUnit test.\n"
    },
    {
      "commit": "7e1361ad2a885a92135764a1d5f344c208c3c06d",
      "tree": "d9b6693df315fd5a2f321e7f3b1caea690847bb2",
      "parents": [
        "4bfbc548af1b08fab05f465daa1ef5e55fe97242"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Jan 23 19:58:04 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Jan 23 19:58:04 2026 +0100"
      },
      "message": "Initial fix of the reduction in the number of dimensions of `WraparoundTransform`.\nThis is needed for allowing `TransformSeparator` to work on it.\n"
    },
    {
      "commit": "e336ffb266cdc37cdfabc11de7d43b81a4a2f21f",
      "tree": "adc762578ed2a66fe776b2829d2d7be19e01b340",
      "parents": [
        "52d55b27ea3e09967d3e6e414d260f1a2f14a1a8",
        "e0d696a63a4003274c25847e2c0491b3f74fabe7"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Jan 22 19:21:48 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Jan 22 19:21:48 2026 +0100"
      },
      "message": "Merge branch \u0027geoapi-3.1\u0027\n"
    },
    {
      "commit": "e0d696a63a4003274c25847e2c0491b3f74fabe7",
      "tree": "8c388b081d2b5640315dd8193fc864e19642476c",
      "parents": [
        "a2c13a9421862b1c27ae603e27afa8f3d541e0d0",
        "4bfbc548af1b08fab05f465daa1ef5e55fe97242"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Jan 22 18:36:27 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Jan 22 18:36:27 2026 +0100"
      },
      "message": "Merge branch \u0027geoapi-4.0\u0027 into geoapi-3.1:\n* Refactoring of arithmetic operations in filters.\n* New API for multi-dimensional coordinate operations.\n"
    },
    {
      "commit": "4bfbc548af1b08fab05f465daa1ef5e55fe97242",
      "tree": "dde5984f42f83bdd3d5100c5f239be1611182c01",
      "parents": [
        "e5e9520bce64a0df8247c7d0cfabd12d0cfde829"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Jan 21 17:07:53 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Jan 22 16:21:58 2026 +0100"
      },
      "message": "Improve documentations.\nThere is no significant code change except an adjustment of logging level.\n"
    },
    {
      "commit": "e5e9520bce64a0df8247c7d0cfabd12d0cfde829",
      "tree": "016ccb28701cdcdf8243f16ce172100e372f38b1",
      "parents": [
        "2cebe32d400ba9014befd6918c4feb22847abfb3"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Jan 21 12:18:44 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Wed Jan 21 12:18:44 2026 +0100"
      },
      "message": "Rename `GridDerivation.selectDimensions(Predicate)` as `selectAxes(int...)`.\n"
    },
    {
      "commit": "2cebe32d400ba9014befd6918c4feb22847abfb3",
      "tree": "a5817ffdaf8cf8e67e923e9e12d51ff2c3f4c25a",
      "parents": [
        "c440daa7c25e588bd4399c7d0e7664ed4e053530"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 20 17:47:07 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 20 17:47:07 2026 +0100"
      },
      "message": "Refactor the code for filtering the dimensions of a CRS.\n\n- A new `CRS.selectDimensions(CoordinateReferenceSystem, BitSet, SeparationMode)` method is added.\n- A new `GridGeometry.getConstantCoordinates()` method is added, which uses the above-cited method.\n- The GeoTIFF `MultiResolutionImage` class uses the above for accepting 2D request on 3D data.\n"
    },
    {
      "commit": "c440daa7c25e588bd4399c7d0e7664ed4e053530",
      "tree": "f607736bd91c1adbf302bd2fa1e52ccec4f1ceaa",
      "parents": [
        "575a9ed5be3bd8a274d2f1e9b77c5e6e8f4da3ea"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Jan 17 16:02:24 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Sat Jan 17 20:27:22 2026 +0100"
      },
      "message": "Add `MissingSourceDimensionsException` telling which axes of the target CRS cannot be mapped to a source CRS.\nAdd `CoordinateOperationContext.getConstantCoordinates()` as a public API in replacement of `CoordinateOperations.CONSTANT_COORDINATES` internal thread-local.\nAdd `CRS.findOperation(…) expecting `CoordinateOperationContext` argument for making possible to use the new API for constant coordinates.\nRedirect some loggings to user-supplied filter, for future use by data stores.\n"
    },
    {
      "commit": "575a9ed5be3bd8a274d2f1e9b77c5e6e8f4da3ea",
      "tree": "821178117b8e57169b01ad2994a5707b4e42e789",
      "parents": [
        "30bf8f0c405ee4f027a3a6dd4019060029a289b9"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Jan 09 18:59:56 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Jan 09 18:59:56 2026 +0100"
      },
      "message": "Add a `GridDerivation.project(Predicate)` method for filtering the CRS axes of a grid geometry.\n"
    },
    {
      "commit": "30bf8f0c405ee4f027a3a6dd4019060029a289b9",
      "tree": "813b92cfbabf7ca36f542b31742ca3beaeb9d96d",
      "parents": [
        "fb3ce3c46e7bbd97d5682b972d7337b672ae0f23"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Jan 09 13:28:04 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Fri Jan 09 13:28:04 2026 +0100"
      },
      "message": "Add a tolerance factor in `TranslatedTransform`.\nFix a missing computation of inverse transform.\n"
    },
    {
      "commit": "fb3ce3c46e7bbd97d5682b972d7337b672ae0f23",
      "tree": "c79bdb93c438d9c6b6c72368c50e9fe5219d7227",
      "parents": [
        "1c135038b1aa346c337fb819edff8d147b3b1e88"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Jan 08 16:54:35 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Jan 08 16:54:35 2026 +0100"
      },
      "message": "Replace the `-e` option by the more portable `-f` option in `readlink`.\n"
    },
    {
      "commit": "1c135038b1aa346c337fb819edff8d147b3b1e88",
      "tree": "99dfb2043a9094e6ae87d88e5b726063677d6af2",
      "parents": [
        "b2a2ac8d39bcb339ceb5d30f8d51eb0f647e7502"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Jan 08 16:40:17 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Thu Jan 08 16:40:17 2026 +0100"
      },
      "message": "Make `DefaultEvaluator` more robust to the case where the `gridToCRS` transform has a scale factor of NaN.\n"
    },
    {
      "commit": "b2a2ac8d39bcb339ceb5d30f8d51eb0f647e7502",
      "tree": "63ff194895368988be1a3ae8475d817649c462c4",
      "parents": [
        "846d83107fa95d78a8541bb2da46134ef4e57b73"
      ],
      "author": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Jan 07 11:16:50 2026 +0100"
      },
      "committer": {
        "name": "jsorel",
        "email": "johann.sorel@geomatys.com",
        "time": "Wed Jan 07 11:16:50 2026 +0100"
      },
      "message": "Fix to avoid decorating DisjointExtentException and CannotEvaluateException in TiledGridCoverage.render()\n"
    },
    {
      "commit": "846d83107fa95d78a8541bb2da46134ef4e57b73",
      "tree": "862ed568b2ed0831664fecb75c5124c13f99d54b",
      "parents": [
        "e9c3ce60ea17cd871e3a3390f435cb99d3555b49"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 06 11:43:57 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 06 11:43:57 2026 +0100"
      },
      "message": "When transforming a 0 coordinate, we need to get the origin even if the scale factor is NaN.\n"
    },
    {
      "commit": "e9c3ce60ea17cd871e3a3390f435cb99d3555b49",
      "tree": "5eea27225fe95309cb91a1c076ae7c438cae01db",
      "parents": [
        "e5f1abf3bd7459d547d2d6e2c45dc05073f7a46b"
      ],
      "author": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 06 11:23:59 2026 +0100"
      },
      "committer": {
        "name": "Martin Desruisseaux",
        "email": "martin.desruisseaux@geomatys.com",
        "time": "Tue Jan 06 11:23:59 2026 +0100"
      },
      "message": "Remove the `USE_FMA` internal flag. Was always on for last years.\n"
    }
  ],
  "next": "e5f1abf3bd7459d547d2d6e2c45dc05073f7a46b"
}
