v0.2.12
This commit is contained in:
233
examples/035-manifests-et-workspaces-examples.md
Normal file
233
examples/035-manifests-et-workspaces-examples.md
Normal file
@@ -0,0 +1,233 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user