DoDiODev opened a new pull request, #9044:
URL: https://github.com/apache/devlake/pull/9044
## 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.json` → `volta.node` `24.17.0` → `24.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.0` → `4.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.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]