Skip to main content

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

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?

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
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 version 0.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, release 1.0.0:
package.json
From this point:
  • Major version for breaking changes
  • Minor version for new features
  • Patch version for bug fixes

Managing Breaking Changes

Migration Path

When making breaking changes:
1

Deprecate Old Version

Mark the old version as deprecated:
2

Add New Version

Create the new version alongside:
3

Document Migration

MIGRATION.md
After (v2):

Backward Compatibility

Maintain compatibility when possible:

Publishing Pieces

Community Pieces

Community pieces are published automatically when your PR is merged:
1

Update Version

package.json
2

Update Changelog

CHANGELOG.md
3

Create Pull Request

Submit PR with version bump and changelog
4

Automatic Publication

Once merged:
  1. CI/CD builds the piece
  2. Runs tests
  3. Publishes to npmjs.com
  4. Available in next release

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

  1. Announce deprecation in changelog
  2. Mark feature as deprecated
  3. Wait at least 2 minor versions
  4. Remove in next major version
Example:

Real-World Examples

Example 1: Slack Piece Evolution

Example 2: GitHub Piece Evolution

Best Practices

  • Start with 0.0.1
  • Stay in 0.x during development
  • Release 1.0.0 when stable
  • Follow SemVer strictly after 1.0.0
  • Maintain CHANGELOG.md
  • Document breaking changes
  • Provide migration guides
  • Update README
  • Announce in advance
  • Provide alternatives
  • Give sufficient warning period
  • Show warnings in logs
  • 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