Files
saselang-bible/examples/035-manifests-et-workspaces-examples.md
2026-09-12 08:56:27 +02:00

234 lines
3.4 KiB
Markdown

# Exemples / DO-DON'T — Chapitre 35 — Manifests et workspaces
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
## Exemples actuellement présents dans le chapitre
### Exemple 1
```text
workspace.manifest.toml
project.manifest.toml
```
### Exemple 2
```toml
manifest-version = 1
```
### Exemple 3
```toml
manifest-version = 1
[workspace]
projects-root = "projects"
members = [
"core",
"compiler",
"sdk",
]
[workspace.output]
build-root = "build"
temp-build-root = ".saselang/tmp"
[workspace.defaults.project]
vendor = "saselang"
version = "0.1.0"
license = "..."
authors = ["..."]
repository = "..."
[workspace.defaults.source]
root = "src"
[workspace.defaults.build]
profile = "dev"
target = "host"
[workspace.defaults.paths]
dependencies = ["vendor"]
native-libraries = ["native/lib"]
native-includes = ["native/include"]
[workspace.dependencies."saselang/core@^1.0"]
source = "registry"
[workspace.dependencies."acme/math@^2.4"]
source = "git"
url = "https://example.invalid/acme/math.git"
[workspace.dependencies."local/tools@^1.0"]
source = "local"
path = "../shared/tools"
```
### Exemple 4
```text
build-root
racine des sorties de build persistantes
temp-build-root
racine des fichiers temporaires/intermédiaires de build
```
### Exemple 5
```text
workspace.defaults.project
workspace.defaults.source
workspace.defaults.build
workspace.defaults.paths
```
### Exemple 6
```text
scalaire absent dans le projet
-> valeur workspace héritée
scalaire présent dans le projet
-> remplacement
liste absente dans le projet
-> liste workspace héritée
liste présente dans le projet
-> remplacement complet de la liste
```
### Exemple 7
```text
vendor/package@requirement
```
### Exemple 8
```text
workspace
local
git
registry
native
system
```
### Exemple 9
```toml
manifest-version = 1
[project]
vendor = "acme"
name = "my-application"
version = "1.2.0"
type = "bin"
description = "..."
license = "..."
authors = ["..."]
repository = "..."
[source]
root = "src"
[build]
profile = "dev"
target = "host"
[paths]
dependencies = ["vendor"]
native-libraries = ["native/lib"]
native-includes = ["native/include"]
[dependencies]
"saselang/core@^1.0" = { workspace = true }
[build.dependencies]
[dev.dependencies]
[dev.unit.dependencies]
[dev.integration.dependencies]
[dev.environment.dependencies]
```
### Exemple 10
```text
vendor
name
version
type
```
### Exemple 11
```text
description
license
authors
repository
```
### Exemple 12
```text
src
```
### Exemple 13
```text
profile
target
```
### Exemple 14
```text
dependencies
native-libraries
native-includes
```
### Exemple 15
```toml
[dependencies]
"saselang/core@^1.0" = { workspace = true }
```
### Exemple 16
```toml
[dependencies."acme/math@^2.4"]
source = "git"
url = "https://example.invalid/acme/math.git"
```
### Exemple 17
```text
valeurs intrinsèques/defaults du langage/toolchain
< workspace.defaults.*
< project.manifest.toml
< options explicites de la commande de build lorsque l'option est conçue pour être overridable
```
### Exemple 18
```text
lib
bin
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.