Prevent versions with future dates to be added to release data (#531)

When this happens, it breaks the build of the site.

Closes https://github.com/endoflife-date/endoflife.date/issues/8936.
This commit is contained in:
Marc Wrobel
2025-11-15 00:18:49 +01:00
parent 2d14f140e5
commit 75c08e7bd1
2 changed files with 9 additions and 1 deletions

View File

@@ -112,6 +112,10 @@ def today_at_midnight() -> datetime.datetime:
"""Create a datetime object with today's date, at midnight."""
return datetime.datetime.now(tz=datetime.timezone.utc).replace(hour=0, minute=0, second=0, microsecond=0)
def today_at_end_of_day() -> datetime.datetime:
"""Create a datetime object with today's date, at the end of the day."""
return datetime.datetime.now(tz=datetime.timezone.utc).replace(hour=23, minute=59, second=59, microsecond=999999)
def today() -> datetime.date:
"""Create a date object with today's date."""
return datetime.datetime.now(tz=datetime.timezone.utc).date()

View File

@@ -7,7 +7,7 @@ from pathlib import Path
from types import TracebackType
from typing import Optional, Type
from . import endoflife
from . import dates, endoflife
SRC_DIR = Path('src')
DATA_DIR = Path('releases')
@@ -182,6 +182,10 @@ class ProductData:
def declare_version(self, version_name: str, versions_date: datetime) -> None:
self.updated = True
if versions_date > dates.today_at_end_of_day():
logging.warning(f"skipping declaration of version {version_name} with future date {versions_date} for {self}")
return
if version_name in self.versions and self.versions[version_name].date() != versions_date:
logging.info(f"overwriting {version_name} ({self.get_version(version_name).date()} -> {versions_date}) for {self}")
self.versions[version_name].replace_date(versions_date)