presto-docs/src/main/sphinx/develop/release-process.rst
Presto releases are managed by volunteer committers. Releases occur approximately every 2 months, with extended testing periods to ensure stability.
Releases target a 2-month cycle. Actual timing depends on:
Schedules adjust based on volunteer availability.
Note: Trunk is not stable. Do not use master branch in production.
Extended Release Candidate Period
Community Testing
Presto Slack <https://communityinviter.com/apps/prestodb/prestodb>_ to participateAutomated Testing
AbstractTestQueries <https://github.com/prestodb/presto/blob/master/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java>_Testing Contributions Needed
product test scenarios <https://github.com/prestodb/presto/tree/master/presto-product-tests>_0.XXX (for example, 0.293, 0.294)Not semantic versioning.
Regular Releases
Patch Releases
Critical issues only:
Based on previous stable release
Minimal changes
Release Candidates
Edge Releases
Requirements:
Responsibilities:
See Release Shepherding <https://github.com/prestodb/presto/wiki/Release-Shepherding>_ for schedule and details.
Testing
Test Development
pbench <https://github.com/prestodb/pbench>_)Documentation
Code Review
Must Maintain Compatibility:
@Deprecated for at least two releases before removal.
When adding new SPI methods, provide reasonable defaults to minimize connector updates.
Documented SPI interfaces must remain stable even without public implementations.
Exception: Undocumented AND unused SPI aspects.Can Change:
Developer Requirements:
When to Revert ^^^^^^^^^^^^^^
Any change that introduces data correctness issues, major crashes, or severe stability problems must be reverted immediately if a fix is not quick, especially near the RC finalization window.
Must revert:
Should revert:
Client libraries evolve slowly and many users cannot easily upgrade clients. Breaking changes to the client protocol, SQL syntax, or session/config properties without proper migration paths must be reverted if they cannot be fixed quickly, particularly near RC finalization:
Must revert:
Should revert:
If a backwards incompatible change to the SPI is discovered that lacks the required migration path (for example, no deprecation period, no reasonable defaults for new methods), the change should be reverted if a proper migration path cannot be added quickly, especially near RC finalization. Use these criteria:
Must revert:
Should revert:
Consider both documented interfaces and public implementations in the Presto repository. Create a GitHub issue marked as "release blocker" to alert the release shepherd.
When NOT to Revert ^^^^^^^^^^^^^^^^^^
If the fix is simpler than the revert and can be completed quickly (especially before RC finalization), prefer fixing forward.
Fix forward:
Performance changes with mixed impact require case-by-case evaluation based on community feedback:
If multiple users report significant regressions, consider reverting or adding a feature flag. Always document performance changes and workarounds in release notes.
Changes cannot be reverted based on impacts to proprietary infrastructure, private forks, or non-public connectors or plugins. All revert decisions must be justifiable using only publicly available code, documentation, and usage patterns visible in the open source project.
New features that don't affect existing functionality should be fixed. Consider adding feature flags if stability is a concern.
Presto Slack <https://communityinviter.com/apps/prestodb/prestodb>_ #releases channelGitHub Releases <https://github.com/prestodb/presto/releases>_Mailing List <https://lists.prestodb.io/g/presto-dev>_Release notes in docs <https://prestodb.io/docs/current/release/release.html>_Presto Slack <https://communityinviter.com/apps/prestodb/prestodb>_release shepherd <https://github.com/prestodb/presto/wiki/Release-Shepherding>_ (committers only)