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