Skip to content

Deprecation Policy

Pipeline Configuration Changes

Pipeline configuration (YAML syntax) changes follow a strict deprecation process to ensure users have sufficient time to migrate.

Process Timeline

  1. Minor Version N.x - Add Deprecation Warning
  2. Linter shows a warning (not an error)
  3. Old syntax remains functional
  4. Documentation is updated to reflect the new syntax
  5. Warning message includes guidance on required changes

  6. Major Version (N+1).0 - Warning Becomes Error

  7. Linter issues an error (pipeline fails)
  8. Old syntax is no longer supported
  9. Breaking change is documented in the migration guide
  10. Users must update their configurations

  11. Minor Version (N+1).x - Code Cleanup

  12. Deprecated code paths are removed
  13. Implementation is simplified/refactored
  14. Parser no longer recognizes the old syntax

Example

Old syntax: secrets: [token] New syntax: environment: { TOKEN: { from_secret: token } }

  • v2.5.0: Deprecation warning added in linter; both syntaxes work
  • v2.6-2.9: Warning persists; both syntaxes remain functional
  • v3.0.0: Linter error; old syntax fails (breaking change)
  • v3.1.0: Deprecated code paths removed; parser simplified

Implementation Checklist

When deprecating pipeline configuration syntax, ensure the following:

  • Add linter warning in /pipeline/frontend/yaml/linter/
  • Update JSON schema in /pipeline/frontend/yaml/linter/schema
  • Add test cases for deprecated syntax
  • Update documentation to reflect the new syntax