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:
@@ -112,6 +112,10 @@ def today_at_midnight() -> datetime.datetime:
|
|||||||
"""Create a datetime object with today's date, at midnight."""
|
"""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)
|
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:
|
def today() -> datetime.date:
|
||||||
"""Create a date object with today's date."""
|
"""Create a date object with today's date."""
|
||||||
return datetime.datetime.now(tz=datetime.timezone.utc).date()
|
return datetime.datetime.now(tz=datetime.timezone.utc).date()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from pathlib import Path
|
|||||||
from types import TracebackType
|
from types import TracebackType
|
||||||
from typing import Optional, Type
|
from typing import Optional, Type
|
||||||
|
|
||||||
from . import endoflife
|
from . import dates, endoflife
|
||||||
|
|
||||||
SRC_DIR = Path('src')
|
SRC_DIR = Path('src')
|
||||||
DATA_DIR = Path('releases')
|
DATA_DIR = Path('releases')
|
||||||
@@ -182,6 +182,10 @@ class ProductData:
|
|||||||
|
|
||||||
def declare_version(self, version_name: str, versions_date: datetime) -> None:
|
def declare_version(self, version_name: str, versions_date: datetime) -> None:
|
||||||
self.updated = True
|
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:
|
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}")
|
logging.info(f"overwriting {version_name} ({self.get_version(version_name).date()} -> {versions_date}) for {self}")
|
||||||
self.versions[version_name].replace_date(versions_date)
|
self.versions[version_name].replace_date(versions_date)
|
||||||
|
|||||||
Reference in New Issue
Block a user