[Feature] Add module uninstall guard providers for data, migrations, workers, and schedulers #201

Closed
opened 2026-07-07 09:23:56 +02:00 by zemion · 1 comment
Owner

Parent: #36

Goal

Let installed modules veto package uninstall when data, migrations, workers, schedulers, queues, or external subscriptions still need the module.

Acceptance Criteria

  • Module manifest supports uninstall guard providers.
  • Core installer preflight aggregates guard results and blocks uninstall on veto.
  • Guard payloads are serializable for Admin > Modules.
  • Tests cover guard veto and warning-only results.
Parent: #36 ## Goal Let installed modules veto package uninstall when data, migrations, workers, schedulers, queues, or external subscriptions still need the module. ## Acceptance Criteria - Module manifest supports uninstall guard providers. - Core installer preflight aggregates guard results and blocks uninstall on veto. - Guard payloads are serializable for Admin > Modules. - Tests cover guard veto and warning-only results.
Author
Owner

Codex State: done

Summary

  • Added module uninstall guard contract and registered persistent-data guards in existing data-owning module manifests.

Changed Files

  • src/govoplan_core/core/modules.py
  • src/govoplan_core/core/module_guards.py
  • ../govoplan-access/src/govoplan_access/backend/manifest.py
  • ../govoplan-admin/src/govoplan_admin/backend/manifest.py
  • ../govoplan-tenancy/src/govoplan_tenancy/backend/manifest.py
  • ../govoplan-audit/src/govoplan_audit/backend/manifest.py
  • ../govoplan-files/src/govoplan_files/backend/manifest.py
  • ../govoplan-mail/src/govoplan_mail/backend/manifest.py
  • ../govoplan-campaign/src/govoplan_campaign/backend/manifest.py
  • ../govoplan-calendar/src/govoplan_calendar/backend/manifest.py

Verification

  • ./.venv/bin/python -m compileall ... -> OK
  • ./.venv/bin/python -m unittest tests.test_module_system -> OK
## Codex State: done ### Summary - Added module uninstall guard contract and registered persistent-data guards in existing data-owning module manifests. ### Changed Files - `src/govoplan_core/core/modules.py` - `src/govoplan_core/core/module_guards.py` - `../govoplan-access/src/govoplan_access/backend/manifest.py` - `../govoplan-admin/src/govoplan_admin/backend/manifest.py` - `../govoplan-tenancy/src/govoplan_tenancy/backend/manifest.py` - `../govoplan-audit/src/govoplan_audit/backend/manifest.py` - `../govoplan-files/src/govoplan_files/backend/manifest.py` - `../govoplan-mail/src/govoplan_mail/backend/manifest.py` - `../govoplan-campaign/src/govoplan_campaign/backend/manifest.py` - `../govoplan-calendar/src/govoplan_calendar/backend/manifest.py` ### Verification - `./.venv/bin/python -m compileall ... -> OK` - `./.venv/bin/python -m unittest tests.test_module_system -> OK`
zemion added the
type
feature
priority
p1
status
ready
area/module-system
codex/ready
labels 2026-07-07 23:08:53 +02:00
zemion added the
module/core
label 2026-07-07 23:42:50 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: add-ideas/govoplan-core#201
No description provided.