Checklist migration listes spip

migration faite

  • spip-dev :ballot_box_with_check:

migration intégrale

On migre les listes suivantes (avec continuité de réception du mail par les adresses qui y étaient inscrites) :

  • spip
  • spip-trad
  • spip-de
  • spip-en
  • spip-es

Les deux listes suivantes sont aussi à migrer avec leurs adresses courriel, mais en prêtant attention aux contrôles d’accès :

  • spip-ann (annonces, liste de DIFFUSION SEULEMENT :hot_pepper:: archives publiques, autorisation de poster limitée aux modos)
  • spip-team (liste à accès restreint :hot_pepper:, archives sur abonnement :hot_pepper:, utilisée essentiellement pour discuter des problèmes de sécurité)

Pour les autres listes spip-* on récupère les archives (pour « l"Histoire »), mais il n’y a pas de redirection du mail ni maintien des adresses courriel. Autrement dit si quelqu’un envoie un mail à spip-commit@rezo.net ça renvoie désormais une erreur « adresse inconnue » (de la part de rezo), et si quelque poste sur un topic dans la catégorie « spip-commit », le post est accepté par discourse mais n’est envoyé à personne par email.

C’est le cas des listes suivantes :

  • spip-ar
  • spip-avec-escal
  • spip-commit
  • spip-herbier
  • spip-lille
  • spip-paname
  • spip-party-toulouse
  • spip-strasbourg
  • spip-toulouse
  • spip-zone-commit
  • spip-zone

De mon côté je modifie les réglages postfix de rezo.net pour qu’ils renvoient :

  1. les adresses des listes « actives » vers discourse :ballot_box_with_check:
  2. les adresses des listes « archivées » vers /dev/null (ce n’est que du spam à priori) :ballot_box_with_check:
  3. pour l’adresse spip-team@rezo et spip-ann@rezo, je ne sais pas quel est le meilleur choix : sans doute pour spip-team@rezo.net il faut continuer à l’envoyer vers @b_b, @cerdic @kent1 et @cy_altern qui filtrent le spam ?

Enfin, je supprime les listes mailman correspondantes.

(en lien avec Migration des autres listes spip (samedi 22 mai, 11am) - #10 par rastapopoulos)

cc: @loic @pilou

3 « J'aime »

Je tombe sur un bug du script d’import:

_request DEBUG request GET https://discuter.spip.net/admin/users/list/active.json params={'filter': 'XXXX', 'show_emails': 'true'} data=None
_request DEBUG response 200: '[{"id":287,"username":"23be7e5cc810de3c7603","name":"","avatar_template":"/letter_avatar_proxy/v4/letter/2/ce7236/{size}.png","email":"XXXX","secondary_emails":[],"active":false,"admin":false,"moderator":false,"last_seen_at":"2008-07-29T11:59:15.000Z","last_emailed_at":"2021-05-05T10:13:02.415Z","created_at":"2021-04-25T20:00:04.967Z","last_seen_age":404358845.9702157,"last_emailed_a'
_request DEBUG request GET https://discuter.spip.net/categories.json params={} data=None
_request DEBUG response 403: '{"errors":["Vous n\'avez pas la permission de voir cette ressource."],"error_type":"invalid_access"}'
Traceback (most recent call last):
  File "/srv/.direnv/python-3.7.3/bin/mailman2discourse", line 8, in <module>
    sys.exit(main())
  File "/srv/.direnv/python-3.7.3/lib/python3.7/site-packages/mailman2discourse/cmd.py", line 73, in main
    return Cmd(*argv).main()
  File "/srv/.direnv/python-3.7.3/lib/python3.7/site-packages/mailman2discourse/cmd.py", line 69, in main
    return Importer(self.args).main()
  File "/srv/.direnv/python-3.7.3/lib/python3.7/site-packages/mailman2discourse/importer.py", line 330, in main
    before, after = self.importer()
  File "/srv/.direnv/python-3.7.3/lib/python3.7/site-packages/mailman2discourse/importer.py", line 325, in importer
    (before['notifications'], after['notifications']) = self.users_notifications()
  File "/srv/.direnv/python-3.7.3/lib/python3.7/site-packages/mailman2discourse/importer.py", line 117, in users_notifications
    email, self.name_get(), self.notification_level_get(email))
  File "/srv/.direnv/python-3.7.3/lib/python3.7/site-packages/mailman2discourse/discourse.py", line 363, in category_notifications
    category = self.category_get(name)
  File "/srv/.direnv/python-3.7.3/lib/python3.7/site-packages/mailman2discourse/discourse.py", line 269, in category_get
    slug = self.category_slug(name)
  File "/srv/.direnv/python-3.7.3/lib/python3.7/site-packages/mailman2discourse/discourse.py", line 263, in category_slug
    for category in self.d._get('/categories.json')['category_list']['categories']:
  File "/srv/.direnv/python-3.7.3/lib/python3.7/site-packages/mailman2discourse/discourse.py", line 43, in _get
    return self._request(GET, path, params=kwargs)
  File "/srv/.direnv/python-3.7.3/lib/python3.7/site-packages/mailman2discourse/discourse.py", line 82, in _request
    raise DiscourseClientForbidden(request_message)
mailman2discourse.discourse.DiscourseClientForbidden: request GET https://discuter.spip.net/categories.json params={} data=None

Qui vient d’une mauvaise prise en compte des utilisateurs désactivés. Et c’est ma faute vu que c’est moi qui l’ai désactivé:

Je vais le réactiver le temps de l’import.

En fait non, je vais pas faire ça: il y en a des dizaines. Ca s’est produit comme ça:

  • import de spip-dev qui ressuscite ~250 utilisateurs qui n’auraient pas du l’être
  • je désactive manuellement tous ces utilisateurs et le bug à l’origine du problème est corrigé

Mais un certain nombre de ces utilisateurs sont malgré tout inscrits dans la liste spip@ et doivent donc être réactivés. Comme ce n’est pas un bug persistant je vais faire un hack qui les affiche tous et je vais les réactiver à la main.

Le bug ne se produirait pas si –preserve-existing-user-preferences n’avait pas été ajouté. C’est un oubli de ma part: il faut considérer les utilisateurs désactivés comme si c’était des utilisateurs qui n’existent pas et les activer. Du coup le fix est assez simple:

Le correctif passe les tests et je l’ai appliqué manuellement. L’import reprend.

L’import des abonnés de spip est terminé. Je passe aux autres listes. Et ensuite à l’import des archives qui demande une interruption du forum. D’ici une demi heure a peu près.

Le spam n’ayant pas attendu la fin de la migration, j’ai désactivé l’acceptation de courriels provenant de personnes non abonnées pour toutes les catégories. A rétablir ensuite en fonction des préférences de chacun·e.

Ca progresse sans encombre, c’est juste un peu long.

C’est terminé depuis quelques minutes.

On peut même dire que ça a été très long (12h), en raison d’I/O disques beaucoup plus lentes qu’attendues. Mais il n’y a pas eu d’erreurs et les 350,000 messages d’archives ont été imports.

Les courriels en attente de réception vont être traités dans les heures qui viennent.

Je suis disponible aujourd’hui si vous remarquez quelque chose d’anormal.

2 « J'aime »

Pour référence:

Salut,

déjà, merci pour tout ce super boulot, l’outil offre de nouvelles perspectives très intéressantes :slight_smile:

J’ai l’impression que mon ancienne adresse a également un compte (@jeanmarie). Je ne sais pas si c’est lié à la récente migration ou s’il existait déjà avant. Si besoin, on peut fusionner les 2, idéalement en gardant les prefs de celui-ci @jeanmarie.

merci

1 « J'aime »

@jeanmarie c’est fait. Cet utilisateur avait en effet été créé à l’occasion de l’import cette nuit (abonnement à spip-ann@).

Super, merci encore :slight_smile:

1 « J'aime »

:champagne:

1 « J'aime »

Hello, super pour tout ce boulot loooong :slight_smile:

Par contre il manque toujours la liste « spip-doc » comme je le disais hier ou avant hier non ? Il y a du contenu intéressant à garder dedans, au moins en archivage.

1 « J'aime »

L’archive de spip-doc vient d’être importée.

1 « J'aime »

Loïc, sais tu si on peut : créer une catégorie tel que « Langues » (nom à trouver), et déplacer dedans « spip-en », « spip-ar », « spip-es » sans que ça ne pose problème aux mails qui ecrivent à spip-en@rezo.net ?

On rend privées les listes des groupes locaux de Party. Il y a des RIB qui trainent dedans, c’est pas cool.

1 « J'aime »

spip-doc m’avait échappé ; en fait c’est une liste effacée mais dont on avait conservé les archives, et c’est le cas de plusieurs autres.

On pourrait sans doute à l’occasion importer aussi leurs archives (pour l’Histoire), si elles en ont ? Mais il faudrait vérifier leur statut (archives publiques ou non ; [EDIT:] et vérifier si c’est une bonne idée, cf. l’histoire des RIB).

Une liste si jamais : spip; spip-ann; spip-ar; spip-auxerre; spip-avec-escal; spip-avignon; spip-ay; spip-be; spip-bg; spip-bordeaux; spip-br; spip-ca; spip-chti; spip-commit; spip-contrib; spip-core; spip-cpf; spip-crea; spip-da; spip-de; spip-dev; spip-doc; spip-en; spip-eo; spip-es; spip-fa; spip-genea; spip-geneve; spip-gl; spip-grenoble; spip-herbier; spip-hu; spip-it; spip-ja; spip-lab; spip-lb; spip-lille; spip-limousin; spip-lyon; spip-mag; spip-marseille; spip-montpellier; spip-nantes; spip-nl; spipnoz; spip-oc; spip-oise; spip-org; spip-paname; spip-papier; spip-party-toulouse; spip-pl; spip-poitiers; spip-programmer; spip-pt; spip-ro; spip-ru; spip-strasbourg; spip-team; spip-toulouse; spip-tr; spip-trad; spip-troglo; spip-vi; spip-websocial; spip-zh; spip-zone; spip-zone-commit

Pour toutes les listes locales ce n’est pas la peine : les gens qui ont fait du SPIP ya 15 ans pour moi il n’y a aucun intéret à reprendre ces archives : de plus AVANT, les archives n’étaient pas disponibles publiquement, il fallait se connecter etc … Donc vraiment je pense qu’il faut laisser tomber