Skip to content

Commit 16dd0af

Browse files
authored
docs: add release.md (#723)
Signed-off-by: Paul S. Schweigert <paul@paulschweigert.com>
1 parent 1a3a01f commit 16dd0af

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

RELEASE.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# RELEASE.md
2+
3+
## Overview
4+
This document describes the release process for the project. It outlines how release candidates are prepared, how testing is performed, how the final package is published, and what conventions the project uses for versioning and communication. The goal is to ensure reliability, transparency, and predictability for users and contributors.
5+
6+
## Release Cadence
7+
Releases are prepared weekly, with work occurring roughly on the following schedule:
8+
9+
- **Mon–Tue:** Identify and finalize high‑priority pull requests for inclusion.
10+
- **Wed:** Merge selected pull requests, lock down changes, and cut the release.
11+
12+
This schedule may shift depending on team availability, urgency of fixes, and the stability of the codebase.
13+
14+
## Versioning
15+
This project follows **[Semantic Versioning (semver)](https://semver.org)**. Breaking changes must be clearly documented and highlighted in release notes.
16+
17+
## Pre‑Release Coordination
18+
### 1. Identify Candidate Pull Requests
19+
Early in the week, maintainers review open pull requests and determine which ones should be included in the upcoming release.
20+
21+
### 2. Merge or Defer Selected Pull Requests
22+
By mid‑week, all targeted PRs should be merged or explicitly deferred. No new PRs should be merged once the release process begins.
23+
24+
## Release Process
25+
### 1. Freeze `main`
26+
Once the release process begins, no new PRs may be merged into `main`.
27+
28+
### 2. Run the Full Test Suite
29+
All tests must pass before proceeding. The suite includes unit tests, integration tests, and example workflows. Issues are classified into quick fixes or larger problems requiring release delay. This should be run against python versions 3.11, 3.12, and 3.13.
30+
31+
### 3. Trigger Release Automation
32+
A GitHub Actions workflow handles the CI pipeline, branch cutting, and publishing to PyPI.
33+
34+
## Post‑Release Steps
35+
### 1. Announcement & Communication
36+
When a release includes noteworthy updates—especially breaking API changes—maintainers should publish release notes and communicate updates publicly.
37+
38+
### 2. Documentation Synchronization
39+
Documentation must be updated before the release is finalized. API Documentation is automatically generated.
40+
41+
### 3. Transparency: Test Strategy & Results
42+
Testing methodology and coverage information may be made public where appropriate.
43+
44+
## Release Types
45+
- **Fix releases** – bug fixes and stability improvements
46+
- **Feature releases** – new capabilities, backward compatible
47+
- **Breaking releases** – major API revisions
48+
49+
## Supported Use Cases & Stability
50+
The project is in **beta**, so users should expect rapid iteration and occasional breaking changes.
51+
52+
## Future Improvements
53+
Future enhancements may include:
54+
- add package dependency tests
55+
- ensure each piece of mellea can run with only its necessary mellea package (ie huggingface with mellea[hf])
56+
- release candidate branch
57+
- the job supports a branch selector; we should make sure it works as expected
58+
- this also means we need to keep track of which PRs need to be double merged (ie into both the release and main branches)
59+
- improved PR coordination
60+
- this becomes less necessary with a candidate release branch
61+
- publishing a standardized test strategy

0 commit comments

Comments
 (0)