- TypeScript, Rust (Language)
- Nuxt (Framework for Desktop, Mobile and Web)
- Tauri (Framework for Desktop)
- Capacitor (Framework for Mobile)
- CI / CD (Github Actions)
- Docker / DockerCompose (Development-Local)
- Kubernetes (Development-Remote, Staging and Production)
On utilise la convention SemVer : https://semver.org/lang/fr/
Pour une Release classique : MAJOR.MINOR.PATCH
Pour une Pre-Release, exemples : MAJOR.MINOR.PATCH-rc.0 OR MAJOR.MINOR.PATCH-beta.3
Nous utilison release-please de Google pour versionner, via Github Actions.
Pour que cela sois pris en compte il faut utiliser les conventionnal commits : https://www.conventionalcommits.org/en/v1.0.0/
Release Please crée une demande d'extraction de version après avoir remarqué que la branche par défaut contient des « unités publiables » depuis la dernière version. Une unité publiable est un commit sur la branche avec l'un des préfixes suivants : feat
/ feat!
et fix
/ fix!
.
La première Release que créer release-please automatiquement est la version : 1.0.0
Pour créer une Pre-Release faire un commit vide, par exemple si on'ai à la version 1.0.0, on peut faire :
git commit --allow-empty -m "chore: release 1.1.0-rc.0" -m "Release-As: 1.1.0-rc.0"
Nous utilisons les conventions de commit pour maintenir une cohérence dans l'historique du code et faciliter le versionnement automatique avec release-please. Voici les types de commits que nous utilisons, ainsi que leur impact sur le versionnage :
-
feat : Introduction d'une nouvelle fonctionnalité pour l'utilisateur. Entraîne une augmentation de la version mineure (par exemple, de 1.0.0 à 1.1.0).
-
feat! : Introduction d'une nouvelle fonctionnalité avec des modifications incompatibles avec les versions antérieures (breaking changes). Entraîne une augmentation de la version majeure (par exemple, de 1.0.0 à 2.0.0).
-
fix : Correction d'un bug pour l'utilisateur. Entraîne une augmentation de la version patch (par exemple, de 1.0.0 à 1.0.1).
-
fix! : Correction d'un bug avec des modifications incompatibles avec les versions antérieures (breaking changes). Entraîne une augmentation de la version majeure.
-
docs : Changements concernant uniquement la documentation. N'affecte pas la version.
-
style : Changements qui n'affectent pas le sens du code (espaces blancs, mise en forme, etc.). N'affecte pas la version.
-
refactor : Modifications du code qui n'apportent ni nouvelle fonctionnalité ni correction de bug. N'affecte pas la version.
-
perf : Changements de code qui améliorent les performances. Peut entraîner une augmentation de la version mineure.
-
test : Ajout ou correction de tests. N'affecte pas la version.
-
chore : Changements qui ne modifient ni les fichiers source ni les tests (par exemple, mise à jour des dépendances). N'affecte pas la version.
-
ci : Changements dans les fichiers de configuration et les scripts d'intégration continue (par exemple, GitHub Actions). N'affecte pas la version.
-
build : Changements qui affectent le système de build ou les dépendances externes (par exemple, npm, Docker). N'affecte pas la version.
-
revert : Annulation d'un commit précédent. N'affecte pas la version.
Pour indiquer qu'un commit introduit des modifications incompatibles avec les versions antérieures (breaking changes), ajoutez un ! après le type de commit, par exemple feat! ou fix!.
Pour plus de détails sur les conventions de commit, consultez : Conventional Commits
- Development-Remote : https://dev.example.flapi.org
- Staging : https://staging.example.flapi.org
- Production : https://example.flapi.org
- AppStore (iOS) :
- PlayStore (Android)
- Windows :
- macOS :
- Linux :
- Download and Install Microsoft Visual Studio 2022 (MSVC >= v143 and Windows SDK >= 10): https://visualstudio.microsoft.com/fr/vs/
- Download and Install WebView2 (if windows < 10) : https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section
- Download and Install Rust version >= 1.84.0 : https://www.rust-lang.org/tools/install
- Spécifiquement pour build du ARM64 il faut installer LLVM et ajouté au PATH : https://github.com/llvm/llvm-project/releases
- Install NodeJS latest LTS for Nuxt/Tauri :
# nvm
# nvm install : https://github.com/coreybutler/nvm-windows/releases
# Install Node.js latest LTS
nvm install lts && nvm use lts
- Install dependencies for Nuxt.js/Tauri
# npm
# Install dependencies
npm install
- Install targets rust for build/compile Tauri :
npm run desktop:install:target:windows
- Il y a toujours une chaine d'outils qui est utilisé par défault, c'est D0DB celui qui est choisi lors de la compilation
# Pour connaitre la chaine d'outils actuellement utilisé :
rustup default
# Pour changer la chaine d'outils par défault utilisé, exemples :
rustup default stable-x86_64-pc-windows-msvc # Windows x64
rustup default stable-aarch64-pc-windows-msvc # Windows arm64
- Setup Command Line Tools :
xcode-select --install
- Download and Install Rust version >= 1.84.0 :
#curl
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
- Install NodeJS LTS latest for Nuxt/Tauri :
# nvm
# nvm install : https://github.com/coreybutler/nvm-windows/releases
# Install Node.js latest LTS
nvm install lts && nvm use lts
- Install dependencies for Nuxt/Tauri
# npm
# Install dependencies
npm install
- Install targets rust for build/compile Tauri :
npm run desktop:install:target:macos
- Il y a toujours une chaine d'outils qui est utilisé par défault, c'est celui qui est choisi lors de la compilation
# Pour connaitre la chaine d'outils actuellement utilisé :
rustup default
# Pour changer la chaine d'outils par défault utilisé, exemples :
rustup default stable-x86_64-apple-darwin # macOS Intel x86_64
rustup default stable-aarch64-unknown-linux-gnu # macOS Apple Silicon arm64
- Dépendances système (Debian / Ubuntu) :
sudo apt update
sudo apt install -y libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
fuse # for .AppImage
- Install Rust version >= 1.84.0 :
#curl
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
- Install NodeJS latest LTS for Nuxt/Tauri :
# nvm
# nvm install : https://github.com/coreybutler/nvm-windows/releases
# Install Node.js latest LTS
nvm install lts && nvm use lts
- Install dependencies for Nuxt/Tauri
# npm
# Install dependencies
npm install
- Install targets rust for build/compile Tauri :
npm run desktop:install:target:linux
- Il y a toujours une chaine d'outils qui est utilisé par défault, c'est celui qui est choisi lors de la compilation
# Pour connaitre la chaine d'outils actuellement utilisé :
rustup default
# Pour changer la chaine d'outils par défault utilisé, exemples :
rustup default stable-x86_64-unknown-linux-gnu # Linux x64
rustup default stable-aarch64-unknown-linux-gnu # Linux arm64
- Steps by Platform :
# Windows :
1. Requirements : Windows >= 10
2. Download and Install WSL2 : https://learn.microsoft.com/fr-fr/windows/wsl/install
3. Download and Install Docker Desktop : https://docs.docker.com/desktop/install/windows-install/
# macOS :
1. Requirements : macOS Intel x86_64 or macOS Apple Silicon arm64
2. Requirements (2) : macOS 11.0 (Big Sur) +
2. Download and Install Docker Desktop : https://docs.docker.com/desktop/install/mac-install/
# Linux (Ubuntu / Debian) :
1. Requirements : Ubuntu >= 20.04 or Debian >= 10
2. Download and Install Docker (Ubuntu) : https://docs.docker.com/engine/install/ubuntu/
3. Download and Install Docker (Debian) : https://docs.docker.com/engine/install/debian/
- Download and Install
Xcode
>= 16.0 - Download and Install
Xcode Command Line Tools
xcode-select --install
- Download and Install
Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Download and Install
Cocoapods
brew install cocoapods
- Download and Install Node.js >= 20.0.0
# nvm windows install : https://github.com/coreybutler/nvm-windows/releases
# Install Node.js latest LTS
nvm install lts && nvm use lts
- Download and Install Node.js >= 20.0.0
# nvm windows install : https://github.com/coreybutler/nvm-windows/releases
# Install Node.js latest LTS
nvm install lts && nvm use lts
- Download and Install
Android Studio
>= 2024.2.1 : https://developer.android.com/studio?hl=fr - Java JDK >= 21 : https://www.oracle.com/fr/java/technologies/downloads/#jdk21-windows
- Configure SDK Android :
- Ouvrir Android Studio.
- Dans
Android Studio
, cliquez en haut surTools
dans le menu, puis surSDK Manager
. - Une fenetre s'ouvre, ouvrer l'onglet
Languages & Frameworks
puis cliquer surAndroid SDK
. - Cliquer sur
SDK Platforms
et cocher les cases suivantes :- Android API 35 :
Android SDK Platform 35
Sources for Android 35
- Android API 35 :
- Cliquer ensuite sur
SDK Tools
et cocher les cases suivantes :- Android SDK Build-Tools
35.0.1
- NDK (Side by side)
28.0.12916984
- Android SDK Command-line Tools
17.0
Android Emulator
Google USB Driver
- Android SDK Build-Tools
- Puis cliquer sur le boutton
Apply
en bas à droite pour installer les packages.
- Open Docker Desktop
- Run command :
- Ajoutées les SECRETS_GITHUB pour :
- DOCKER_HUB_USERNAME
- DOCKER_HUB_ACCESS_TOKEN
- KUBECONFIG
- PAT (crée un nouveau token si besoin sur le site de github puis dans le menu du "Profil" puis -> "Settings" -> "Developper Settings' -> 'Personnal Access Tokens' -> Tokens (classic))