Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .coverage
Binary file not shown.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ To find our more, visit our
## Licensing

Copyright 2025 SAP SE or an SAP affiliate company and GardenLinux contributors.
Please see our [LICENSE](LICENSE.md) for copyright and license information.
See our [LICENSE](LICENSE.md) for copyright and license information.
Detailed information including third-party components and their
licensing/copyright information is available
[via the REUSE tool](https://reuse.software).
Expand Down
40 changes: 20 additions & 20 deletions docs/overview/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ options:
-V show program's version number and exit
```

### Get latest Garden Linux Version
### Get latest Garden Linux version

#### Default shell output

Expand Down Expand Up @@ -421,7 +421,7 @@ minor-1592.6 1592.6 minor cb05e11f 2025-02-19 N/A

**Note**: For versions ≥ 2017.0.0, you can also filter by patch version: `jq -r '.releases[] | "\(.version.major).\(.version.minor).\(.version.patch)"'`

### Get all active and supported Garden Linux Versions
### Get all active and supported Garden Linux versions

```
❯ glrd --active
Expand Down Expand Up @@ -674,22 +674,22 @@ The `--update` action allows you to modify lifecycle fields and commit hashes on
- Date/time values must be in ISO format: `YYYY-MM-DDTHH:MM:SS`
- Commit hashes must be exactly 40 characters (full SHA-1 hash)

## Release Schema
## Release schema

The Garden Linux Release Database (GLRD) uses structured JSON schemas to represent different types of releases: **major**, **minor**, **nightly**, and **development** releases. Each release type has specific fields that capture essential information about the release.

### Versioning Scheme
### Versioning scheme

Gardenlinux [introduced semantic Versioning](https://github.com/gardenlinux/gardenlinux/issues/3069) in [TODO!!! name commit !!!]. GLRD supports both versioning schemes based on the major version number:

- **v1: Versions < 2017.0.0**: Use the `major.minor` format (e.g., `27.0`, `1592.6`)
- **v2: Versions ≥ 2017.0.0**: Use the `major.minor.patch` format (e.g., `2017.0.0`, `2222.1.5`)

### Major Releases
### Major releases

[Major releases](https://github.com/gardenlinux/gardenlinux/blob/main/docs/00_introduction/release.md#major-releases) are major releases that are supported over an extended period of time.

#### Schema Fields
#### Schema fields

- **`name`**: A string representing the release name (e.g., `major-1312`).
- **`type`**: `major`.
Expand All @@ -706,11 +706,11 @@ Gardenlinux [introduced semantic Versioning](https://github.com/gardenlinux/gard
- **`isodate`**: End-of-life date in ISO format.
- **`timestamp`**: UNIX timestamp for the end-of-life date.

### Minor Releases
### Minor releases

[Minor Releases](https://github.com/gardenlinux/gardenlinux/blob/main/docs/00_introduction/release.md#minores) are updates delivered during the standard and extended mainteance periods of [Major releases](https://github.com/gardenlinux/gardenlinux/blob/main/docs/00_introduction/release.md#major-releases).

#### Schema Fields
#### Schema fields

- **`name`**: A string representing the release name (e.g., `minor-1312.1` for v1 versions, `minor-2017.0.0` for v2 versions).
- **`type`**: `minor`.
Expand All @@ -734,11 +734,11 @@ Gardenlinux [introduced semantic Versioning](https://github.com/gardenlinux/gard
- **`attributes`**: An object that does contain additional metadata about the release.
- **`source_repo`**: A boolean indicating whether the release has debian source repoitories (default: true).

### Nightly Releases
### Nightly releases

[Nightly releases](https://github.com/gardenlinux/gardenlinux/blob/main/docs/00_introduction/release.md#nightly-releases) are automated builds that are generated every night, reflecting the latest state of the codebase.

#### Schema Fields
#### Schema fields

- **`name`**: A string representing the release name (e.g., `nightly-1312.0` for v1 versions, `nightly-2017.0.0` for v2 versions).
- **`type`**: `nightly`.
Expand All @@ -757,11 +757,11 @@ Gardenlinux [introduced semantic Versioning](https://github.com/gardenlinux/gard
- **`attributes`**: An object that does contain additional metadata about the release.
- **`source_repo`**: A boolean indicating whether the release has debian source repoitories (default: true).

### Development Releases
### Development releases

[Development releases](TODO: define and link) are used for testing and development purposes, representing the latest changes that may not yet be included in a major or minor release. These can be manually created by developers.

#### Schema Fields
#### Schema fields

- **`name`**: A string representing the release name (e.g., `dev-1312.0` for v1 versions, `dev-2017.0.0` for v2 versions).
- **`type`**: `dev`.
Expand All @@ -780,11 +780,11 @@ Gardenlinux [introduced semantic Versioning](https://github.com/gardenlinux/gard
- **`attributes`**: An object that does contain additional metadata about the release.
- **`source_repo`**: A boolean indicating whether the release has debian source repoitories (default: true).

### Next Release
### Next release

[Next release](https://github.com/gardenlinux/gardenlinux/blob/main/docs/00_introduction/release.md#next-release) is the projected next major releases. There can only be a single `next` release.

#### Schema Fields
#### Schema fields

- **`name`**: A string representing the release name (`next`).
- **`type`**: `next`.
Expand All @@ -801,11 +801,11 @@ Gardenlinux [introduced semantic Versioning](https://github.com/gardenlinux/gard
- **`isodate`**: End-of-life date in ISO format.
- **`timestamp`**: UNIX timestamp for the end-of-life date.

### Lifecycle Dependencies
### Lifecycle dependencies

The lifecycle fields in the release schemas help track the release dates, extended maintenance dates and end-of-life (EOL) dates for each release.

#### Default Major dates
#### Default major dates

The defaults for `extended` and `eol` dates are based on the [Garden Linux Release Plan Overview](https://github.com/gardenlinux/gardenlinux/blob/main/docs/00_introduction/release.md) and defined to be:

Expand All @@ -821,7 +821,7 @@ For example:
- `extended`: 2024-09-13
- `eol`: 2025-01-13

#### Major and Minor releases
#### Major and minor releases

There is a dependency between the `lifecycle` fields of **major** and **minor** releases:

Expand Down Expand Up @@ -850,15 +850,15 @@ For example:

In this example, the `eol` of `minor-1312.1` is set to the `released` date of `minor-1312.2`, and the `eol` of the latest minor release (`minor-1312.7`) is set to the `eol` of the major release (`minor-1312`).

Please note that the `extended` lifecycle field is not taken into account for minor releases. This is simply an administrative date that has no technical implications.
Note that the `extended` lifecycle field is not taken into account for minor releases. This is simply an administrative date that has no technical implications.

#### Nightly an Dev dates
#### Nightly and dev dates

Due to the nature of the `nightly` and `dev` releases, those do not have `extended` and `eol` dates.

## Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
Contributions are welcome! Open an issue or submit a pull request for any improvements or bug fixes.

## License

Expand Down
Loading