Skip to content

fix(synkronus-cli): generate architecture-specific Windows resources - #1044

Open
Grace256c wants to merge 2 commits into
OpenDataEnsemble:devfrom
Grace256c:fix/1025-windows-resource-generation
Open

Grace256c wants to merge 2 commits into
OpenDataEnsemble:devfrom
Grace256c:fix/1025-windows-resource-generation

Conversation

@Grace256c

Copy link
Copy Markdown
Contributor

What & Why

Fix Windows CLI builds failing on the committed resource_windows_amd64.syso.

The tracked resource file was named for AMD64 but actually contained an i386 COFF object. Renaming the file did not change its internal architecture, which caused the linker error:

unknown relocation type 7

This change removes the precompiled architecture-dependent resource and generates the correct Windows resource during CI/release builds using pinned goversioninfo@v1.5.0.

Windows resources are now generated explicitly for:

  • AMD64 using -64
  • ARM64 using -64 -arm

The generated resources use the current versioninfo.json metadata and preserve the existing Windows icon.

The failure was also reproduced with Go 1.26.8, so the underlying issue is the architecture mismatch rather than a Go 1.27-only regression.

Documentation was updated to describe the architecture-specific generation process and remove stale server resource instructions.

Closes #1025.

Type of Change

  • Bug fix
  • New feature / enhancement
  • Refactor / cleanup
  • Documentation
  • Chore / other

Component(s) Changed

  • formulus (React Native mobile app)
  • formulus-formplayer (form WebView UI)
  • synkronus (Go backend)
  • synkronus-cli (command-line client)
  • synkronus-portal (web admin UI)
  • desktop (Tauri app)
  • packages (tokens / components)
  • Documentation / DevOps / CI

Testing

  • Added/updated tests
  • Manually tested
  • Not applicable

Verification included:

  • go mod verify
  • go vet -mod=readonly ./...
  • go test -mod=readonly -race ./...
  • Linux AMD64 build
  • Windows AMD64 build
  • Windows ARM64 build
  • macOS AMD64 build
  • Windows AMD64 and ARM64 builds with Go 1.26.8 and Go 1.27.2
  • Verified generated COFF machine values:
    • AMD64: 0x8664
    • ARM64: 0xaa64
  • Verified linked Windows executables contain current OpenDataEnsemble metadata and version 1.4.0.0
  • Verified existing icon resources are preserved
  • Verified Synkronus server Windows AMD64 cross-build still succeeds
  • actionlint
  • workflow YAML parsing
  • git diff --check

Native Windows execution was not performed locally; Windows behavior is covered through cross-build verification and CI workflow changes.

Checklist

  • Pre-flight checks for changed packages passed (lint / format / tests)
  • Breaking changes (if any) have migration steps
  • Related issue linked, e.g. Closes #123

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

[synkronus-cli] Windows build fails with Go 1.27 on the committed resource_windows_amd64.syso

1 participant