> ## Documentation Index
> Fetch the complete documentation index at: https://www.activepieces.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Piece versioning

> How to choose a version number when publishing a piece

Pieces are npm packages and follow **semantic versioning**.

<Note>
  This page is for *piece authors* deciding what version number to publish. For how flows adopt new piece versions, see [Piece syncing & versioning](/install/architecture/piece-syncing).
</Note>

## Semantic versioning

The version number is `MAJOR.MINOR.PATCH`:

* **MAJOR** — bump when you make a breaking change.
* **MINOR** — bump when you add functionality without breaking existing flows.
* **PATCH** — bump for bug fixes that don't change behavior.

## Classifying changes

Use this checklist when deciding which segment to bump.

### Breaking changes (MAJOR)

* Remove an existing action or trigger.
* Add a required prop to an existing action or trigger.
* Remove an existing prop, whether required or optional.
* Remove an attribute from an action output.
* Change the existing behavior of an action or trigger.

### Non-breaking changes (MINOR or PATCH)

* Add a new action or trigger.
* Add an optional prop.
* Add an attribute to an action output.
* Fix a bug without changing the public surface (PATCH).

The rule of thumb: **any removal is breaking, any required addition is breaking, everything else is not.**
