From 304207b9d26fc8c2450e15af7260e850cbe97189 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Tue, 10 Oct 2023 11:07:22 -0400 Subject: [PATCH] cargo: Document that cargo subprojects is an experimental feature --- docs/markdown/Wrap-dependency-system-manual.md | 6 ++++++ docs/markdown/snippets/cargo_exp.md | 8 ++++++++ mesonbuild/interpreter/interpreter.py | 2 ++ 3 files changed, 16 insertions(+) create mode 100644 docs/markdown/snippets/cargo_exp.md diff --git a/docs/markdown/Wrap-dependency-system-manual.md b/docs/markdown/Wrap-dependency-system-manual.md index 9bb7a8426..d84e4aa18 100644 --- a/docs/markdown/Wrap-dependency-system-manual.md +++ b/docs/markdown/Wrap-dependency-system-manual.md @@ -297,6 +297,9 @@ fallback to use the subproject, assuming it uses ### CMake wraps +**Note**: This is experimental and has no backwards or forwards compatibility guarantees. +See [Meson's rules on mixing build systems](Mixing-build-systems.md). + Since the CMake module does not know the public name of the provided dependencies, a CMake `.wrap` file cannot use the `dependency_names = foo` syntax. Instead, the `dep_name = _dep` syntax should be used, where @@ -316,6 +319,9 @@ foo-bar-1.0 = foo_bar_dep ``` ### Cargo wraps +**Note**: This is experimental and has no backwards or forwards compatibility guarantees. +See [Meson's rules on mixing build systems](Mixing-build-systems.md). + Cargo subprojects automatically override the `--rs` dependency name: - `package_name` is defined in `[package] name = ...` section of the `Cargo.toml`. diff --git a/docs/markdown/snippets/cargo_exp.md b/docs/markdown/snippets/cargo_exp.md new file mode 100644 index 000000000..34d379a70 --- /dev/null +++ b/docs/markdown/snippets/cargo_exp.md @@ -0,0 +1,8 @@ +## Cargo subprojects is experimental + +Cargo subprojects was intended to be experimental with no stability guarantees. +That notice was unfortunately missing from documentation. Meson will now start +warning about usage of experimental features and future releases might do breaking +changes. + +This is aligned with our general policy regarding [mixing build systems](Mixing-build-systems.md). diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index aa839da36..ecc5bfc2d 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -1043,6 +1043,8 @@ class Interpreter(InterpreterBase, HoldableObject): kwargs: kwtypes.DoSubproject) -> SubprojectHolder: from .. import cargo FeatureNew.single_use('Cargo subproject', '1.3.0', self.subproject, location=self.current_node) + mlog.warning('Cargo subproject is an experimental feature and has no backwards compatibility guarantees.', + once=True, location=self.current_node) with mlog.nested(subp_name): ast, options = cargo.interpret(subp_name, subdir, self.environment) self.coredata.update_project_options(options, subp_name)