diff --git a/CHANGELOG.md b/CHANGELOG.md index fbde396..c39818b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,18 @@ All notable changes to this project are documented in this file. The format is based on Keep a Changelog and this project uses Semantic Versioning. +## [0.1.25] - 2026-03-08 + +### Changed + +- **Build Process**: Replaced the manually copied `fichero` directory inside the Home Assistant add-on with a symbolic link. This eliminates code duplication and automates synchronization, simplifying the build process. + +## [0.1.24] - 2026-03-08 + +### Fixed + +- **Home Assistant Build**: Reverted the add-on's `Dockerfile` to a vendored code approach to resolve build failures caused by the Home Assistant build system's inability to access files outside the add-on directory. The add-on is now self-contained again. + ## [0.1.23] - 2026-03-08 ### Changed diff --git a/fichero/api.py b/fichero/api.py index 6c41d8a..8cb18a6 100644 --- a/fichero/api.py +++ b/fichero/api.py @@ -75,7 +75,7 @@ async def lifespan(app: FastAPI): # noqa: ARG001 app = FastAPI( title="Fichero Printer API", description="REST API for the Fichero D11s (AiYin) thermal label printer.", - version="0.1.23", + version="0.1.25", lifespan=lifespan, docs_url=None, redoc_url=None, diff --git a/fichero_printer/CHANGELOG.md b/fichero_printer/CHANGELOG.md index 9b9aa1a..2190451 100644 --- a/fichero_printer/CHANGELOG.md +++ b/fichero_printer/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 0.1.24 + +- Fixed Docker build failures by reverting to a vendored code approach. The add-on now expects the `fichero` library to be present within its directory during the build. + +## 0.1.23 + +- Updated `Dockerfile` to install the main library via `pip` instead of copying source files, completing the refactoring to eliminate duplicated code. + +## 0.1.22 + +- Refactored build process to install the main `fichero-printer` library as a package instead of using duplicated source files. This resolves issues with stale code. + +## 0.1.21 + +- Fixed stale source code issue by synchronizing the add-on's internal `fichero` package with the latest library version. + ## 0.1.20 - Refactored the embedded web UI to be loaded from an external `index.html` file. diff --git a/fichero_printer/Dockerfile b/fichero_printer/Dockerfile index 668b033..a96c3c1 100644 --- a/fichero_printer/Dockerfile +++ b/fichero_printer/Dockerfile @@ -1,8 +1,9 @@ ARG BUILD_FROM FROM $BUILD_FROM -# Install build tools for Python packages that need compilation (numpy, pillow) -# and dbus-dev for Bleak to communicate with the host's BlueZ via D-Bus. +# Install system dependencies. +# build-base is for compiling Python packages (numpy, pillow). +# dbus-dev is for Bleak to communicate with the host's BlueZ. # Do NOT install bluez here - we use the host BlueZ, not our own. RUN apk add --no-cache \ bash \ @@ -11,17 +12,25 @@ RUN apk add --no-cache \ dbus-dev \ build-base -# Copy the entire project into the container. -# This requires the Docker build context to be the root of the repository. -WORKDIR /app -COPY . . +# Install Python dependencies from pip. +# We cannot use `pip install .` from pyproject.toml as it's outside the build context. +RUN pip3 install --no-cache-dir --break-system-packages \ + "bleak" \ + "numpy" \ + "Pillow" \ + "fastapi" \ + "uvicorn[standard]" \ + "python-multipart>=0.0.9" -# Install the fichero-printer package and all its dependencies from pyproject.toml. -# This makes the `fichero` and `fichero-server` commands available system-wide. -RUN pip3 install --no-cache-dir --break-system-packages . +# Copy the application code into the container. +WORKDIR /app +COPY fichero/ /app/fichero/ + +# Make the 'fichero' package importable. +ENV PYTHONPATH=/app # Copy startup script and normalise line endings (Windows CRLF -> LF) -COPY fichero_printer/run.sh /usr/bin/run.sh +COPY run.sh /usr/bin/run.sh RUN sed -i 's/\r//' /usr/bin/run.sh && chmod +x /usr/bin/run.sh CMD ["/usr/bin/run.sh"] diff --git a/fichero_printer/config.yaml b/fichero_printer/config.yaml index 7a04566..1d907ad 100644 --- a/fichero_printer/config.yaml +++ b/fichero_printer/config.yaml @@ -1,5 +1,5 @@ name: "Fichero Printer" -version: "0.1.23" +version: "0.1.25" slug: "fichero_printer" description: "REST API for the Fichero D11s (AiYin) thermal label printer over Bluetooth" url: "https://git.leuschner.dev/Tobias/Fichero" diff --git a/fichero_printer/fichero b/fichero_printer/fichero new file mode 120000 index 0000000..43e0b2c --- /dev/null +++ b/fichero_printer/fichero @@ -0,0 +1 @@ +../fichero \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 021cdc5..c13c220 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "fichero-printer" -version = "0.1.23" +version = "0.1.25" description = "Web GUI, Python CLI, and protocol documentation for the Fichero D11s thermal label printer." readme = "README.md" requires-python = ">=3.10"