Skip to content

fix(smoke): enable InvariantGlobalization to eliminate ICU dependency#223

Merged
Aaronontheweb merged 1 commit into
devfrom
claude-wt-smoke-logs
Mar 13, 2026
Merged

fix(smoke): enable InvariantGlobalization to eliminate ICU dependency#223
Aaronontheweb merged 1 commit into
devfrom
claude-wt-smoke-logs

Conversation

@Aaronontheweb

Copy link
Copy Markdown
Collaborator

Summary

  • Enables InvariantGlobalization in both Netclaw.Cli and Netclaw.Daemon csproj files
  • Fixes the Couldn't find a valid ICU package installed on the system crash when running self-contained binaries in the bare ubuntu:24.04 smoke sandbox container
  • Makes published binaries portable to any Linux system without requiring system ICU libraries

Root Cause

After #220 moved dotnet publish to the host runner (to avoid cold NuGet cache timeouts), the self-contained binaries are copied into a minimal ubuntu:24.04 container that only has curl and procps — no libicu. The .NET runtime requires ICU for globalization unless InvariantGlobalization is explicitly enabled.

Test plan

  • Smoke sandbox workflow passes (binary no longer crashes on startup)
  • PR validation build succeeds
  • Verify runtimeconfig.json includes "System.Globalization.Invariant": true

Self-contained binaries crash on startup in the bare ubuntu:24.04 smoke
sandbox because libicu is not installed. Enabling InvariantGlobalization
on both executables tells the .NET runtime to skip ICU entirely, making
the binaries portable to any Linux system without system ICU libraries.
@Aaronontheweb Aaronontheweb merged commit 796984e into dev Mar 13, 2026
3 checks passed
@Aaronontheweb Aaronontheweb deleted the claude-wt-smoke-logs branch March 13, 2026 22:21
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.

1 participant