Releases and Versioning of EVerest¶
This document describes EVerest’s release strategy, versioning scheme, and stability guarantees for the project and its components.
Release Cadence¶
EVerest follows a time-based release strategy with stable releases every 6 months. Each stable release receives community maintenance and follows explicit API stability guarantees. Each stable release undergoes a coordinated testing period before being published to ensure quality and stability.
Note
Monthly snapshot releases have been discontinued in favor of this stable release approach since 2026.
Versioning¶
Versioning Format¶
EVerest uses calendar-based versioning (CalVer) in the format:
yyyy.mm.x
Where:
yyyy- Four-digit year of the releasemm- Two-digit month of the release (01-12)x- Incremental patch number within the stable release line, starting at 0
Releases are made available through Github Releases and tags in the following repositories:
Stable Releases¶
Stable releases are published every 6 months and represent thoroughly tested versions of EVerest. These releases:
Follow a coordinated testing period
Receive community maintenance
Are tagged in Git with the format
yyyy.mm.0Create a stable release branch for ongoing maintenance
Patch Releases¶
Patch releases address bugs, security issues, and other critical fixes within a stable release line. These releases:
Increment only the patch number (x)
Never introduce breaking changes to the public API of EVerest
Are backported from the main development branch
Are tagged in Git with the incremented patch number
There is no fixed schedule for patch releases. They are published as needed to address issues in the stable release.
Development Versions¶
The main branch represents ongoing development work for the next stable release. Development versions may introduce breaking changes
and new features that will be included in the next yyyy.mm.0 release.
Public API Definition¶
EVerest’s public API includes all interfaces that external users and integrators rely on. These APIs are subject to the stability guarantees described in this document.
The public API consists of:
Energy Management JSON RPC API (upcoming)
- Configuration and Storage contracts. As of today, this includes:
EVerest module configuration files (YAML or SQLite)
OCPP configuration (JSON or SQLite)
The individual public API components may maintain their own version numbers independent of the EVerest release version.
Please refer to breaking changes for detailed definitions of breaking changes within the public API.
Note
Internal EVerest interfaces and types are explicitly excluded from the public API and may change without notice.
Stability Guarantees¶
Within a stable release branch (e.g., all 2026.01.x versions), no breaking changes are backported to the
public API. Patch releases within a stable line maintain full backward compatibility.
This guarantee means:
All EVerest and OCPP Configuration as well as other file and path dependencies from
2026.01.0work with2026.01.5External AsyncAPI clients compatible with
2026.01.0work with all2026.01.xreleases
EVerest makes a best-effort attempt to minimize breaking changes across major releases (e.g., from 2026.01.x to 2026.07.0). However, breaking
changes may be necessary for:
Significant architectural enhancements
Protocol compliance updates
Deprecation of obsolete features
If upgrading across major releases, integrators should review the release notes and potential migration documentation.
Maintenance Policy¶
Infrastructure for Maintenance¶
The EVerest project provides infrastructure for stable release maintenance:
Each stable release creates a dedicated branch (
stable/yyyy.mm)Stable branches remain open for community contributions
Critical security patches and bug fixes can be backported by project maintainers or community contributions
Important: The existence of a stable branch does not guarantee ongoing maintenance activity. Actual maintenance depends on community involvement and the availability of contributors and maintainers.
Active Maintenance Focus¶
Project maintainers focus their efforts on:
The current stable release branch - Active bug fixes and updates
The main development branch - New features and next release
Security patches - Backported to the current stable release on a best-effort basis
Older Stable Branches¶
Older stable release branches:
Remain available for community-driven maintenance
May receive security patches at maintainer’s discretion
Are supported by the community on a best-effort basis
Have no guaranteed response times or fix schedules
If your deployment relies on an older stable branch, we encourage you to contribute maintenance work back to the project.