-
Notifications
You must be signed in to change notification settings - Fork 198
Open
Description
Overview
This issue tracks all tasks required to release OpenRaft v0.10.0 stable.
Current State:
- 11 alpha releases published (v0.10.0-alpha.1 through v0.10.0-alpha.11)
- 854+ commits since v0.9.21
- Major API redesign and feature flag cleanup completed
Pre-release Checklist
Documentation
- Create upgrade guide
upgrade-v09-v10.md- API migration examples
- Feature flag migration table
- Data compatibility notes
- Update
upgrade.mdindex with v0.9→v0.10 section - Review and finalize
change-log.mdfor v0.10.0 - Update README.md version references
- Verify all doc links are valid (
make doc)
Code Quality
- All CI checks passing on main branch
- Run full test suite (
make test) - Run lint checks (
make lint) - Review and address critical TODOs
- Verify examples compile and run correctly
Breaking Changes Review
Confirm all breaking changes are documented:
API Changes:
-
Raft::as_leader()returnsResult<Leader, ForwardToLeader>(waslocal_leader_id()returningOption) -
RaftLeaderId::node_id()returns&NodeId(wasOption<NodeId>) -
RaftNetworkV2with granularNet*sub-traits -
ExtensionsAPI simplified to singleget()method - Leader change callbacks now async
-
IOFlushedcallback now synchronous with Watch channel - Removed
ResponderBuilder, use genericResponder<T> - Removed
DefaultfromRaftVotetrait bounds -
ErrorSourceuses Formatter-based API (replacedbacktrace_str())
Feature Flags (Removed/Renamed):
-
loosen-follower-log-revert→Config::allow_log_reversion -
adapt-network-v1→ Useopenraft-legacycrate -
single-term-leader→ UseLeaderIdtype config -
singlethreaded→single-threaded
Crate Changes:
- New
openraft-legacycrate for v1 network compatibility -
openraft-rt/openraft-rt-tokioextracted - Deprecated:
TokioRuntime,TokioInstant(use fromopenraft_rt_tokio)
Release Tasks
Version Bump
- Update version in workspace
Cargo.toml(remove-alpha.Nsuffix) - Update version in all crate
Cargo.tomlfiles - Commit:
BumpVer: 0.10.0
Changelog
- Generate final changelog using
scripts/build_change_log.py - Create
change-log/v0.10.0.md - Update main
change-log.md - Commit:
Doc: add change-log 0.10.0
Publishing
- Publish to crates.io in dependency order:
openraft-macrosopenraft-rtopenraft-rt-tokioopenraftopenraft-legacyopenraft-memstore
- Create GitHub release with changelog
- Tag:
v0.10.0
Post-release
- Create
release-0.10branch for maintenance - Update main branch version to
0.11.0-alpha.1
Milestones
| Phase | Target | Status |
|---|---|---|
| Documentation Complete | TBD | Not Started |
| Code Freeze | TBD | Not Started |
| Release Candidate | TBD | Not Started |
| Stable Release | TBD | Not Started |
Known Blockers
- TBD - Add blockers here
Announcement Plan
- Prepare GitHub release notes
- Discord announcement
- Twitter/X post
- Update project website/docs (if applicable)
Open Questions
- Data Migration: Are there any data format changes requiring migration tools?
- Deprecation Timeline: When will v0.9 branch stop receiving bugfixes?
Related Files
- Changelog:
change-log.md - Upgrade guides:
openraft/src/docs/upgrade_guide/ - Feature flags doc:
openraft/src/docs/feature_flags/feature-flags.md - CI config:
.github/workflows/ci.yaml
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels