Latest Releases#
Keep up with the latest updates from components of the WETO Stack here! This page is automatically updated to list releases from the past 30 days.
Show code cell source
import os
from pathlib import Path
from datetime import datetime, timezone, timedelta
from ghapi.all import GhApi
import yaml
from IPython.display import Markdown, display
github_token = os.getenv('GH_TOKEN')
software_attr_dir = Path("..", "..", "software_attributes")
model_list_inputs = yaml.safe_load( open(software_attr_dir / "database_list.yaml", "r") )
models = model_list_inputs["active"] + model_list_inputs["partial"]
model_attributes_map = {
model: yaml.safe_load( open( software_attr_dir / "database" / f"{model}.yaml", "r") )
for model in models
}
repos = [(atts["github_account"], atts["github_repo"]) for model, atts in model_attributes_map.items()]
recent_releases = []
thirty_days_ago = datetime.today() - timedelta(days=30)
for repo in repos:
api = GhApi(owner=repo[0], repo=repo[1], token=github_token)
releases = api.repos.list_releases()
if len(releases) < 1:
continue
last_release_date = datetime.fromisoformat(releases[0]["published_at"]).replace(tzinfo=None)
if last_release_date > thirty_days_ago:
recent_releases.append((repo[0], repo[1], last_release_date))
recent_releases.sort(key=lambda x: x[2], reverse=True)
release_list_md = ""
for account, repo, release_date in recent_releases:
release_list_md += f"- {account}/{repo} - {release_date.strftime('%Y-%m-%d')}\n"
display(Markdown(release_list_md))
display(Markdown(f"*Updated on {datetime.now(tz=timezone(-timedelta(hours=7))).strftime('%Y-%m-%d')}*"))
# Note the timedelta is inaccurate for part of the year, but it's purpose is to have the correct day
exawind/amr-wind - 2025-04-10
openfast/openfast - 2025-04-08
openfast/openfast - 2025-04-08
wisdem/wombat - 2025-04-07
wisdem/orbit - 2025-04-07
erf-model/erf - 2025-04-07
nrel/floris - 2025-04-07
NREL/reV - 2025-04-05
NREL/rex - 2025-04-05
wisdem/weis - 2025-04-03
nrel/hercules - 2025-03-28
exawind/nalu-wind - 2025-03-25
nrel/hopp - 2025-03-22
wisdem/wisdem - 2025-03-21
Updated on 2025-04-14