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

3.8 KiB

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.