quiz-anthropocene / admin-backend

Quiz de l'Anthropocène : des questions/réponses pour mieux appréhender les limites de notre planète
https://admin.quizanthropocene.fr
17 stars 4 forks source link

Github : scinder le projet en plusieurs repo #1847

Closed raphodn closed 2 years ago

raphodn commented 2 years ago

Quoi ?

Transformer le "monorepo" en plusieurs repos

Pourquoi ?

Comment ?

Questions en suspens

dq18 commented 2 years ago

Pourquoi pas simplement créer deux branches "frontend" et "backend" pour la separation of concerns et clareté? Pas sûr que ça résolve le déployement automatique comme je ne sais pas vraiment comment ça se passe

raphodn commented 2 years ago

Une branche n'a pas vocation a rester indéfiniment ouverte, vu qu'au fur et à mesure que master avance, elle prend du retard.

C'est 2 codebases différentes, avec 2 technologies différentes, donc le plus logique serait 2 repos (avec 2 README, setups, Github Actions, etc).

Il faut que je me renseigne pour creer une organisation. Et surtout avoir la data d'exportée dans le repo du Frontend, car actuellement il en a besoin..

raphodn commented 2 years ago

TODO v1 : nouvelle organisation + transfer ownership

raphodn commented 2 years ago

TODO v2 : split de la codebase https://docs.github.com/en/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository

Actions effectuées

  1. renommé "know-your-planet" en "admin-backend"
  2. créer un nouveau repo quiz-anthropocene/public-frontend
  3. cloné à nouveau "admin-backend" en local, et renommé en "public-frontend"
  4. cd public-frontend & git filter-repo --path frontend/ --path data/ & copier/modifier les fichiers README, CONTRIBUTING, ...
  5. mettre à jour origin, et faire un git push sur ce nouveau repo
  6. mettre à jour Netlify
  7. cd admin-backend & git filter-repo --subdirectory-filter backend/ --force & copier/modifier les fichiers README, CONTRIBUTING, ...
  8. faire un git push pour mettre à jour le repo
  9. mettre à jour Scalingo
OLD = "quiz-anthropocene/know-your-planet"
NEW = "quiz-anthropocene/public-frontend"
for q in Question.objects.all():
    if OLD in q.answer_image_url:
        qaei = q.answer_image_url.replace(OLD, NEW)
        Question.objects.filter(id=q.id).update(answer_image_url=qaei)
// same for Question.answer_extra_info ; Question.answer_audio ; Quiz.image_background_url
raphodn commented 2 years ago

Avant : https://github.com/raphodn/know-your-planet

Maintenant :