From e2a226e8b0b31934b21d695b83f90310fe3e3706 Mon Sep 17 00:00:00 2001 From: cproudlock Date: Wed, 26 Aug 2026 13:13:16 -0400 Subject: [PATCH] Let Guides reach a site, and reach core the way every plugin must Two faults the guides plugin shipped with, both caught by gates that were already there. deploy/site-profile-universal.json never listed `guides`. That file is the profile the released Windows installer is built from, so the wizard would not have offered Guides at all - and worse, `flask plugin prune-schema` drops the tables of any plugin absent from the profile at provisioning (ADR-014). A site installing the next release would have had its guides table dropped. plugins/guides/models/guide.py imported shopdb.core.models.base directly. Plugins reach core only through shopdb.api or shopdb.plugins.base (ADR-001), and shopdb.api already re-exports BaseModel, so this is the same symbol by the supported path. The suite was red on main because of these two; it passes again. --- deploy/site-profile-universal.json | 1 + plugins/guides/models/guide.py | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/site-profile-universal.json b/deploy/site-profile-universal.json index 64b7539e..7308f77d 100644 --- a/deploy/site-profile-universal.json +++ b/deploy/site-profile-universal.json @@ -5,6 +5,7 @@ "computers", "employees", "geenforce", + "guides", "knowledgebase", "machines", "measuringtools", diff --git a/plugins/guides/models/guide.py b/plugins/guides/models/guide.py index a3587798..809445b8 100644 --- a/plugins/guides/models/guide.py +++ b/plugins/guides/models/guide.py @@ -33,8 +33,7 @@ without an author thinking about it. import json from datetime import datetime -from shopdb.api import db -from shopdb.core.models.base import BaseModel +from shopdb.api import db, BaseModel def _utcnow():