Add CLAUDE.md for AI assistant guidance. Add documentation for PR split plan, implementation checklist, and recurrence feature specifications. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5.5 KiB
Plan : Découpage en plusieurs PRs
Contexte
- 24 commits depuis
main - 158 fichiers modifiés (+16,943 / -10,848 lignes)
- Travail accumulé sans découpage en PRs
Stratégie
Créer 5-6 branches depuis main, chacune avec des commits logiques,
puis créer une PR pour chaque branche.
Approche technique :
- Rester sur
poc/event-calendar(branche actuelle de travail) - Pour chaque PR : créer une nouvelle branche depuis
main, copier les fichiers pertinents depuispoc/event-calendar, commiter
Découpage proposé (6 PRs)
PR 1 : Backend - Invitations CalDAV avec emails
Branche : feat/caldav-invitations
Fichiers :
docker/sabredav/src/AttendeeNormalizerPlugin.phpdocker/sabredav/src/HttpCallbackIMipPlugin.phpdocker/sabredav/server.phpdocker/sabredav/sql/pgsql.calendars.sqlsrc/backend/core/services/calendar_invitation_service.pysrc/backend/core/api/viewsets_caldav.pysrc/backend/core/templates/emails/calendar_invitation*.html/txtsrc/backend/calendars/settings.pyenv.d/development/backend.defaultsenv.d/development/caldav.defaultscompose.yaml
Description PR : Ajout du scheduling CalDAV (iTIP) avec envoi d'emails pour les invitations, mises à jour et annulations.
PR 2 : Frontend - Refactoring CalDavService et helpers
Branche : refactor/caldav-service
Fichiers :
features/calendar/services/dav/CalDavService.tsfeatures/calendar/services/dav/EventCalendarAdapter.tsfeatures/calendar/services/dav/caldav-helpers.tsfeatures/calendar/services/dav/helpers/*.tsfeatures/calendar/services/dav/types/*.tsfeatures/calendar/services/dav/constants.tsfeatures/calendar/services/dav/__tests__/*.ts
Description PR : Refactoring du service CalDAV avec extraction des helpers, meilleure gestion des types et ajout de tests.
PR 3 : Frontend - Composant Scheduler (EventModal, handlers)
Branche : feat/scheduler-component
Dépend de : PR 2
Fichiers :
features/calendar/components/scheduler/*features/calendar/components/RecurrenceEditor.tsxfeatures/calendar/components/RecurrenceEditor.scssfeatures/calendar/components/AttendeesInput.tsxfeatures/calendar/components/AttendeesInput.scssfeatures/calendar/contexts/CalendarContext.tsxpages/calendar.tsxpages/calendar.scss
Description PR : Nouveau composant Scheduler avec EventModal pour la création/édition d'événements, gestion des récurrences et des invités.
PR 4 : Frontend - Refactoring CalendarList modulaire
Branche : refactor/calendar-list
Fichiers :
features/calendar/components/calendar-list/*features/calendar/components/LeftPanel.tsxfeatures/calendar/components/MiniCalendar.tsxfeatures/calendar/components/MiniCalendar.scssfeatures/calendar/components/CreateCalendarModal.tsxfeatures/calendar/components/CalendarList.scssfeatures/calendar/components/index.ts
Description PR : Refactoring de CalendarList en composants modulaires (CalendarItemMenu, CalendarListItem, CalendarModal, DeleteConfirmModal).
PR 5 : Frontend - Support i18n et locales
Branche : feat/calendar-i18n
Fichiers :
features/calendar/hooks/useCalendarLocale.tsfeatures/i18n/*(si modifié)src/frontend/apps/e2e/__tests__/calendar-locale.test.ts
Description PR : Ajout du support des locales pour le calendrier avec tests e2e.
PR 6 : Frontend - Nettoyage code mort
Branche : chore/remove-dead-code
Fichiers supprimés :
features/ui/components/breadcrumbs/features/ui/components/circular-progress/features/ui/components/infinite-scroll/features/ui/components/info/features/ui/components/responsive/features/forms/components/RhfInput.tsxhooks/useCopyToClipboard.tsxutils/useLayout.tsxfeatures/calendar/components/EventModalDeprecated.tsxfeatures/calendar/components/EventModalAdapter.tsxfeatures/calendar/hooks/useEventModal.tsxfeatures/calendar/hooks/useCreateEventModal.tsxsrc/frontend/packages/open-calendar/(package entier)
Description PR : Suppression du code mort et des composants inutilisés.
Ordre de merge recommandé
1. PR 1 (Backend invitations) - indépendante
2. PR 2 (CalDavService) - indépendante
3. PR 6 (Dead code) - indépendante
4. PR 5 (i18n) - indépendante
5. PR 4 (CalendarList) - après PR 6
6. PR 3 (Scheduler) - après PR 2, PR 4
Étapes d'exécution
Pour chaque PR :
# 1. Créer la branche depuis main
git checkout main
git pull origin main
git checkout -b <branch-name>
# 2. Copier les fichiers depuis poc/event-calendar
git checkout poc/event-calendar -- <fichiers>
# 3. Vérifier et commiter
git add .
git commit -m "..."
# 4. Pousser et créer la PR
git push -u origin <branch-name>
gh pr create --title "..." --body "..."
Fichiers à exclure des PRs
CLAUDE.md(fichier local)IMPLEMENTATION_CHECKLIST.md,README_RECURRENCE.md, etc. (documentation temporaire à supprimer ou consolider)
Vérification
Avant chaque PR :
cd src/frontend/apps/calendars
yarn tsc --noEmit # Types OK
yarn lint # Lint OK
yarn test # Tests OK
Faisabilité
Oui, c'est tout à fait possible. La stratégie git checkout <branch> -- <files>
permet de récupérer des fichiers spécifiques d'une branche sans perdre
l'historique de travail. Chaque PR sera autonome et reviewable indépendamment.