From 99eec6d70e9221c14ff2ba4a82a4519d4a671812 Mon Sep 17 00:00:00 2001 From: Marc Wrobel Date: Wed, 25 Oct 2023 21:27:41 +0200 Subject: [PATCH] Add a validation rule to make sure releases are properly ordered According to the contributing guide (https://github.com/endoflife-date/endoflife.date/blob/master/CONTRIBUTING.md) releases must be ordered from the newest (on top of the list) to the lowest. This updates product-data-validator to enforce that rule. Close #3960. --- _plugins/product-data-validator.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/_plugins/product-data-validator.rb b/_plugins/product-data-validator.rb index e5f54908db9..6e35efaf5e3 100644 --- a/_plugins/product-data-validator.rb +++ b/_plugins/product-data-validator.rb @@ -137,6 +137,7 @@ def self.validate(product) error_if.is_not_a_number('extendedSupportWarnThreshold') error_if.is_not_an_array('identifiers') error_if.is_not_an_array('releases') + error_if.not_ordered_by_release_cycles('releases') if product.data.has_key?('auto') error_if = Validator.new(product, product.data['auto']) @@ -295,6 +296,24 @@ def is_not_before(property1, property2) end end + def not_ordered_by_release_cycles(property) + releases = @data[property] + + previous_release_cycle = nil + previous_release_date = nil + releases.each do |release| + release_cycle = release['releaseCycle'] + release_date = release['releaseDate'] + + if previous_release_date and previous_release_date < release_date + declare_error(property, release_cycle, "expecting release to be before #{previous_release_cycle}") + end + + previous_release_cycle = release_cycle + previous_release_date = release_date + end + end + def is_url_invalid(property) # strip is necessary because changelogTemplate is sometime reformatted on two lines by latest.py url = @data[property].strip