linode / linode/linode-cli

[Bug]: error messages and warnings should consistently go to stderr

Offen
#643 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug
Vorherrschende Sprache
Python
Sterne
442
Forks
159
Ø Merge
7 T. 21 Std.
Gemergte PRs (30 T.)
8

Beschreibung

CLI Version

linode-cli v5.51.0 Built from spec version 4.176.0

Command

linode-cli linodes create [...args...] --json | jq -r .[].id

Output

parse error: Invalid numeric literal at line 1, column 6

Expected Behavior

12345678

Actual Behavior

The problem occurs because linode-cli prints warnings and error messages to stdout. In this case, the (successful) command prints

Using default values: {'authorized_users': ['jschauma']}; use the --no-defaults flag to disable defaults

to stdout before printing the json output. This then leads to tools not being able to consume the output as expected.

The correct behavior here is to send all error messages and warnings to stderr, like a good little Unix tool.

Steps to Reproduce

linode-cli linodes create [...args that produce a warning...] --json | jq -r .[].id

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem Befehlspfad von linode-cli linodes create ... --json und reproduziere die Pipeline bis hin zu jq -r .[].id. Verfolge, wo die angezeigte Warnung zu den Standardwerten ausgegeben wird, und überprüfe, dass erfolgreiches JSON auf stdout bleibt, während Warnungen und Fehler an stderr gehen. Als erledigt gilt, wenn die Pipeline 12345678 erzeugt, ohne dass die Warnung ihre Eingabe verunreinigt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
cli
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.