Fix publish_release.sh to upload installer + AppImage; document host REQUIRE_SIGNIN_VIEW
Full build / Import + headless tests (push) Successful in 23s
Full build / Full desktop build + optional release (push) Skipped

- Script uploaded only the three portable binaries; v0.2.1 release was
  missing step-line-setup-0.2.1.exe and the AppImage. Now uploads the full
  set (extras when present), reuses existing releases (adds missing assets),
  and falls back to ~/.git-credentials basic auth when GITEA_TOKEN is unset
- Back-filled both missing assets onto the live v0.2.1 release via API
  (release now carries all 5 artifacts)
- TODO/RELEASING/MEMORY document the findings and the host admin steps for
  anonymous downloads ([service] REQUIRE_SIGNIN_VIEW)
This commit is contained in:
zwitschi committed 2026-10-31 14:37:56 +01:00
1 parent 3377545a3e
commit f2d218cc27
9 files changed
+610 -39

No files matched your search

+9 -6
View File
@@ -316,8 +316,10 @@ def app_icon():
src_png = os.path.join(ASSETS, "icon.png")
ran = False
for cmd in (
["magick", src_png, "-background", "none", "-define", "icon:auto-resize=48,32,16", ico_path],
["convert", src_png, "-background", "none", "-define", "icon:auto-resize=48,32,16", ico_path],
["magick", src_png, "-background", "none", "-define",
"icon:auto-resize=48,32,16", ico_path],
["convert", src_png, "-background", "none",
"-define", "icon:auto-resize=48,32,16", ico_path],
):
try:
subprocess.run(cmd, check=True, capture_output=True)
@@ -329,7 +331,8 @@ def app_icon():
print("wrote assets/textures/icon.ico (BMP 16/32/48 via ImageMagick)")
else:
print("WARNING: ImageMagick not found; writing PIL ICO (may be PNG-compressed)")
Image.open(src_png).convert("RGBA").save(ico_path, format="ICO", sizes=[(48, 48), (32, 32), (16, 16)])
Image.open(src_png).convert("RGBA").save(
ico_path, format="ICO", sizes=[(48, 48), (32, 32), (16, 16)])
def cards():
@@ -369,8 +372,8 @@ def _api_key() -> str:
return key
def _generate_image(prompt: str, model: str, size: int,
transparent: bool = False) -> Image.Image:
def generate_image(prompt: str, model: str, size: int,
transparent: bool = False) -> Image.Image:
"""Call the OpenRouter image API and return the decoded PIL image.
Requests a square image at `size` px and decodes the base64 PNG/JPEG/WebP
@@ -435,7 +438,7 @@ def _fit(img: Image.Image, max_dim: int = MAX_DIM) -> Image.Image:
def generate_ai_textures(prompt: str, name: str, model: str, size: int,
transparent: bool = False) -> None:
"""Generate one texture via OpenRouter and save it under assets/textures/."""
img = _generate_image(prompt, model, size, transparent)
img = generate_image(prompt, model, size, transparent)
img = _fit(img)
if transparent:
img = img.convert("RGBA")