Files
workdock-platform/docs/TUBCO_MAINTENANCE_POLICY.md
2026-04-15 10:11:58 +02:00

137 lines
3.8 KiB
Markdown

# TUBCO Maintenance Policy
Use this document whenever we maintain the TUBCO customer line.
This is the rulebook for TUBCO. It is intentionally stricter than normal product work.
## Goal
TUBCO stays on its own older customer baseline.
That means:
- keep the older TUBCO application behavior
- keep the older TUBCO database schema
- only cherry-pick approved fixes
- do not quietly turn TUBCO into the newer product
## Source of truth
TUBCO delivery happens from:
- `release/tubco-v1`
Normal product work happens on:
- `develop`
- `main`
Do not deploy TUBCO from:
- `develop`
- `main`
## Core maintenance rules
For TUBCO, we may backport only:
- bug fixes
- security fixes
- carefully approved UX improvements
- required operational fixes for the customer environment
For TUBCO, we do not backport by default:
- new product workflows
- new approval/account-rule systems
- schema expansions from the newer product
- general feature growth unless explicitly approved
## Database rule
TUBCO must use the old TUBCO schema.
This is the most important rule.
If the code stays old but the database is newer, old TUBCO flows can fail with database errors such as:
- missing values for newer non-null columns
- forms saving rows that the old code does not know how to populate
If we see errors like:
- `null value in column ... violates not-null constraint`
then first verify whether the TUBCO environment is still using the old schema.
Do not solve this by default with:
- broad schema compatibility backports
- importing the newer product data model into TUBCO
That would move TUBCO toward the new product instead of preserving the customer baseline.
## LAN server rule
TUBCO is hosted on our local LAN server.
Before deploying any TUBCO fix, verify:
- the server is running `release/tubco-v1`
- the environment points to the intended old TUBCO database
- no newer product migrations were applied there by mistake
If the LAN server is connected to a newer migrated database, code-only fixes may not be enough.
In that case, the correct options are:
1. repoint TUBCO to the old TUBCO database
2. or restore the database to the old TUBCO schema
## Safe TUBCO release workflow
1. start from:
- `release/tubco-v1`
2. implement only the approved fix
3. keep the database model old unless there is explicit customer approval to change it
4. test the affected flow
5. deploy only to the LAN-hosted TUBCO environment
6. do not run newer product migrations on that environment
## Cherry-pick rule
When a fix exists on another branch:
- inspect the commit carefully
- cherry-pick only if it does not pull in newer product behavior or newer schema assumptions
If a fix depends on the newer schema:
- stop
- rework it as a TUBCO-only fix
- or do not ship it
## Operational checklist before deploying a TUBCO fix
Check all of these:
- branch is `release/tubco-v1`
- worktree is clean
- fix is limited to the approved TUBCO scope
- no new-product migrations are included
- no new-product workflows are included
- LAN server target is the intended TUBCO environment
- database is the old TUBCO schema
## Example warning signs
Pause and verify immediately if you see:
- approval-related fields appearing in old TUBCO flows
- new account-rule behavior on TUBCO
- migration files copied from the product branch
- database errors mentioning columns unknown to the old branch
Those usually indicate code/schema drift.
## Decision rule
If there is a conflict between:
- shipping a quick fix
- and keeping TUBCO on the old customer baseline
choose the old customer baseline first.
We only widen the TUBCO schema or behavior if that change is explicitly intended for TUBCO.
## Related documents
- [TUBCO_SETUP.md](/Users/bostame/Documents/workdock-platform/TUBCO_SETUP.md)
- [DEPLOYMENT.md](/Users/bostame/Documents/workdock-platform/DEPLOYMENT.md)
- [CONTRIBUTING.md](/Users/bostame/Documents/workdock-platform/CONTRIBUTING.md)