2 Commits
v0.1.7 ... main

Author SHA1 Message Date
0046284b95 fix(manifest): normalize runtime module id 2026-07-20 20:01:50 +02:00
36bbc97695 Release v0.1.8 2026-07-11 16:49:02 +02:00
5 changed files with 18 additions and 12 deletions

View File

@@ -1,7 +1,13 @@
# GovOPlaN Forms Runtime
<!-- govoplan-repository-type:start -->
**Repository type:** module (platform).
<!-- govoplan-repository-type:end -->
`govoplan-forms-runtime` is the GovOPlaN platform module seed for runtime form submissions for validation, drafts, attachments, signatures, status tracking, and handoff to domain modules.
Its runtime module ID is `forms_runtime`; the repository and Python distribution retain the hyphenated `govoplan-forms-runtime` name.
This repository is initialized as a discoverable module seed. It exposes a module manifest, initial permissions, role templates, documentation metadata, Gitea workflow templates, and a focused manifest test. It intentionally does not yet add HTTP routes, database models, migrations, or WebUI navigation.
## Initial Ownership
@@ -57,5 +63,5 @@ From the core checkout, labels can be synced once a local `GITEA_TOKEN` is avail
```bash
cd /mnt/DATA/git/govoplan-core
./scripts/gitea-sync-labels.py --root /mnt/DATA/git/govoplan-forms-runtime --apply
/mnt/DATA/git/govoplan/tools/gitea/gitea-sync-labels.py --root /mnt/DATA/git/govoplan-forms-runtime --apply
```

View File

@@ -1,6 +1,6 @@
{
"name": "@govoplan/forms-runtime",
"version": "0.1.7",
"version": "0.1.8",
"private": true,
"description": "GovOPlaN Forms Runtime platform module seed.",
"type": "module",

View File

@@ -4,15 +4,15 @@ build-backend = "setuptools.build_meta"
[project]
name = "govoplan-forms-runtime"
version = "0.1.7"
version = "0.1.8"
description = "GovOPlaN Forms Runtime platform module seed."
readme = "README.md"
requires-python = ">=3.12"
license = { file = "LICENSE" }
authors = [{ name = "GovOPlaN" }]
dependencies = [
"govoplan-core>=0.1.7",
"govoplan-access>=0.1.7",
"govoplan-core>=0.1.8",
"govoplan-access>=0.1.8",
]
[tool.setuptools.packages.find]
@@ -22,4 +22,4 @@ where = ["src"]
govoplan_forms_runtime = ["py.typed"]
[project.entry-points."govoplan.modules"]
"forms-runtime" = "govoplan_forms_runtime.backend.manifest:get_manifest"
forms_runtime = "govoplan_forms_runtime.backend.manifest:get_manifest"

View File

@@ -3,12 +3,12 @@ from __future__ import annotations
from govoplan_core.core.access import CAPABILITY_AUTH_PERMISSION_EVALUATOR, CAPABILITY_AUTH_PRINCIPAL_RESOLVER
from govoplan_core.core.modules import DocumentationLink, DocumentationTopic, ModuleManifest, PermissionDefinition, RoleTemplate
MODULE_ID = "forms-runtime"
MODULE_ID = "forms_runtime"
MODULE_NAME = "Forms Runtime"
MODULE_VERSION = "0.1.7"
READ_SCOPE = "forms-runtime:workspace:read"
WRITE_SCOPE = "forms-runtime:workspace:write"
ADMIN_SCOPE = "forms-runtime:workspace:admin"
MODULE_VERSION = "0.1.8"
READ_SCOPE = "forms_runtime:workspace:read"
WRITE_SCOPE = "forms_runtime:workspace:write"
ADMIN_SCOPE = "forms_runtime:workspace:admin"
OPTIONAL_DEPENDENCIES = (
"forms",
"files",

View File

@@ -9,7 +9,7 @@ class ManifestSeedTests(unittest.TestCase):
def test_manifest_registers_seed_contract(self) -> None:
manifest = get_manifest()
self.assertEqual(manifest.id, "forms-runtime")
self.assertEqual(manifest.id, "forms_runtime")
self.assertEqual(manifest.name, "Forms Runtime")
self.assertEqual(manifest.dependencies, ("access",))
self.assertEqual({permission.scope for permission in manifest.permissions}, {READ_SCOPE, WRITE_SCOPE, ADMIN_SCOPE})