From e42ae8585d6b1043329f14ca7f66a5005a6a0377 Mon Sep 17 00:00:00 2001 From: Rephl3x Date: Thu, 29 Jan 2026 21:49:01 +1300 Subject: [PATCH] Hardcode build number in backend --- backend/Dockerfile | 5 +---- backend/app/build_info.py | 1 + backend/app/config.py | 5 ++--- backend/app/main.py | 4 +--- backend/app/routers/admin.py | 1 - backend/app/runtime.py | 3 +++ frontend/package.json | 2 +- 7 files changed, 9 insertions(+), 12 deletions(-) create mode 100644 backend/app/build_info.py diff --git a/backend/Dockerfile b/backend/Dockerfile index 5bc5633..4dfb611 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -2,11 +2,8 @@ FROM python:3.12-slim WORKDIR /app -ARG BUILD_NUMBER=dev - ENV PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - SITE_BUILD_NUMBER=${BUILD_NUMBER} + PYTHONUNBUFFERED=1 COPY backend/requirements.txt . RUN pip install --no-cache-dir -r requirements.txt diff --git a/backend/app/build_info.py b/backend/app/build_info.py new file mode 100644 index 0000000..3fd7d36 --- /dev/null +++ b/backend/app/build_info.py @@ -0,0 +1 @@ +BUILD_NUMBER = "2901262147" diff --git a/backend/app/config.py b/backend/app/config.py index 1d9c4e9..0f0003d 100644 --- a/backend/app/config.py +++ b/backend/app/config.py @@ -2,6 +2,7 @@ from typing import Optional from pydantic import AliasChoices, Field from pydantic_settings import BaseSettings, SettingsConfigDict +from .build_info import BUILD_NUMBER class Settings(BaseSettings): model_config = SettingsConfigDict(env_prefix="") @@ -38,9 +39,7 @@ class Settings(BaseSettings): artwork_cache_mode: str = Field( default="remote", validation_alias=AliasChoices("ARTWORK_CACHE_MODE") ) - site_build_number: Optional[str] = Field( - default=None, validation_alias=AliasChoices("SITE_BUILD_NUMBER") - ) + site_build_number: Optional[str] = Field(default=BUILD_NUMBER) site_banner_enabled: bool = Field( default=False, validation_alias=AliasChoices("SITE_BANNER_ENABLED") ) diff --git a/backend/app/main.py b/backend/app/main.py index 9b46dc8..6be34b0 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -4,7 +4,7 @@ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from .config import settings -from .db import init_db, set_setting +from .db import init_db from .routers.requests import ( router as requests_router, startup_warmup_requests_cache, @@ -41,8 +41,6 @@ async def health() -> dict: @app.on_event("startup") async def startup() -> None: init_db() - if settings.site_build_number and settings.site_build_number.strip(): - set_setting("site_build_number", settings.site_build_number.strip()) runtime = get_runtime_settings() configure_logging(runtime.log_level, runtime.log_file) asyncio.create_task(run_daily_jellyfin_sync()) diff --git a/backend/app/routers/admin.py b/backend/app/routers/admin.py index ba972a3..bbb7563 100644 --- a/backend/app/routers/admin.py +++ b/backend/app/routers/admin.py @@ -88,7 +88,6 @@ SETTING_KEYS: List[str] = [ "requests_cleanup_time", "requests_cleanup_days", "requests_data_source", - "site_build_number", "site_banner_enabled", "site_banner_message", "site_banner_tone", diff --git a/backend/app/runtime.py b/backend/app/runtime.py index e57fdce..bc900bc 100644 --- a/backend/app/runtime.py +++ b/backend/app/runtime.py @@ -14,6 +14,7 @@ _BOOL_FIELDS = { "jellyfin_sync_to_arr", "site_banner_enabled", } +_SKIP_OVERRIDE_FIELDS = {"site_build_number"} def get_runtime_settings(): @@ -22,6 +23,8 @@ def get_runtime_settings(): for key, value in overrides.items(): if value is None: continue + if key in _SKIP_OVERRIDE_FIELDS: + continue if key in _INT_FIELDS: try: update[key] = int(value) diff --git a/frontend/package.json b/frontend/package.json index fadced5..8bc08ce 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "magent-frontend", "private": true, - "version": "2901262102", + "version": "2901262147", "scripts": { "dev": "next dev", "build": "next build",