From a046cb9b59ec518943800d82f50be5dc6139feaf Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Sun, 28 Jul 2024 13:30:53 +0100 Subject: [PATCH] refactor(rules): remove support for patch back into source tree It was never allowed in the public rules without a special toggle and there was never any use for it. It was only added b/c it was available in the JS fork. No need to keep it around. Signed-off-by: Rudi Grinberg --- src/dune_rules/rule_mode_decoder.ml | 33 -------------------------- src/dune_rules/rule_mode_decoder.mli | 8 ------- src/dune_rules/simple_rules.ml | 15 +----------- src/dune_rules/stanzas/rule_conf.ml | 35 ++-------------------------- src/dune_rules/stanzas/rule_conf.mli | 1 - src/dune_rules/test_rules.ml | 1 - 6 files changed, 3 insertions(+), 90 deletions(-) diff --git a/src/dune_rules/rule_mode_decoder.ml b/src/dune_rules/rule_mode_decoder.ml index d741edfe771e..bde455a688c8 100644 --- a/src/dune_rules/rule_mode_decoder.ml +++ b/src/dune_rules/rule_mode_decoder.ml @@ -64,38 +64,5 @@ let mode_decoders = ] ;; -module Extended = struct - type t = - | Normal of Rule.Mode.t - | Patch_back_source_tree - - let patch_back_from_source_tree_syntax = - Dune_lang.Syntax.create - ~experimental:true - ~name:"patch-back-source-tree" - ~desc:"experimental support for (mode patch-back-source-tree)" - [ (0, 1), `Since (3, 0) ] - ;; - - let () = - Dune_project.Extension.register_simple - patch_back_from_source_tree_syntax - (Dune_lang.Decoder.return []) - ;; - - let decode = - sum - (( "patch-back-source-tree" - , let+ () = Dune_lang.Syntax.since patch_back_from_source_tree_syntax (0, 1) in - Patch_back_source_tree ) - :: List.map mode_decoders ~f:(fun (name, dec) -> - ( name - , let+ x = dec in - Normal x ))) - ;; - - let field = field "mode" decode ~default:(Normal Standard) -end - let decode = sum mode_decoders let field = field "mode" decode ~default:Rule.Mode.Standard diff --git a/src/dune_rules/rule_mode_decoder.mli b/src/dune_rules/rule_mode_decoder.mli index 49068933460c..f50443d94123 100644 --- a/src/dune_rules/rule_mode_decoder.mli +++ b/src/dune_rules/rule_mode_decoder.mli @@ -5,13 +5,5 @@ module Promote : sig val into_decode : Rule.Promote.Into.t Dune_lang.Decoder.t end -module Extended : sig - type t = - | Normal of Rule.Mode.t - | Patch_back_source_tree - - val field : t Dune_lang.Decoder.fields_parser -end - val decode : Rule.Mode.t Dune_lang.Decoder.t val field : Rule.Mode.t Dune_lang.Decoder.fields_parser diff --git a/src/dune_rules/simple_rules.ml b/src/dune_rules/simple_rules.ml index 212ff787eb5a..4f4297b92fd9 100644 --- a/src/dune_rules/simple_rules.ml +++ b/src/dune_rules/simple_rules.ml @@ -117,20 +117,7 @@ let user_rule sctx ?extra_bindings ~dir ~expander (rule : Rule_conf.t) = ~targets ~targets_dir:dir in - if rule.patch_back_source_tree - then - Action_builder.With_targets.map action ~f:(fun action -> - (* Here we expect that [action.sandbox] is [Sandbox_config.default] - because the parsing of [rule] stanzas forbids having both a - sandboxing setting in [deps] and a [patch_back_source_tree] field - at the same time. - - If we didn't have this restriction and [action.sandbox] was - something that didn't permit [Some Patch_back_source_tree], Dune - would crash in a way that would be difficult for the user to - understand. *) - Action.Full.add_sandbox Sandbox_mode.Set.patch_back_source_tree_only action) - else action + action in (match rule_kind ~rule ~action with | No_alias -> diff --git a/src/dune_rules/stanzas/rule_conf.ml b/src/dune_rules/stanzas/rule_conf.ml index 4dd95351ff7c..1d74e5420054 100644 --- a/src/dune_rules/stanzas/rule_conf.ml +++ b/src/dune_rules/stanzas/rule_conf.ml @@ -11,7 +11,6 @@ type t = ; deps : Dep_conf.t Bindings.t ; action : Loc.t * Dune_lang.Action.t ; mode : Rule.Mode.t - ; patch_back_source_tree : bool ; locks : Locks.t ; loc : Loc.t ; enabled_if : Blang.t @@ -73,7 +72,6 @@ let short_form = ; deps = Bindings.empty ; action = loc, action ; mode = Standard - ; patch_back_source_tree = false ; locks = [] ; loc ; enabled_if = Blang.true_ @@ -117,7 +115,7 @@ let long_form = to provide a nice error message for people switching from jbuilder to dune. *) assert (not fallback) - and+ mode = Mode.Extended.field + and+ mode = Mode.field and+ enabled_if = Enabled_if.decode ~allowed_vars:Any ~since:(Some (1, 4)) () and+ package = field_o @@ -136,23 +134,6 @@ let long_form = ) ] in - let mode, patch_back_source_tree = - match mode with - | Normal mode -> mode, false - | Patch_back_source_tree -> - if List.exists (Bindings.to_list deps) ~f:(function - | Dep_conf.Sandbox_config _ -> true - | _ -> false) - then - User_error.raise - ~loc - [ Pp.text - "Rules with (mode patch-back-source-tree) cannot have an explicit \ - sandbox configuration because it is implied by (mode \ - patch-back-source-tree)." - ]; - Standard, true - in let action = match action_o with | Some action -> action @@ -165,17 +146,7 @@ let long_form = in field_missing ~hints loc "action" in - { targets - ; deps - ; action - ; mode - ; locks - ; loc - ; enabled_if - ; aliases - ; package - ; patch_back_source_tree - }) + { targets; deps; action; mode; locks; loc; enabled_if; aliases; package }) ;; let decode = @@ -243,7 +214,6 @@ let ocamllex_to_rule loc { modules; mode; enabled_if } = ; S.virt_pform __POS__ (Var Deps) ] ) ) ; mode - ; patch_back_source_tree = false ; locks = [] ; loc ; enabled_if @@ -273,7 +243,6 @@ let ocamlyacc_to_rule loc { modules; mode; enabled_if } = (S.virt_text __POS__ "ocamlyacc") [ S.virt_pform __POS__ (Var Deps) ] ) ) ; mode - ; patch_back_source_tree = false ; locks = [] ; loc ; enabled_if diff --git a/src/dune_rules/stanzas/rule_conf.mli b/src/dune_rules/stanzas/rule_conf.mli index 62893d31a818..c42f8654e613 100644 --- a/src/dune_rules/stanzas/rule_conf.mli +++ b/src/dune_rules/stanzas/rule_conf.mli @@ -5,7 +5,6 @@ type t = ; deps : Dep_conf.t Bindings.t ; action : Loc.t * Dune_lang.Action.t ; mode : Rule.Mode.t - ; patch_back_source_tree : bool ; locks : Locks.t ; loc : Loc.t ; enabled_if : Blang.t diff --git a/src/dune_rules/test_rules.ml b/src/dune_rules/test_rules.ml index 53ea8b62a515..a0ceb978d3cf 100644 --- a/src/dune_rules/test_rules.ml +++ b/src/dune_rules/test_rules.ml @@ -102,7 +102,6 @@ let rules (t : Tests.t) ~sctx ~dir ~scope ~expander ~dir_contents = , Action_unexpanded.Redirect_out (Stdout, diff.file2, Normal, run_action) ) ; mode = Standard - ; patch_back_source_tree = false ; locks = t.locks ; loc ; enabled_if = t.enabled_if