Skip to content

Commit

Permalink
Add a validation rule to make sure releases are properly ordered
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
marcwrobel committed Oct 28, 2023
1 parent f1a13f0 commit c286eda
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions _plugins/product-data-validator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ def self.validate(product)
error_if.is_not_an_array('auto')
error_if.is_not_an_array('identifiers')
error_if.is_not_an_array('releases')
error_if.not_ordered_by_release_cycles('releases')

for release in product.data['releases']
error_if = Validator.new(product, release)
Expand Down Expand Up @@ -244,6 +245,24 @@ def is_not_a_boolean_nor_a_string(property)
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
Expand Down

0 comments on commit c286eda

Please sign in to comment.