Skip to content

Fix linux build, polish dev.py, update build-related docs - #59

Merged
agajdosi merged 7 commits into
mainfrom
fix_linux_build
Sep 24, 2026
Merged

agajdosi merged 7 commits into
mainfrom
fix_linux_build

Conversation

@yac

@yac yac commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

A batch of small fixes and improvements to bk_client I hit during integration with bk_godot:

  • dev.py improvements
    • ./dev.py works directly (executable with shebang)
    • build now detects platform correctly
    • build doesn't show 5 WARNINGs for missing binaries - we no longer cross-build. instead
    • release requires all 6 binaries
    • release now requires --prebuilt-bin-dir with a nice message (it backtraced without the arg)
  • update docs and strings to match the new multi-platform release packaging
  • use PNG for tray icon on linux - it now actually shows

yac and others added 7 commits September 22, 2026 12:08
This matches other projects where I can simply

    ./dev.py build
Local builds compared platform.machine() directly with Go architecture
names. Hosts reporting x86_64 did not match amd64 in BUILD_TARGETS, so
python dev.py build failed with unassigned target variables. The build
also deleted existing output before discovering an unsupported host.

Extract host target selection and normalize architecture case and
aliases while preserving OS normalization. Report the detected OS and
architecture when unsupported, and validate the target before modifying
build output.

Add table-driven tests for all six supported targets, architecture
aliases, unsupported hosts, and preservation of existing artifacts.
Record completed validation in the platform detection plan.

Validation: unit tests, Ruff lint and formatting checks passed. Built on
Linux/x86_64 and verified the host binary, release ZIP, version, and
manifest checksum. Native Windows/macOS smoke tests were unavailable.
Local builds switched to the host target when CGO was enabled, but the
command summary, README, packaging comments, and unsigned testing
workflow still described cross-compilation.

Align those texts with the existing behavior. Explain native CGO
prerequisites, expected missing-binary warnings, and the separate CI
builds used for signed releases. No build or packaging logic changes.

Validation: Ruff lint and formatting checks and git diff --check passed.
Running dev.py release without --prebuilt-bin-dir passed None to
os.path.abspath() and crashed with a TypeError.

Make the argument required so argparse reports a clear usage error
before release processing starts. CI already supplies the path
explicitly.
Host-only builds warned about every other platform binary even though
those files were not expected. Replace these routine warnings with a
list of binaries included in the archive.

Require all six standard binaries in the explicit prebuilt directory
before release processing modifies output. Reject missing directories
and binaries with clear errors, while keeping legacy targets optional.
Multiple binaries remain valid for signed release bundles.

Update the README and cover single- and multi-binary archives,
incomplete release inputs, stale output, and optional legacy binaries.
Signature verification is mocked in the release tests.
The client passed the Windows ICO asset to every tray backend. On Linux,
the image decoder does not support ICO, so it logged an unknown-format
error and displayed no icon.

Embed the existing PNG on Linux using system_tray_linux.go. Keep the ICO
on other platforms through system_tray_other.go, preserving macOS and
Windows behavior.
@yac yac self-assigned this Sep 22, 2026
@yac
yac requested a review from Tweekazoid September 22, 2026 11:24
@agajdosi
agajdosi merged commit 887f847 into main Sep 24, 2026
94 checks passed

This branch was successfully deployed

1 active deployment
signing — a9f08d4a Deployed Sep 22, 2026 by github-actions[bot] via code_sign_macos #264
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants