Moose has always prioritized correctness over performance and backwards compatibility.

Major deprecations or API changes are first documented in the Changes file as well as in Moose::Manual::Delta

Moose then attempts to warn for deprecated features and API changes for a reasonable number of releases before breaking any tested API.

Moose will also warn during installation if the version being installed will break a known installed dependency.
Unfortunately due to the nature of the Perl install process these warnings may be easy to miss.

We try to ensure compatibility by having a extensive test suite (last count just over around 5123 tests),
as well as testing a number of packages (currently just under 100 packages) that depend on Moose before any release.

The current list of downstream dependencies that are tested is in xt/author/test-my-dependents.t.

Moose's version numbers are monotonically incrementing two decimal values.
The version numbers in Moose are not semantic.
This means that version 1.00 will be the hundredth release,
nothing more.

Occasionally,
we will release a test release with a version like 0.90_03.
These versions may be less stable than non-test releases,
and exist so that developers can test potentially code-breaking changes.
By default,
the CPAN client will not install a distribution which has an underscore in its version.