2 Commits
Author SHA1 Message Date
zemion f6b4834588 test: compare manifest version with package metadata
Module Package Release / publish-packages (push) Successful in 11s
2026-09-08 02:16:54 +02:00
zemion a081f59ab7 fix(packaging): expose immutable WebUI Git package for v0.1.22 2026-09-08 02:06:10 +02:00
7 changed files with 59 additions and 5 deletions
+18
View File
@@ -32,3 +32,21 @@ PYTHONPATH=src:/mnt/DATA/git/govoplan-core/src \
cd webui && npm run test:interface-pattern cd webui && npm run test:interface-pattern
``` ```
## Git-source WebUI package
The repository root exposes `@govoplan/payments-webui` for Git-tagged release
dependencies. It mirrors the owning `webui/package.json` version, public
TypeScript/CSS exports and peer requirements, with entry paths under
`webui/src`. Consumers provide the shared Core/React peers; the facade runs no
development or install scripts. The source archive contains `webui/src`, this
README and any repository license file. Run module development checks from `webui/`; Python
installation remains governed by `pyproject.toml`.
Das Repository stellt `@govoplan/payments-webui` am Wurzelpfad für versionierte
Git-Abhängigkeiten bereit. Version, öffentliche TypeScript-/CSS-Exporte und
Peer-Anforderungen entsprechen `webui/package.json`; die Einstiegspfade liegen
unter `webui/src`. Gemeinsame Core-/React-Peers stellt die einbindende Anwendung
bereit. Die Fassade führt keine Entwicklungs- oder Installationsskripte aus.
Entwicklungsprüfungen bleiben in `webui/`, die Python-Installation weiterhin in
`pyproject.toml` definiert.
+33
View File
@@ -0,0 +1,33 @@
{
"name": "@govoplan/payments-webui",
"version": "0.1.22",
"private": true,
"type": "module",
"main": "webui/src/index.ts",
"module": "webui/src/index.ts",
"types": "webui/src/index.ts",
"exports": {
".": {
"types": "./webui/src/index.ts",
"import": "./webui/src/index.ts"
},
"./styles/payments.css": "./webui/src/styles/payments.css"
},
"peerDependencies": {
"@govoplan/core-webui": "^0.1.18",
"lucide-react": "^1.23.0",
"react": ">=19.2.7 <20",
"react-dom": ">=19.2.7 <20",
"react-router": ">=8.3.0 <9"
},
"peerDependenciesMeta": {
"@govoplan/core-webui": {
"optional": true
}
},
"files": [
"webui/src",
"README.md",
"LICENSE"
]
}
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "govoplan-payments" name = "govoplan-payments"
version = "0.1.21" version = "0.1.22"
description = "Replay-safe payment obligations and reconciliation evidence for GovOPlaN." description = "Replay-safe payment obligations and reconciliation evidence for GovOPlaN."
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
+1 -1
View File
@@ -1,3 +1,3 @@
"""GovOPlaN Payments module.""" """GovOPlaN Payments module."""
__version__ = "0.1.21" __version__ = "0.1.22"
+1 -1
View File
@@ -36,7 +36,7 @@ from govoplan_payments.backend.service import SqlPaymentRequestProvider
MODULE_ID = "payments" MODULE_ID = "payments"
MODULE_NAME = "Payments" MODULE_NAME = "Payments"
MODULE_VERSION = "0.1.21" MODULE_VERSION = "0.1.22"
READ_SCOPE = "payments:payment:read" READ_SCOPE = "payments:payment:read"
WRITE_SCOPE = "payments:payment:write" WRITE_SCOPE = "payments:payment:write"
RECONCILE_SCOPE = "payments:payment:reconcile" RECONCILE_SCOPE = "payments:payment:reconcile"
+4 -1
View File
@@ -1,6 +1,8 @@
from __future__ import annotations from __future__ import annotations
from datetime import UTC, datetime, timedelta from datetime import UTC, datetime, timedelta
from pathlib import Path
import tomllib
import unittest import unittest
from sqlalchemy import create_engine from sqlalchemy import create_engine
@@ -201,7 +203,8 @@ class PaymentTests(unittest.TestCase):
self.assertEqual((), self.provider.list_payments(self.session, tenant_id="tenant-2")) self.assertEqual((), self.provider.list_payments(self.session, tenant_id="tenant-2"))
def test_manifest_exposes_permission_bounded_operator_workspace(self) -> None: def test_manifest_exposes_permission_bounded_operator_workspace(self) -> None:
self.assertEqual("0.1.21", manifest.version) project = tomllib.loads((Path(__file__).parents[1] / "pyproject.toml").read_text())
self.assertEqual(project["project"]["version"], manifest.version)
self.assertIsNotNone(manifest.frontend) self.assertIsNotNone(manifest.frontend)
assert manifest.frontend is not None assert manifest.frontend is not None
self.assertEqual("@govoplan/payments-webui", manifest.frontend.package_name) self.assertEqual("@govoplan/payments-webui", manifest.frontend.package_name)
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@govoplan/payments-webui", "name": "@govoplan/payments-webui",
"version": "0.1.21", "version": "0.1.22",
"private": true, "private": true,
"type": "module", "type": "module",
"main": "src/index.ts", "main": "src/index.ts",