[Enhancement]: Update build and release processes for canonical artifacts #62
Labels
No labels
Kind/Bug
Kind/Feature
Priority/High
Priority/Medium
Reviewed/Confirmed
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ai-collab/bulk-image-organizer#62
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Affected area
Linux packaging (nuitka-smoke), Windows release workflow, CI jobs, Forgejo distribution, build scripts, versioning helpers
Current behavior
The project produces multiple package formats including tar.gz Nuitka standalones, with platform-specific variations that are not strictly limited to .exe (Windows) and .AppImage (Linux x86_64). CI builds target broader configurations, some of which do not result in the final user-facing deliverables. Distribution includes non-essential artifacts, and documentation mixes internal UI guidance with distribution details.
Desired improvement
Update all build and release processes to produce exactly one canonical artifact per supported platform per version:
BulkImageOrganizer_{version}.exefor Windows 10+ (x86_64) andBulkImageOrganizer_{version}.AppImagefor Linux (Ubuntu 24.04+ and compatible modern distributions, x86_64 only). Remove all other package builds that do not directly support these deliverables.Refactor CI (ci.yml, linux-appimage.yml, windows-release.yml) so that lint and tests run first; on success, parallel linux-appimage and windows-release jobs execute with concurrency groups that cancel in-progress builds on new pushes to the same branch. Use change detection to skip builds for docs-only changes. Extend build scripts to support AppImage creation via Nuitka standalone wrapped with appimagetool (including desktop file and icon), and update smoke tests and versioning helpers accordingly.
For main branch pushes: create dedicated Forgejo releases per version (e.g. tag v0.1.29) attaching both .exe and .AppImage, with the newest marked as Latest. For dev branches: maintain one dev artifact per branch (
BulkImageOrganizer_dev-{branch-slug}.exeand.AppImage) that updates on qualifying pushes and is pruned on merge/delete.Keep VERSION as the single source of truth (bumped via existing
./scripts/bump-version.sh).References
docs/VERSIONING.md, AGENTS.md, DESIGN.md, .github/workflows/ci.yml, windows-release.yml, scripts/build-*.sh
Other Notes
[Enhancement]: Convert Linux Package to AppImageto [Enhancement]: Update build and release processes for canonical artifactsImplementation pushed to branch
0.1.28/issue-62-canonical-artifacts(4 commits).Canonical artifacts
BulkImageOrganizer_{version}.exe+BulkImageOrganizer_{version}.AppImageon Forgejo release tagv{version}(marked Latest)BulkImageOrganizer_dev-{branch-slug}.{exe|AppImage}on tagdev-{branch-slug}; pruned on branch deleteCI
ci.yml: lint + test only (all branches; docs-only paths ignored)linux-appimage.yml+windows-release.yml: run after CI succeeds (workflow_run), parallel with per-branch concurrency cancellationwindows-latest/dev-latest-*tagsScripts
scripts/build-linux-appimage.sh,scripts/publish-forgejo-release.py,scripts/prune-dev-release.pybio-latestdeployment frombuild-linux.sh; dropped legacy Windows-only publish/prune scriptsget-version.pyflags for AppImage/dev artifact names and release tagsVerification: ruff + pytest (296 passed) locally. Awaiting CI/release runner validation on push.