On this page, you will find information about MatterLinux release cycle and 
version numbering.

## Release Cycle
The release cycle is pretty simple, if there are enough package updates and changes,
then you get a new release. So its expected to have a release or two once a month.

### Package Updates
MatterLinux follows a slow rolling release cycle for all the packages. Packages update every 
once in a while, generally to fix security issues. Packages get tested on a development repo, 
[next.matterlinux.xyz](https://next.matterlinux.xyz) before they get pushed into the main repos.
This way we can maintain a stable experience.

### ISOs and Release Archives
- ISO: A bootable disk image
- Release Archive: An archive used during the installation of a release

With new release, a new ISO and a release archive will be published. ISO and release 
archive file for a release may update before the next release to keep the 
packages in these archive files and the ISOs up-to-date.

### Learn the version you are using
You can learn the MatterLinux release version you are using by printing 
out the `/etc/os-release` file:
```
# cat /etc/os-release
```

## Version Numbering
MatterLinux and all it's projects are version numbered after the year.
For example MatterLinux release for the year 2024 is versioned "MatterLinux 24".

Minor numbers may be added for other releases. For example the 2nd release of the 
MatterLinux 24 ISO would be named "MatterLinux 24.01".

Similarly 15th release of the MatterLinux package manager for the year 2024 
is versioned "24.14".

## Building Releases
You can build an up-to-date ISO and a release archive using MatterLinux [tools](https://git.matterlinux.xyz/matter/tools).
These tools can be installed with the `tools` package.

You should be on a MatterLinux system for a proper build!

### Building the Release Archive
To build a release archive, you can use the `matter-base` tool. This tool will create a temporary directory,
install all the required base packages into it and then it will archive it all up for the final archive.

All you need to do is to specify a name for the archive, for example:
```
# matter-base matterlinux_example-build
```

### Building the ISOs 
Official ISOs are built using the `matter-iso` tool. By providing a release archive and a configuration 
directory to this tool, you can create an ISO image.

> **Note**
>
> ISO image is created using `grub-mkrescue`, so you should install `libisoburn` before proceeding.

As the configuration directory, you can clone the [official ISO configuration](https://git.matterlinux.xyz/Matter/iso).
Or you can use your own custom configuration.

To build the ISO with the release archive that we created on the previous example, using the configuration directory 
located at `./iso`:
```
# matter-iso matterlinux_example-build.tar.gz iso
```
The final ISO should be available at `./iso/dist/<name_version>.iso` after the build.
