234 lines
3.4 KiB
Markdown
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.
|