Releases and Upgrade Paths
Release Schedule
There is no fixed release schedule, although we try to release a new version every 1 or 2 weeks.
Specific release intervals will be influenced by 1) high-priority bugs, 2) number of new features and 3) maintainer availability.
Development Releases
Every commit should result in a development release, marked as Pre-releases in PyPi and with the latest-tag in DockerHub.
Note that old development releases will be periodically deleted. There is a limit on how much disk space we can use on PyPi, and we’ve already hit that limit in the past because of the large number of dev releases we do - deleting old development releases is the only way to keep disk usage under control.
Versioning scheme
- Moto follows a semver scheme: major.minor.patch.
A major releases indicates a breaking change
A minor release indicates a big change, but nothing breaking
A patch release will contain new features and bug fixes
Breaking Changes
A full list of all changes in a specific release can be found on Github: https://github.com/getmoto/moto/blob/master/CHANGELOG.md
A overview of the breaking changes between major versions:
- For Moto 2.x:
A change in the installation method. Use pip install moto[service] to only install the required dependencies for that service, or pip install moto[all] to install all (1.x behaviour)
- For Moto 3.x:
Removed compatibility with boto. Specifically: all service_deprecated-decorators were removed.
The class-decorator now resets the state before every test-method (before, the state was global - shared between class-methods).
ECS ARN’s now use the new (long) format by default
- For Moto 4.x:
Removed decorators mock_dynamodb2 and mock_rds2 (they were functionally equivalent with mock_dynamodb and mock_rds since 3.x)
- For Moto 5.x:
All decorators have been replaced with mock_aws
The batch_simple decorator has been replaced with: @mock_aws(config={“batch”: {“use_docker”: False}})
The awslambda_simple decorator has been replaced with: @mock_aws(config={“lambda”: {“use_docker”: False}})
AWS IAM managed Policies are no longer loaded by default. To load them set @mock_aws(config={“iam”: {“load_aws_managed_policies”: True}}) or set environment variable MOTO_IAM_LOAD_MANAGED_POLICIES=true
When starting the MotoServer, the service-argument (i.e.: motoserver s3) is no longer supported. A single MotoServer-instance can be used for all AWS-services.