Feature request: declarative ordering of hookimpls relative to other plugins (before/after), beyond tryfirst/trylast
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
Piste de recherche
Commencez par lire le comportement actuel concernant l’ordre des hooks tryfirst et trylast, ainsi que les issues pytest référencées. L’issue identifie également _HookCaller._nonwrappers comme une API privée que les utilisateurs inspectent aujourd’hui. Pour considérer le travail comme terminé, il faudrait d’abord disposer d’une conception acceptée pour l’ordre déclaratif, y compris les conflits et les cycles, puis réaliser l’implémentation et les tests ; le maintainer se demande actuellement si cela en vaut la peine.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
pluggy currently offers only tryfirst and trylast booleans to control hook order, which remains arbitrary within each of the three categories. Some users want to declare that their hookimpl must run before or after a specific other plugin or hookimpl, and so several pytest issues conclude that the fix (if any) belongs in pluggy:
- pytest-dev/pytest#13371 — "Provide a better way to schedule hooks ordering." Request for
before=/after=ordering relative to named plugins. - pytest-dev/pytest#2364 — "undeterministic order of pytest_configure for conftest-loaded plugins." Core/entrypoint/conftest plugins end up in an effectively random relative order; the issue explicitly notes "this may need actual dependency ordering support in pluggy."
- #250 — an existing user question about reordering hookimpls after registration by poking
_HookCaller._nonwrappers(private API), which shows people already reach for unsupported internals to get this.
Personally I'm inclined to close this issue as wontfix, because it's absolutely classic "what if two programs did this" fodder. Even if we proposed to error on such cases and do a fancy toposort on the rest, I don't think it'd be worth the complexity.
- Langage dominant
- Python
- Étoiles
- 1.7k
- Forks
- 200
- Merge moyen
- 1 j 1 h
- PR mergées (30 j)
- 16
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de pytest-dev/pluggy
-
Plugin registry compares plugins by equality, not identityPeut-être pris @00200200 l’a pris il y a 25 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
pytest-dev/pluggy#760 ·
Les mainteneurs répondent en général sous 1 jour
-
call_extra() drops arguments for partial callbacksPeut-être pris @HocVoNgThai l’a pris il y a 4 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 65/100
pytest-dev/pluggy#817 ·
Les mainteneurs répondent en général sous 1 jour
-
add_hookcall_monitoring undo breaks when called out of LIFO orderPeut-être pris @AlvaroBalbin l’a pris il y a 2 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
pytest-dev/pluggy#815 ·
Les mainteneurs répondent en général sous 1 jour
-
call_historic() memorizes the caller's kwargs mapping, so later mutation changes what late plugins receivePeut-être pris @RonnyPfannschmidt l’a pris il y a 15 jours. Ouverte
pytest-dev/pluggy#808 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
deprecate passing None as a plugin instancePeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 30/100
pytest-dev/pluggy#790 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de pytest-dev/pluggy
Issues similaires
-
follow-up needs-triage S3: minor
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
manaflow-ai/cmux#36856 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
documentation good first issue help wanted
Difficulté 1/5 1-3 heures Accessibilité débutants 90/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Shell framework build fails at "copy the shader libraries": the iOS shader libraries are now one file b-<chain>.imgPeut-être pris @xiaofeng-han l’a pris aujourd’hui. Ouvertebuild ios
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour