CodeChecker 6.29+ ignores locale settings and forces UTF-8

Chiusa
#5,121 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 8 giorni

@ump45nose ci sta già lavorando.

Dal 2/10/2026.

  • #5123 di @ump45nose — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
cli

Direzione di ricerca

Start by locating the code that formats plaintext output for CodeChecker version and checking how it selects box-drawing characters. Reproduce with LC_ALL=C LANG=C TERM=dumb CodeChecker version and inspect the existing tests for version output. Done means the output uses ASCII in the reported environment while retaining the current UTF-8 formatting otherwise; pull request #5123 is already open for this issue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bazel :jigsaw: bug :bug: CLI :computer: good first issue good to go :rocket: usability :+1:

Describe the bug
Since version 6.29, CodeChecker formats plaintext output using multi-byte UTF-8 box-drawing characters. While visually appealing in interactive terminals, this creates a regression for headless environments, CI pipelines (like Jenkins), and ASCII-only wrapper scripts.

When CodeChecker output is piped to a Jenkins console or an ASCII-expecting log viewer, the UTF-8 sequences render as gibberish. The core issue is that CodeChecker currently ignores the standard POSIX environment variables (LC_ALL=C, LANG=C, TERM=dumb) that dictate character encoding and terminal capability constraints.

CodeChecker version

[INFO 2026-10-02 10:38:53] - CodeChecker analyzer version:
┌──────────────────────┬──────────────────────────────────────────┐
│ Kind                 │ Version                                  │
├──────────────────────┼──────────────────────────────────────────┤
│ Base package version │ 6.29.0                                   │
│ Package build date   │ 2026-09-11T09:30                         │
│ Git commit ID (hash) │ a259e69d3d5e8dc083c5d60219a8668b5e3c5084 │
│ Git tag information  │ 6.29                                     │
└──────────────────────┴──────────────────────────────────────────┘

[INFO 2026-10-02 10:38:53] - CodeChecker web version:
┌─────────────────────────────────────┬──────────────────────────────────────────┐
│ Kind                                │ Version                                  │
├─────────────────────────────────────┼──────────────────────────────────────────┤
│ Base package version                │ 6.29.0                                   │
│ Package build date                  │ 2026-09-11T09:30                         │
│ Git commit ID (hash)                │ a259e69d3d5e8dc083c5d60219a8668b5e3c5084 │
│ Git tag information                 │ 6.29                                     │
│ Server supported Thrift API version │ 6.74                                     │
│ Client Thrift API version           │ 6.74                                     │
└─────────────────────────────────────┴──────────────────────────────────────────┘

To Reproduce
Steps to reproduce the behaviour:

  1. Force a strict ASCII environment using standard POSIX variables: LC_ALL=C LANG=C TERM=dumb CodeChecker version
  2. Pipe the output to an ASCII-only viewer or Jenkins console.

Expected behaviour
CodeChecker should inspect LC_ALL and LANG environment variables. If a non-UTF-8 locale (such as C or POSIX) is detected, it should automatically degrade to a standard ASCII-only format.

Disclaimer: I wrote the issue manually but used Gemini to sharpen up the technical details in the description.

Lingua principale
Python
Stelle
2.6k
Fork
494
Merge medio
9g 2h
PR unite (30g)
23

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Ericsson/codechecker

Tutte le issue di Ericsson/codechecker

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.