Skip to content

build(deps): refresh container images and frontend dependencies - #9044

Merged
klesh merged 3 commits into
apache:mainfrom
DoDiODev:pr/wave4i-a
Aug 12, 2026
Merged

build(deps): refresh container images and frontend dependencies#9044
klesh merged 3 commits into
apache:mainfrom
DoDiODev:pr/wave4i-a

Conversation

@DoDiODev

Copy link
Copy Markdown
Contributor

Summary

Routine dependency maintenance for the parts of the tree that are not Go:
the pinned container images used by the dev/test stacks, the pinned Node.js
version, and the config-ui npm dependencies.

No go.mod/go.sum changes, no dashboard JSON changes, no source changes —
only version pins and the regenerated config-ui/yarn.lock.

What changed

1. build(deps): refresh container images

Image From To Files
grafana/grafana 13.0.2 13.1.3 grafana/Dockerfile
postgres 18.1 18.4 docker-compose-dev-postgresql.yml, backend/test/e2e/remote/docker-compose.test.yml (-alpine)
mysql 8.4.10 8.4.11 docker-compose-dev-mysql.yml, docker-compose.datasources.yml, .devcontainer/docker-compose.yml, devops/deployment/temporal/docker-compose-temporal.yml, backend/test/e2e/remote/docker-compose.test.yml
nginxinc/nginx-unprivileged 1.31.2 1.31.3 config-ui/Dockerfile

Every occurrence of a given pin is raised together, so the compose stacks,
the devcontainer, the temporal deployment and the remote-plugin e2e stack stay
on one consistent version. Both databases stay on their current major line
(MySQL 8.4 LTS, PostgreSQL 18).

Release artefacts under devops/releases/ are historical snapshots and are
intentionally left untouched.

2. build(deps): bump pinned Node.js to 24.19.0

config-ui/package.jsonvolta.node 24.17.024.19.0 (current 24.x LTS).
One line, trivially separable. The Docker build keeps using the floating
node:24-bookworm-slim tag, so this only aligns local development environments
with what CI and the images actually run.

3. build(deps): refresh frontend dependencies

Package From To
antd 6.4.5 6.6.0
@ant-design/icons 6.2.5 6.3.2
cron-parser 5.6.0 5.8.1
react-router-dom 7.18.0 7.18.2
styled-components 6.4.2 6.5.1
eslint 10.5.0 10.8.1
prettier 3.8.4 3.9.6
vite 8.1.0 8.2.1
vitest 4.1.9 4.1.10

All stay within their current major line. config-ui/yarn.lock is regenerated
by yarn install — no hand edits.

engines/peerDependencies of every target were checked against the pinned
Node 24 and the pinned React 19.2.7: vite 8.2.1 (node ^20.19 || >=22.12),
vitest 4.1.10 (peer vite ^6||^7||^8), @vitejs/plugin-react 6.0.3
(peer vite ^8), vite-plugin-svgr 5.2.0 (peer vite >=3), eslint 10.8.1
(node ^20.19 || ^22.13 || >=24), antd 6.6.0 (peer react >=18),
cron-parser 5.8.1 (node >=18) — all compatible.

Not included (deliberately)

  • typescript — 7.x is a major upgrade and deserves its own PR.
  • Yarn 4.17.04.18.0 — that bump touches four places and replaces the
    checked-in ~3 MB config-ui/.yarn/releases/yarn-*.cjs release bundle. A ~6 MB
    binary diff would bury this PR; it belongs in a standalone change performed
    via yarn set version.
  • Grafana dashboard JSONs — the pluginVersion field is export metadata that
    Grafana rewrites on save and does not validate on load; sweeping ~1300
    occurrences would add noise without effect. Verified below that 13.1 loads the
    current dashboards unchanged.
  • go.mod / go.sum — none of the above touches Go.

Validation

Frontend (the CI job only runs tsc + eslint, so build and tests were run
locally as well):

cd config-ui
yarn install   # yarn.lock regenerated
yarn build     # vite 8.2.1, 4143 modules, OK
yarn test      # vitest 4.1.10 — 3 files, 23 tests passed
yarn lint      # tsc + eslint — 0 errors (17 pre-existing warnings)
docker build -f config-ui/Dockerfile -t devlake-ui:check config-ui/   # OK

Images — both dev stacks started from scratch with fresh volumes:

Stack Result
docker-compose-dev-postgresql.yml (PostgreSQL 18.4 + Grafana 13.1.3) /api/health{"database":"ok","version":"13.1.3"}; datasource health Database Connection OK; 61 dashboards provisioned, every one retrievable via /api/dashboards/uid/<uid>
docker-compose-dev-mysql.yml (MySQL 8.4.11 + Grafana 13.1.3) /api/health{"database":"ok","version":"13.1.3"}; datasource health Database Connection OK; 63/63 dashboards provisioned, all retrievable

Both database servers report the expected versions inside the container
(PostgreSQL 18.4, mysql Ver 8.4.11). No dashboard JSON change was required
for Grafana 13.1.

Pre-existing issue noticed while validating (not addressed here)

On the PostgreSQL side, Grafana logs

the same UID is used more than once  uid=ai_cost_efficiency-pg times=2
dashboards provisioning provider has no database write permissions because of duplicates

because grafana/dashboards/postgresql/ai-cost-efficiency.json and
grafana/dashboards/postgresql/ai-model-roi.json both declare
"uid": "ai_cost_efficiency-pg", so only 61 of 62 files get provisioned. This
reproduces on main with Grafana 13.0.2 as well and is therefore unrelated to
this PR; happy to send a separate fix.

Rollback

Every change is a version pin; revert the individual commit (plus yarn.lock
for the frontend commit). No schema, migration or data impact.

Bump the pinned container images used by the dev/test stacks and the
shipped Dockerfiles to their current patch releases:

- Grafana 13.0.2 -> 13.1.3 (grafana/Dockerfile)
- PostgreSQL 18.1 -> 18.4 (docker-compose-dev-postgresql.yml,
  backend/test/e2e/remote/docker-compose.test.yml)
- MySQL 8.4.10 -> 8.4.11, LTS line (docker-compose-dev-mysql.yml,
  docker-compose.datasources.yml, .devcontainer/docker-compose.yml,
  devops/deployment/temporal/docker-compose-temporal.yml,
  backend/test/e2e/remote/docker-compose.test.yml)
- nginx-unprivileged 1.31.2 -> 1.31.3 (config-ui/Dockerfile)

Every occurrence of a given pin is raised together so the stacks stay
consistent. The Grafana bump stays within the 13.x line and requires no
dashboard JSON changes. Release artefacts under devops/releases/ are
historical and intentionally left untouched.

Signed-off-by: DoDiODev <DoDiDev@proton.me>
Update the volta Node pin in config-ui/package.json from 24.17.0 to
24.19.0, the current 24.x LTS ("Krypton") release. The Docker build stays
on the floating node:24-bookworm-slim tag, so this only aligns local
development environments with the release actually used in CI/images.

Signed-off-by: DoDiODev <DoDiDev@proton.me>
Update the pinned config-ui dependencies to their current releases and
regenerate yarn.lock:

- antd 6.4.5 -> 6.6.0
- @ant-design/icons 6.2.5 -> 6.3.2
- cron-parser 5.6.0 -> 5.8.1
- react-router-dom 7.18.0 -> 7.18.2
- styled-components 6.4.2 -> 6.5.1
- eslint 10.5.0 -> 10.8.1
- prettier 3.8.4 -> 3.9.6
- vite 8.1.0 -> 8.2.1
- vitest 4.1.9 -> 4.1.10

All target versions stay within their current major line and keep their
declared engines/peerDependencies compatible with the pinned Node 24 and
React 19 versions. TypeScript is deliberately left at 6.0.3, since 7.x is
a major upgrade that deserves its own change.

Validated locally with yarn install, yarn build, yarn test and yarn lint.

Signed-off-by: DoDiODev <DoDiDev@proton.me>

@klesh klesh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
Thanks for your contribution.

@klesh
klesh merged commit 62612a8 into apache:main Aug 12, 2026
10 checks passed
@DoDiODev
DoDiODev deleted the pr/wave4i-a branch August 12, 2026 08:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants