Skip to content

Commit

Permalink
Drop support for upgrading jbuilder projects (#4473)
Browse files Browse the repository at this point in the history
Signed-off-by: Jeremie Dimino <[email protected]>
  • Loading branch information
jeremiedimino authored Apr 9, 2021
1 parent d9377e8 commit 1927730
Show file tree
Hide file tree
Showing 35 changed files with 109 additions and 1,200 deletions.
2 changes: 2 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ Unreleased
- Allow dune-file as an alternative file name for dune files (needs to be
enabled in the dune-project file) (#4428, @nojb)

- Drop support for upgrading jbuilder projects (#...., @jeremiedimino)

2.8.5 (28/03/2021)
------------------

Expand Down
5 changes: 2 additions & 3 deletions bin/common.ml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ let print_entering_message c =
in
Console.print [ Pp.verbatim (sprintf "Entering directory '%s'" dir) ]

let init ?log_file ?(recognize_jbuilder_projects = false) c =
let init ?log_file c =
if c.root.dir <> Filename.current_dir_name then Sys.chdir c.root.dir;
Path.set_root (normalize_path (Path.External.cwd ()));
Path.Build.set_build_dir (Path.Build.Kind.of_string c.build_dir);
Expand Down Expand Up @@ -156,8 +156,7 @@ let init ?log_file ?(recognize_jbuilder_projects = false) c =
|> S.set_ancestor_vcs c.root.ancestor_vcs
|> S.set_execution_parameters
(Dune_engine.Execution_parameters.builtin_default
|> Dune_rules.Workspace.update_execution_parameters w)
|> S.set_recognize_jbuilder_projects recognize_jbuilder_projects);
|> Dune_rules.Workspace.update_execution_parameters w));
Dune_rules.Global.init ~capture_outputs:c.capture_outputs;
(* CR-soon amokhov: Right now, types [Dune_config.Caching.Duplication.t] and
[Dune_cache_storage.Mode.t] are the same. They will be unified after
Expand Down
6 changes: 1 addition & 5 deletions bin/common.mli
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,7 @@ val prefix_target : t -> string -> string
Return the final configuration, which is the same as the one returned in the
[config] field of [Dune_rules.Workspace.workspace ()]) *)
val init :
?log_file:Dune_util.Log.File.t
-> ?recognize_jbuilder_projects:bool
-> t
-> Dune_config.t
val init : ?log_file:Dune_util.Log.File.t -> t -> Dune_config.t

(** [examples \[("description", "dune cmd foo"); ...\]] is an [EXAMPLES] manpage
section of enumerated examples illustrating how to run the documented
Expand Down
8 changes: 2 additions & 6 deletions bin/ocaml_merlin.ml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ let term =
ouptut.")
in
let common = Common.set_print_directory common false in
let config =
Common.init common ~log_file:No_log_file ~recognize_jbuilder_projects:true
in
let config = Common.init common ~log_file:No_log_file in
Scheduler.go ~common ~config (fun () ->
match dump_config with
| Some s -> Dune_rules.Merlin_server.dump s
Expand Down Expand Up @@ -66,9 +64,7 @@ module Dump_dot_merlin = struct
"The path to the folder of which the configuration should be \
printed. Defaults to the current directory.")
in
let config =
Common.init common ~log_file:No_log_file ~recognize_jbuilder_projects:true
in
let config = Common.init common ~log_file:No_log_file in
Scheduler.go ~common ~config (fun () ->
match path with
| Some s -> Dune_rules.Merlin_server.dump_dot_merlin s
Expand Down
2 changes: 1 addition & 1 deletion bin/upgrade.ml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ let info = Term.info "upgrade" ~doc ~man

let term =
let+ common = Common.term in
let config = Common.init common ~recognize_jbuilder_projects:true in
let config = Common.init common in
Scheduler.go ~common ~config (fun () -> Dune_upgrader.upgrade ())

let command = (term, info)
1 change: 0 additions & 1 deletion boot/libs.ml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ let local_libraries =
; ("src/section", Some "Dune_section", false, None)
; ("vendor/build_path_prefix_map/src", Some "Build_path_prefix_map", false,
None)
; ("src/jbuild_support", Some "Jbuild_support", false, None)
; ("otherlibs/dune-rpc/private", Some "Dune_rpc_private", false, None)
; ("src/dune_rpc_server", Some "Dune_rpc_server", false, None)
; ("src/csexp_rpc", Some "Csexp_rpc", false, None)
Expand Down
3 changes: 1 addition & 2 deletions src/dune_engine/action_builder.ml
Original file line number Diff line number Diff line change
Expand Up @@ -147,8 +147,7 @@ let strings p =

let read_sexp p =
let+ s = contents p in
Dune_lang.Parser.parse_string s ~lexer:Dune_lang.Lexer.token
~fname:(Path.to_string p) ~mode:Single
Dune_lang.Parser.parse_string s ~fname:(Path.to_string p) ~mode:Single

let if_file_exists p ~then_ ~else_ = If_file_exists (p, then_, else_)

Expand Down
1 change: 0 additions & 1 deletion src/dune_engine/dune
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
ocaml_config
chrome_trace
stats
jbuild_support
dune_action_plugin
dune_util
build_path_prefix_map
Expand Down
5 changes: 1 addition & 4 deletions src/dune_engine/include_stanza.ml
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,5 @@ let load_sexps ~context:{ current_file; include_stack } (loc, fn) =
Path.Source.equal f current_file)
then
error { current_file; include_stack };
let sexps =
Dune_lang.Parser.load ~lexer:Dune_lang.Lexer.token
(Path.source current_file) ~mode:Many
in
let sexps = Dune_lang.Parser.load (Path.source current_file) ~mode:Many in
(sexps, { current_file; include_stack })
37 changes: 3 additions & 34 deletions src/dune_engine/source_tree.ml
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ module Dune_file = struct

let alternative_fname = "dune-file"

let jbuild_fname = "jbuild"

type kind =
| Plain
| Ocaml_script
Expand Down Expand Up @@ -358,21 +356,16 @@ end
module Settings = struct
type t =
{ ancestor_vcs : Vcs.t option
; recognize_jbuilder_projects : bool
; execution_parameters : Execution_parameters.t
}

let builtin_default =
{ ancestor_vcs = None
; recognize_jbuilder_projects = false
; execution_parameters = Execution_parameters.builtin_default
}

let set_ancestor_vcs x t = { t with ancestor_vcs = x }

let set_recognize_jbuilder_projects x t =
{ t with recognize_jbuilder_projects = x }

let set_execution_parameters x t = { t with execution_parameters = x }

let t : t Memo.Build.t Fdecl.t = Fdecl.create Dyn.Encoder.opaque
Expand Down Expand Up @@ -464,26 +457,10 @@ end = struct
(visited, init)
end

let dune_file ~(dir_status : Sub_dirs.Status.t) ~recognize_jbuilder_projects
~path ~files ~project =
let dune_file ~(dir_status : Sub_dirs.Status.t) ~path ~files ~project =
let file_exists =
if dir_status = Data_only then
None
else if
(not recognize_jbuilder_projects)
&& String.Set.mem files Dune_file.jbuild_fname
then
User_error.raise
~loc:
(Loc.in_file
(Path.source (Path.Source.relative path Dune_file.jbuild_fname)))
[ Pp.text
"jbuild files are no longer supported, please convert this file \
to a dune file instead."
; Pp.text
"Note: You can use \"dune upgrade\" to convert your project to \
dune."
]
else if
Dune_project.accept_alternative_dune_file_name project
&& String.Set.mem files Dune_file.alternative_fname
Expand Down Expand Up @@ -524,13 +501,7 @@ end = struct

let contents { Readdir.dirs; files } ~dirs_visited ~project ~path
~(dir_status : Sub_dirs.Status.t) =
let* recognize_jbuilder_projects =
let+ settings = Settings.get () in
settings.recognize_jbuilder_projects
in
let+ dune_file =
dune_file ~dir_status ~recognize_jbuilder_projects ~files ~project ~path
in
let+ dune_file = dune_file ~dir_status ~files ~project ~path in
let sub_dirs = Dune_file.sub_dirs dune_file in
let dirs_visited, sub_dirs =
Get_subdir.all ~dirs_visited ~dirs ~sub_dirs ~parent_status:dir_status
Expand Down Expand Up @@ -613,7 +584,6 @@ end = struct
| None -> Memo.Build.return None
| Some (parent_dir, dirs_visited, dir_status, virtual_) ->
let dirs_visited = Dirs_visited.Per_fn.find dirs_visited path in
let* settings = Settings.get () in
let readdir =
if virtual_ then
Readdir.empty
Expand All @@ -628,8 +598,7 @@ end = struct
else
Option.value
(Dune_project.load ~dir:path ~files:readdir.files
~infer_from_opam_files:settings.recognize_jbuilder_projects
~dir_status)
~infer_from_opam_files:false ~dir_status)
~default:parent_dir.project
in
let vcs = get_vcs ~default:parent_dir.vcs ~readdir ~path in
Expand Down
6 changes: 0 additions & 6 deletions src/dune_engine/source_tree.mli
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ module Dune_file : sig

val alternative_fname : string

val jbuild_fname : string

type kind = private
| Plain
| Ocaml_script
Expand Down Expand Up @@ -82,10 +80,6 @@ module Settings : sig
this is the vcs that will be used for the root. *)
val set_ancestor_vcs : Vcs.t option -> t -> t

(** Whether we recognise jbuilder projects. This is only set to [true] by the
upgrader. *)
val set_recognize_jbuilder_projects : bool -> t -> t

(** The default execution parameters. *)
val set_execution_parameters : Execution_parameters.t -> t -> t
end
Expand Down
32 changes: 0 additions & 32 deletions src/jbuild_support/atom.ml

This file was deleted.

1 change: 0 additions & 1 deletion src/jbuild_support/atom.mli

This file was deleted.

6 changes: 0 additions & 6 deletions src/jbuild_support/dune

This file was deleted.

1 change: 0 additions & 1 deletion src/jbuild_support/lexer.mli

This file was deleted.

Loading

0 comments on commit 1927730

Please sign in to comment.