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

3.4 KiB

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

workspace.manifest.toml
project.manifest.toml

Exemple 2

manifest-version = 1

Exemple 3

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

build-root
    racine des sorties de build persistantes

temp-build-root
    racine des fichiers temporaires/intermédiaires de build

Exemple 5

workspace.defaults.project
workspace.defaults.source
workspace.defaults.build
workspace.defaults.paths

Exemple 6

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

vendor/package@requirement

Exemple 8

workspace
local
git
registry
native
system

Exemple 9

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

vendor
name
version
type

Exemple 11

description
license
authors
repository

Exemple 12

src

Exemple 13

profile
target

Exemple 14

dependencies
native-libraries
native-includes

Exemple 15

[dependencies]
"saselang/core@^1.0" = { workspace = true }

Exemple 16

[dependencies."acme/math@^2.4"]
source = "git"
url = "https://example.invalid/acme/math.git"

Exemple 17

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

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.