docs: decide upgrade lifecycle direction (spike)#202
Open
dan2k3k4 wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a decision note on the currently-stubbed upgrade lifecycle: it is unreachable in production today, so no guard is added and implementation is staged for later. Docs only.
Greptile Summary
This PR adds a decision note documenting the outcome of a spike on the upgrade lifecycle in
plans/notes/012-upgrade-lifecycle-decision.md. It establishes that the upgrade path (PENDING_PRE_UPGRADEand onward) is entirely unreachable in production today — no UI action, console command, API endpoint, or state-machine transition can enter it — so no guard is added, and implementation is deferred with a staged follow-up plan.Confidence Score: 5/5
Docs-only change with no production code modified; safe to merge.
The change is a single new markdown file containing a decision note. No source code, migrations, tests, or configuration are touched. The analysis itself is thorough — it cross-checks reachability across Filament actions, console commands, API routes, and the state machine, and the staged follow-up plan is logically sound. The only cosmetic concern is that the inline
git diff --stat b6f2ff09d195..HEADdrift-check command will silently go stale as the repository evolves, but this has no runtime impact.No files require special attention.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[Admin / API / Console] -->|"No trigger_upgrade action exists"| B{Entry Point?} B -- "TODAY: None" --> C[❌ Unreachable\nPENDING_PRE_UPGRADE] B -- "Stage D future" --> C2[✅ trigger_upgrade action\nguarded to RUNNING_HEALTHY_*] C2 --> D[PENDING_PRE_UPGRADE] D --> E[PreUpgradeJob\n⚠️ stub – silent stall] E -->|"Stage A: add executeTransition"| F[PRE_UPGRADE_RUNNING\nPreUpgradeAppInstanceTrait ✅] F --> G[PRE_UPGRADE_COMPLETED] G --> H[UpgradeJob\n⚠️ stub] H -->|"Stage B: real Lagoon call"| I[UPGRADE_RUNNING\nUpgradeAppInstanceTrait 🔧] I --> J[UPGRADE_COMPLETED] J --> K[PostUpgradeJob\n⚠️ stub] K -->|"Stage B: implement"| L[POST_UPGRADE_COMPLETED\nPostUpgradeAppInstanceTrait 🔧] L --> M[PollUpgradeJob\n⚠️ stub] M -->|"Stage C: polling"| N[ProgressToNextStageJob\nalready routes correctly ✅] N --> O[RUNNING_HEALTHY_*]%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% flowchart TD A[Admin / API / Console] -->|"No trigger_upgrade action exists"| B{Entry Point?} B -- "TODAY: None" --> C[❌ Unreachable\nPENDING_PRE_UPGRADE] B -- "Stage D future" --> C2[✅ trigger_upgrade action\nguarded to RUNNING_HEALTHY_*] C2 --> D[PENDING_PRE_UPGRADE] D --> E[PreUpgradeJob\n⚠️ stub – silent stall] E -->|"Stage A: add executeTransition"| F[PRE_UPGRADE_RUNNING\nPreUpgradeAppInstanceTrait ✅] F --> G[PRE_UPGRADE_COMPLETED] G --> H[UpgradeJob\n⚠️ stub] H -->|"Stage B: real Lagoon call"| I[UPGRADE_RUNNING\nUpgradeAppInstanceTrait 🔧] I --> J[UPGRADE_COMPLETED] J --> K[PostUpgradeJob\n⚠️ stub] K -->|"Stage B: implement"| L[POST_UPGRADE_COMPLETED\nPostUpgradeAppInstanceTrait 🔧] L --> M[PollUpgradeJob\n⚠️ stub] M -->|"Stage C: polling"| N[ProgressToNextStageJob\nalready routes correctly ✅] N --> O[RUNNING_HEALTHY_*]Reviews (1): Last reviewed commit: "docs: decide upgrade lifecycle direction..." | Re-trigger Greptile