@@ -118,14 +118,18 @@ func (q *Query) GetPlan(planDir string) (*Plan, error) {
118118 // Extract known top-level fields
119119 var planQuality * PlanQualityConfig
120120
121- // Skip fixtures and cleanup fields (deprecated - emit warning for backwards compatibility)
121+ // Reject deprecated fixtures and cleanup fields with clear error messages
122122 if _ , hasFixtures := raw ["fixtures" ]; hasFixtures {
123- fmt .Fprintf (os .Stderr , "Warning: 'fixtures:' in plan file '%s' is deprecated and ignored\n " , pfile )
124- delete (raw , "fixtures" )
123+ return nil , fmt .Errorf ("'fixtures:' in plan file '%s' is no longer supported.\n " +
124+ "Per-test fixtures have been removed. Use snapshots instead:\n " +
125+ " 1. Move fixture data to regresql/fixtures/\n " +
126+ " 2. Run 'regresql snapshot build'\n " +
127+ " 3. Remove 'fixtures:' from this plan file" , pfile )
125128 }
126129 if _ , hasCleanup := raw ["cleanup" ]; hasCleanup {
127- fmt .Fprintf (os .Stderr , "Warning: 'cleanup:' in plan file '%s' is deprecated and ignored\n " , pfile )
128- delete (raw , "cleanup" )
130+ return nil , fmt .Errorf ("'cleanup:' in plan file '%s' is no longer supported.\n " +
131+ "Cleanup strategies have been removed. Tests now always run in transactions that rollback.\n " +
132+ "Remove 'cleanup:' from this plan file." , pfile )
129133 }
130134
131135 if planQualityRaw , ok := raw ["plan_quality" ]; ok {
0 commit comments