Skip to content

TuiCode starts on Debian 12, Ubuntu 22.04 and Fedora, even without libicu #414

Closed

Description

@a-team-app

Context

The Linux binaries are built on ubuntu-latest (24.04), so they probably won't start on older glibc, and they won't start at all without libicu, which minimal servers and containers often lack. Nobody has measured either. This task makes the released Linux binaries start on the distros people SSH into: Debian 12, Ubuntu 22.04 and current Fedora, with or without libicu installed. Every other Linux install route in the pitch rests on this. Pitch: #44.

Acceptance criteria

  • The linux-x64 and linux-arm64 tarballs from a release build start and draw the editor on Debian 12, Ubuntu 22.04 and current Fedora.
  • They also start on a minimal image of each with no libicu package installed.
  • On Linux, counts and sizes (Document info, the status bar's (1,234 selected), the Open view's entry cap, the diff revert messages) show with en-US separators whatever the locale. macOS and Windows builds still follow the locale.
  • The README says which Linux distros are supported (Debian 12 / Ubuntu 22.04 / glibc 2.35 and newer).

Tests

  • Record the real requirements of the published binary in the PR (objdump -T for the highest GLIBC symbol version, and whether anything else beyond libc is loaded).
  • Build the Linux legs, in both CI and the release workflow, on a glibc 2.35 host (ubuntu-22.04 / ubuntu-22.04-arm or an equivalent container).
  • A CI job that runs the AOT --smoke (and --smoke-syntax) in a debian:12 container with no libicu, for x64 and arm64, so a future dependency or runner bump can't silently raise the floor.
  • Invariant globalization only for Linux RIDs; a check that a non-Linux publish doesn't pick it up.

Out of scope

  • Debian 11 / Ubuntu 20.04 or anything older than glibc 2.35.
  • An install script, .deb/.rpm packages or an apt repo (their own tasks).
  • Changing number formatting on macOS or Windows.
  • A --version flag.

Metadata

Metadata

Assignees

No one assigned

    Labels

    a-team:devClaimed by the a-team Dev

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions