From 209301fffa4cc46544d1d02b02ccdb3cdcdfc8d2 Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Sun, 20 Jul 2025 16:59:16 +0200 Subject: [PATCH 1/5] Remove all leftovers of pinned-dependencies handling # Conflicts: # rewatch/src/build/packages.rs --- .../examples/workspace-project/bsconfig.json | 1 - compiler/bsb/bsb_build_schemas.ml | 1 - compiler/bsb/bsb_build_util.ml | 41 +++--------- compiler/bsb/bsb_build_util.mli | 9 +-- compiler/bsb/bsb_clean.ml | 4 +- compiler/bsb/bsb_config_parse.ml | 14 ++-- compiler/bsb/bsb_config_parse.mli | 2 +- compiler/bsb/bsb_config_types.ml | 1 - compiler/bsb/bsb_ninja_regen.ml | 4 +- compiler/bsb/bsb_package_kind.ml | 12 +--- compiler/bsb/bsb_parse_sources.ml | 18 +++--- compiler/bsb/bsb_warning.ml | 2 +- compiler/bsb/bsb_world.ml | 21 +++--- compiler/bsb/bsb_world.mli | 2 +- compiler/bsb_exe/rescript_main.ml | 5 +- docs/docson/build-schema.json | 4 -- rescript.json | 8 +-- rewatch/CompilerConfigurationSpec.md | 1 - rewatch/src/build/compile.rs | 2 +- rewatch/src/build/packages.rs | 64 +------------------ rewatch/src/build/parse.rs | 12 ++-- rewatch/src/config.rs | 8 --- rewatch/src/sourcedirs.rs | 10 +-- 23 files changed, 55 insertions(+), 191 deletions(-) diff --git a/analysis/examples/workspace-project/bsconfig.json b/analysis/examples/workspace-project/bsconfig.json index 6c11170e58..938e29b98a 100644 --- a/analysis/examples/workspace-project/bsconfig.json +++ b/analysis/examples/workspace-project/bsconfig.json @@ -7,6 +7,5 @@ "in-source": true }, "suffix": ".mjs", - "pinned-dependencies": ["common", "myplugin", "app"], "bs-dependencies": ["common", "myplugin", "app"] } diff --git a/compiler/bsb/bsb_build_schemas.ml b/compiler/bsb/bsb_build_schemas.ml index 5e210619e6..9590fd73df 100644 --- a/compiler/bsb/bsb_build_schemas.ml +++ b/compiler/bsb/bsb_build_schemas.ml @@ -28,7 +28,6 @@ let ppx_flags = "ppx-flags" let pp_flags = "pp-flags" let bs_external_includes = "bs-external-includes" let bs_dependencies = "bs-dependencies" -let pinned_dependencies = "pinned-dependencies" let bs_dev_dependencies = "bs-dev-dependencies" let sources = "sources" let dir = "dir" diff --git a/compiler/bsb/bsb_build_util.ml b/compiler/bsb/bsb_build_util.ml index 3121c304e1..e017e12548 100644 --- a/compiler/bsb/bsb_build_util.ml +++ b/compiler/bsb/bsb_build_util.ml @@ -132,7 +132,7 @@ let ( |? ) m (key, cb) = m |> Ext_json.test key cb type top = Expect_none | Expect_name of string -type package_context = {proj_dir: string; top: top; is_pinned: bool} +type package_context = {proj_dir: string; top: top} (** TODO: check duplicate package name @@ -148,15 +148,8 @@ type package_context = {proj_dir: string; top: top; is_pinned: bool} let pp_packages_rev ppf lst = Ext_list.rev_iter lst (fun s -> Format.fprintf ppf "%s " s) -let extract_pinned_dependencies (map : Ext_json_types.t Map_string.t) : - Set_string.t = - match Map_string.find_opt map Bsb_build_schemas.pinned_dependencies with - | None -> Set_string.empty - | Some (Arr {content}) -> Set_string.of_list (get_list_string content) - | Some config -> Bsb_exception.config_error config "expect an array of string" - let rec walk_all_deps_aux (visited : string Hash_string.t) (paths : string list) - ~(top : top) (dir : string) (queue : _ Queue.t) ~pinned_dependencies = + ~(top : top) (dir : string) (queue : _ Queue.t) = match Bsb_config_load.load_json ~per_proj_dir:dir ~warn_legacy_config:false with @@ -182,7 +175,7 @@ let rec walk_all_deps_aux (visited : string Hash_string.t) (paths : string list) if Hash_string.mem visited cur_package_name then Bsb_log.info "@{Visited before@} %s@." cur_package_name else - let explore_deps (deps : string) pinned_dependencies = + let explore_deps (deps : string) = map |? ( deps, `Arr @@ -196,38 +189,20 @@ let rec walk_all_deps_aux (visited : string Hash_string.t) (paths : string list) in walk_all_deps_aux visited package_stacks ~top:(Expect_name new_package) package_dir queue - ~pinned_dependencies | _ -> Bsb_exception.errorf ~loc "%s expect an array" deps)) ) |> ignore in - let is_pinned = - match top with - | Expect_name n when Set_string.mem pinned_dependencies n -> true - | _ -> false - in - let pinned_dependencies = - match is_pinned with - | true -> - let transitive_pinned_dependencies = - extract_pinned_dependencies map - in - Set_string.union transitive_pinned_dependencies pinned_dependencies - | false -> pinned_dependencies - in - explore_deps Bsb_build_schemas.bs_dependencies pinned_dependencies; + explore_deps Bsb_build_schemas.bs_dependencies; (match top with - | Expect_none -> - explore_deps Bsb_build_schemas.bs_dev_dependencies pinned_dependencies - | Expect_name _ when is_pinned -> - explore_deps Bsb_build_schemas.bs_dev_dependencies pinned_dependencies + | Expect_none -> explore_deps Bsb_build_schemas.bs_dev_dependencies | Expect_name _ -> ()); - Queue.add {top; proj_dir = dir; is_pinned} queue; + Queue.add {top; proj_dir = dir} queue; Hash_string.add visited cur_package_name dir | _ -> () -let walk_all_deps dir ~pinned_dependencies : package_context Queue.t = +let walk_all_deps dir : package_context Queue.t = let visited = Hash_string.create 0 in let cb = Queue.create () in - walk_all_deps_aux visited [] ~top:Expect_none dir cb ~pinned_dependencies; + walk_all_deps_aux visited [] ~top:Expect_none dir cb; cb diff --git a/compiler/bsb/bsb_build_util.mli b/compiler/bsb/bsb_build_util.mli index 8ddf6b6531..b9375b1c17 100644 --- a/compiler/bsb/bsb_build_util.mli +++ b/compiler/bsb/bsb_build_util.mli @@ -17,7 +17,7 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *) @@ -82,9 +82,6 @@ type result = {path: string; checked: bool} *) val resolve_bsb_magic_file : cwd:string -> desc:string -> string -> result -type package_context = {proj_dir: string; top: top; is_pinned: bool} - -val extract_pinned_dependencies : Ext_json_types.t Map_string.t -> Set_string.t +type package_context = {proj_dir: string; top: top} -val walk_all_deps : - string -> pinned_dependencies:Set_string.t -> package_context Queue.t +val walk_all_deps : string -> package_context Queue.t diff --git a/compiler/bsb/bsb_clean.ml b/compiler/bsb/bsb_clean.ml index 1225da39ce..1a5e801f84 100644 --- a/compiler/bsb/bsb_clean.ml +++ b/compiler/bsb/bsb_clean.ml @@ -51,8 +51,8 @@ let clean_bs_garbage proj_dir = Bsb_log.warn "@{Failed@} to clean due to %s" (Printexc.to_string e) let clean_bs_deps proj_dir = - let _, _, pinned_dependencies = Bsb_config_parse.deps_from_bsconfig () in - let queue = Bsb_build_util.walk_all_deps proj_dir ~pinned_dependencies in + let _, _ = Bsb_config_parse.deps_from_bsconfig () in + let queue = Bsb_build_util.walk_all_deps proj_dir in Queue.iter (fun (pkg_cxt : Bsb_build_util.package_context) -> (* whether top or not always do the cleaning *) diff --git a/compiler/bsb/bsb_config_parse.ml b/compiler/bsb/bsb_config_parse.ml index 7fee6a607f..829ee4f36e 100644 --- a/compiler/bsb/bsb_config_parse.ml +++ b/compiler/bsb/bsb_config_parse.ml @@ -242,12 +242,11 @@ let interpret_json ~(filename : string) ~(json : Ext_json_types.t) in let bs_dev_dependencies = match package_kind with - | Toplevel | Pinned_dependency _ -> + | Toplevel -> extract_dependencies map per_proj_dir Bsb_build_schemas.bs_dev_dependencies | Dependency _ -> [] in - let pinned_dependencies = Bsb_build_util.extract_pinned_dependencies map in match map.?(Bsb_build_schemas.sources) with | Some sources -> let cut_generators = @@ -263,12 +262,10 @@ let interpret_json ~(filename : string) ~(json : Ext_json_types.t) let jsx = Bsb_jsx.from_map map in let jsx, bsc_flags = match package_kind with - | Pinned_dependency x | Dependency x -> - ({jsx with version = x.jsx.version}, bsc_flags) + | Dependency x -> ({jsx with version = x.jsx.version}, bsc_flags) | Toplevel -> (jsx, bsc_flags) in { - pinned_dependencies; gentype_config; package_name; namespace; @@ -294,7 +291,7 @@ let interpret_json ~(filename : string) ~(json : Ext_json_types.t) package_specs = (match package_kind with | Toplevel -> Bsb_package_specs.from_map ~cwd:per_proj_dir map - | Pinned_dependency x | Dependency x -> x.package_specs); + | Dependency x -> x.package_specs); file_groups = groups; files_to_install = Queue.create (); jsx; @@ -311,8 +308,5 @@ let deps_from_bsconfig () = match Bsb_config_load.load_json ~per_proj_dir:cwd ~warn_legacy_config:false with - | _, Obj {map} -> - ( Bsb_package_specs.from_map ~cwd map, - Bsb_jsx.from_map map, - Bsb_build_util.extract_pinned_dependencies map ) + | _, Obj {map} -> (Bsb_package_specs.from_map ~cwd map, Bsb_jsx.from_map map) | _, _ -> assert false diff --git a/compiler/bsb/bsb_config_parse.mli b/compiler/bsb/bsb_config_parse.mli index c850693585..fe9e7f23ed 100644 --- a/compiler/bsb/bsb_config_parse.mli +++ b/compiler/bsb/bsb_config_parse.mli @@ -22,7 +22,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *) -val deps_from_bsconfig : unit -> Bsb_package_specs.t * Bsb_jsx.t * Set_string.t +val deps_from_bsconfig : unit -> Bsb_package_specs.t * Bsb_jsx.t val interpret_json : filename:string -> diff --git a/compiler/bsb/bsb_config_types.ml b/compiler/bsb/bsb_config_types.ml index eef34c0bb5..1d026dee53 100644 --- a/compiler/bsb/bsb_config_types.ml +++ b/compiler/bsb/bsb_config_types.ml @@ -41,7 +41,6 @@ type t = { pp_file: string option; bs_dependencies: dependencies; bs_dev_dependencies: dependencies; - pinned_dependencies: Set_string.t; warning: Bsb_warning.t; (*TODO: maybe we should always resolve rescript so that we can calculate correct relative path in diff --git a/compiler/bsb/bsb_ninja_regen.ml b/compiler/bsb/bsb_ninja_regen.ml index fb5fe31fcc..12e50c4b0b 100644 --- a/compiler/bsb/bsb_ninja_regen.ml +++ b/compiler/bsb/bsb_ninja_regen.ml @@ -88,9 +88,7 @@ let regenerate_ninja ~(package_kind : Bsb_package_kind.t) ~forced ~per_proj_dir Bsb_watcher_gen.generate_sourcedirs_meta ~name:(lib_bs_dir // Literals.sourcedirs_meta) config.file_groups - | Pinned_dependency _ (* FIXME: seems need to be watched *) | Dependency _ - -> - ()); + | Dependency _ -> ()); Bsb_ninja_gen.output_ninja_and_namespace_map ~per_proj_dir ~package_kind config; diff --git a/compiler/bsb/bsb_package_kind.ml b/compiler/bsb/bsb_package_kind.ml index 12198ce3dc..f014aa884d 100644 --- a/compiler/bsb/bsb_package_kind.ml +++ b/compiler/bsb/bsb_package_kind.ml @@ -1,4 +1,4 @@ -(* Copyright (C) 2020 - Hongbo Zhang, Authors of ReScript +(* Copyright (C) 2020 - Hongbo Zhang, Authors of ReScript * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by @@ -24,10 +24,7 @@ type dep_payload = {package_specs: Bsb_package_specs.t; jsx: Bsb_jsx.t} -type t = - | Toplevel - | Dependency of dep_payload - | Pinned_dependency of dep_payload +type t = Toplevel | Dependency of dep_payload (* This package specs comes from the toplevel to override the current settings *) @@ -40,8 +37,3 @@ let encode_no_nl (x : t) = ^ Bsb_package_specs.package_flag_of_package_specs x.package_specs ~dirname:"." ^ Bsb_jsx.encode_no_nl x.jsx - | Pinned_dependency x -> - "2" - ^ Bsb_package_specs.package_flag_of_package_specs x.package_specs - ~dirname:"." - ^ Bsb_jsx.encode_no_nl x.jsx diff --git a/compiler/bsb/bsb_parse_sources.ml b/compiler/bsb/bsb_parse_sources.ml index acb6255d57..b829d616c3 100644 --- a/compiler/bsb/bsb_parse_sources.ml +++ b/compiler/bsb/bsb_parse_sources.ml @@ -17,7 +17,7 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *) @@ -48,7 +48,7 @@ type cxt = { ignored_dirs: Set_string.t; } -(** [public] has a list of modules, we do a sanity check to see if all the listed +(** [public] has a list of modules, we do a sanity check to see if all the listed modules are indeed valid module components *) let collect_pub_modules (xs : Ext_json_types.t array) (cache : Bsb_db.map) : @@ -156,9 +156,9 @@ let extract_predicate (m : json_map) : string -> bool = | None, _ -> fun name -> not (Ext_list.mem_string excludes name) (** [parsing_source_dir_map cxt input] - Major work done in this function, - assume [not toplevel && not (Bsb_dir_index.is_lib_dir dir_index)] - is already checked, so we don't need check it again + Major work done in this function, + assume [not toplevel && not (Bsb_dir_index.is_lib_dir dir_index)] + is already checked, so we don't need check it again *) (** This is the only place where we do some removal during scanning, @@ -174,9 +174,7 @@ let rec parsing_source_dir_map ({cwd = dir} as cxt) let cur_globbed_dirs = ref false in let has_generators = match cxt with - | {cut_generators = false; package_kind = Toplevel | Pinned_dependency _} - -> - true + | {cut_generators = false; package_kind = Toplevel} -> true | {cut_generators = false; package_kind = Dependency _} | {cut_generators = true; _} -> false @@ -274,7 +272,7 @@ and parsing_single_source ({package_kind; is_dev; cwd} as cxt) | Str {str = dir} -> ( match (package_kind, is_dev) with | Dependency _, true -> Bsb_file_groups.empty - | Dependency _, false | (Toplevel | Pinned_dependency _), _ -> + | Dependency _, false | Toplevel, _ -> parsing_source_dir_map { cxt with @@ -293,7 +291,7 @@ and parsing_single_source ({package_kind; is_dev; cwd} as cxt) in match (package_kind, current_dir_index) with | Dependency _, true -> Bsb_file_groups.empty - | Dependency _, false | (Toplevel | Pinned_dependency _), _ -> + | Dependency _, false | Toplevel, _ -> let dir = match map.?(Bsb_build_schemas.dir) with | Some (Str {str}) -> diff --git a/compiler/bsb/bsb_warning.ml b/compiler/bsb/bsb_warning.ml index 9e6958fd67..f3927090ac 100644 --- a/compiler/bsb/bsb_warning.ml +++ b/compiler/bsb/bsb_warning.ml @@ -82,7 +82,7 @@ let from_map (m : Ext_json_types.t Map_string.t) = let to_bsb_string ~(package_kind : Bsb_package_kind.t) warning = match package_kind with - | Toplevel | Pinned_dependency _ -> ( + | Toplevel -> ( match warning with | None -> Ext_string.empty | Some warning -> ( diff --git a/compiler/bsb/bsb_world.ml b/compiler/bsb/bsb_world.ml index 63c69f6d9d..73c47f0fa6 100644 --- a/compiler/bsb/bsb_world.ml +++ b/compiler/bsb/bsb_world.ml @@ -26,8 +26,8 @@ let ( // ) = Ext_path.combine let vendor_ninja = Bsb_global_paths.vendor_ninja let make_world_deps cwd (config : Bsb_config_types.t option) - (ninja_args : string array) warn_as_error = - let package_specs, jsx, pinned_dependencies = + (ninja_args : string array) = + let package_specs, jsx = match config with | None -> (* When this running bsb does not read rescript.json, @@ -35,15 +35,14 @@ let make_world_deps cwd (config : Bsb_config_types.t option) it wants *) Bsb_config_parse.deps_from_bsconfig () - | Some config -> - (config.package_specs, config.jsx, config.pinned_dependencies) + | Some config -> (config.package_specs, config.jsx) in let args = if Ext_array.is_empty ninja_args then [|vendor_ninja|] else Array.append [|vendor_ninja|] ninja_args in let lib_artifacts_dir = Bsb_config.lib_bs in - let queue = Bsb_build_util.walk_all_deps cwd ~pinned_dependencies in + let queue = Bsb_build_util.walk_all_deps cwd in (* let oc = open_out_bin ".deps.log" in queue |> Queue.iter (fun ({top; proj_dir} : Bsb_build_util.package_context) -> match top with @@ -56,22 +55,18 @@ let make_world_deps cwd (config : Bsb_config_types.t option) ); close_out oc ; *) queue - |> Queue.iter - (fun ({top; proj_dir; is_pinned} : Bsb_build_util.package_context) -> + |> Queue.iter (fun ({top; proj_dir} : Bsb_build_util.package_context) -> match top with | Expect_none -> () | Expect_name s -> - if is_pinned then print_endline ("Dependency pinned on " ^ s) - else print_endline ("Dependency on " ^ s); + print_endline ("Dependency on " ^ s); let lib_bs_dir = proj_dir // lib_artifacts_dir in Bsb_build_util.mkp lib_bs_dir; let _config : _ option = Bsb_ninja_regen.regenerate_ninja - ~package_kind: - (if is_pinned then Pinned_dependency {package_specs; jsx} - else Dependency {package_specs; jsx}) + ~package_kind:(Dependency {package_specs; jsx}) ~per_proj_dir:proj_dir ~forced:false ~warn_legacy_config:false - ~warn_as_error:(if is_pinned then warn_as_error else None) + ~warn_as_error:None in let command = {Bsb_unix.cmd = vendor_ninja; cwd = lib_bs_dir; args} diff --git a/compiler/bsb/bsb_world.mli b/compiler/bsb/bsb_world.mli index 123f63e5a8..e705a22099 100644 --- a/compiler/bsb/bsb_world.mli +++ b/compiler/bsb/bsb_world.mli @@ -23,4 +23,4 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *) val make_world_deps : - string -> Bsb_config_types.t option -> string array -> string option -> unit + string -> Bsb_config_types.t option -> string array -> unit diff --git a/compiler/bsb_exe/rescript_main.ml b/compiler/bsb_exe/rescript_main.ml index e8d517d4e6..48c33f4236 100644 --- a/compiler/bsb_exe/rescript_main.ml +++ b/compiler/bsb_exe/rescript_main.ml @@ -170,8 +170,7 @@ let build_subcommand ~start argv argv_len = ~warn_legacy_config:true ~warn_as_error in if not !no_deps_mode then - Bsb_world.make_world_deps Bsb_global_paths.cwd config_opt ninja_args - warn_as_error; + Bsb_world.make_world_deps Bsb_global_paths.cwd config_opt ninja_args; if !do_install then install_target (); ninja_command_exit ninja_args @@ -228,7 +227,7 @@ let () = ~per_proj_dir:Bsb_global_paths.cwd ~forced:false ~warn_legacy_config:true ~warn_as_error:None in - Bsb_world.make_world_deps Bsb_global_paths.cwd config_opt [||] None; + Bsb_world.make_world_deps Bsb_global_paths.cwd config_opt [||]; ninja_command_exit [||]) else match argv.(1) with diff --git a/docs/docson/build-schema.json b/docs/docson/build-schema.json index 730eaca3e0..41686b909b 100644 --- a/docs/docson/build-schema.json +++ b/docs/docson/build-schema.json @@ -399,10 +399,6 @@ "$ref": "#/definitions/dependencies", "description": "ReScript dev dependencies of the library, like in package.json. Currently searches in `node_modules`" }, - "pinned-dependencies": { - "$ref": "#/definitions/dependencies", - "description": "Those dependencies are pinned (since version 8.4)" - }, "generators": { "type": "array", "items": { diff --git a/rescript.json b/rescript.json index 0935d87399..81a65948fd 100644 --- a/rescript.json +++ b/rescript.json @@ -1,6 +1,4 @@ { - "name": "rescript", - "bs-dependencies": [ - "@tests/gentype-react-example" - ] -} \ No newline at end of file + "name": "rescript", + "bs-dependencies": ["@tests/gentype-react-example"] +} diff --git a/rewatch/CompilerConfigurationSpec.md b/rewatch/CompilerConfigurationSpec.md index dd43df0550..4b9ba53dbd 100644 --- a/rewatch/CompilerConfigurationSpec.md +++ b/rewatch/CompilerConfigurationSpec.md @@ -15,7 +15,6 @@ This document contains a list of all bsconfig parameters with remarks, and wheth | ignored-dirs | array of string | | [_] | | bs-dependencies | array of string | | [x] | | bs-dev-dependencies | array of string | | [x] | -| pinned-dependencies | array of string | | [x] | | generators | array of Rule-Generator | | [_] | | cut-generators | boolean | | [_] | | jsx | JSX | | [x] | diff --git a/rewatch/src/build/compile.rs b/rewatch/src/build/compile.rs index fdf7c35de3..e5816347c8 100644 --- a/rewatch/src/build/compile.rs +++ b/rewatch/src/build/compile.rs @@ -738,7 +738,7 @@ fn compile_file( }); if helpers::contains_ascii_characters(&err) { - if package.is_pinned_dep || package.is_local_dep { + if package.is_local_dep { // suppress warnings of external deps Ok(Some(err)) } else { diff --git a/rewatch/src/build/packages.rs b/rewatch/src/build/packages.rs index d01baf3622..5fe9627334 100644 --- a/rewatch/src/build/packages.rs +++ b/rewatch/src/build/packages.rs @@ -44,7 +44,6 @@ struct Dependency { name: String, config: config::Config, path: PathBuf, - is_pinned: bool, dependencies: Vec, } @@ -60,7 +59,6 @@ pub struct Package { // canonicalized dir of the package pub path: PathBuf, pub dirs: Option>, - pub is_pinned_dep: bool, pub is_local_dep: bool, pub is_root: bool, } @@ -361,11 +359,6 @@ fn read_dependencies( } }; - let is_pinned = parent_config - .pinned_dependencies - .as_ref() - .map(|p| p.contains(&config.name)) - .unwrap_or(false); let dependencies = read_dependencies( &mut registered_dependencies_set.to_owned(), @@ -381,7 +374,6 @@ fn read_dependencies( name: package_name.to_owned(), config, path: canonical_path, - is_pinned, dependencies, } }) @@ -413,13 +405,7 @@ pub fn read_package_name(package_dir: &Path) -> Result { .ok_or_else(|| anyhow!("No name field found in package.json")) } -fn make_package( - config: config::Config, - package_path: &Path, - is_pinned_dep: bool, - is_root: bool, - project_root: &Path, -) -> Package { +fn make_package(config: config::Config, package_path: &Path, is_root: bool, project_root: &Path) -> Package { let source_folders = match config.sources.to_owned() { Some(config::OneOrMore::Single(source)) => get_source_dirs(source, None), Some(config::OneOrMore::Multiple(sources)) => { @@ -476,7 +462,6 @@ This inconsistency will cause issues with package resolution.\n", .map(StrippedVerbatimPath::to_stripped_verbatim_path) .expect("Could not canonicalize"), dirs: None, - is_pinned_dep, is_local_dep, is_root, } @@ -492,7 +477,7 @@ fn read_packages( // Store all packages and completely deduplicate them let mut map: AHashMap = AHashMap::new(); - let root_package = make_package(root_config.to_owned(), project_root, false, true, project_root); + let root_package = make_package(root_config.to_owned(), project_root, true, project_root); map.insert(root_package.name.to_string(), root_package); let mut registered_dependencies_set: AHashSet = AHashSet::new(); @@ -507,7 +492,7 @@ fn read_packages( )); dependencies.iter().for_each(|d| { if !map.contains_key(&d.name) { - let package = make_package(d.config.to_owned(), &d.path, d.is_pinned, false, project_root); + let package = make_package(d.config.to_owned(), &d.path, false, project_root); map.insert(d.name.to_string(), package); } }); @@ -907,7 +892,6 @@ fn get_unallowed_dependents( #[derive(Debug, Clone)] struct UnallowedDependency { bs_deps: Vec, - pinned_deps: Vec, bs_build_dev_deps: Vec, } @@ -916,12 +900,10 @@ pub fn validate_packages_dependencies(packages: &AHashMap) -> b for (package_name, package) in packages { let bs_dependencies = &package.config.dependencies.to_owned().unwrap_or(vec![]); - let pinned_dependencies = &package.config.pinned_dependencies.to_owned().unwrap_or(vec![]); let dev_dependencies = &package.config.dev_dependencies.to_owned().unwrap_or(vec![]); [ ("bs-dependencies", bs_dependencies), - ("pinned-dependencies", pinned_dependencies), ("bs-dev-dependencies", dev_dependencies), ] .iter() @@ -931,7 +913,6 @@ pub fn validate_packages_dependencies(packages: &AHashMap) -> b { let empty_unallowed_deps = UnallowedDependency { bs_deps: vec![], - pinned_deps: vec![], bs_build_dev_deps: vec![], }; @@ -939,7 +920,6 @@ pub fn validate_packages_dependencies(packages: &AHashMap) -> b let value = unallowed_dependency.or_insert_with(|| empty_unallowed_deps); match *dependency_type { "bs-dependencies" => value.bs_deps.push(unallowed_dependency_name), - "pinned-dependencies" => value.pinned_deps.push(unallowed_dependency_name), "bs-dev-dependencies" => value.bs_build_dev_deps.push(unallowed_dependency_name), _ => (), } @@ -955,7 +935,6 @@ pub fn validate_packages_dependencies(packages: &AHashMap) -> b [ ("bs-dependencies", unallowed_deps.bs_deps.to_owned()), - ("pinned-dependencies", unallowed_deps.pinned_deps.to_owned()), ("bs-dev-dependencies", unallowed_deps.bs_build_dev_deps.to_owned()), ] .iter() @@ -992,7 +971,6 @@ mod test { pub struct CreatePackageArgs { name: String, bs_deps: Vec, - pinned_deps: Vec, build_dev_deps: Vec, allowed_dependents: Option>, } @@ -1003,7 +981,6 @@ mod test { config: config::tests::create_config(config::tests::CreateConfigArgs { name: args.name, bs_deps: args.bs_deps, - pinned_deps: args.pinned_deps, build_dev_deps: args.build_dev_deps, allowed_dependents: args.allowed_dependents, }), @@ -1013,7 +990,6 @@ mod test { modules: None, path: PathBuf::from("./something"), dirs: None, - is_pinned_dep: false, is_root: false, is_local_dep: false, } @@ -1026,35 +1002,6 @@ mod test { create_package(CreatePackageArgs { name: String::from("Package1"), bs_deps: vec![String::from("Package2")], - pinned_deps: vec![], - build_dev_deps: vec![], - allowed_dependents: None, - }), - ); - packages.insert( - String::from("Package2"), - create_package(CreatePackageArgs { - name: String::from("Package2"), - bs_deps: vec![], - pinned_deps: vec![], - build_dev_deps: vec![], - allowed_dependents: Some(vec![String::from("Package3")]), - }), - ); - - let is_valid = super::validate_packages_dependencies(&packages); - assert!(!is_valid) - } - - #[test] - fn should_return_false_with_invalid_parents_as_pinned_dependencies() { - let mut packages: AHashMap = AHashMap::new(); - packages.insert( - String::from("Package1"), - create_package(CreatePackageArgs { - name: String::from("Package1"), - bs_deps: vec![], - pinned_deps: vec![String::from("Package2")], build_dev_deps: vec![], allowed_dependents: None, }), @@ -1064,7 +1011,6 @@ mod test { create_package(CreatePackageArgs { name: String::from("Package2"), bs_deps: vec![], - pinned_deps: vec![], build_dev_deps: vec![], allowed_dependents: Some(vec![String::from("Package3")]), }), @@ -1082,7 +1028,6 @@ mod test { create_package(CreatePackageArgs { name: String::from("Package1"), bs_deps: vec![], - pinned_deps: vec![], build_dev_deps: vec![String::from("Package2")], allowed_dependents: None, }), @@ -1092,7 +1037,6 @@ mod test { create_package(CreatePackageArgs { name: String::from("Package2"), bs_deps: vec![], - pinned_deps: vec![], build_dev_deps: vec![], allowed_dependents: Some(vec![String::from("Package3")]), }), @@ -1110,7 +1054,6 @@ mod test { create_package(CreatePackageArgs { name: String::from("Package1"), bs_deps: vec![String::from("Package2")], - pinned_deps: vec![], build_dev_deps: vec![], allowed_dependents: None, }), @@ -1120,7 +1063,6 @@ mod test { create_package(CreatePackageArgs { name: String::from("Package2"), bs_deps: vec![], - pinned_deps: vec![], build_dev_deps: vec![], allowed_dependents: Some(vec![String::from("Package1")]), }), diff --git a/rewatch/src/build/parse.rs b/rewatch/src/build/parse.rs index 7412137ff0..67908e772e 100644 --- a/rewatch/src/build/parse.rs +++ b/rewatch/src/build/parse.rs @@ -114,18 +114,16 @@ pub fn generate_asts( // We get Err(x) when there is a parse error. When it's Ok(_, Some( // stderr_warnings )), the outputs are warnings match ast_result { - // In case of a pinned (internal) dependency, we want to keep on + // In case of an internal dependency, we want to keep on // propagating the warning with every compile. So we mark it as dirty for // the next round - Ok((_path, Some(stderr_warnings))) if package.is_pinned_dep => { + Ok((_path, Some(stderr_warnings))) if package.is_local_dep => { source_file.implementation.parse_state = ParseState::Warning; source_file.implementation.parse_dirty = true; logs::append(package, &stderr_warnings); stderr.push_str(&stderr_warnings); } Ok((_path, Some(_))) | Ok((_path, None)) => { - // If we do have stderr_warnings here, the file is not a pinned - // dependency (so some external dep). We can ignore those source_file.implementation.parse_state = ParseState::Success; source_file.implementation.parse_dirty = false; } @@ -142,10 +140,10 @@ pub fn generate_asts( // We get Err(x) when there is a parse error. When it's Ok(_, Some(( _path, // stderr_warnings ))), the outputs are warnings match iast_result { - // In case of a pinned (internal) dependency, we want to keep on + // In case of an internal dependency, we want to keep on // propagating the warning with every compile. So we mark it as dirty for // the next round - Ok(Some((_path, Some(stderr_warnings)))) if package.is_pinned_dep => { + Ok(Some((_path, Some(stderr_warnings)))) if package.is_local_dep => { if let Some(interface) = source_file.interface.as_mut() { interface.parse_state = ParseState::Warning; interface.parse_dirty = true; @@ -154,8 +152,6 @@ pub fn generate_asts( stderr.push_str(&stderr_warnings); } Ok(Some((_, None))) | Ok(Some((_, Some(_)))) => { - // If we do have stderr_warnings here, the file is not a pinned - // dependency (so some external dep). We can ignore those if let Some(interface) = source_file.interface.as_mut() { interface.parse_state = ParseState::Success; interface.parse_dirty = false; diff --git a/rewatch/src/config.rs b/rewatch/src/config.rs index 5e0b51f866..6707dc881b 100644 --- a/rewatch/src/config.rs +++ b/rewatch/src/config.rs @@ -234,8 +234,6 @@ pub struct Config { pub package_specs: Option>, pub warnings: Option, pub suffix: Option, - #[serde(rename = "pinned-dependencies")] - pub pinned_dependencies: Option>, pub dependencies: Option>, #[serde(rename = "dev-dependencies")] pub dev_dependencies: Option>, @@ -620,7 +618,6 @@ pub mod tests { pub struct CreateConfigArgs { pub name: String, pub bs_deps: Vec, - pub pinned_deps: Vec, pub build_dev_deps: Vec, pub allowed_dependents: Option>, } @@ -634,7 +631,6 @@ pub mod tests { package_specs: None, warnings: None, suffix: None, - pinned_dependencies: Some(args.pinned_deps), dependencies: Some(args.bs_deps), dev_dependencies: Some(args.build_dev_deps), bs_dependencies: None, @@ -659,7 +655,6 @@ pub mod tests { "sources": [ { "dir": "src/", "subdirs": true } ], "package-specs": [ { "module": "es6", "in-source": true } ], "suffix": ".mjs", - "pinned-dependencies": [ "@teamwalnut/app" ], "bs-dependencies": [ "@teamwalnut/app" ] } "#; @@ -747,7 +742,6 @@ pub mod tests { "sources": [ { "dir": "src/", "subdirs": true } ], "package-specs": [ { "module": "es6", "in-source": true } ], "suffix": ".mjs", - "pinned-dependencies": [ "@teamwalnut/app" ], "bs-dependencies": [ "@teamwalnut/app" ], "gentypeconfig": { "module": "esmodule", @@ -769,7 +763,6 @@ pub mod tests { "sources": [ { "dir": "src/", "subdirs": true } ], "package-specs": [ { "module": "es6", "in-source": true } ], "suffix": ".mjs", - "pinned-dependencies": [ "@teamwalnut/app" ], "bs-dependencies": [ "@teamwalnut/app" ], "jsx": { "module": "Voby.JSX" @@ -799,7 +792,6 @@ pub mod tests { "sources": [ { "dir": "src/", "subdirs": true } ], "package-specs": [ { "module": "es6", "in-source": true } ], "suffix": ".mjs", - "pinned-dependencies": [ "@teamwalnut/app" ], "bs-dependencies": [ "@teamwalnut/app" ], "jsx": { "version": 4, "preserve": true } } diff --git a/rewatch/src/sourcedirs.rs b/rewatch/src/sourcedirs.rs index aa16b97ce7..134d8fe6b8 100644 --- a/rewatch/src/sourcedirs.rs +++ b/rewatch/src/sourcedirs.rs @@ -74,13 +74,9 @@ pub fn print(buildstate: &BuildState) { let dirs = package_to_dirs(package, &root_package.path); // Extract Pkgs - let pkgs = [ - &package.config.pinned_dependencies, - &package.config.dependencies, - &package.config.dev_dependencies, - ] - .into_iter() - .map(|dependencies| deps_to_pkgs(&buildstate.packages, dependencies)); + let pkgs = [&package.config.dependencies, &package.config.dev_dependencies] + .into_iter() + .map(|dependencies| deps_to_pkgs(&buildstate.packages, dependencies)); // Write sourcedirs.json write_sourcedirs_files( From 1d1713bca76665fec9ae5e76f53d2099cc940098 Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Sun, 20 Jul 2025 18:39:41 +0200 Subject: [PATCH 2/5] Remove transitive_pinned_dependency1 --- .../transitive_pinned_dependency1/.gitignore | 2 -- .../a/package.json | 4 --- .../a/rescript.json | 23 ---------------- .../a/src/src.res | 1 - .../a/tests/test.res | 1 - .../transitive_pinned_dependency1/input.js | 17 ------------ .../node_modules/b/bsconfig.json | 27 ------------------- .../node_modules/b/package.json | 4 --- .../node_modules/b/src/src.res | 1 - .../node_modules/b/tests/test.res | 1 - .../node_modules/c/bsconfig.json | 21 --------------- .../node_modules/c/package.json | 4 --- .../node_modules/c/src/src.res | 1 - .../node_modules/c/tests/test.res | 1 - 14 files changed, 108 deletions(-) delete mode 100644 tests/build_tests/transitive_pinned_dependency1/.gitignore delete mode 100644 tests/build_tests/transitive_pinned_dependency1/a/package.json delete mode 100644 tests/build_tests/transitive_pinned_dependency1/a/rescript.json delete mode 100644 tests/build_tests/transitive_pinned_dependency1/a/src/src.res delete mode 100644 tests/build_tests/transitive_pinned_dependency1/a/tests/test.res delete mode 100644 tests/build_tests/transitive_pinned_dependency1/input.js delete mode 100644 tests/build_tests/transitive_pinned_dependency1/node_modules/b/bsconfig.json delete mode 100644 tests/build_tests/transitive_pinned_dependency1/node_modules/b/package.json delete mode 100644 tests/build_tests/transitive_pinned_dependency1/node_modules/b/src/src.res delete mode 100644 tests/build_tests/transitive_pinned_dependency1/node_modules/b/tests/test.res delete mode 100644 tests/build_tests/transitive_pinned_dependency1/node_modules/c/bsconfig.json delete mode 100644 tests/build_tests/transitive_pinned_dependency1/node_modules/c/package.json delete mode 100644 tests/build_tests/transitive_pinned_dependency1/node_modules/c/src/src.res delete mode 100644 tests/build_tests/transitive_pinned_dependency1/node_modules/c/tests/test.res diff --git a/tests/build_tests/transitive_pinned_dependency1/.gitignore b/tests/build_tests/transitive_pinned_dependency1/.gitignore deleted file mode 100644 index e9ecf2fb91..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -lib -!node_modules \ No newline at end of file diff --git a/tests/build_tests/transitive_pinned_dependency1/a/package.json b/tests/build_tests/transitive_pinned_dependency1/a/package.json deleted file mode 100644 index 9113c2528e..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/a/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "a", - "version": "1.0.0" -} diff --git a/tests/build_tests/transitive_pinned_dependency1/a/rescript.json b/tests/build_tests/transitive_pinned_dependency1/a/rescript.json deleted file mode 100644 index 9ab943fa18..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/a/rescript.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "a", - "namespace": true, - "sources": [ - { - "dir": "src" - }, - { - "dir": "tests", - "type": "dev" - } - ], - "package-specs": { - "module": "esmodule", - "in-source": false, - "suffix": ".res.js" - }, - "warnings": { - "error": true - }, - "bs-dependencies": ["b"], - "pinned-dependencies": ["b"] -} diff --git a/tests/build_tests/transitive_pinned_dependency1/a/src/src.res b/tests/build_tests/transitive_pinned_dependency1/a/src/src.res deleted file mode 100644 index 95733e46af..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/a/src/src.res +++ /dev/null @@ -1 +0,0 @@ -Js.Console.log("src") diff --git a/tests/build_tests/transitive_pinned_dependency1/a/tests/test.res b/tests/build_tests/transitive_pinned_dependency1/a/tests/test.res deleted file mode 100644 index aa7a48d65d..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/a/tests/test.res +++ /dev/null @@ -1 +0,0 @@ -Js.Console.log("test") diff --git a/tests/build_tests/transitive_pinned_dependency1/input.js b/tests/build_tests/transitive_pinned_dependency1/input.js deleted file mode 100644 index b366f9d361..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/input.js +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-check - -import * as assert from "node:assert"; -import { existsSync } from "node:fs"; -import { setup } from "#dev/process"; - -const { execBuild, execClean } = setup("./a"); - -await execClean() - -const output = await execBuild(); -console.log(output); - -assert.ok( - existsSync("./node_modules/c/lib/es6/tests/test.res.js"), - "dev files of module 'c' were not built by 'a' even though 'c' is a transitive pinned dependency of 'a' through 'b'", -); diff --git a/tests/build_tests/transitive_pinned_dependency1/node_modules/b/bsconfig.json b/tests/build_tests/transitive_pinned_dependency1/node_modules/b/bsconfig.json deleted file mode 100644 index 47680b2c98..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/node_modules/b/bsconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "b", - "namespace": true, - "sources": [ - { - "dir": "src" - }, - { - "dir": "tests", - "type": "dev" - } - ], - "package-specs": { - "module": "esmodule", - "in-source": false, - "suffix": ".res.js" - }, - "warnings": { - "error": true - }, - "bs-dependencies": [ - "c" - ], - "pinned-dependencies": [ - "c" - ] -} diff --git a/tests/build_tests/transitive_pinned_dependency1/node_modules/b/package.json b/tests/build_tests/transitive_pinned_dependency1/node_modules/b/package.json deleted file mode 100644 index c2d84cc127..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/node_modules/b/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "b", - "version": "1.0.0" -} diff --git a/tests/build_tests/transitive_pinned_dependency1/node_modules/b/src/src.res b/tests/build_tests/transitive_pinned_dependency1/node_modules/b/src/src.res deleted file mode 100644 index 95733e46af..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/node_modules/b/src/src.res +++ /dev/null @@ -1 +0,0 @@ -Js.Console.log("src") diff --git a/tests/build_tests/transitive_pinned_dependency1/node_modules/b/tests/test.res b/tests/build_tests/transitive_pinned_dependency1/node_modules/b/tests/test.res deleted file mode 100644 index aa7a48d65d..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/node_modules/b/tests/test.res +++ /dev/null @@ -1 +0,0 @@ -Js.Console.log("test") diff --git a/tests/build_tests/transitive_pinned_dependency1/node_modules/c/bsconfig.json b/tests/build_tests/transitive_pinned_dependency1/node_modules/c/bsconfig.json deleted file mode 100644 index aeb18883bb..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/node_modules/c/bsconfig.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "c", - "namespace": true, - "sources": [ - { - "dir": "src" - }, - { - "dir": "tests", - "type": "dev" - } - ], - "package-specs": { - "module": "esmodule", - "in-source": false, - "suffix": ".res.js" - }, - "warnings": { - "error": true - } -} diff --git a/tests/build_tests/transitive_pinned_dependency1/node_modules/c/package.json b/tests/build_tests/transitive_pinned_dependency1/node_modules/c/package.json deleted file mode 100644 index abd3384930..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/node_modules/c/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "c", - "version": "1.0.0" -} diff --git a/tests/build_tests/transitive_pinned_dependency1/node_modules/c/src/src.res b/tests/build_tests/transitive_pinned_dependency1/node_modules/c/src/src.res deleted file mode 100644 index 95733e46af..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/node_modules/c/src/src.res +++ /dev/null @@ -1 +0,0 @@ -Js.Console.log("src") diff --git a/tests/build_tests/transitive_pinned_dependency1/node_modules/c/tests/test.res b/tests/build_tests/transitive_pinned_dependency1/node_modules/c/tests/test.res deleted file mode 100644 index aa7a48d65d..0000000000 --- a/tests/build_tests/transitive_pinned_dependency1/node_modules/c/tests/test.res +++ /dev/null @@ -1 +0,0 @@ -Js.Console.log("test") From b56b7a651017f9e65eb16cbbd63bb932d24ee2c1 Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Sun, 20 Jul 2025 18:40:15 +0200 Subject: [PATCH 3/5] Rename transitive_pinned_dependency2 --- .../.gitignore | 0 .../a/package.json | 0 .../a/rescript.json | 0 .../a/src/src.res | 0 .../a/tests/test.res | 0 .../input.js | 4 ++-- .../node_modules/b/bsconfig.json | 0 .../node_modules/b/package.json | 0 .../node_modules/b/src/src.res | 0 .../node_modules/b/tests/test.res | 0 .../node_modules/c/bsconfig.json | 0 .../node_modules/c/package.json | 0 .../node_modules/c/src/src.res | 0 .../node_modules/c/tests/test.res | 0 14 files changed, 2 insertions(+), 2 deletions(-) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/.gitignore (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/a/package.json (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/a/rescript.json (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/a/src/src.res (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/a/tests/test.res (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/input.js (87%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/node_modules/b/bsconfig.json (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/node_modules/b/package.json (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/node_modules/b/src/src.res (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/node_modules/b/tests/test.res (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/node_modules/c/bsconfig.json (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/node_modules/c/package.json (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/node_modules/c/src/src.res (100%) rename tests/build_tests/{transitive_pinned_dependency2 => transitive_dependency}/node_modules/c/tests/test.res (100%) diff --git a/tests/build_tests/transitive_pinned_dependency2/.gitignore b/tests/build_tests/transitive_dependency/.gitignore similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/.gitignore rename to tests/build_tests/transitive_dependency/.gitignore diff --git a/tests/build_tests/transitive_pinned_dependency2/a/package.json b/tests/build_tests/transitive_dependency/a/package.json similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/a/package.json rename to tests/build_tests/transitive_dependency/a/package.json diff --git a/tests/build_tests/transitive_pinned_dependency2/a/rescript.json b/tests/build_tests/transitive_dependency/a/rescript.json similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/a/rescript.json rename to tests/build_tests/transitive_dependency/a/rescript.json diff --git a/tests/build_tests/transitive_pinned_dependency2/a/src/src.res b/tests/build_tests/transitive_dependency/a/src/src.res similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/a/src/src.res rename to tests/build_tests/transitive_dependency/a/src/src.res diff --git a/tests/build_tests/transitive_pinned_dependency2/a/tests/test.res b/tests/build_tests/transitive_dependency/a/tests/test.res similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/a/tests/test.res rename to tests/build_tests/transitive_dependency/a/tests/test.res diff --git a/tests/build_tests/transitive_pinned_dependency2/input.js b/tests/build_tests/transitive_dependency/input.js similarity index 87% rename from tests/build_tests/transitive_pinned_dependency2/input.js rename to tests/build_tests/transitive_dependency/input.js index 3eb295d80d..c04b7e3dc5 100644 --- a/tests/build_tests/transitive_pinned_dependency2/input.js +++ b/tests/build_tests/transitive_dependency/input.js @@ -5,11 +5,11 @@ import { existsSync } from "node:fs"; import { setup } from "#dev/process"; const { execBuild, execClean } = setup("./a"); -await execClean() +await execClean(); const output = await execBuild(); console.log(output); assert.ok( !existsSync("./node_modules/c/lib/es6/tests/test.res.js"), - "dev files of module 'c' were built by 'a' even though 'c' is not a pinned dependency of 'a'", + "dev files of module 'c' were built by 'a' even though 'c' is not a dependency of 'a'", ); diff --git a/tests/build_tests/transitive_pinned_dependency2/node_modules/b/bsconfig.json b/tests/build_tests/transitive_dependency/node_modules/b/bsconfig.json similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/node_modules/b/bsconfig.json rename to tests/build_tests/transitive_dependency/node_modules/b/bsconfig.json diff --git a/tests/build_tests/transitive_pinned_dependency2/node_modules/b/package.json b/tests/build_tests/transitive_dependency/node_modules/b/package.json similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/node_modules/b/package.json rename to tests/build_tests/transitive_dependency/node_modules/b/package.json diff --git a/tests/build_tests/transitive_pinned_dependency2/node_modules/b/src/src.res b/tests/build_tests/transitive_dependency/node_modules/b/src/src.res similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/node_modules/b/src/src.res rename to tests/build_tests/transitive_dependency/node_modules/b/src/src.res diff --git a/tests/build_tests/transitive_pinned_dependency2/node_modules/b/tests/test.res b/tests/build_tests/transitive_dependency/node_modules/b/tests/test.res similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/node_modules/b/tests/test.res rename to tests/build_tests/transitive_dependency/node_modules/b/tests/test.res diff --git a/tests/build_tests/transitive_pinned_dependency2/node_modules/c/bsconfig.json b/tests/build_tests/transitive_dependency/node_modules/c/bsconfig.json similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/node_modules/c/bsconfig.json rename to tests/build_tests/transitive_dependency/node_modules/c/bsconfig.json diff --git a/tests/build_tests/transitive_pinned_dependency2/node_modules/c/package.json b/tests/build_tests/transitive_dependency/node_modules/c/package.json similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/node_modules/c/package.json rename to tests/build_tests/transitive_dependency/node_modules/c/package.json diff --git a/tests/build_tests/transitive_pinned_dependency2/node_modules/c/src/src.res b/tests/build_tests/transitive_dependency/node_modules/c/src/src.res similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/node_modules/c/src/src.res rename to tests/build_tests/transitive_dependency/node_modules/c/src/src.res diff --git a/tests/build_tests/transitive_pinned_dependency2/node_modules/c/tests/test.res b/tests/build_tests/transitive_dependency/node_modules/c/tests/test.res similarity index 100% rename from tests/build_tests/transitive_pinned_dependency2/node_modules/c/tests/test.res rename to tests/build_tests/transitive_dependency/node_modules/c/tests/test.res From f37d7f065a58d3e5d73afe9065d018e09c9067fb Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Tue, 22 Jul 2025 15:21:13 +0200 Subject: [PATCH 4/5] Remove pinned-dependencies from rewatch testrepo --- rewatch/testrepo/bsconfig.json | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/rewatch/testrepo/bsconfig.json b/rewatch/testrepo/bsconfig.json index ccaaa8f683..008a339de5 100644 --- a/rewatch/testrepo/bsconfig.json +++ b/rewatch/testrepo/bsconfig.json @@ -14,17 +14,6 @@ "error": false }, "suffix": ".mjs", - "pinned-dependencies": [ - "@testrepo/main", - "@testrepo/dep01", - "@testrepo/dep02", - "@testrepo/new-namespace", - "@testrepo/namespace-casing", - "@testrepo/with-dev-deps", - "@testrepo/compiled-by-legacy", - "@testrepo/nonexisting-dev-files", - "@testrepo/deprecated-config" - ], "dependencies": [ "@testrepo/main", "@testrepo/dep01", From 99cc34b6ceb51bf84e3855d278d03ca9fbd9c9c9 Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Tue, 22 Jul 2025 15:42:07 +0200 Subject: [PATCH 5/5] CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index af5459c233..3d6c95c92b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ - Add rust linting to CI with `clippy`. https://github.com/rescript-lang/rescript/pull/7675 - AST: use `Typ.arrows` for creation, after the refactoring of arrow types. https://github.com/rescript-lang/rescript/pull/7662 - Don't skip Stdlib docstring tests. https://github.com/rescript-lang/rescript/pull/7694 +- Remove all leftovers of pinned-dependencies handling. https://github.com/rescript-lang/rescript/pull/7686 #### :bug: Bug fix