-
Notifications
You must be signed in to change notification settings - Fork 302
Description
Description
The compiler_activation_jobs.go file is 821 lines, approaching the refactoring threshold. It contains large functions (some exceeding 200 lines) with multiple concerns mixed together. Splitting this file improves maintainability, navigation, and testability.
Current State
- File Size: 821 lines (near 800-line refactor threshold)
- Large Functions:
buildPreActivationJob(): 264 linesbuildActivationJob(): 242 linesbuildMainJob(): 215 lines
- Issues: Multiple concerns per function, hard to navigate
Proposed Split
Split into 2-3 focused files:
Option 1: 2-File Split
-
compiler_pre_activation_job.go(~350 lines)buildPreActivationJob()extractPreActivationCustomFields()- Membership check helpers
-
compiler_activation_main_jobs.go(~470 lines)buildActivationJob()buildMainJob()- Reaction and lock helpers
Option 2: 3-File Split (More Granular)
-
compiler_pre_activation_job.go(~280 lines)- Pre-activation logic only
-
compiler_activation_job.go(~280 lines)- Activation job logic
-
compiler_main_job.go(~260 lines)- Main job orchestration
Additional Refactoring (Optional)
Extract feature builders to reduce function complexity:
func (c *Compiler) buildReactionSteps(...) []string { ... }
func (c *Compiler) buildLockSteps(...) []string { ... }
func (c *Compiler) buildComputeTextSteps(...) []string { ... }
// Then compose in buildActivationJob:
steps = append(steps, c.buildReactionSteps(data)...)
steps = append(steps, c.buildLockSteps(data)...)Files Affected
pkg/workflow/compiler_activation_jobs.go(split into 2-3 files)pkg/workflow/compiler_activation_jobs_test.go(may need refactoring to match)
Success Criteria
- Original file split into 2-3 focused files (~300-400 lines each)
- All functions moved to appropriate files
- Test file(s) updated to match new structure
- All existing tests continue to pass
- No functionality changes (pure refactoring)
- Function complexity reduced (functions <150 lines preferred)
Priority
Medium - Improves maintainability, but not blocking current work
Estimated Effort
1 day (including test refactoring and validation)
Source
Extracted from:
- Daily Compiler Code Quality Report - Feb 6 (#14159)
- Daily Compiler Code Quality Report - Feb 5 (#13934)
Listed as "Short-term Improvement" (Medium Priority) in both compiler quality reports.
Notes
- This is a larger refactoring task - consider breaking into smaller sub-tasks
- Coordinate with ongoing compiler development to avoid merge conflicts
- Ideal time: During quieter development periods
AI generated by Discussion Task Miner - Code Quality Improvement Agent
- expires on Feb 7, 2026, 9:07 PM UTC