Documentation for Release Management in the EigenLayer-AVS system.
This document outlines the release management process for the AVA SDK JS repository. It covers the automated versioning system, how changes are tracked, the process of creating releases, and the tools used to manage this lifecycle. For information about the continuous integration pipeline, see CI/CD Pipeline.
The AVA SDK JS repository uses a structured release management process based on the Changesets tool. This system automates version bumping, changelog generation, and GitHub release creation while maintaining a clear history of changes.
Sources:
The AVA SDK JS follows Semantic Versioning (SemVer) principles, with version numbers in the format of MAJOR.MINOR.PATCH:
This versioning strategy is implemented using Changesets, which allows developers to indicate the impact level of their changes.
Sources:
The Changesets tool is configured to manage version tracking and changelog generation. The configuration specifies:
| Setting | Value | Description |
|---|---|---|
| changelog | "@changesets/cli/changelog" | Module used to generate changelog entries |
| commit | true | Automatically commit version changes |
| access | "restricted" | Package access level (private by default) |
| baseBranch | "main" | The branch from which changesets are calculated |
| updateInternalDependencies | "patch" | How to handle updates to internal dependencies |
Sources:
Before changes can be released, they must be documented using changesets. The repository implements an automated workflow to standardize this process.
Sources:
The recording process includes:
.changeset directoryKey steps in the workflow include:
When it's time to create a new release, the process is automated through a GitHub workflow that processes all accumulated changesets.
Sources:
The release creation process includes:
A developer triggers the "Create Release" workflow on the main branch
The workflow runs the Changesets versioning command to:
The changes are committed and pushed to the main branch
If a version increment is detected, a GitHub release is created
Key steps in the workflow include:
The CHANGELOG.md file contains a structured history of all releases. Each version section includes:
Example from the changelog:
## 0.7.1
### Patch Changes
- 10801d8: Updated README.md with release instructions
- ec7427c: Make sure COMMIT_MESSAGE is written into changeset
- 5f9dfc3: hi there
Sources:
The changelog is automatically updated during the release process, using content from the changeset files. This ensures that all documented changes are included in the release notes.
In addition to the automated workflows, developers can perform a manual release if needed. The typical steps for this process are:
npx changeset version locally to update versions and the changelogContributors should follow these best practices to ensure smooth release management:
Common issues with the release process include:
Sources:
The release management system for AVA SDK JS uses modern tooling to automate versioning, changelog generation, and release creation. This ensures consistent releases with comprehensive documentation of changes, which helps both the development team and downstream consumers of the SDK.