1
1
mirror of https://github.com/theoludwig/p61-project.git synced 2024-07-17 07:00:12 +02:00
p61-project/docs/CONVENTIONS.md

43 lines
2.1 KiB
Markdown
Raw Normal View History

2024-03-15 22:48:28 +01:00
# Conventions développement informatique
## Linting/Formatting/Tests
Le code est formaté grâce à [Prettier](https://prettier.io/) et vérifié grâce à [ESLint](https://eslint.org/) et à [TypeScript](https://www.typescriptlang.org/) pour s'assurer que le code respecte les bonnes pratiques de développement, et détecter en amont les possibles erreurs.
Nous utilisons également [Jest](https://jestjs.io/) pour les tests automatisés.
```sh
# Lint
npm run lint:prettier
npm run lint:eslint
npm run lint:typescript
# Test
npm run test
2024-03-23 01:43:27 +01:00
# Test Snapshots Update
npm run test -- --u
2024-03-15 22:48:28 +01:00
```
Une pipeline CI est en place pour vérifier que le code respecte ces bonnes pratiques et que les tests passent.
2024-03-15 22:48:28 +01:00
## GitFlow
2024-04-09 23:53:55 +02:00
Le projet suit la convention [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/) reposant sur 3 branches principales:
2024-03-15 22:48:28 +01:00
2024-03-16 00:36:44 +01:00
- `main`: Contient le code de la dernière version stable et déployé en production.
2024-03-23 01:12:58 +01:00
- `staging`: Contient le code en cours de test avant déploiement en production, Quality Assurance (QA).
2024-04-09 23:53:55 +02:00
- `develop`: Contient le code en cours de développement. Les nouvelles fonctionnalités et les correctifs de bugs sont fusionnés ici régulièrement.
2024-03-15 22:48:28 +01:00
2024-04-09 23:53:55 +02:00
Idéalement, chaque nouvelle fonctionnalité ou correctif de bug est développé dans une branche dédiée à partir de `develop`, nommée `feat/<nom-de-la-fonctionnalité>` ou `fix/<nom-du-bug>`. Une fois le développement terminé, une merge request est créée pour demander une revue de code, et une fois validée, la branche est fusionnée dans `develop`, puis supprimée.
2024-03-16 00:36:44 +01:00
2024-03-15 22:48:28 +01:00
## Convention des commits
Les commits respectent la convention [Conventional Commits](https://www.conventionalcommits.org/) et [Semantic Versioning](https://semver.org/) pour la gestion des versions et des releases en fonction des commits.
Les commits doivent être **atomiques** c'est à dire qu'il respecte 3 règles:
2024-03-16 00:36:44 +01:00
- Ne concerne qu'un seul sujet (une fonctionnalité, une correction de bug, etc.).
- Doit avoir un message clair et concis.
2024-04-09 23:53:55 +02:00
- Ne doit pas rendre de dépôt "incohérent" (ne bloque pas la CI du projet).