Skip to main content

Launcher

Launcher is a small stable executable that starts and updates a Python desktop app.

You package and sign Launcher when the executable, bundled config, icon, or launcher tooling changes. Your app code ships separately as signed GitHub or GitLab release assets.

That split keeps normal app releases small:

  • the launcher executable is the durable file users install;
  • the app release archive is the versioned source bundle Launcher downloads, verifies, installs, and runs;
  • the signed manifest tells Launcher which archive belongs to each app release.

Minimal Workflow

Initialize an app repository:

uv add --dev wetlands-launcher
uv run launcher init --name MyApp --repository https://github.com/my-org/myapp.git
uv run launcher config check
uv run launcher release keygen

Release commands read the static [project].version from the TOML file named by configuration and use that exact value as the release tag. Set release.tag_template: "v{version}" only when the repository deliberately uses prefixed tags. Explicit version arguments remain available for dynamic or non-TOML projects and must match inferred values when both are present.

Build the launcher executable when it changes:

uv run --with pyinstaller launcher build
# sign/notarize the built launcher here
uv run launcher build package
uv run launcher release create --tag --push --notes-text "Release 1.2.3"
uv run launcher release archive
uv run launcher release sign
uv run launcher release verify
uv run launcher release upload
uv run launcher build upload

Supply PyInstaller through the same uv run invocation so it can import the installed launcher package. The build command rejects a pyinstaller executable that is present only on PATH because it may belong to another Python environment and produce an incomplete launcher.

Use one provider release per version and upload each macOS, Windows, or Linux launcher package as a separate platform-named asset. Each successful launcher build upload updates packaging/launcher/distribution.yml; commit and push that file before building on the next machine. After the final platform upload, update the existing release with links for every recorded platform:

uv run launcher release update-notes --notes-text "Release 1.2.3"

Publish a normal app-only release:

uv run launcher release create --tag --push --notes-text "Release 1.2.3"
uv run launcher release archive
uv run launcher release sign
uv run launcher release verify
uv run launcher release upload

Only run launcher build package and launcher build upload for releases where the launcher executable changed. For ordinary app changes, publish the app archive, manifest, and signature.

Learn More

Development

uv sync
uv run pytest
uv run ruff check .

Metadata

Release files for wetlands-launcher 0.3.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wetlands-launcher 0.3.9
File Size Uploaded
wetlands_launcher-0.3.9.tar.gz 593.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wetlands-launcher 0.3.9
File Interpreter ABI Platform
wetlands_launcher-0.3.9-py3-none-any.whl Python 3 none any Details

Total release size: 851.0 kB

Release files / wetlands_launcher-0.3.9.tar.gz

Download URL wetlands_launcher-0.3.9.tar.gz
Size 593.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f9d5ad03f12a0db4bb5e80fea0ebdf9effea2a09b0775e6e68a94e1738adac59
BLAKE2b-256 checksum
How to use checksums
91a80a7ee7e9c86b5082d1994683837fe079b55331bde82454019ec9fa1103f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / wetlands_launcher-0.3.9-py3-none-any.whl

Download URL wetlands_launcher-0.3.9-py3-none-any.whl
Size 257.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e3050484ddb9834226355ecc3ede6dd67e093d4f3546e79eaf9cda77a8723b07
BLAKE2b-256 checksum
How to use checksums
7bdee19f0817407aba1f3c5565fb2c54318b62e53591233cdea909d417835f8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.3.9 This release

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page