EVerest releasing happens in the following way:
- source code releases once a month (around the TSC meeting every 4th Thursday in a month) and
- stability releases every three months (March, June, September and December) at the same point in time.
A feature freeze phase of two weeks will precede the stability releases. In that timeframe, testing with focus on stability will be conducted. No new features will be merged into the release candidate branch during that time.
For the everest-core repository, the releases are tagged using the following name pattern: YEAR.MONTH.INDEX, e.g. 2022.12.1
For libraries, semantic versioning is used.
Find details about the releases on the corresponding release pages of the repos. E.g. for everest-core: Release page of everest-core repository
First of all, there will be source code releases for EVerest. Binary releases for different hardware platforms will follow soon.
If you follow the Quick Start Guide of EVerest, you will setup EVerest with the help of the EVerest Dependency Manager (edm).
Starting from edm version 0.5, edm also helps you with getting a dedicated release of EVerest. First of all, see a list of available releases:
edm init --list
That will result in an output like
[edm]: Available everest-core releases: 2023.5.0, 2023.3.0, 2023.2.1, 2023.2.0, 2023.1.0, 2022.12.1, 2022.12.0, 2022-11.0
with the most current releases shown first.
To checkout your favourite release, like in the following case 2023.5.0
:
edm init 2023.5.0
Versions of edm prior to 0.5 will need a manual adjustment. As seen in the Quick Start Guide of EVerest, edm receives a config file as parameter that tells edm which repositories shall be checked-out for your EVerest workspace.
Open that yaml file and look for the git_tag values. Change its values to the release name and run edm with that changed yaml as parameter.
This is not the recommended way, so whereever possible, update edm to the current version and enjoy the more convenient way.
Make sure that you are clear with the EVerest core developer team that all new release features have been finished, tested and documented in the changelog.
Development in several EVerest repositories other than everest-core will still go on. Make sure that stable versions of repositories have been tagged and configured in the everest-core repository in file dependencies.yaml. This way, those versions will be part of the new EVerest release.
If unsure about all that, discussion about such topics takes place in the weekly tech meeting (announced via the EVerest Mailinglist (especially see the calendar there).
General information about release management with GitHub can be found directly at GitHub on the page about Managing Releases in a repository.
The EVerest-specific process is as follows:
To create a new official EVerest release, you will have to create a new release of the main EVerest repository in GitHub - which is everest-core. On the repo page, click on Releases in the right side-column. The button Draft a new release leads you to the release creation form.
You can create a new Git tag right on that page. That is the tag on which the release will be based. Remember the correct versioning name pattern: YEAR.MONTH.INDEX, e.g. 2022.12.1
When using edm to get a new release version, edm knows from the dependencies.yaml which tags of all repositories to checkout for serving a stable release workspace.