feat: automated stable releases, versioned ISOs, and Hub version badge

- Add release-stable.sh script with automatic tagging, CHANGELOG updates,
  GitHub/Gitea release creation, and VERSION file management
- Update iso/common.nix to include version from VERSION file in ISO filename
- Add VERSION file (current: 1.0.3)
- Polish OS version badge in Sovran Hub header (top-right)
- Update README.md download link to versioned ISO
- Update CHANGELOG.md with existing tags (v1.0.0 – v1.0.3)

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
This commit is contained in:
naturallaw777
2026-07-29 15:11:59 +00:00
co-authored by arena-agent
parent ac6a2e26bb
commit c54823ff68
8 changed files with 436 additions and 2 deletions
+17
View File
@@ -2274,13 +2274,30 @@ async def api_logout(request: Request):
return response
def _get_sovran_version() -> str:
"""Read the OS version from the VERSION file."""
try:
with open("/etc/nixos/VERSION", "r") as f:
return f.read().strip()
except FileNotFoundError:
try:
with open("VERSION", "r") as f: # fallback for development
return f.read().strip()
except FileNotFoundError:
return "dev"
except Exception:
return "dev"
@app.get("/", response_class=HTMLResponse)
async def index(request: Request):
sovran_version = _get_sovran_version()
return templates.TemplateResponse(
request=request,
name="index.html",
context={
"asset_version": ASSET_VERSION,
"sovran_version": sovran_version,
},
)