diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 14b7d6f..41345bc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -45,6 +45,9 @@ jobs: - name: Checkout uses: actions/checkout@v6 + - name: Setup QEMU + uses: docker/setup-qemu-action@v4 + - name: Setup Docker Buildx uses: docker/setup-buildx-action@v4 @@ -69,6 +72,7 @@ jobs: with: context: ./bff file: ./bff/Dockerfile + platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/README.md b/README.md index 66826ef..e83c96a 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ When a GitHub release is published, CI builds and pushes the BFF Docker image to - `ghcr.io/n-side-dev/wefa/bff:` - `ghcr.io/n-side-dev/wefa/bff:latest` for non-prerelease tags only +- Multi-arch manifest for `linux/amd64` and `linux/arm64` ## Contributing diff --git a/bff/pyproject.toml b/bff/pyproject.toml index 480be04..b3bd09f 100644 --- a/bff/pyproject.toml +++ b/bff/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "backend-for-frontend" -version = "0.4.1" +version = "0.4.2" description = "Flask backend-for-frontend" requires-python = ">=3.12,<3.13" dependencies = [ diff --git a/bff/uv.lock b/bff/uv.lock index 6c9f37c..950b216 100644 --- a/bff/uv.lock +++ b/bff/uv.lock @@ -33,7 +33,7 @@ wheels = [ [[package]] name = "backend-for-frontend" -version = "0.4.1" +version = "0.4.2" source = { virtual = "." } dependencies = [ { name = "authlib" }, diff --git a/django/nside_wefa/__init__.py b/django/nside_wefa/__init__.py index d87af30..1f2b946 100644 --- a/django/nside_wefa/__init__.py +++ b/django/nside_wefa/__init__.py @@ -5,4 +5,4 @@ with a focus on Legal Consent compliance, data protection, authentication. """ -__version__ = "0.4.1" +__version__ = "0.4.2" diff --git a/django/pyproject.toml b/django/pyproject.toml index 2160889..9c735ab 100644 --- a/django/pyproject.toml +++ b/django/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "nside-wefa" -version = "0.4.1" +version = "0.4.2" description = "Django library with Legal Consent compliance utilities and reusable apps" readme = "README.md" requires-python = ">=3.12" diff --git a/django/uv.lock b/django/uv.lock index 5695054..316f919 100644 --- a/django/uv.lock +++ b/django/uv.lock @@ -575,7 +575,7 @@ wheels = [ [[package]] name = "nside-wefa" -version = "0.4.1" +version = "0.4.2" source = { editable = "." } dependencies = [ { name = "django" }, diff --git a/scripts/test_wefa_version.py b/scripts/test_wefa_version.py index 63b7e5f..bd3b5d3 100644 --- a/scripts/test_wefa_version.py +++ b/scripts/test_wefa_version.py @@ -102,3 +102,15 @@ def mutate() -> None: wefa_version.run_transactional_version_update(mutate) self.assertEqual(path.read_text(encoding="utf-8"), "before\n") + + def test_update_django_init_version_appends_trailing_newline(self) -> None: + with tempfile.TemporaryDirectory() as tmpdir: + root = Path(tmpdir) + path = root / "django/nside_wefa/__init__.py" + path.parent.mkdir(parents=True) + path.write_text('__version__ = "1.0.0rc1"', encoding="utf-8") + + with mock.patch.object(wefa_version, "ROOT", root): + wefa_version.update_django_init_version("1.0.1") + + self.assertEqual(path.read_text(encoding="utf-8"), '__version__ = "1.0.1"\n') diff --git a/scripts/wefa_version.py b/scripts/wefa_version.py index 6299d73..54a83d9 100755 --- a/scripts/wefa_version.py +++ b/scripts/wefa_version.py @@ -361,6 +361,8 @@ def update_django_init_version(target_version: str) -> None: updated, replacements = pattern.subn(f'__version__ = "{target_version}"', text, count=1) if replacements != 1: raise RuntimeError(f"unable to update __version__ in {relpath(path)}") + if not updated.endswith("\n"): + updated = f"{updated}\n" path.write_text(updated, encoding="utf-8") diff --git a/vue/package-lock.json b/vue/package-lock.json index 7eda540..b5fad3a 100644 --- a/vue/package-lock.json +++ b/vue/package-lock.json @@ -1,12 +1,12 @@ { "name": "@nside/wefa", - "version": "0.4.1", + "version": "0.4.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@nside/wefa", - "version": "0.4.1", + "version": "0.4.2", "license": "Apache-2.0", "dependencies": { "@primeuix/themes": "^2.0.3", @@ -7528,9 +7528,9 @@ } }, "node_modules/flatted": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", - "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, diff --git a/vue/package.json b/vue/package.json index ef5b59f..11921a1 100644 --- a/vue/package.json +++ b/vue/package.json @@ -1,6 +1,6 @@ { "name": "@nside/wefa", - "version": "0.4.1", + "version": "0.4.2", "type": "module", "main": "./dist/lib.umd.cjs", "module": "./dist/lib.js",