From a95f7ea2ee513c5197c06985cbc7413f28e5cadf Mon Sep 17 00:00:00 2001 From: Maurits van Riezen <12109031+mousetail@users.noreply.github.com> Date: Tue, 3 May 2022 09:57:23 +0200 Subject: [PATCH 1/4] Add "resolver = 2" option to all relavent code samples It seems like `resolver = 2` is just a basic requirement to build any package with dependencies. To make the examples work it's needed. Apparently there is work to make it default (https://github.com/rust-lang/rust/issues/90148) but right now it's required. --- src/doc/src/reference/workspaces.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/doc/src/reference/workspaces.md b/src/doc/src/reference/workspaces.md index 97472e352bd..f78bc93308a 100644 --- a/src/doc/src/reference/workspaces.md +++ b/src/doc/src/reference/workspaces.md @@ -42,6 +42,7 @@ the workspace: [workspace] members = ["member1", "path/to/member2", "crates/*"] exclude = ["crates/foo", "path/to/other"] +resolver = "2" ``` All [`path` dependencies] residing in the workspace directory automatically @@ -85,6 +86,7 @@ used: [workspace] members = ["path/to/member1", "path/to/member2", "path/to/member3/*"] default-members = ["path/to/member2", "path/to/member3/foo"] +resolver = "2" ``` When specified, `default-members` must expand to a subset of `members`. @@ -98,6 +100,7 @@ configuration in `Cargo.toml`. For example: ```toml [workspace] members = ["member1", "member2"] +resolver = "2" [workspace.metadata.webcontents] root = "path/to/webproject" From 02a9086685c697af40fbd805a8182ce7019352c6 Mon Sep 17 00:00:00 2001 From: Maurits van Riezen <12109031+mousetail@users.noreply.github.com> Date: Thu, 5 May 2022 09:24:51 +0200 Subject: [PATCH 2/4] Add a short explanation to the resolver tag --- src/doc/src/reference/workspaces.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/doc/src/reference/workspaces.md b/src/doc/src/reference/workspaces.md index f78bc93308a..aa74a1e68ee 100644 --- a/src/doc/src/reference/workspaces.md +++ b/src/doc/src/reference/workspaces.md @@ -57,6 +57,10 @@ workspace. This can be useful if some path dependencies aren't desired to be in the workspace at all, or using a glob pattern and you want to remove a directory. +The [`resolver`] key effects how a package that is depended on in multiple +ways with different features are resolved. Some libraries depend on it being +set to 2. + An empty `[workspace]` table can be used with a `[package]` to conveniently create a workspace with the package and all of its path dependencies. @@ -118,6 +122,7 @@ if that makes sense for the tool in question. [package]: manifest.md#the-package-section [package-metadata]: manifest.md#the-metadata-table [output directory]: ../guide/build-cache.md +[`resolver`]: resolver.md#feature-resolver-version-2 [patch]: overriding-dependencies.md#the-patch-section [replace]: overriding-dependencies.md#the-replace-section [profiles]: profiles.md From ac653549bbdeeaa401a2e2835c8d2a279a765bac Mon Sep 17 00:00:00 2001 From: Maurits van Riezen <12109031+mousetail@users.noreply.github.com> Date: Fri, 30 Sep 2022 08:25:56 +0200 Subject: [PATCH 3/4] Remove the section on vitual workspaces --- src/doc/src/reference/workspaces.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/doc/src/reference/workspaces.md b/src/doc/src/reference/workspaces.md index e6530b03944..7cd908403ec 100644 --- a/src/doc/src/reference/workspaces.md +++ b/src/doc/src/reference/workspaces.md @@ -106,9 +106,6 @@ The [`resolver`] key effects how a package that is depended on in multiple ways with different features are resolved. Some libraries depend on it being set to 2. -An empty `[workspace]` table can be used with a `[package]` to conveniently -create a workspace with the package and all of its path dependencies. - ### Workspace selection When inside a subdirectory within the workspace, Cargo will automatically From a7184398013dd778067cd4cfdc10e4daaad7b2b7 Mon Sep 17 00:00:00 2001 From: Maurits van Riezen <12109031+mousetail@users.noreply.github.com> Date: Fri, 30 Sep 2022 16:02:53 +0200 Subject: [PATCH 4/4] Move the paragraph --- src/doc/src/reference/workspaces.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/doc/src/reference/workspaces.md b/src/doc/src/reference/workspaces.md index 7cd908403ec..612b55b19db 100644 --- a/src/doc/src/reference/workspaces.md +++ b/src/doc/src/reference/workspaces.md @@ -68,8 +68,13 @@ you want to keep all the packages organized in separate directories. # [PROJECT_DIR]/Cargo.toml [workspace] members = ["hello_world"] +resolver = "2" ``` +The [`resolver`] key here effects how a package that is depended on in multiple +ways with different features are resolved. Some libraries depend on it being +set to 2. + ```toml # [PROJECT_DIR]/hello_world/Cargo.toml [package] @@ -78,6 +83,7 @@ version = "0.1.0" # the current version, obeying semver authors = ["Alice ", "Bob "] ``` + ### The `members` and `exclude` fields The `members` and `exclude` fields define which packages are members of @@ -87,7 +93,6 @@ the workspace: [workspace] members = ["member1", "path/to/member2", "crates/*"] exclude = ["crates/foo", "path/to/other"] -resolver = "2" ``` All [`path` dependencies] residing in the workspace directory automatically @@ -102,10 +107,6 @@ workspace. This can be useful if some path dependencies aren't desired to be in the workspace at all, or using a glob pattern and you want to remove a directory. -The [`resolver`] key effects how a package that is depended on in multiple -ways with different features are resolved. Some libraries depend on it being -set to 2. - ### Workspace selection When inside a subdirectory within the workspace, Cargo will automatically