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 .

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wetlands_launcher-0.3.6.tar.gz (405.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wetlands_launcher-0.3.6-py3-none-any.whl (92.9 kB view details)

Uploaded Python 3

File details

Details for the file wetlands_launcher-0.3.6.tar.gz.

File metadata

  • Download URL: wetlands_launcher-0.3.6.tar.gz
  • Upload date:
  • Size: 405.7 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for wetlands_launcher-0.3.6.tar.gz
Algorithm Hash digest
SHA256 9c1df5b496091b6b5e938b3c271d5e27c83cc4d7703600e4fb2a91ce997fc4bf
MD5 8a5f1d5b472e58d3efcbec13cc36c2bb
BLAKE2b-256 87b490d33372e7f222cd1982a6d0f2c7a319cfd4256fd63a387ae284ac32911c

See more details on using hashes here.

File details

Details for the file wetlands_launcher-0.3.6-py3-none-any.whl.

File metadata

  • Download URL: wetlands_launcher-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 92.9 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for wetlands_launcher-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2f82a9c828dc8d2744f0dfc518ddf75881ef57bbd702320f9b5597ad7d1028ba
MD5 931864f7f2b46c64d2bfa6799bb2ad13
BLAKE2b-256 9d14f8770d823873aa9bdda4f3d113646d5afa8c07f7f5e97c6d2419c76b1fae

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.9

2 files

0.3.7

2 files

This release

0.3.6 This release

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page