Canonical cross-platform release artifacts and CI refactor (fixes #62) #74

Closed
Grok wants to merge 6 commits from 0.1.28/issue-62-canonical-artifacts into main
Member

Summary

Fixes #62 — standardizes build and release automation around one canonical artifact per platform per version, refactors CI gating, and adds squash-merge-aware branch pruning.

Canonical artifacts

Context Windows Linux
main BulkImageOrganizer_{version}.exe BulkImageOrganizer_{version}.AppImage
dev branch BulkImageOrganizer_dev-{branch-slug}.exe BulkImageOrganizer_dev-{branch-slug}.AppImage
  • Main releases: Forgejo tag v{version} (Latest), both platform artifacts attached as jobs complete
  • Dev releases: tag dev-{branch-slug}; pruned on branch delete

CI changes

  • ci.yml: lint + tests only (all branches; docs-only paths ignored)
  • linux-appimage.yml + windows-release.yml: run after CI succeeds (workflow_run), parallel with per-branch concurrency cancellation
  • Removed Nuitka tar.gz generic-package uploads and windows-latest / dev-latest-* tags

Scripts

  • build-linux-appimage.sh — Nuitka standalone + appimagetool + desktop metadata
  • publish-forgejo-release.py — unified release publisher (multipart upload, make_latest)
  • prune-dev-release.py — dev release cleanup (replaces Windows-only prune script)
  • prune-merged-branches.sh — squash-merge-aware local/remote branch cleanup

Other

  • Removed ~/bio-latest deployment from build-linux.sh
  • Updated AGENTS.md branch cleanup rules for squash merge workflow

Testing

  • ruff check / ruff format --check
  • pytest (298 passed, 1 skipped)
  • ./scripts/check-version-bump.sh

Release

  • Version 0.1.29
  • CHANGELOG updated

Awaiting CI / release runner validation for AppImage build and workflow_run chain on push.

## Summary Fixes #62 — standardizes build and release automation around one canonical artifact per platform per version, refactors CI gating, and adds squash-merge-aware branch pruning. ## Canonical artifacts | Context | Windows | Linux | |---------|---------|-------| | **main** | `BulkImageOrganizer_{version}.exe` | `BulkImageOrganizer_{version}.AppImage` | | **dev branch** | `BulkImageOrganizer_dev-{branch-slug}.exe` | `BulkImageOrganizer_dev-{branch-slug}.AppImage` | - Main releases: Forgejo tag `v{version}` (Latest), both platform artifacts attached as jobs complete - Dev releases: tag `dev-{branch-slug}`; pruned on branch delete ## CI changes - `ci.yml`: lint + tests only (all branches; docs-only paths ignored) - `linux-appimage.yml` + `windows-release.yml`: run after CI succeeds (`workflow_run`), parallel with per-branch concurrency cancellation - Removed Nuitka tar.gz generic-package uploads and `windows-latest` / `dev-latest-*` tags ## Scripts - `build-linux-appimage.sh` — Nuitka standalone + appimagetool + desktop metadata - `publish-forgejo-release.py` — unified release publisher (multipart upload, `make_latest`) - `prune-dev-release.py` — dev release cleanup (replaces Windows-only prune script) - `prune-merged-branches.sh` — squash-merge-aware local/remote branch cleanup ## Other - Removed `~/bio-latest` deployment from `build-linux.sh` - Updated AGENTS.md branch cleanup rules for squash merge workflow ## Testing - `ruff check` / `ruff format --check` - `pytest` (298 passed, 1 skipped) - `./scripts/check-version-bump.sh` ## Release - Version **0.1.29** - CHANGELOG updated Awaiting CI / release runner validation for AppImage build and `workflow_run` chain on push.
Add Linux AppImage and unified Forgejo release tag helpers. Dev-branch
artifacts use BulkImageOrganizer_dev-{branch-slug} names; main releases
use v{version} tags. Set development VERSION to 0.1.28-enhancement.62.
Add build-linux-appimage.sh with desktop metadata and appimagetool
wrapping. Remove bio-latest deployment from build-linux.sh and keep
build-linux-nuitka-smoke.sh as a local standalone verifier.
CI runs lint and tests only. Linux AppImage and Windows release workflows
run in parallel after CI succeeds with branch concurrency cancellation.
Replace tar.gz smoke uploads and windows-latest tags with versioned Forgejo
releases via publish-forgejo-release.py.
chore: squash-merge-aware branch pruning helper and AGENTS rules
Some checks failed
CI / lint (push) Successful in 6s
CI / test (push) Successful in 1m26s
CI / test (pull_request) Has been cancelled
CI / lint (pull_request) Has been cancelled
e509d26433
Add prune-merged-branches.sh/.py to delete stale locals with gone
upstreams and branches from closed merged forge PRs (using head.label
when refs/pull/N/head remains after remote deletion). Update AGENTS.md
cleanup guidance and timing. Prune 12 stale local and 2 stale remote
branches.
docs: PR-prep for issue 62 — canonical artifacts release 0.1.29
Some checks failed
CI / lint (push) Successful in 7s
CI / lint (pull_request) Successful in 7s
CI / test (push) Has been cancelled
CI / test (pull_request) Successful in 1m36s
9f2182d419
Grok closed this pull request 2026-06-13 06:19:17 +00:00
Author
Member

Closing per user request — PR cancelled while version-bump policy is revised (release bump only when compiled application inputs change, aligned with CI/release job change detection).

Closing per user request — PR cancelled while version-bump policy is revised (release bump only when compiled application inputs change, aligned with CI/release job change detection).
Some checks failed
CI / lint (push) Successful in 7s
CI / lint (pull_request) Successful in 7s
CI / test (push) Has been cancelled
CI / test (pull_request) Successful in 1m36s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ai-collab/bulk-image-organizer!74
No description provided.