Fix linux build, polish dev.py, update build-related docs - #59
Merged
Merged
Conversation
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.
agajdosi
approved these changes
Sep 23, 2026
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A batch of small fixes and improvements to
bk_clientI hit during integration withbk_godot:dev.pyimprovements./dev.pyworks directly (executable with shebang)buildnow detects platform correctlybuilddoesn't show 5 WARNINGs for missing binaries - we no longer cross-build. insteadreleaserequires all 6 binariesreleasenow requires--prebuilt-bin-dirwith a nice message (it backtraced without the arg)