list_plugin_distinfo() keeps unregistered plugins
Los mantenedores suelen responder en 1 día
@RonnyPfannschmidt ya está trabajando en esto.
Desde el 9/10/2026.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start in unregister() and in load_setuptools_entrypoints(), which appends to _plugin_distinfo, then check what list_plugin_distinfo() and list_plugin_distributions() return after a plugin is unregistered. Linked PR #764 was closed without merging, so read its discussion before starting. Done means unregistering a plugin removes its distinfo entries and re-registering it through entry points adds no duplicate.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
🤖 Written by Claude Opus 5.5 via Claude Code for the pluggy maintainers; I prompted it, it did the work, I read it.
load_setuptools_entrypoints() appends to _plugin_distinfo, but unregister() never removes those entries. After unregistering, list_plugin_distinfo() and list_plugin_distributions() still list the plugin, and that list feeds pytest's "plugins:" header. Re-registering through entry points then adds a duplicate entry.
Confirmed by reading the code and a synthetic repro, not by a real entry-point load.
Proposal: drop the plugin's entries in unregister().
Found while working on #759.
- Lenguaje dominante
- Python
- Estrellas
- 1.7k
- Forks
- 172
- Merge medio
- 2 d 18 h
- PR fusionados (30 d)
- 21
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de pytest-dev/pluggy
-
Plugin registry compares plugins by equality, not identityPosiblemente ocupada @00200200 la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
pytest-dev/pluggy#760 ·
Los mantenedores suelen responder en 1 día
-
Defaulted positional-only hook parameters are forwarded as keywordsPosiblemente ocupada @adenzhou1350 la tomó hace 2 días. Abierto
Dificultad 4/5 1-2 días Aptitud para principiantes 45/100
pytest-dev/pluggy#774 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
unregister() argument validation relies on assertPosiblemente ocupada @ekanshul la tomó hace 3 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 42/100
pytest-dev/pluggy#762 ·
Los mantenedores suelen responder en 1 día
-
Failures during add_hookspecs / historic replay leave partial statePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 50/100
pytest-dev/pluggy#761 ·
Los mantenedores suelen responder en 1 día
-
[Downstream] devpi broken - trying to register `None`Posiblemente ocupada @bluetech la tomó hace 13 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
pytest-dev/pluggy#749 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de pytest-dev/pluggy
Issues similares
-
bug difficulty:2 good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
MakazhanAlpamys/Soup#1865 ·
Los mantenedores suelen responder en 1 día
-
area: agents area: docs good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
openapi/gknowledge#23 ·
-
useless-suppression reported for deprecated-* messages that should be exemptPosiblemente ocupada @adityasinha-ghub la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
pylint-dev/pylint#11656 ·
Los mantenedores suelen responder en 1 día
-
area:provisioning effort:S priority:P2 provider:local-libvirt risk:daytime-only status:in-progress type:bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
randomparity/kdive#3203 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
get() for StrEnumPosiblemente ocupada @FeJo5952 la tomó hoy. Abiertogood first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
collective/icalendar#1921 · 1 comentario ·
Los mantenedores suelen responder en 1 día