Releases will be created in this repository for all official builds of aurae and associated projects.
Stable versions will follow a vX.Y.Z format. Versions will be consistent across everything being released. SemVer versioning is used.
X: A major version - This represents a significant change in the project. It can include breaking changes and new features.Y: Minor version - This represents new features and improvements to the project. It can also include non-breaking changes.Z: Patch version - This represents bug fixes and other small changes to the project.
Code that has not reached stability will be versioned with an additional segment to indicate it is not release. Rust will sort lexicographically for development releases.
-
aa.X- Experimental releases. These are intended for development purposes. There is no compatibility guarantee with these releases. -
alpha.X- Alpha releases will be built from theHEADof each project. They are intended for testing and development purposes. Analpha.1will indicate it is the first alpha release of this new version. As additional are built the digit afteralphawill increment. -
beta.X- Beta releases will be built from thecommitsreferenced in the release.yaml file. They can be used as a staging ground for release and are intended for testing and feedback from the community.
| Release | Schedule |
|---|---|
| experimental | as needed |
| alpha | as needed |
| beta | as needed |
- A PR to the
release(this one) repository is prepped with any appropriate changes to the release jsonrelease.jsonif needed.- Add any projects to be included in the upcoming release to this document.
- Create a new pre-release from the main branch of this project. Please copy and paste the contents of
RELEASE_TEMPLATE.mdinto this release, and use that as your starting point.- The new version is chosen at this point.
- When this pre-release is created in the
releaseproject, it will kick off a build in each project listed in therelease.json, at the branch or commit hash defined in that document.- Each project we want to build will catch this event (using
aeas an example here) . Aewill create a new github pre-release in its own project. It will share the tag sent from thereleaseproject. TheRELEASE_TEMPLATE.mdwill be used to generate a template in theaerelease.- The
aepre-release will trigger building the artifacts required for the release inae. - The
aeproject will load the version from the tagreleaseproject tag. It will then inspect therelease.jsonfile to build the correct commit references.
- Each project we want to build will catch this event (using
- Once all of the projects have completed their artifact builds, and the maintainers are happy with the builds, the release in this repository is "released".
- Maintainers can change notes on any of the pre-releases
- This will set all of the subprojects in the
release.jsonfile as "released"
graph TD
ReleaseCoordinater-PreRelease([Create the main pre-release in this project])-->Aurae-PreRelease;
ReleaseCoordinater-PreRelease-->Ae-PreRelease;
Aurae-PreRelease[Aurae pre-release made]-->Auraed-Build;
Ae-PreRelease[Ae pre-release made]-->Ae-Build;
Ae-Build[Ae build triggered]-->ReleaseCoordinater-Notify
Auraed-Build[Aure builds triggered]-->ReleaseCoordinater-Notify;
ReleaseCoordinater-Notify[Update main pre-release changelog]-->ReleaseCoordinater-Release;
ReleaseCoordinater-Release(Maintainer releases in this project)-->ReleaseCoordinate-Live[Main release made live]
ReleaseCoordinate-Live-->Aurae-Live[Aurae release made live]
ReleaseCoordinate-Live-->Ae-Live[Ae release made live]
If the sub project (aurae for example) artifact GHA run fails, it will leave a pre-release that has a tag pointed to the broken version. If a new git push to aurae is required to fix the GHA run, you will need to:
- Get
auraeto a working state - Delete the tag associated with the wrong version in the
auraeproject - Delete the pre-release associated with the wrong version in the
auraeproject. - Re-run the
030-ubuntu-latest-make-create-releasesjob in thereleaseproject to re-setup any missing sub-project pre-releases. This will use the correct git sha for the tag and release then.
This document describes the release. It includes each binary being released. The name here would map to the repository under the aurae-runtime Github organization.
{
"aurae": "main",
"auraescript": "main",
"aer": "main",
"ae": "main"
}