Overview
Activepieces pieces follow Semantic Versioning (SemVer) to ensure compatibility and manage breaking changes. All pieces are versioned independently and published to npmjs.com.Semantic Versioning
Version format:MAJOR.MINOR.PATCH (e.g., 1.2.3)
Major (1.x.x)
Breaking changes that require user action
Minor (x.2.x)
New features, backward compatible
Patch (x.x.3)
Bug fixes, backward compatible
Version Examples
- Patch Update
- Minor Update
- Major Update
0.0.1 → 0.0.2Bug fixes and minor improvements:
- Fix error message typo
- Improve error handling
- Update documentation
- Fix edge case bug
package.json
What Constitutes a Breaking Change?
Breaking Changes
Breaking Changes
Changes that break existing flows:
- Removing actions, triggers, or properties
- Renaming actions, triggers, or properties
- Making optional property required
- Changing property type (e.g., string to number)
- Changing output structure that breaks downstream steps
- Removing authentication method
- Changing API behavior significantly
Non-Breaking Changes
Non-Breaking Changes
Changes that maintain compatibility:
- Adding new actions, triggers, or optional properties
- Adding fields to output (but not removing)
- Making required property optional
- Improving error messages
- Adding default values
- Performance improvements
- Bug fixes
Version Lifecycle
Initial Release
Start with version0.0.1:
package.json
Development Phase (0.x.x)
During initial development:- Major version stays at
0 - Minor bumps for new features
- Patch bumps for bug fixes
- Breaking changes allowed in minor versions
Stable Release (1.0.0+)
Once stable, release1.0.0:
package.json
- Major version for breaking changes
- Minor version for new features
- Patch version for bug fixes
Managing Breaking Changes
Migration Path
When making breaking changes:Backward Compatibility
Maintain compatibility when possible:Publishing Pieces
Community Pieces
Community pieces are published automatically when your PR is merged:Private Pieces
Publish to your private registry:Version Constraints
Minimum Supported Release
Specify minimum Activepieces version:Maximum Supported Release
Optionally set maximum version (for deprecation):Changelog Best Practices
Maintain a clear changelog:CHANGELOG.md
Version Comparison
Check version compatibility:Deprecation Strategy
Marking as Deprecated
Deprecation Timeline
- Announce deprecation in changelog
- Mark feature as deprecated
- Wait at least 2 minor versions
- Remove in next major version
Real-World Examples
Example 1: Slack Piece Evolution
Example 2: GitHub Piece Evolution
Best Practices
Version Carefully
Version Carefully
- Start with 0.0.1
- Stay in 0.x during development
- Release 1.0.0 when stable
- Follow SemVer strictly after 1.0.0
Document Changes
Document Changes
- Maintain CHANGELOG.md
- Document breaking changes
- Provide migration guides
- Update README
Communicate Deprecations
Communicate Deprecations
- Announce in advance
- Provide alternatives
- Give sufficient warning period
- Show warnings in logs
Test Thoroughly
Test Thoroughly
- Test all version upgrades
- Verify backward compatibility
- Test migration paths
- Run integration tests
Next Steps
Contribute
Submit your piece to the community
Testing
Write comprehensive tests