Skip to content

Commit e973693

Browse files
authored
Merge pull request #25 from laruiss/24-feat-migration-nuxt4-support-exclusif
feat(nuxt4): 🚀 migration vers Nuxt 4 avec support exclusif
2 parents 617eb4b + 6c0d6ee commit e973693

23 files changed

+10190
-16085
lines changed

.eslintignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

.eslintrc

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 235 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,235 @@
1+
# 🎯 Conventions Git & Commits
2+
3+
Ce fichier contient les instructions pour créer des messages de commit respectant les conventions du projet.
4+
5+
## Format des commits
6+
7+
Le projet utilise le format conventional commit avec des gitmojis.
8+
9+
## Structure des messages de commit
10+
11+
```text
12+
type(scope): gitmoji description courte
13+
14+
## Pourquoi les changements ont été faits :
15+
- Explication du contexte et des raisons
16+
- Problème résolu ou besoin adressé
17+
18+
## Quelles modifications ont été apportées :
19+
- Description détaillée des modifications
20+
- Impact sur l'architecture/fonctionnalités
21+
22+
closes #1234
23+
```
24+
25+
Pas de majuscule au début de la description courte.
26+
27+
Utilise la troisième personne du singulier au présent de l'indicatif pour la description courte.
28+
29+
### Types de commits principaux (à utiliser en priorité)
30+
31+
Ces types couvrent 90% des cas d'usage courants dans le projet :
32+
33+
#### 🔄 **Développement quotidien**
34+
35+
- `feat`: ✨ Nouvelles fonctionnalités
36+
- `fix`: 🐛 Corrections de bugs
37+
- `refactor`: ♻️ Refactoring (ni feat ni fix)
38+
- `style`: 💄 Formatage, style (pas de changement de logique)
39+
40+
#### 📚 **Documentation et maintenance**
41+
42+
- `docs`: 📝 Documentation
43+
- `test`: ✅ Ajout/modification de tests
44+
- `chore`: 🔧 Maintenance, configuration, dépendances
45+
46+
#### 🚀 **Build et déploiement**
47+
48+
- `build`: 📦️ Changements qui affectent le système de build ou dépendances externes
49+
- `ci`: 👷 CI/CD, GitHub Actions
50+
51+
#### 🚨 **Urgences**
52+
53+
- `hotfix`: 🚑️ Corrections critiques en urgence
54+
- `perf`: ⚡ Améliorations de performance
55+
56+
### Types de commits spécialisés (usage occasionnel)
57+
58+
Ces types sont à utiliser dans des cas spécifiques :
59+
60+
#### **Corrections spéciales**
61+
62+
- `revert`: ⏪ Annulation de commit
63+
- `breaking`: 💥 Changements incompatibles (breaking changes)
64+
- `security`: 🔒️ Corrections de sécurité
65+
- `typo`: ✏️ Correction de fautes de frappe
66+
- `lint`: 🚨 Correction des warnings du linter/compilateur
67+
68+
#### 🏗️ **Structure et architecture**
69+
70+
- `move`: 🚚 Déplacement ou renommage de fichiers
71+
- `remove`: 🔥 Suppression de code ou fichiers
72+
- `merge`: 🔀 Fusion de branches
73+
74+
#### 📦 **Dépendances**
75+
76+
- `deps-add`: ➕ Ajout d'une dépendance
77+
- `deps-upgrade`: ⬆️ Mise à jour des dépendances
78+
- `deps-remove`: ➖ Suppression d'une dépendance
79+
80+
#### **Interface utilisateur**
81+
82+
- `ui`: � Interface utilisateur et fichiers de style
83+
- `accessibility`: ♿ Améliorations d'accessibilité
84+
- `responsive`: � Design responsive
85+
86+
#### 🔧 **Développement**
87+
88+
- `types`: 🏷️ Types TypeScript
89+
- `config`: 🔧 Fichiers de configuration
90+
- `wip`: 🚧 Travail en cours (Work In Progress)
91+
92+
## 📝 Exemples pratiques par contexte
93+
94+
### 🎯 **Développement de composants (cas les plus fréquents)**
95+
96+
```text
97+
feat(DsfrButton): ✨ ajoute la variante ghost
98+
99+
## Pourquoi les changements ont été faits :
100+
- Besoin d'une variante de bouton moins visible pour les actions secondaires
101+
- Améliore la hiérarchie visuelle dans les interfaces
102+
103+
## Quelles modifications ont été apportées :
104+
- Ajout de la prop `variant="ghost"` dans DsfrButtonProps
105+
- Nouveau style CSS pour la variante ghost
106+
- Tests et stories mis à jour
107+
108+
closes #1098
109+
```
110+
111+
```text
112+
fix(DsfrModal): 🐛 corrige la fermeture au clic extérieur
113+
114+
## Pourquoi les changements ont été faits :
115+
- La modale ne se fermait pas quand on cliquait sur l'overlay
116+
- Problème d'expérience utilisateur signalé dans l'issue #123
117+
118+
## Quelles modifications ont été apportées :
119+
- Ajout d'un écouteur d'événement click sur l'overlay
120+
- Vérification que le clic ne vient pas de l'intérieur de la modale
121+
122+
closes #987
123+
```
124+
125+
```text
126+
refactor(DsfrTabs): ♻️ simplifie la logique de gestion des onglets actifs
127+
128+
## Pourquoi les changements ont été faits :
129+
- Code complexe et difficile à maintenir
130+
- Améliore la lisibilité pour les futures contributions
131+
132+
## Quelles modifications ont été apportées :
133+
- Remplacement de la logique complexe par un computed plus simple
134+
- Suppression de code redondant
135+
- Même comportement utilisateur maintenu
136+
137+
closes #455
138+
```
139+
140+
### 📚 **Documentation et tests**
141+
142+
```text
143+
docs(DsfrCard): 📝 ajoute des exemples d'utilisation avancée
144+
145+
## Pourquoi les changements ont été faits :
146+
- Les développeurs demandaient plus d'exemples concrets
147+
- Améliore l'adoption du composant
148+
149+
## Quelles modifications ont été apportées :
150+
- Nouveaux exemples dans DsfrCard.md
151+
- Stories Storybook enrichies avec cas d'usage métier
152+
153+
closes #1234
154+
```
155+
156+
```text
157+
test(DsfrInput): ✅ ajoute tests pour la validation des erreurs
158+
159+
## Pourquoi les changements ont été faits :
160+
- Couverture de test insuffisante sur la gestion d'erreurs
161+
- Prévient les régressions sur cette fonctionnalité critique
162+
163+
## Quelles modifications ont été apportées :
164+
- Tests unitaires pour tous les cas d'erreur
165+
- Tests d'interaction utilisateur avec des erreurs
166+
167+
fixes #1045
168+
```
169+
170+
### 🚀 **Build et infrastructure**
171+
172+
```text
173+
ci: 👷 ajoute vérification des liens dans la documentation
174+
175+
## Pourquoi les changements ont été faits :
176+
- Éviter les liens cassés dans la documentation déployée
177+
- Améliore la qualité de la documentation
178+
179+
## Quelles modifications ont été apportées :
180+
- Nouveau job GitHub Actions pour vérifier les liens
181+
- Configuration avec exclusions pour les liens externes temporaires
182+
183+
closes #623
184+
```
185+
186+
```text
187+
chore: 🔧 met à jour la configuration ESLint pour Vue 3.4
188+
189+
## Pourquoi les changements ont été faits :
190+
- Nouvelle version de Vue apporte de nouvelles règles recommandées
191+
- Maintient la qualité du code selon les standards actuels
192+
193+
## Quelles modifications ont été apportées :
194+
- Mise à jour des règles ESLint
195+
- Configuration adaptée aux nouvelles fonctionnalités Vue
196+
197+
closes #678
198+
```
199+
200+
### 🎨 **Styles et interface**
201+
202+
```text
203+
style(global): 💄 harmonise les espacements selon DSFR 1.11
204+
205+
## Pourquoi les changements ont été faits :
206+
- Mise en conformité avec la nouvelle version du DSFR
207+
- Assure la cohérence visuelle avec le système de design
208+
209+
## Quelles modifications ont été apportées :
210+
- Variables CSS mises à jour
211+
- Composants utilisant les nouveaux tokens d'espacement
212+
213+
closes #789
214+
```
215+
216+
### 🎯 **Scopes appropriés pour ce projet**
217+
218+
- **Système** : `build`, `ci`, `types`, `docs`
219+
- **Global** : `global`, `core`, `utils` (si ça impacte plusieurs composants)
220+
221+
### ⚠️ **Anti-patterns à éviter**
222+
223+
```text
224+
❌ feat: ajoute un bouton
225+
✅ feat(DsfrButton): ✨ ajoute la propriété disabled
226+
227+
❌ fix: Bug dans la modale
228+
✅ fix(DsfrModal): 🐛 corrige la fermeture au clic extérieur
229+
230+
❌ update: Change des trucs
231+
✅ refactor(DsfrCard): ♻️ simplifie la structure des slots
232+
233+
❌ feat(DsfrButton): Ajoute disabled prop
234+
✅ feat(DsfrButton): ✨ ajoute la propriété disabled
235+
```

.github/copilot-instructions.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# Instructions de codage IA pour VueDsfr
2+
3+
## Vue d'ensemble du projet
4+
5+
VueDsfr est une bibliothèque de composants Vue 3 qui porte le Système de Design Français (DSFR) vers Vue.js. Elle fournit ~50 composants accessibles et prêts pour la production suivant les normes de design du gouvernement français.
6+
7+
## Architecture et structure des fichiers
8+
9+
## Workflow de développement
10+
11+
### Commandes de build et exécution
12+
13+
```bash
14+
npm install # Installer les dépendances
15+
npm dev # Démarrer le playground (:3000)
16+
npm docs:dev # Démarrer la documentation VitePress (:4173)
17+
npm build # Builder le module
18+
npm test # Exécuter les tests unitaires Vitest
19+
npm lint # Exécuter ESLint
20+
npm format # Corriger automatiquement ESLint
21+
```
22+
23+
### Workflow GitHub : Issues et Pull Requests
24+
25+
- **Issues obligatoires** : Toute PR doit être liée à une issue GitHub
26+
- **Création d'issue** :
27+
- Utiliser `gh issue create` avec titre et description en français
28+
- **Ne pas exécuter la commande** - la fournir à l'utilisateur pour qu'il l'exécute
29+
- Format du titre : `type(scope): 🔧 description courte du problème`
30+
- **Nommage des branches** :
31+
- Préfixe obligatoire avec numéro d'issue : `{numéro-issue}-{type}-{description-kebab-case}`
32+
- Exemple : `1172-fix-semantic-release-refactor-config`
33+
- **Pull Requests** :
34+
- Titre reprenant le message de commit principal
35+
- Corps commençant par Fixes avec référence à l'issue
36+
- Description détaillée du problème et de la solution
37+
- Branche cible : `main` (sauf exceptions)
38+
39+
### Qualité du code et commits
40+
41+
- **Commits** : Suivre les commits conventionnels (voir `.github/conventions-commits.md`)
42+
- **Linting** : @antfu/eslint-config avec règles spécifiques à Vue
43+
- **Pre-commit** : Husky exécute lint-staged sur `*.{vue,ts}`
44+
- **CI** : GitHub Actions exécute les tests, le linting et la vérification de build
45+
46+
### Linting et formatage
47+
48+
- Respecter TOUTES les règles ESLint configurées
49+
- Pas de `console.*`
50+
- Préférer les imports nommés aux imports par défaut
51+
- Ordre alphabétique des imports
52+
53+
### TypeScript
54+
55+
- Types explicites pour toutes les props/interfaces
56+
- Éviter `any`, utiliser `unknown` si nécessaire
57+
- Utiliser les types génériques pour la réutilisabilité
58+
- Interfaces plutôt que types pour les objets
59+
60+
---
61+
62+
## 🧱 Règles générales
63+
64+
- Toujours utiliser **TypeScript** (pas de JavaScript pur).
65+
- Activer les **types stricts** : `strict: true` dans `tsconfig.json`.
66+
- Ne jamais utiliser `any`, `as unknown`, ou les assertions de type non justifiées.
67+
- Préférer les **types explicites** aux inférences implicites si cela améliore la lisibilité.
68+
- Toujours suivre les conventions ESLint du projet.
69+
- Les imports doivent être **ESM** (`import` / `export`) — pas de `require`.
70+
- Toujours penser en **code modulaire**, éviter les fonctions globales.
71+
- Les noms de variables et fonctions doivent être clairs, descriptifs et en anglais.
72+
73+
## 🧭 Documentation & commentaires
74+
75+
- Ajouter un JSDoc clair sur les fonctions publiques ou les utilitaires partagés.
76+
- Expliquer le _pourquoi_ plus que le _comment_ dans les commentaires.
77+
- Préférer les docblocks structurés à des commentaires inline dispersés.
78+
79+
## 🧠 Style et lisibilité
80+
81+
- Préférer la clarté au "clever code".
82+
- Éviter les raccourcis ou la micro-optimisation prématurée.
83+
- Toujours nommer les fonctions selon leur intention (`getUserProfile` plutôt que `fetchData`).
84+
85+
## 💬 Pour Copilot Chat
86+
87+
Quand l’utilisateur demande :
88+
89+
- "Explique ce code" → Fournir une explication pédagogique claire, sans jargon excessif.
90+
- "Refactorise" → Proposer une version plus claire, typée et conforme aux règles ci-dessus.
91+
- "Ajoute des tests" → Générer des tests Vitest minimalistes et lisibles.
92+
- "Ajoute la doc" → Produire du JSDoc complet et concis.

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
22
".": "2.0.0"
3-
}
3+
}

0 commit comments

Comments
 (0)