Projet

Général

Profil

Development #49110

compatibilité djangorestframework 3.4

Ajouté par Frédéric Péters il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
04 décembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

C'est la version sur les déploiements stretch, on voit l'erreur dans un build hobo, ex: https://jenkins.entrouvert.org/job/hobo/3760/testReport/junit/py3-coverage-authentic.tests_authentic/test_provisionning/test_middleware/

        # sanitize keyword arguments
        for key in initkwargs:
            if key in cls.http_method_names:
                raise TypeError("You tried to pass in the %s method name as a " 
                                "keyword argument to %s(). Don't do that." 
                                % (key, cls.__name__))
            if not hasattr(cls, key):
                raise TypeError("%s() received an invalid keyword %r" % (
>                   cls.__name__, key))
E               TypeError: StatisticsAPI() received an invalid keyword 'name'

Fichiers

Révisions associées

Révision e231c939 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 3 ans

misc: ignore name argument for compatibility with DRF==3.4 (#49110)

Révision 3a596034 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 3 ans

misc: ignore name argument for compatibility with DRF==3.4 (#49110)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Assigné à mis à Benjamin Dauvergne

Je m'en occupe.

#2

Mis à jour par Nicolas Roche il y a plus de 3 ans

(j'ai l'impression que la même erreur impacte aussi le build de publik-devinst : https://jenkins.entrouvert.org/job/publik-devinst/187/console)

#3

Mis à jour par Frédéric Péters il y a plus de 3 ans

Oui c'est la même erreur là.

#4

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

#5

Mis à jour par Nicolas Roche il y a plus de 3 ans

En local avec publik-devinst j'ai ça à présent :

15:26 $ authentic-multitenant-manage migrate_schemas
Traceback (most recent call last):
  File "/home/nroche/src/authentic/authentic2-ctl", line 21, in <module>
    execute_from_command_line(sys.argv[:1] + argv)
...
  File "/home/nroche/src/authentic/src/authentic2/a2_rbac/signal_handlers.py", line 108, in post_migrate_update_role_admins
    update_user_admin_roles_permission()
  File "/home/nroche/src/authentic/src/authentic2/a2_rbac/management.py", line 169, in update_user_admin_roles_permission
    assert len(perm.roles.all()) == 1
AssertionError

#6

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Ça n'a pas de rapport avec ce problème.

#7

Mis à jour par Emmanuel Cazenave il y a plus de 3 ans

Nicolas Roche a écrit :

En local avec publik-devinst j'ai ça à présent :

Rien à voir, il y a un ticket pour ça quelque part (je ne cherche pas).

Par contre quelqu'un a compris ce qui a fait que c'est ça s'est cassé avec drf ? (moi pas).

#8

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Emmanuel Cazenave a écrit :

Par contre quelqu'un a compris ce qui a fait que c'est ça s'est cassé avec drf ? (moi pas).

Utilisation d'un paramètre qui n'existe qu'avec le décorateur action() voir compat/drf.py mais vu que Valentin avait implémenté cette couche de compat ça m'étonne qu'il n'ait pas vu le problème.

#9

Mis à jour par Nicolas Roche il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée

En me basant sur la branche de #48372 puis

$ git pull -r origin master

la migration fonctionne et le serveur se lance.

edit :
ou directement sur master, après avoir lancé :

$ authentic2-multitenant-manage check-and-repair --repair --noinput

#10

Mis à jour par Emmanuel Cazenave il y a plus de 3 ans

C'est le décorateur stat qui est appelé avec name, avec ce patch name est foutu à la poubelle et personne n'en fait rien ?

#11

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Emmanuel Cazenave a écrit :

C'est le décorateur stat qui est appelé avec name, avec ce patch name est foutu à la poubelle et personne n'en fait rien ?

Oui, lis le code de DRF si ça te passionne, on tourne en 3.9 de toute façon, ne pas avoir de pretty-name en 3.4 n'est pas une grande perte.

#12

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit e231c939a97b6e2f9820fe8c19c9e86d83532bf9
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Dec 4 14:59:16 2020 +0100

    misc: ignore name argument for compatibility with DRF==3.4 (#49110)
#13

Mis à jour par Guillaume Gautier il y a plus de 3 ans

Bonjour et merci Benjamin pour le patch, car au Département de Loire-Atlantique nous hébergeons encore Publik sur Stretch (le passage à Buster est en cours).

À noter, si vous décidez de ne plus supporter DRF en version 3.4, il faut peut-être changer la version minimale 3.3 indiquée ici :
https://git.entrouvert.org/authentic.git/tree/setup.py

#14

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF