Monorepo global des autres repos
|
|
||
|---|---|---|
| .mise | ||
| apps@b1bd2e714e | ||
| architecture@155a04c73d | ||
| aur@b78e7c7c9e | ||
| choco@a439eef5ee | ||
| homebrew@eb613980bd | ||
| meta@0b5ea25af8 | ||
| nix@56f2d92fdb | ||
| scoop@0bc55d4dc1 | ||
| updater@0dc18e721b | ||
| winget@90cd42d7ec | ||
| .cursorrules | ||
| .gitignore | ||
| .gitmodules | ||
| .luaurc | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| foundry.code-workspace | ||
| LICENSE | ||
| mise.toml | ||
| README.md | ||
Foundry
Forge logicielle — définir une app une fois, packager partout.
À partir d'un simple definition.toml, Foundry orchestre des builds reproductibles et signés pour toutes les plateformes : Linux (Flatpak, AppImage, deb, rpm), Windows (NSIS, MSI, winget), macOS (DMG, Homebrew), et Web/WASM.
Repos
| Repo | Rôle |
|---|---|
apps |
Cœur — définitions des apps, pipeline CI, builders Luau |
architecture |
Documentation transversale, types Luau, schémas |
updater |
Exécutable autonome de mise à jour |
meta |
Index JSON et feed de releases |
nix |
Flake Nix et overlay nixpkgs |
scoop |
Bucket Scoop (Windows) |
winget |
Manifests winget (Windows) |
homebrew |
Tap Homebrew (macOS) |
aur |
PKGBUILDs (Arch Linux) |
choco |
Packages Chocolatey (Windows) |
Démarrage rapide
# Cloner avec tous les submodules
git clone --recurse-submodules https://git.stalla.dev/foundry/foundry
cd foundry
mise install
# Builder toutes les apps
mise fb
# Builder une seule app
APP=aseprite mise fb
# Release complète (build + signature + publication)
mise fr
Stack
- Lune — runtime Luau, tous les scripts de build
- mise — toolchains et orchestration des tasks
- cosign — signature keyless via Sigstore
- sccache — cache de compilation distribué (S3)
Ajouter une app
Créer apps/apps/<nom>/definition.toml :
[project]
id = "dev.example.MyApp"
name = "MyApp"
version = "1.0.0"
command = "myapp"
[[source]]
type = "git"
url = "https://github.com/example/myapp.git"
tag = "v1.0.0"
[build]
system = "cmake"
toolchain = ["cmake", "ninja"]
[linux]
formats = ["flatpak"]
[linux.flatpak]
runtime = "org.freedesktop.Platform"
runtime_version = "25.08"
sdk = "org.freedesktop.Sdk"
finish_args = ["--share=ipc", "--socket=wayland", "--filesystem=home"]
[sign]
enabled = true
Le schéma complet est dans architecture/schemas/definition.md.
Documentation
Tout est dans architecture/ — architecture générale, détail de chaque repo, référence du schéma, et guide pour agents IA.