Skip to content

Commit fdba74c

Browse files
committed
major 2017 ist first release with v2 schema
1 parent 8770c00 commit fdba74c

File tree

8 files changed

+67
-67
lines changed

8 files changed

+67
-67
lines changed

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ options:
172172
--archived Show only archived releases.
173173
--latest Show the latest active major.minor release.
174174
--type TYPE Filter by release types (comma-separated list, default: major,minor). E.g., --type major,minor,nightly,dev,next
175-
--version VERSION Filter by a specific version (major, major.minor, or major.minor.patch). E.g., --version 1312, --version 1312.0, or --version 2000.0.0
175+
--version VERSION Filter by a specific version (major, major.minor, or major.minor.patch). E.g., --version 1312, --version 1312.0, or --version 2017.0.0
176176
--fields FIELDS Comma-separated list of fields to output. Possible fields: Name,Version,Type,GitCommit,GitCommitShort,ReleaseDate,ReleaseTime,ExtendedMaintenance,EndOfMaintenance,Flavors,OCI,AttributesSourceRepo (default: Name,Version,Type,GitCommitShort,ReleaseDate,ExtendedMaintenance,EndOfMaintenance)
177177
--no-header Omit the header in shell output.
178178
-V show program's version number and exit
@@ -211,7 +211,7 @@ minor-1592.6 1592.6 minor cb05e11f 2025-02-19 N/A
211211
"version": {
212212
"major": 1592,
213213
"minor": 6
214-
// Note: patch field is only present for versions ≥ 2000.0.0
214+
// Note: patch field is only present for versions ≥ 2017.0.0
215215
},
216216
"lifecycle": {
217217
"released": {
@@ -410,7 +410,7 @@ minor-1592.6 1592.6 minor cb05e11f 2025-02-19 N/A
410410
1592.6
411411
```
412412

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

415415
### Get all active and supported Garden Linux Versions
416416

@@ -483,7 +483,7 @@ options:
483483
--create-initial-releases CREATE_INITIAL_RELEASES
484484
Comma-separated list of initial releases to retrieve and generate: 'major,minor,nightly'.
485485
--create CREATE Create a release for this type using the current timestamp and git information (choose one of: major,minor,nightly,dev,next)'.
486-
--version VERSION Manually specify the version (format: major.minor for versions < 2000.0.0, major.minor.patch for versions ≥ 2000.0.0).
486+
--version VERSION Manually specify the version (format: major.minor for versions < 2017.0.0, major.minor.patch for versions ≥ 2017.0.0).
487487
--commit COMMIT Manually specify the git commit hash (40 characters).
488488
--lifecycle-released-isodatetime LIFECYCLE_RELEASED_ISODATETIME
489489
Manually specify the release date and time in ISO format (YYYY-MM-DDTHH:MM:SS).
@@ -639,8 +639,8 @@ The Garden Linux Release Database (GLRD) uses structured JSON schemas to represe
639639

640640
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:
641641

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

645645
### Major Releases
646646

@@ -669,12 +669,12 @@ Gardenlinux [introduced semantic Versioning](https://github.com/gardenlinux/gard
669669

670670
#### Schema Fields
671671

672-
- **`name`**: A string representing the release name (e.g., `minor-1312.1` for v1 versions, `minor-2000.0.0` for v2 versions).
672+
- **`name`**: A string representing the release name (e.g., `minor-1312.1` for v1 versions, `minor-2017.0.0` for v2 versions).
673673
- **`type`**: `minor`.
674674
- **`version`**:
675675
- **`major`**: An integer indicating the major version number (e.g. `1312`).
676676
- **`minor`**: An integer indicating the minor version number (e.g. `1`).
677-
- **`patch`**: An integer indicating the patch version number (only present for versions ≥ 2000.0.0, e.g. `0`).
677+
- **`patch`**: An integer indicating the patch version number (only present for versions ≥ 2017.0.0, e.g. `0`).
678678
- **`lifecycle`**:
679679
- **`released`**:
680680
- **`isodate`**: The release date in ISO format.
@@ -697,12 +697,12 @@ Gardenlinux [introduced semantic Versioning](https://github.com/gardenlinux/gard
697697

698698
#### Schema Fields
699699

700-
- **`name`**: A string representing the release name (e.g., `nightly-1312.0` for v1 versions, `nightly-2000.0.0` for v2 versions).
700+
- **`name`**: A string representing the release name (e.g., `nightly-1312.0` for v1 versions, `nightly-2017.0.0` for v2 versions).
701701
- **`type`**: `nightly`.
702702
- **`version`**:
703703
- **`major`**: An integer indicating the major version number.
704704
- **`minor`**: An integer indicating the minor version number.
705-
- **`patch`**: An integer indicating the patch version number (only present for versions ≥ 2000.0.0, e.g. `0`).
705+
- **`patch`**: An integer indicating the patch version number (only present for versions ≥ 2017.0.0, e.g. `0`).
706706
- **`lifecycle`**:
707707
- **`released`**:
708708
- **`isodate`**: The release date in ISO format.
@@ -720,12 +720,12 @@ Gardenlinux [introduced semantic Versioning](https://github.com/gardenlinux/gard
720720

721721
#### Schema Fields
722722

723-
- **`name`**: A string representing the release name (e.g., `dev-1312.0` for v1 versions, `dev-2000.0.0` for v2 versions).
723+
- **`name`**: A string representing the release name (e.g., `dev-1312.0` for v1 versions, `dev-2017.0.0` for v2 versions).
724724
- **`type`**: `dev`.
725725
- **`version`**:
726726
- **`major`**: An integer indicating the major version number.
727727
- **`minor`**: An integer indicating the minor version number.
728-
- **`patch`**: An integer indicating the patch version number (only present for versions ≥ 2000.0.0, e.g. `0`).
728+
- **`patch`**: An integer indicating the patch version number (only present for versions ≥ 2017.0.0, e.g. `0`).
729729
- **`lifecycle`**:
730730
- **`released`**:
731731
- **`isodate`**: The release date in ISO format.

glrd/manage.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def validate_input_version_format(version, release_type):
5959
if len(version_parts) == 2:
6060
major = int(version_parts[0])
6161
# Check if this version requires v2 schema (with patch field)
62-
if major >= 2000:
62+
if major >= 2017:
6363
return (
6464
False,
6565
f"Version {'.'.join(version_parts)} requires v2 schema "
@@ -69,7 +69,7 @@ def validate_input_version_format(version, release_type):
6969
elif len(version_parts) == 3:
7070
major = int(version_parts[0])
7171
# Check if this version should use v1 schema (without patch field)
72-
if major < 2000:
72+
if major < 2017:
7373
return (
7474
False,
7575
f"Version {'.'.join(version_parts)} uses v1 schema but "
@@ -97,7 +97,7 @@ def get_schema_for_release(release):
9797
version = release.get("version", {})
9898

9999
# For major and next releases, always use v2 schema
100-
# (they don't have major.minor.patch version numbers >= 2000)
100+
# (they don't have major.minor.patch version numbers >= 2017)
101101
if release_type in ["major", "next"]:
102102
return SCHEMA_V2[release_type]
103103

@@ -108,8 +108,8 @@ def get_schema_for_release(release):
108108
# minor = version.get("minor", 0) # unused
109109
# patch = version.get("patch", 0) # unused
110110

111-
# Use v2 schema (with patch field) for versions >= 2000.0.0
112-
if major >= 2000:
111+
# Use v2 schema (with patch field) for versions >= 2017.0.0
112+
if major >= 2017:
113113
return SCHEMA_V2[release_type]
114114
else:
115115
return SCHEMA_V1[release_type]
@@ -631,8 +631,8 @@ def create_single_release(release_type, args, existing_releases):
631631
except ValueError:
632632
logging.error(
633633
"Error: Invalid --version format. Use format: "
634-
"major.minor (for versions < 2000.0.0) or "
635-
"major.minor.patch (for versions >= 2000.0.0)"
634+
"major.minor (for versions < 2017.0.0) or "
635+
"major.minor.patch (for versions >= 2017.0.0)"
636636
)
637637
sys.exit(ERROR_CODES["validation_error"])
638638
else:
@@ -686,7 +686,7 @@ def create_single_release(release_type, args, existing_releases):
686686

687687
if release_type in ["dev", "nightly"]:
688688
# Create name and version based on schema version
689-
if major >= 2000:
689+
if major >= 2017:
690690
# v2 schema: include patch version
691691
release["name"] = f"{release_type}-{major}.{minor}.{patch}"
692692
release["version"]["minor"] = minor
@@ -721,7 +721,7 @@ def create_single_release(release_type, args, existing_releases):
721721
release["lifecycle"]["eol"]["timestamp"] = lifecycle_eol_timestamp
722722
elif release_type == "minor":
723723
# Create name and version based on schema version
724-
if major >= 2000:
724+
if major >= 2017:
725725
# v2 schema: include patch version
726726
release["name"] = f"{release_type}-{major}.{minor}.{patch}"
727727
release["version"]["minor"] = minor
@@ -1621,7 +1621,7 @@ def parse_arguments():
16211621
"--version",
16221622
type=str,
16231623
help="Manually specify the version (format: major.minor for "
1624-
"versions < 2000.0.0, or major.minor.patch for versions >= 2000.0.0).",
1624+
"versions < 2017.0.0, or major.minor.patch for versions >= 2017.0.0).",
16251625
)
16261626
parser.add_argument(
16271627
"--commit",

glrd/query.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ def get_version_string(version, release_type=None):
6565
minor = version.get("minor", 0)
6666
patch = version.get("patch", 0)
6767

68-
# Use v2 schema format (with patch) for versions >= 2000.0.0
69-
if major >= 2000:
68+
# Use v2 schema format (with patch) for versions >= 2017.0.0
69+
if major >= 2017:
7070
return f"{major}.{minor}.{patch}"
7171
else:
72-
# Use v1 schema format (without patch) for versions < 2000.0.0
72+
# Use v1 schema format (without patch) for versions < 2017.0.0
7373
return f"{major}.{minor}"
7474

7575

@@ -154,11 +154,11 @@ def get_version_key(release):
154154
minor = version.get("minor", 0)
155155
patch = version.get("patch", 0)
156156

157-
# For versions >= 2000.0.0, include patch in comparison
158-
if major >= 2000:
157+
# For versions >= 2017.0.0, include patch in comparison
158+
if major >= 2017:
159159
return (major, minor, patch)
160160
else:
161-
# For versions < 2000.0.0, exclude patch from comparison
161+
# For versions < 2017.0.0, exclude patch from comparison
162162
return (major, minor, 0)
163163

164164
return max(releases, key=get_version_key, default=None)
@@ -390,11 +390,11 @@ def sort_key(r):
390390
minor = parse_version_part(version.get("minor", -1))
391391
patch = parse_version_part(version.get("patch", -1))
392392

393-
# For versions >= 2000.0.0, include patch in sorting
394-
if isinstance(major, int) and major >= 2000:
393+
# For versions >= 2017.0.0, include patch in sorting
394+
if isinstance(major, int) and major >= 2017:
395395
return (major, minor, patch)
396396
else:
397-
# For versions < 2000.0.0 or non-integer majors (like 'next'),
397+
# For versions < 2017.0.0 or non-integer majors (like 'next'),
398398
# exclude patch from sorting
399399
return (major, minor, 0)
400400

glrd/schema_v1.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"""
2-
Schema v1 for Garden Linux releases with versions < 2000.0.0.
2+
Schema v1 for Garden Linux releases with versions < 2017.0.0.
33
This schema version does not require the patch field in version objects.
44
"""
55

glrd/schema_v2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"""
2-
Schema v2 for Garden Linux releases with versions >= 2000.0.0.
2+
Schema v2 for Garden Linux releases with versions >= 2017.0.0.
33
This schema version requires the patch field in version objects.
44
"""
55

glrd/update.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,8 @@ def fix_patch_version_fields(releases):
233233
minor = version.get("minor")
234234
patch = version.get("patch")
235235

236-
# Only add patch field for versions >= 2000.0.0 (v2 schema)
237-
if major is not None and major >= 2000:
236+
# Only add patch field for versions >= 2017.0.0 (v2 schema)
237+
if major is not None and major >= 2017:
238238
# If patch is missing, set it to 0
239239
if patch is None:
240240
version["patch"] = 0
@@ -250,7 +250,7 @@ def fix_patch_version_fields(releases):
250250
fixed_count += 1
251251
logging.debug(f"Fixed name: {current_name} -> {expected_name}")
252252
else:
253-
# For versions < 2000.0.0 (v1 schema), ensure patch field is NOT present
253+
# For versions < 2017.0.0 (v1 schema), ensure patch field is NOT present
254254
if "patch" in version:
255255
del version["patch"]
256256
fixed_count += 1

0 commit comments

Comments
 (0)