fix(mealie): build the frontend with pnpm and the upstream lockfile (#3046)

* fix(mealie): build the frontend with pnpm and the upstream lockfile

Upstream mealie migrated frontend/ from yarn to pnpm in v3.24.0 and deleted
frontend/yarn.lock. Our builder stage kept running "yarn install
--frozen-lockfile", which silently degraded to a fresh, unpinned resolution of
every dependency. That worked until a newer vuetify 4.x release dropped the
"vuetify/labs/rules" entry point, at which point "nuxt generate" failed with:

  Rolldown failed to resolve import "vuetify/labs/rules" from
  "virtual:nuxt:.nuxt%2Fvuetify-nuxt-plugin.client.mjs"

and the v3.25.1 updater build was reverted.

Mirror upstream's docker/Dockerfile frontend stage instead: node:24, a global
pnpm@11, and "pnpm install --frozen-lockfile" against the committed
pnpm-lock.yaml, so the dependency set is the one upstream tests. Also copy the
frontend tree with "cp -a frontend/." so dotfiles such as .nuxtignore come
across, and shallow-clone the tag.

Bumps the add-on to v3.25.1, the version the updater bot could not build.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* chore: record the shipped upstream release in updater.json

Each PR publishes an upstream version the updater bot had already selected
before CI reverted its commit, but updater.json still recorded the previous one.
The updater reads upstream_version as CURRENT and enters its update path
whenever it differs from the latest tag, so its next run would process the same
release again and derive a synthetic trailing-.1 version, producing a redundant
release, a duplicate CHANGELOG entry and a wasted build.

These values are exactly what the bot itself wrote in the reverted commit; this
restores its own record for a release now being shipped rather than choosing a
new one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Alexandre
2026-09-05 07:47:32 +02:00
committed by GitHub
parent 01a865cffc
commit 62bbecb465
4 changed files with 19 additions and 9 deletions

View File

@@ -1,4 +1,8 @@
## v3.25.1 (2026-09-05)
- Update to latest version from mealie-recipes/mealie (changelog : https://github.com/mealie-recipes/mealie/releases)
- Build the ingress frontend with pnpm and the upstream lockfile: upstream dropped frontend/yarn.lock in v3.24.0, so the previous yarn install resolved dependencies unpinned and the build broke on a vuetify release without "vuetify/labs/rules"
## v3.24.0 (2026-08-29)
- Update to latest version from mealie-recipes/mealie (changelog : https://github.com/mealie-recipes/mealie/releases)

View File

@@ -15,24 +15,30 @@
#################
# Stage 1: Build Frontend with SUB_PATH
FROM node:22 AS frontend-builder
# Mirrors upstream docker/Dockerfile: node:24 + pnpm, installing from the
# committed pnpm-lock.yaml. Upstream dropped frontend/yarn.lock in v3.24.0, so a
# yarn install here resolved every dependency fresh and eventually picked a
# vuetify release without "vuetify/labs/rules", breaking "nuxt generate".
FROM node:24 AS frontend-builder
# Set the SUB_PATH environment variable
ARG SUB_PATH="/mealie/"
ENV SUB_PATH=$SUB_PATH
ENV MEALIE_VERSION="v3.24.0"
ENV MEALIE_VERSION="v3.25.1"
RUN npm install --global pnpm@11
# Clone the Mealie repository to get the frontend source code
WORKDIR /frontend
# hadolint ignore=DL3003
RUN mkdir -p /frontend/tempdir && cd /frontend/tempdir && \
git clone --branch "$MEALIE_VERSION" https://github.com/mealie-recipes/mealie.git . && \
cp -rf frontend/* /frontend && cd /frontend && rm -rf tempdir && \
yarn install --prefer-offline --frozen-lockfile --non-interactive --production=false --network-timeout 1000000
git clone --depth 1 --branch "$MEALIE_VERSION" https://github.com/mealie-recipes/mealie.git . && \
cp -a frontend/. /frontend/ && cd /frontend && rm -rf tempdir && \
pnpm install --frozen-lockfile
# Build the frontend
RUN yarn generate
RUN pnpm generate
# Stage 2: Build the Final Image
FROM hkotel/mealie:latest

View File

@@ -114,4 +114,4 @@ schema:
slug: mealie
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "v3.24.0"
version: "v3.25.1"

View File

@@ -1,11 +1,11 @@
{
"github_beta": "true",
"github_fulltag": "true",
"last_update": "2026-08-29",
"last_update": "2026-09-05",
"paused": "false",
"repository": "alexbelgium/hassio-addons",
"slug": "mealie",
"source": "github",
"upstream_repo": "mealie-recipes/mealie",
"upstream_version": "v3.24.0"
"upstream_version": "v3.25.1"
}