Albrecht Degering 05ae81d641
Some checks failed
Dependency Audit / dependency-audit (push) Failing after 16s
Security Audit / security-audit (push) Failing after 11s
intermediate commit
2026-07-14 13:32:09 +02:00
2026-07-14 13:32:09 +02:00
2026-07-11 17:16:58 +02:00
2026-07-14 13:32:09 +02:00
2026-07-14 13:32:09 +02:00
2026-07-11 17:16:58 +02:00
2026-07-14 13:32:09 +02:00
2026-07-14 13:32:09 +02:00
2026-07-14 13:32:09 +02:00
2026-07-14 13:32:09 +02:00
2026-07-14 13:32:09 +02:00
2026-07-14 13:32:09 +02:00

GovOPlaN

Repository type: system (meta).

This is the GovOPlaN meta repository. It is the operator entry point for whole-product development, release orchestration, repository bootstrap, and system-level Docker composition.

It is not a runtime module. Runtime behavior belongs to govoplan-core and the installed modules/connectors discovered by core.

Common Commands

Create the whole-product development virtualenv in this meta repository:

python3 -m venv .venv
./.venv/bin/python tools/repo/sync-python-environment.py --requirements requirements-dev.txt --python ./.venv/bin/python --upgrade-pip

The meta venv is the default Python environment for launch, check, release, and Gitea tooling. GOVOPLAN_VENV_ROOT or PYTHON can override it for special cases.

Start the development stack through the meta repository:

./tools/launch/launch-dev.sh

Start the shared development PostgreSQL service:

./tools/launch/start-dev-postgres.sh

Check which GovOPlaN repositories are present and dirty:

./tools/repo/repo-status.sh

Clone missing repositories listed in repositories.json:

./tools/repo/bootstrap-repositories.py

Update generated repository type notes in all READMEs:

./tools/repo/update-repository-type-notes.py

Regenerate the human-readable repository link index:

./tools/repo/generate-repository-index.py

Synchronize the Python environment after package metadata changes:

./.venv/bin/python tools/repo/sync-python-environment.py --requirements requirements-dev.txt --python ./.venv/bin/python

Run the static cross-repository module contract check:

./tools/checks/check-contracts.sh

Run the consolidated focused verification suite:

./tools/checks/check-focused.sh

Run the cross-repository dependency boundary gate:

./tools/checks/check_dependency_boundaries.py

Run installer rollback drills:

./tools/checks/module-installer-rollback-drill.py --format json

Release, catalog, Gitea, security-audit, and cross-repository maintenance commands should also be called from this repository through tools/.

Start the local release console:

./.venv/bin/python tools/release/release-console.py

Configuration

The repository root .env.example is the self-hosted operator template for a full GovOPlaN installation. Development profile examples live below dev/, for example dev/postgres/.env.example and dev/production-like/.env.example.

Do not commit populated .env files. Gitea tokens should stay in a local file such as ~/.config/gitea/gitea.env and be passed with --env-file.

Structure

The repository categories are documented in docs/REPOSITORY_STRUCTURE.md. The machine-readable list lives in repositories.json; the clickable human-readable index is docs/REPOSITORY_INDEX.md.

Meta ownership and module install/contract boundaries are documented in docs/META_REPO_SCAN.md and docs/MODULE_CONTRACTS_AND_INSTALLS.md. Frontend layout principles for module pages are documented in docs/FRONTEND_LAYOUT_PRINCIPLES.md.

GovOPlaN Docker

Whole-product Docker composition belongs in this meta repository.

Current module-specific Docker test beds remain in their owning repositories until they are migrated or wrapped here:

  • govoplan/dev/postgres
  • govoplan/dev/production-like
  • govoplan-campaign/dev/mail-testbed
  • govoplan-files/dev/connectors

The target shape is:

  • govoplan/dev/postgres: shared local development PostgreSQL service.
  • govoplan/dev/production-like: production-like validation composition.
  • module repositories keep only narrow connector or protocol test beds.

What doesn't belong here:

  • addideas-govoplan-website/docker-compose.yml: public website serving profile; this one stays with the website repository.
Description
No description provided
Readme 337 KiB
Languages
Python 73.1%
Shell 14.9%
HTML 11.7%
Dockerfile 0.3%