Files
UmbraEdit/RELEASE.md
B.D. Murphy a04eaaa779 house: add multi-platform build infrastructure
- Add MANIFEST.in to include utils/ and setup/ in source distributions
- Add utils/build_all.py - unified multi-platform build orchestrator
  (Linux amd64/arm64, macOS amd64/arm64, Windows amd64/arm64)
- Add BUILD_LINUX.md - Linux build guide with .deb and AppImage options
- Add RELEASE.md - complete release process with versioning (YYYY/MM.####),
  platform support matrix, and release workflow
- Fix .gitignore to exclude UmbraEdit_Projects/, Inner_Demon_1.2a.docm,
  UmbraEdit_deb_Build_Script.txt, requirements.txt, .DS_Store
- All source distributions now include build scripts for Linux packages
2026-11-06 08:03:35 -08:00

4.7 KiB

UmbraEdit - Release Process

This document describes the release process for UmbraEdit, including versioning, platform support, build workflows, and publishing.

Versioning

UmbraEdit uses a YYYY/MM.P#### versioning scheme:

Component Meaning
YYYY Release year (e.g., 2026)
MM Release month (e.g., 11)
#### Patch/build sequence (e.g., 0001)

Examples:

  • 2026.11 - Major monthly release (November 2026)
  • 2026.11.0001 - First development build of November 2026
  • 2026.11.0002 - Second development build (e.g., new feature)

Git tags follow the format: v2026.11, v2026.11.0001, etc.

Supported Platforms

Platform Architecture Package Format Build Host
Linux amd64 .deb, .rpm, AppImage Linux
Linux arm64 .deb, .rpm, AppImage Linux (ARM64)
macOS arm64 .dmg, .app macOS (Apple Silicon)
macOS amd64 .dmg, .app macOS (Intel)
Windows amd64 .msi, .exe Windows
Windows arm64 .msi, .exe Windows (ARM64)
iOS/iPadOS arm64 NOT SUPPORTED N/A

iOS/iPadOS Support

UmbraEdit is not available for iOS/iPadOS. PyQt6 does not support iOS, and UmbraEdit requires a full desktop Qt environment with keyboard, mouse, and file system access. Porting to iOS would require a complete rewrite using SwiftUI or a different cross-platform framework.

Users on iPad should use UmbraEdit via a VNC/remote desktop connection to a desktop machine running UmbraEdit, or use a compatible web-based alternative.

Release Workflow

1. Prepare Release

# Ensure working tree is clean
git status

# Update version in umbraedit/__init__.py
# __version__ = "2026.12.0001"

# Update CHANGELOG.md with new release entry

# Commit and tag
git add -A
git commit -m "release: prepare v2026.12"
git tag -a v2026.12 -m "Release v2026.12"
git push origin main --tags

2. Build All Platforms

On each target platform, run:

# Clone the tagged release
git clone https://git.umbratools.com/umbragit/UmbraEdit.git
cd UmbraEdit
git checkout v2026.12

# Build all packages for this platform
python utils/build_all.py --platform <platform> --arch <arch>

Available platforms: linux, macos, windows Available architectures: amd64, arm64

3. Publish

Upload all build artifacts to the release server:

# Example: upload to Gitea releases
# Files to upload:
#   Linux:   dist_deb/umbraedit_*.deb, dist_appimage/*.AppImage
#   macOS:   dist_macos/umbraedit-*.dmg
#   Windows: dist_win/umbraedit-*.exe, dist_win/umbraedit-*.msi
#   Source:  dist/umbraedit-*.tar.gz, dist/umbraedit-*.whl

Create a release on Gitea/GitHub and attach all artifacts.

Build Artifacts

Each platform produces the following artifacts:

Linux (.deb + AppImage)

File Location Description
umbraedit_<version>_amd64.deb dist_deb/ Debian package
umbraedit-<version>-amd64.AppImage dist_appimage/ Portable AppImage

macOS (.dmg + .app)

File Location Description
umbraedit-<version>-arm64.dmg dist_macos/ macOS disk image
UmbraEdit.app inside .dmg macOS application bundle

Windows (.exe + .msi)

File Location Description
umbraedit-<version>-amd64.exe dist_win/ Windows installer
umbraedit-<version>-amd64.msi dist_win/ Windows MSI installer

Source

File Location Description
umbraedit-<version>.tar.gz dist/ Source tarball
umbraedit-<version>-py3-none-any.whl dist/ Pure Python wheel

Build Scripts

Script Purpose
utils/build_all.py Unified build orchestrator for all platforms
utils/build_debian.py Debian/Ubuntu .deb package builder
utils/build_appimage.py AppImage builder
utils/build_windows.py Windows installer builder
setup/macos/build.sh macOS .dmg builder

Release Checklist

  • Update version in umbraedit/__init__.py
  • Update CHANGELOG.md with release notes
  • Tag release: git tag -a vYYYY.MM -m "Release vYYYY.MM"
  • Push tag: git push origin vYYYY.MM
  • Build packages for all platforms
  • Test installation on each platform
  • Create release on Gitea/GitHub
  • Attach all build artifacts
  • Publish release notes
  • Announce release

Credits

UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen (novelWriter.io), licenced under the same GPL v3.0 license.

Current development lead: B.D. Murphy