[Bug]: error messages and warnings should consistently go to stderr
Dieses Issue hat noch niemand übernommen.
- 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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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