Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

CLI: connectivity check prints diagnostics to stdout, breaking piped output

Abierto Apto para principiantes
#548 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
85/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
cli

Línea de trabajo

Comienza con check_connectivity() y su llamador @test_connection en collectoss/application/cli/__init__.py; ejecuta el comando de reproducción de Python del issue para observar los diagnósticos de stdout y el traceback. Verifica que las comprobaciones correctas mantengan stdout limpio, que las comprobaciones fallidas informen de los diagnósticos por stderr o mediante logging y que los mensajes de error utilicen la excepción capturada; añade o actualiza pruebas de CLI enfocadas si la estructura de pruebas existente del proyecto lo permite.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description:
check_connectivity() in collectoss/application/cli/__init__.py (used by @test_connection) reports failures with print(), so they go to stdout. It prints for every failed URL even when a later URL succeeds and the command runs normally, and for network/protocol errors it also prints a full traceback. This puts stray lines at the top of a working command's stdout and breaks piping, e.g. JSON output. The "no way to get connection to the database" error also goes to stdout.

Also, the network/protocol error messages print the exception class ({httpx.NetworkError}) instead of the caught exception ({e}).

Question for maintainers: is CLI output a stable API surface, and should diagnostics go to stderr? Found while working on #547 .

How to reproduce:
Run, with the first URL unreachable and the second reachable: uv run python -c “from collectoss.application.cli import check_connectivity as c; c([‘http://10.255.255.1','http://github.com’])” 2>/dev/null

stdout gets Connectivity test Request 0 Network Error: <class 'httpx.NetworkError'> plus a traceback, even though the function returns True. In normal use this happens when any of chaoss.community, github.com or gitlab.com is slow or unreachable.

Expected behavior:
Diagnostics go to stderr (or logging), and only when the check actually fails, so collectoss <command> > out.json gives valid output. Error messages include the caught exception.

Screenshots
N/A

Log files
Full output (~55 lines):

Software versions:

  • CollectOSS: 4027f1212
  • OS: macOS 12.6.7 (21G651)
  • Browser: N/A
Lenguaje dominante
Python
Estrellas
17
Forks
27
Merge medio
3 d 10 h
PR fusionados (30 d)
10

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de chaoss/CollectOSS

Todos los issues de chaoss/CollectOSS

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.