2024-06-14 13:36:39 +02:00
[English ](../../contributing.md )
| [Українська ](./contributing_ua.md )
| [Русский ](./contributing_ru.md )
| [Türkçe ](./contributing_tr.md )
| [Deutsch ](./contributing_de.md )
| **Français**
| [Português (BR) ](./contributing_pt_br.md )
| [한국어 ](./contributing_kr.md )
| [বাংলা ](./contributing_bn.md )
| [Español ](./contributing_es.md )
| [Italiano ](./contributing_it.md )
| [Română ](./contributing_ro.md )
| [Polski ](./contributing_pl.md )
| [简体中文 ](./contributing_cn.md )
| [正體中文 ](./contributing_zhtw.md )
| [日本語 ](./contributing_ja.md )
| [हिंदी ](./contributing_hi.md )
2023-11-03 18:00:00 +01:00
2023-10-25 18:38:50 +02:00
## Ensemble, améliorons Bruno !
2023-11-29 11:35:56 +01:00
Je suis content de voir que vous envisagez d'améliorer Bruno. Vous trouverez ci-dessous les règles et guides pour récupérer Bruno sur votre ordinateur.
2023-10-25 18:38:50 +02:00
2023-10-25 18:50:06 +02:00
### Technologies utilisées
2023-10-25 18:38:50 +02:00
2023-11-29 11:35:56 +01:00
Bruno est basé sur NextJs et React. Nous utilisons aussi Electron pour embarquer la version ordinateur (ce qui permet les collections locales).
2023-10-25 18:38:50 +02:00
2023-11-29 11:35:56 +01:00
Les librairies que nous utilisons :
2023-10-25 18:38:50 +02:00
- CSS - Tailwind
- Code Editors - Codemirror
- State Management - Redux
- Icons - Tabler Icons
- Forms - formik
- Schema Validation - Yup
- Request Client - axios
- Filesystem Watcher - chokidar
### Dépendances
2024-08-22 14:43:29 +02:00
Vous aurez besoin de [Node v20.x ou la dernière version LTS ](https://nodejs.org/en/ ) et npm 8.x. Nous utilisons aussi les espaces de travail npm (_npm workspaces_) dans ce projet.
2023-10-25 18:38:50 +02:00
2023-10-25 21:18:05 +02:00
## Développement
2023-11-29 11:35:56 +01:00
Bruno est développé comme une application _client lourd_ . Vous devrez charger l'application en démarrant nextjs dans un premier terminal, puis démarre l'application Electron dans un second.
2023-10-25 21:18:05 +02:00
### Dépendances
- NodeJS v18
### Développement local
```bash
2023-11-29 11:35:56 +01:00
# utiliser node en version 18
2023-10-25 21:18:05 +02:00
nvm use
2023-11-29 11:35:56 +01:00
# installation des dépendances
2023-10-25 21:18:05 +02:00
npm i --legacy-peer-deps
2023-11-29 11:35:56 +01:00
# construction des docs graphql
2023-10-25 21:18:05 +02:00
npm run build:graphql-docs
2023-11-29 11:35:56 +01:00
# construction de bruno query
2023-10-25 21:18:05 +02:00
npm run build:bruno-query
2024-08-05 14:50:03 +02:00
# construction de bruno common
npm run build:bruno-common
2023-11-29 11:35:56 +01:00
# démarrage de next (terminal 1)
2023-10-25 21:18:05 +02:00
npm run dev:web
2023-11-29 11:35:56 +01:00
# démarrage du client lourd (terminal 2)
2023-10-25 21:18:05 +02:00
npm run dev:electron
```
### Dépannage
2024-04-06 02:38:50 +02:00
Vous pourriez rencontrer une erreur `Unsupported platform` durant le lancement de `npm install` . Pour résoudre cela, veuillez supprimer le répertoire `node_modules` ainsi que le fichier `package-lock.json` et lancez à nouveau `npm install` . Cela devrait installer tous les paquets nécessaires pour lancer l'application.
2023-10-25 21:18:05 +02:00
```shell
2023-11-29 11:35:56 +01:00
# Efface les répertoires node_modules dans les sous-répertoires
2023-10-25 21:18:05 +02:00
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
rm -rf "$dir"
done
2023-11-29 11:35:56 +01:00
# Efface les fichiers package-lock.json dans les sous-répertoires
2023-10-25 21:18:05 +02:00
find . -type f -name "package-lock.json" -delete
```
### Tests
```bash
# bruno-schema
npm test --workspace=packages/bruno-schema
# bruno-lang
npm test --workspace=packages/bruno-lang
```
2023-12-11 20:09:20 +01:00
### Ouvrir une Pull Request
- Merci de conserver les PR minimes et focalisées sur un seul objectif
- Merci de suivre le format de nom des branches :
- feature/[feature name]: Cette branche doit contenir une fonctionnalité spécifique
2024-04-06 02:38:50 +02:00
- Exemple : feature/dark-mode
2023-12-11 20:09:20 +01:00
- bugfix/[bug name]: Cette branche doit contenir seulement une solution pour un bug spécifique
2024-05-22 15:47:11 +02:00
- Exemple : bugfix/bug-1