From 6574c5559ba2f2bb37d6f96932a6a49824c5f634 Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Wed, 4 Mar 2026 07:27:28 +0100 Subject: [PATCH 1/2] Improve error message when rescript.json is not found --- rewatch/src/build/packages.rs | 4 ++-- rewatch/src/config.rs | 13 ++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/rewatch/src/build/packages.rs b/rewatch/src/build/packages.rs index 8ce9d2c7aac..c1f22d8ed3a 100644 --- a/rewatch/src/build/packages.rs +++ b/rewatch/src/build/packages.rs @@ -352,7 +352,7 @@ fn read_dependencies( let parent_path_str = project_context.get_root_path().to_string_lossy(); log::error!( - "We could not build package tree reading dependency '{package_name}', at path '{parent_path_str}'. Error: {error}", + "Could not build package tree reading dependency '{package_name}' at path '{parent_path_str}'. Error: {error}", ); std::process::exit(2) @@ -363,7 +363,7 @@ fn read_dependencies( Err(error) => { let parent_path_str = project_context.get_root_path().to_string_lossy(); log::error!( - "We could not build package tree '{package_name}', at path '{parent_path_str}'. Error: {error}", + "Could not build package tree for '{package_name}' at path '{parent_path_str}'. Error: {error}", ); std::process::exit(2) } diff --git a/rewatch/src/config.rs b/rewatch/src/config.rs index 337b537719c..1f0ea703489 100644 --- a/rewatch/src/config.rs +++ b/rewatch/src/config.rs @@ -450,7 +450,8 @@ fn namespace_from_package_name(package_name: &str) -> String { impl Config { /// Try to convert a config from a certain path to a config struct pub fn new(path: &Path) -> Result { - let read = fs::read_to_string(path)?; + let read = + fs::read_to_string(path).map_err(|e| anyhow!("Could not read '{}': {}", path.display(), e))?; let mut config = Config::new_from_json_string(&read)?; config.set_path(path.to_path_buf())?; Ok(config) @@ -1490,4 +1491,14 @@ pub mod tests { let args = config.get_warning_args(false, Some("+3+8+11".to_string())); assert_eq!(args, Vec::::new()); } + + #[test] + fn test_new_missing_rescript_json() { + let path = PathBuf::from("/nonexistent/path/rescript.json"); + let error = Config::new(&path).unwrap_err().to_string(); + assert!( + error.contains(path.to_string_lossy().as_ref()), + "Error should include the missing config path, got: {error}" + ); + } } From 03ebbf44a7334b6a340bd3daad096b99f4f7b820 Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Thu, 12 Mar 2026 17:21:55 +0100 Subject: [PATCH 2/2] CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4ec9a777c5..8a2a0133c4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,8 @@ #### :nail_care: Polish +- Improve error message for dependency without `rescript.json`. https://github.com/rescript-lang/rescript/issues/8265 + #### :house: Internal - Reanalyze server: redesign incremental fixpoint with delete-then-rederive strategy and predecessor tracking, improving speed on deletions. https://github.com/rescript-lang/rescript/pull/8276