Développement #67724
Publik - Gestion de projet #64274: montée de version django (→ 3.2 LTS)
fonctionner avec django 3.2
0%
Description
cf tache parente
Associated revisions
misc: allow django 3.2 (#67724)
tox: allow any django-webtest (#67724)
tests: fix broken tests after django-webtest upgrade (#67724)
tests: fix misc test failures (#67724)
tox: update targets to allow testing both under django 3.2 and 2.2 (#67724)
tox: run against 2.2 in main (#67724)
History
Updated by Frédéric Péters over 2 years ago
Pour info normalement le taf est déjà fait et il y avait juste #64298. (avec décision de ne pas charger tox en cibles 3.2 tant qu'on n'était pas proche de la bascule).
Updated by A. B. over 2 years ago
Frédéric Péters (absent jusqu’au 2/8) a écrit :
Pour info normalement le taf est déjà fait et il y avait juste #64298. (avec décision de ne pas charger tox en cibles 3.2 tant qu'on n'était pas proche de la bascule).
Ah, j'avais vu certaines choses qui me semblaient nécessiter une action notamment une dépendance à django-ckeditor (qui n'a pas l'air testé sur django 3.2)
Updated by Frédéric Péters over 2 years ago
En effet il y avait un truc django-ckeditor mais géré dans notre "fork" (#64291). (pour info en local je tourne chrono, combo, lingo et wcs avec django 3.2).
Updated by A. B. over 2 years ago
Frédéric Péters (absent jusqu’au 2/8) a écrit :
En effet il y avait un truc django-ckeditor mais géré dans notre "fork" (#64291). (pour info en local je tourne chrono, combo, lingo et wcs avec django 3.2).
D'accord, j'avais commencé à creuser django-ckeditor, mais pas moyen de faire tourner les tests en local (et ça n'a pas l'air testé sur Jenkins ?). Et tout le tox.ini est configuré pour du django <=1.8
Updated by Frédéric Péters over 2 years ago
Yep django-ckeditor c'est juste le code upstream + quelques commits, pas du tout intégré de notre côté jenkins.
Updated by Frédéric Péters over 2 years ago
J'ai poussé une branche wip/tox-django-32 pour tourner tox avec django 3.2, https://jenkins.entrouvert.org/job/combo-wip/job/wip%252Ftox-django-32/ , il y a visiblement encore des trucs à faire, mais d'un premier regard ça semble surtout des adaptations aux tests.
Updated by A. B. over 2 years ago
Frédéric Péters (absent jusqu’au 2/8) a écrit :
J'ai poussé une branche wip/tox-django-32 pour tourner tox avec django 3.2, https://jenkins.entrouvert.org/job/combo-wip/job/wip%252Ftox-django-32/ , il y a visiblement encore des trucs à faire, mais d'un premier regard ça semble surtout des adaptations aux tests.
okay, je regarde :)
Updated by A. B. over 2 years ago
Frédéric Péters (absent jusqu’au 2/8) a écrit :
J'ai poussé une branche wip/tox-django-32 pour tourner tox avec django 3.2, https://jenkins.entrouvert.org/job/combo-wip/job/wip%252Ftox-django-32/ , il y a visiblement encore des trucs à faire, mais d'un premier regard ça semble surtout des adaptations aux tests.
Je viens de pousser un certain nombre de fixes sur ta branche wip/tox-django-32, les tests cassés provenaient principalement d'un changement de comportement de django-webtest et de quelques légères différences de comportement entre django 3.2 et django 2.2.
J'ai mis à jour le tox.ini pour pouvoir facilement lancer les deux suites de tests, chez moi en local:
1. NUMPROCESSES=0 tox -e py3-django22
passe à l'exception de trois tests. Aucune régression fonctionnelle a priori, les deux premiers c'est juste des wordings ou des bouts de HTML générés par django qui ont changé d'une version à l'autre et donc les tests sautent. Le troisième test vérifie un nombre de requête SQL exécuté, et django 3.2 en fait moins, j'imagine qu'il y a du avoir un changement au niveau de l'ORM
2. NUMPROCESSES=0 tox -e py3-django32
passe sans erreur
Côté Jenkins, ça passe aussi en 3.2
Updated by Frédéric Péters over 2 years ago
- Status changed from Nouveau to Résolu (à déployer)
Top, merci; j'ai poussé une branche nommée correctement pour apparaitre ici (et ajuster les messages de commit pour notamment inclure le numéro de ticket).
Et je valide et j'envoie dans le dépôt dans le même élan.
commit 7915dd26de4bbdfe6a26ce114d54e4096dfe73b4 Author: Agate Berriot <aberriot@entrouvert.com> Date: Wed Jul 27 15:57:46 2022 +0200 tox: update targets to allow testing both under django 3.2 and 2.2 (#67724) commit 47a1a1314f5e99a0a2ff7029a05bd57a5b9c7b4d Author: Agate Berriot <aberriot@entrouvert.com> Date: Wed Jul 27 16:10:38 2022 +0200 tests: fix misc test failures (#67724) commit f95a39744d2c31d9aab37072783d19a08c3a4d2e Author: Agate Berriot <aberriot@entrouvert.com> Date: Wed Jul 27 15:44:42 2022 +0200 tests: fix broken tests after django-webtest upgrade (#67724) commit 0fa62c1598ad3efb01e12cdfad843f030dc62ee6 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Jul 26 20:08:47 2022 +0200 tox: allow any django-webtest (#67724) commit 5243db93abe6a80a526c723189fbc9a6b573a4a9 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Jul 26 20:06:01 2022 +0200 misc: allow django 3.2 (#67724) commit b31f63bdc0f61088cb74bdbd25227a2adc4a3958 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Jul 26 19:24:47 2022 +0200 tox: use django 3.2 (#67724)
Updated by Frédéric Péters over 2 years ago
+
commit 3f201282088902a799cdbeb61af96c0eb8076c91 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Aug 2 16:34:23 2022 +0200 tox: run against 2.2 in main (#67724)
Updated by Frédéric Péters over 2 years ago
- Status changed from Résolu (à déployer) to En cours
- Assignee changed from A. B. to Frédéric Péters
Ah mais c'est couillon je n'avais pas capté que les modifications aux tests cassaient la prise en charge en 2.2 :/
Updated by Frédéric Péters over 2 years ago
- Status changed from En cours to Solution déployée
Voilà, faut que je calme mon enthousiasme à pousser plein de trucs après mes congés :)
Updated by A. B. over 2 years ago
Frédéric Péters a écrit :
Voilà, faut que je calme mon enthousiasme à pousser plein de trucs après mes congés :)
Ah trop chouette, tu as pu réécrire les trois tests qui plantaient !
Bon retour ;)
Updated by Frédéric Péters over 2 years ago
Ah trop chouette, tu as pu réécrire les trois tests qui plantaient !
Les deux premiers (sur l'HTML) c'est juste en réduisant le message matché, c'est honnête; celui sur le nombre de requêtes zéro fierté j'ai juste comparé aux valeurs de 2.2 et 3.2 parce que flemme de chercher dans l'ORM ce qui amène les 50 requêtes en plus (ce qu'il faudra sans doute faire à un moment)
Updated by Lauréline Guérin over 2 years ago
flemme de chercher dans l'ORM ce qui amène les 50 requêtes en plus (ce qu'il faudra sans doute faire à un moment)
La gestion des M2M a changé:
2.2:
{'sql': 'SELECT "search_indexedcell_restricted_groups"."group_id" FROM ' '"search_indexedcell_restricted_groups" WHERE ' '("search_indexedcell_restricted_groups"."group_id" IN (170) AND ' '"search_indexedcell_restricted_groups"."indexedcell_id" = 806)', 'time': '0.000'}, {'sql': 'INSERT INTO "search_indexedcell_restricted_groups" ' '("indexedcell_id", "group_id") VALUES (806, 170) RETURNING ' '"search_indexedcell_restricted_groups"."id"', 'time': '0.000'},
3.2:
{'sql': 'INSERT INTO "search_indexedcell_restricted_groups" ' '("indexedcell_id", "group_id") VALUES (1206, 176) ON CONFLICT DO ' 'NOTHING', 'time': '0.000'},
Updated by Frédéric Péters over 2 years ago
Et j'ai regardé à l'envers je pensais que 3.2 augmentait le nombre de requêtes mais ça descend, c'est super.
tox: use django 3.2 (#67724)