From 99029e989a6f6232d96392922c5436b10cb83dc5 Mon Sep 17 00:00:00 2001 From: Anthony Shew Date: Mon, 4 Nov 2024 15:31:42 -0700 Subject: [PATCH 1/4] fix: Don't require a name for the root package.json. --- .../src/package_graph/mod.rs | 18 +++++++++++++++--- .../add-to-existing-repository.mdx | 6 ++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/crates/turborepo-repository/src/package_graph/mod.rs b/crates/turborepo-repository/src/package_graph/mod.rs index 439fabf97e1dd..e700af2e4a37a 100644 --- a/crates/turborepo-repository/src/package_graph/mod.rs +++ b/crates/turborepo-repository/src/package_graph/mod.rs @@ -145,9 +145,21 @@ impl PackageGraph { pub fn validate(&self) -> Result<(), Error> { for info in self.packages.values() { let name = info.package_json.name.as_deref(); - if matches!(name, None | Some("")) { - let package_json_path = self.repo_root.resolve(info.package_json_path()); - return Err(Error::PackageJsonMissingName(package_json_path)); + let package_json_path = self.repo_root.resolve(info.package_json_path()); + match name { + Some("") => { + return Err(Error::PackageJsonMissingName(package_json_path)); + } + None => { + // We don't need to require a name for the root package.json. + if package_json_path == self.repo_root.join_component("package.json") { + continue; + } + + let package_json_path = self.repo_root.resolve(info.package_json_path()); + return Err(Error::PackageJsonMissingName(package_json_path)); + } + Some(_) => continue, } } graph::validate_graph(&self.graph).map_err(Error::InvalidPackageGraph)?; diff --git a/docs/repo-docs/getting-started/add-to-existing-repository.mdx b/docs/repo-docs/getting-started/add-to-existing-repository.mdx index a561e9c5c9879..27fcc186e6088 100644 --- a/docs/repo-docs/getting-started/add-to-existing-repository.mdx +++ b/docs/repo-docs/getting-started/add-to-existing-repository.mdx @@ -177,6 +177,12 @@ Add `.turbo` to your `.gitignore` file. The `turbo` CLI uses these folders for p + .turbo ``` + + +### Add a `name` and `packageManager` field to root `package.json` + +Turborepo optimizes your repository using information from your package manager. + ### Run the `build` and `check-types` tasks with `turbo` From 48ea42fcb4d223dc722c81d23e39a3fb9d16a14f Mon Sep 17 00:00:00 2001 From: Anthony Shew Date: Mon, 4 Nov 2024 15:43:03 -0700 Subject: [PATCH 2/4] test --- .../turborepo-repository/src/package_graph/mod.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/crates/turborepo-repository/src/package_graph/mod.rs b/crates/turborepo-repository/src/package_graph/mod.rs index e700af2e4a37a..cda4a05fe40ef 100644 --- a/crates/turborepo-repository/src/package_graph/mod.rs +++ b/crates/turborepo-repository/src/package_graph/mod.rs @@ -914,4 +914,17 @@ mod test { )) ); } + + #[tokio::test] + async fn test_does_not_require_name_for_root_package_json() { + let root = + AbsoluteSystemPathBuf::new(if cfg!(windows) { r"C:\repo" } else { "/repo" }).unwrap(); + let pkg_graph = PackageGraph::builder(&root, PackageJson::from_value(json!({})).unwrap()) + .with_package_discovery(MockDiscovery) + .build() + .await + .unwrap(); + + assert!(pkg_graph.validate().is_ok()); + } } From fa6867bcc8922f67eea58770bde987eff693ec5a Mon Sep 17 00:00:00 2001 From: Anthony Shew Date: Mon, 4 Nov 2024 15:43:50 -0700 Subject: [PATCH 3/4] WIP --- .../getting-started/add-to-existing-repository.mdx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/repo-docs/getting-started/add-to-existing-repository.mdx b/docs/repo-docs/getting-started/add-to-existing-repository.mdx index 27fcc186e6088..a561e9c5c9879 100644 --- a/docs/repo-docs/getting-started/add-to-existing-repository.mdx +++ b/docs/repo-docs/getting-started/add-to-existing-repository.mdx @@ -177,12 +177,6 @@ Add `.turbo` to your `.gitignore` file. The `turbo` CLI uses these folders for p + .turbo ``` - - -### Add a `name` and `packageManager` field to root `package.json` - -Turborepo optimizes your repository using information from your package manager. - ### Run the `build` and `check-types` tasks with `turbo` From e83a69be36b2ed0c8b8ef9dae360555dc8a86abb Mon Sep 17 00:00:00 2001 From: Anthony Shew Date: Mon, 4 Nov 2024 16:05:46 -0700 Subject: [PATCH 4/4] WIP --- crates/turborepo-repository/src/package_graph/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/turborepo-repository/src/package_graph/mod.rs b/crates/turborepo-repository/src/package_graph/mod.rs index cda4a05fe40ef..15cd6351b02cc 100644 --- a/crates/turborepo-repository/src/package_graph/mod.rs +++ b/crates/turborepo-repository/src/package_graph/mod.rs @@ -156,7 +156,6 @@ impl PackageGraph { continue; } - let package_json_path = self.repo_root.resolve(info.package_json_path()); return Err(Error::PackageJsonMissingName(package_json_path)); } Some(_) => continue,