Skip to content

Commit 322f60a

Browse files
committed
Add documentation around releases
1 parent 089871a commit 322f60a

File tree

5 files changed

+523
-0
lines changed

5 files changed

+523
-0
lines changed

CONTRIBUTING.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,17 @@ To commit code, you should:
6363
* Add or modify existing tests related to code changes being submitted
6464
* Run and ensure that local tests pass before submitting a merge request
6565

66+
## Release Process and Version Support
67+
68+
* **Release Cadence**: ~2 months (volunteer dependent)
69+
* **Version Support**: Latest release plus N-1 through N-4 receive critical fixes; N-5+ unsupported
70+
* **Trunk**: Not stable - never use in production
71+
* **Testing**: Extended RC periods with community testing
72+
73+
Details:
74+
* [Release Process Documentation](presto-docs/src/main/sphinx/develop/release-process.rst) - For developers
75+
* [Version Support Guide](presto-docs/src/main/sphinx/admin/version-support.rst) - For administrators
76+
6677
## Designing Your Code
6778
* Consider your code through 3 axes
6879
1. Code Quality and Maintainability, for example:

presto-docs/src/main/sphinx/admin.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ Administration
2020
admin/spark
2121
admin/verifier
2222
admin/grafana-cloud
23+
admin/version-support
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
===============
2+
Version Support
3+
===============
4+
5+
Overview
6+
--------
7+
8+
Presto is maintained by volunteers. This document describes which versions receive support and what level of support to expect.
9+
10+
Support Philosophy
11+
------------------
12+
13+
* Data correctness issues are taken extremely seriously and typically fixed quickly
14+
* Runtime bugs and security vulnerabilities are prioritized and addressed promptly
15+
* Support depends on volunteer availability - no formal SLAs
16+
* Users are encouraged to contribute fixes for issues affecting them
17+
18+
.. _current-version-support:
19+
20+
Current Version Support
21+
-----------------------
22+
23+
**Latest Release**
24+
* Primary focus for bug fixes
25+
* Recommended for new deployments after testing
26+
27+
**Past 4 Releases (N-1 through N-4)**
28+
* Critical fixes only when:
29+
30+
- Data correctness issues are found
31+
- Volunteers are available to backport
32+
33+
* Patch releases for severe issues only
34+
* Support decreases with age
35+
36+
**Older Releases (N-5 and earlier)**
37+
* Not supported
38+
* Exceptions only when:
39+
40+
- Volunteer provides the backport
41+
- Fix applies cleanly
42+
- Testing is available
43+
44+
* Upgrade required
45+
46+
**Trunk/Master Branch**
47+
* Development branch
48+
* **Never use in production**
49+
* Contains experimental features and bugs
50+
* For testing upcoming changes only
51+
52+
**Edge Releases**
53+
* Weekly builds from master
54+
* **Never use in production**
55+
* **Not supported** - no fixes provided
56+
* For testing upcoming features
57+
58+
Support Lifecycle
59+
-----------------
60+
61+
Timeframes are approximate and depend on volunteer availability.
62+
63+
A typical release follows this lifecycle:
64+
65+
1. **Release Candidates** (2-4 weeks)
66+
67+
- One RC version per release
68+
- Active bug fixing with fixes verified in the existing RC
69+
- High community engagement
70+
71+
2. **Current Release** (approximately 2 months)
72+
73+
- Primary focus for bug fixes
74+
- Active monitoring for issues
75+
- Most community attention
76+
77+
3. **Supported Releases** (N-1 through N-4, approximately 8 months)
78+
79+
- Critical fixes only
80+
- Progressively reduced community focus
81+
- Patch releases for severe issues become less likely with age
82+
83+
4. **Archived** (N-5 and older)
84+
85+
- No active support
86+
- Users strongly encouraged to upgrade
87+
- See :ref:`current-version-support` for details
88+
89+
Types of Support
90+
----------------
91+
92+
**Bug Fixes**
93+
Highest priority (typically fixed very quickly):
94+
95+
* Data correctness issues - taken extremely seriously
96+
97+
High priority:
98+
99+
* Runtime bugs and crashes
100+
* Severe performance regressions
101+
102+
Lower priority:
103+
104+
* Minor performance issues
105+
* UI/cosmetic problems
106+
* Feature enhancements
107+
108+
**Security Vulnerabilities**
109+
* Upgrade to latest release (default recommendation)
110+
* Patches for N-1 through N-4 available upon request
111+
* Backport availability depends on volunteers and severity
112+
* Plan to upgrade rather than rely on backports
113+
114+
**Documentation**
115+
* Release notes and full documentation for all versions remain available
116+
* Migration guides for major changes
117+
* Community-contributed upgrade experiences
118+
119+
Getting Support
120+
---------------
121+
122+
**Community Channels**
123+
124+
* `Presto Slack <https://communityinviter.com/apps/prestodb/prestodb>`_ - Real-time community discussion
125+
* `GitHub Issues <https://github.com/prestodb/presto/issues>`_ - Bug reports and feature requests
126+
* `Mailing List <https://lists.prestodb.io/g/presto-dev>`_ - Development discussions
127+
128+
**Self-Support Resources**
129+
130+
* Release notes and documentation
131+
* Community Slack search history
132+
* GitHub issues and pull requests
133+
* Stack Overflow questions tagged 'presto'
134+
135+
Recommendations for Production Use
136+
----------------------------------
137+
138+
**Version Selection**
139+
140+
1. **For new deployments**: Use the latest stable release after thorough testing
141+
2. **For existing deployments**: Stay within 4 versions of the latest release
142+
3. **For conservative environments**: Wait for at least one patch release (if any) before upgrading
143+
4. **Never use trunk/master or edge** in production
144+
145+
**Upgrade Strategy**
146+
147+
* Plan regular upgrades (every 2-4 months)
148+
* Test thoroughly in staging environments
149+
* Monitor community channels for known issues
150+
* Maintain ability to rollback if needed
151+
* Consider skipping releases if stable (but don't fall too far behind)
152+
153+
**Risk Mitigation**
154+
155+
* Maintain test environments matching production
156+
* Participate in release candidate testing
157+
* Monitor community discussions for your version
158+
* Contribute test cases for critical workflows
159+
160+
Contributing to Support
161+
-----------------------
162+
163+
Ways to contribute:
164+
165+
**Report Issues**
166+
* File detailed bug reports with reproduction steps on `GitHub Issues <https://github.com/prestodb/presto/issues>`_
167+
* Test fixes and provide feedback
168+
* Share workarounds with the community
169+
170+
**Contribute Fixes**
171+
* Submit `pull requests <https://github.com/prestodb/presto/pulls>`_ for bugs affecting you
172+
* Help review and test others' fixes
173+
* Backport critical fixes to versions you use
174+
175+
**Share Knowledge**
176+
* Document upgrade experiences
177+
* Answer questions in `Presto Slack <https://communityinviter.com/apps/prestodb/prestodb>`_
178+
* Write blog posts about solutions
179+
* Contribute to `documentation <https://github.com/prestodb/presto/tree/master/presto-docs>`_
180+
181+
**Sponsor Development**
182+
* Allocate engineering resources to the project
183+
* Fund specific feature development
184+
* Support maintainers and release shepherds
185+
186+
Special Considerations
187+
----------------------
188+
189+
**Long-Term Support (LTS)**
190+
* Not available
191+
* Volunteer model incompatible with LTS commitments
192+
193+
**End-of-Life Announcements**
194+
* No formal EOL process
195+
* Versions become unsupported as community moves forward
196+
* Check release announcements for migration guidance
197+
198+
**Compatibility**
199+
* Breaking changes documented in release notes
200+
* Migration guides provided for major changes
201+
* Test when upgrading across multiple versions
202+
203+
Support Expectations
204+
--------------------
205+
206+
**Available:**
207+
208+
* Typically quick response to data correctness and runtime bugs
209+
* Priority focus on critical issues
210+
* Active community troubleshooting help
211+
* Transparency about known issues
212+
* Documentation for old versions
213+
214+
**Not Available:**
215+
216+
* Guaranteed response times
217+
* Fixes for all issues
218+
* Support for old versions
219+
* Feature backports
220+
* 24/7 support
221+
222+
Summary
223+
-------
224+
225+
Running Presto in production requires:
226+
227+
* Regular upgrades (every 2-4 months)
228+
* Thorough testing before deploying
229+
* Understanding that support is volunteer-based
230+
* Contributing fixes for issues you encounter

presto-docs/src/main/sphinx/develop.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,4 @@ This guide is intended for Presto contributors and plugin developers.
2222
develop/presto-console
2323
develop/presto-authenticator
2424
develop/client-request-filter
25+
develop/release-process

0 commit comments

Comments
 (0)