Skip to content

feat: improve diffing between tilesets#3555

Merged
blacha merged 40 commits intomasterfrom
fix/import-diff-command
Dec 11, 2025
Merged

feat: improve diffing between tilesets#3555
blacha merged 40 commits intomasterfrom
fix/import-diff-command

Conversation

@blacha
Copy link
Member

@blacha blacha commented Nov 4, 2025

Motivation

Our basemaps-config preview links for Elevation inserts don’t show anything in Basemaps. You can’t see the imagery until you add the following parameters:

pipeline=terrain-rgb&format=png

We need to update the code that generates the markdown QA URLs to add the pipeline and format key-value parameters automatically. The code lives in the cli-config package’s [import] command.

Modifications

The code for the cli-config package's import command needs some re-work. We've opted to rebuild the code with a focus on improving the diffing logic and test suite. We've captured the rebuild as a new diff command.

packages/cli-config/src/

  • index.ts

    • Added the new diff command to the ConfigCli list of sub commands.
  • __tests__/

    • config.diff.data.ts & config.diff.test.ts

      • Added mock data and a test suite and for validating the behaviour of the new diffing functionalities provided by the config.diff.ts and config.diff.markdown.ts files.
  • cli/

    • diff/

      • config.diff.ts

        • Implemented a new strategy for capturing the raster differences between two bundled configs. We will extend this work in the near future to capture vector differences, too.
      • config.diff.markdown.ts

        • Implemented a suite of functions for rendering the captured raster differences as markdown.
    • action.diff.ts

      • Added a new diff command to capture the raster and vector differences between two bundled config JSON files. The command also generates new and improved markdown denoting the detected configuration changes. This command will come to replace the QA markdown role played by the import command.
    • action.import.ts

      • Fixed a typo in the markdown produced by the outputAnalyseReports function.
    • config.diff.ts

      • Added the virtual string to the IgnoredProperties array.
  • config/src/memory/

    • memory.config.ts

      • Added an optional source property to the ConfigProviderMemory class to store the URL of the bundled config.
      • Extended the fromJson function to support a new sourceUrl?: URL parameter.

Verification

  • We have a test suite for validating the behaviour of the raster-based diffing functions.
  • We don't have any tests for vector diffing as we intend to re-build that code in the near future.
  • I have a basemaps-config pull request here that I've been using to simulate layer additions, updates, and deletions for various tilesets so that I can inspect the generated markdown.

@blacha blacha changed the title Fix/import diff command feat: improve diffing between tilesets Nov 4, 2025
@blacha blacha added this pull request to the merge queue Dec 11, 2025
Merged via the queue into master with commit f77cda7 Dec 11, 2025
13 of 14 checks passed
@blacha blacha deleted the fix/import-diff-command branch December 11, 2025 23:27
@linz-li-bot linz-li-bot mentioned this pull request Dec 8, 2025
github-merge-queue bot pushed a commit that referenced this pull request Dec 15, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>bathymetry: 8.9.4</summary>

##
[8.9.4](bathymetry-v8.9.3...bathymetry-v8.9.4)
(2025-12-11)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
</details>

<details><summary>cli: 8.10.5</summary>

##
[8.10.5](cli-v8.10.4...cli-v8.10.5)
(2025-12-11)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @basemaps/cli-config bumped from ^8.10.2 to ^8.11.0
    * @basemaps/cli-raster bumped from ^8.11.2 to ^8.11.3
    * @basemaps/cli-vector bumped from ^8.10.3 to ^8.10.4
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
</details>

<details><summary>cli-config: 8.11.0</summary>

##
[8.11.0](cli-config-v8.10.2...cli-config-v8.11.0)
(2025-12-11)


### Features

* improve diffing between tilesets
([#3555](#3555))
([f77cda7](f77cda7))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
    * @basemaps/config-loader bumped from ^8.11.0 to ^8.12.0
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
</details>

<details><summary>cli-raster: 8.11.3</summary>

##
[8.11.3](cli-raster-v8.11.2...cli-raster-v8.11.3)
(2025-12-11)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
    * @basemaps/config-loader bumped from ^8.11.0 to ^8.12.0
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
</details>

<details><summary>cli-vector: 8.10.4</summary>

##
[8.10.4](cli-vector-v8.10.3...cli-vector-v8.10.4)
(2025-12-11)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
</details>

<details><summary>config: 8.12.0</summary>

##
[8.12.0](config-v8.11.0...config-v8.12.0)
(2025-12-11)


### Features

* improve diffing between tilesets
([#3555](#3555))
([f77cda7](f77cda7))
* support default outputs pipelines for backwards compatibility
([#3561](#3561))
([53e25b9](53e25b9))


### Bug Fixes

* use the configuration version not time to reset cache
([#3553](#3553))
([a3f49c2](a3f49c2))
</details>

<details><summary>config-loader: 8.12.0</summary>

##
[8.12.0](config-loader-v8.11.0...config-loader-v8.12.0)
(2025-12-11)


### Features

* support default outputs pipelines for backwards compatibility
([#3561](#3561))
([53e25b9](53e25b9))


### Bug Fixes

* use the configuration version not time to reset cache
([#3553](#3553))
([a3f49c2](a3f49c2))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
</details>

<details><summary>8.17.0</summary>

## [8.17.0](v8.16.0...v8.17.0)
(2025-12-11)


### Features

* improve diffing between tilesets
([#3555](#3555))
([f77cda7](f77cda7))
* **lambda-tiler:** expose all pipelines in WMTSCapabilities BM-1455
([#3586](#3586))
([1fc339c](1fc339c))
* support default outputs pipelines for backwards compatibility
([#3561](#3561))
([53e25b9](53e25b9))


### Bug Fixes

* revert disable github releases for individual packages
[#3565](#3565)
([#3568](#3568))
([65ec936](65ec936))
* use the configuration version not time to reset cache
([#3553](#3553))
([a3f49c2](a3f49c2))
</details>

<details><summary>infra: 8.12.0</summary>

##
[8.12.0](infra-v8.11.0...infra-v8.12.0)
(2025-12-11)


### Features

* Disable lambda-analytic as it has been replaced by
lambda-analytic-cloudfront
([#3564](#3564))
([6891927](6891927))
* drop tiler log level
([#3548](#3548))
([471ceca](471ceca))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @basemaps/lambda-tiler bumped from ^8.11.1 to ^8.12.0
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
</details>

<details><summary>lambda-analytic-cloudfront: 8.9.5</summary>

##
[8.9.5](lambda-analytic-cloudfront-v8.9.4...lambda-analytic-cloudfront-v8.9.5)
(2025-12-11)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
</details>

<details><summary>lambda-tiler: 8.12.0</summary>

##
[8.12.0](lambda-tiler-v8.11.1...lambda-tiler-v8.12.0)
(2025-12-11)


### Features

* **lambda-tiler:** expose all pipelines in WMTSCapabilities BM-1455
([#3586](#3586))
([1fc339c](1fc339c))
* support default outputs pipelines for backwards compatibility
([#3561](#3561))
([53e25b9](53e25b9))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
    * @basemaps/config-loader bumped from ^8.11.0 to ^8.12.0
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
    * @basemaps/tiler bumped from ^8.11.0 to ^8.12.0
    * @basemaps/tiler-sharp bumped from ^8.11.1 to ^8.11.2
</details>

<details><summary>landing: 8.12.1</summary>

##
[8.12.1](landing-v8.12.0...landing-v8.12.1)
(2025-12-11)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @basemaps/cli-config bumped from ^8.10.2 to ^8.11.0
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
</details>

<details><summary>server: 8.10.7</summary>

##
[8.10.7](server-v8.10.6...server-v8.10.7)
(2025-12-11)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
    * @basemaps/config-loader bumped from ^8.11.0 to ^8.12.0
    * @basemaps/lambda-tiler bumped from ^8.11.1 to ^8.12.0
    * @basemaps/landing bumped from ^8.12.0 to ^8.12.1
    * @basemaps/shared bumped from ^8.9.3 to ^8.9.4
  * optionalDependencies
    * @basemaps/landing bumped from ^8.12.0 to ^8.12.1
</details>

<details><summary>shared: 8.9.4</summary>

##
[8.9.4](shared-v8.9.3...shared-v8.9.4)
(2025-12-11)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
</details>

<details><summary>tiler: 8.12.0</summary>

##
[8.12.0](tiler-v8.11.0...tiler-v8.12.0)
(2025-12-11)


### Features

* support default outputs pipelines for backwards compatibility
([#3561](#3561))
([53e25b9](53e25b9))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
</details>

<details><summary>tiler-sharp: 8.11.2</summary>

##
[8.11.2](tiler-sharp-v8.11.1...tiler-sharp-v8.11.2)
(2025-12-11)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @basemaps/config bumped from ^8.11.0 to ^8.12.0
    * @basemaps/tiler bumped from ^8.11.0 to ^8.12.0
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
github-merge-queue bot pushed a commit to linz/basemaps-config that referenced this pull request Jan 19, 2026
### Motivation

When a user modifies tilesets via a pull request, our `build.yml`
workflow automatically generates a pull request comment containing QA
URLs for the affected tilesets. This allows reviewers to easily examine
the imagery.

At the moment, our QA URLs are broken for tilesets that describe
pipelines. Such as our **`elevation`** tileset.

Currently, our `import` command produces the QA URL comments. In this
[pull request], we introduce a new `diff` command, which fixes the QA
URL issues.

[pull request]: linz/basemaps#3555

### Note

We still need the `import` command for handling the DynamoDB operations.
We need only switch over to the `diff` command for the QA URL comments.

### Modifications

- **.github/workflows/build.yml**

- Updated the **`Compare to Production`** step to use the new `diff` CLI
command.

### Verification

See this comment
[here](#1441 (comment)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants