peertube-plugin-livechat/support/documentation/content/contributing/develop/_index.fr.md
John Livingston 0eb7e75421
New dev workflow:
Contribution now have to be made on the main branch.

A new `documentation` branch is created. Github and Gitlab pipelines are
now working on this branch.

Develop branch is deprecated, as it is no more necessary.
2023-03-07 14:14:19 +01:00

3.3 KiB

+++ title="Développer" description="Développer et proposer des modifications de code" weight=40 chapter=false +++

Toujours annoncer les fonctionnalités sur lesquelles vous voulez travailler en créant un ticket ou en commentant un ticket existant, avant de commencer à travailler dessus. Et annoncez clairement à la communauté que vous commencez à travailler dessus. Ceci afin d'éviter que plusieurs personnes travaillent sur la même chose et entrent en conflit.

Les Pull Request sont à faire sur la branche main.

{{% notice note %}} Jusqu'à mars 2023, il fallait contribuer sur la branche develop. Cette procédure est désormais obsolète. {{% /notice %}}

Pré-requis pour compiler le plugin:

  • vous devez avoir installé npm
  • vous devez avoir installé les venv python (paquet python3-venv sous Debian par exemple)

Pour clôner le dépot :

# Cloner le dépot
git clone https://github.com/JohnXLivingston/peertube-plugin-livechat.git
# Passer sur la branche main si ce n'est pas déjà le cas
git checkout main
# Initialiser les sous-modules. Cette commande est à refaire si jamais la version d'un l'un des sous-module change.
git submodule update --init --recursive

# Installer les dépendances NPM et compiler le plugin pour la première fois :
npm install

# Compiler le plugin après une modification :
npm run build

# Si vous avez un fork du dépot, ajoutez le en remote (exemple) :
git remote add me git@github.com:MON_COMPTE_GITHUB/peertube-plugin-livechat.git

# Créez une branche locale pour vos développements et placez vous dessus (exemple) :
git checkout mon_developpement # NB: si un ticket y est associé, utilisé le nom fix_1234 (où 1234 est le numéro du ticket)
# Pour proposer vos modifications, poussez votre branche sur votre dépot (exemple) :
git push --set-upstream me mon_developpement
# Rendez-vous ensuite sur votre dépot github avec votre navigateur web pour proposer la Pull Request (voir les instructions complémentaires ci-dessous)

Quand vous êtes prêt⋅e à montrer votre code pour avoir un retour, soumettez une Pull Request draft. Quand vous êtes prêt⋅e pour une relecture de code avant merge, soumettez une Pull Request. Dans tous les cas, merci de lier votre Pull Request au ticket concerné en utilisant la syntax de GitHub : «fixes #issue_number».

Le code du front-end est dans le dossier client. Le code backend dans server. Il y a du code partagé entre les deux dans shared.

Pour les instructions génériques concernant le développement de plugins (building, installation, ...), merci de vous référer à la documentation Peertube.

Vous pouvez builder le plugin avec des infos de debug supplémentaires en utilisant :

NODE_ENV=dev npm run build

ESBuild vs Typescript

Ce plugin utilise ESBuild pour compiler le code front-end, comme le plugin peertube-plugin-quickstart officiel. ESBuild peut gérer Typescript, mais ne vérifie pas les types (voir la documentation ESBuild). C'est pourquoi on compile d'abord Typescript avec l'option -noEmit, juste pour vérifier les types (check:client:ts dans le fichier package.json). Ensuite, si tout est ok, on lance ESBuild pour générer le javascript compilé.