Skip to content

Commit

Permalink
remove packages and keys from "Mirage.register" / "Functoria.register"
Browse files Browse the repository at this point in the history
see #1433
  • Loading branch information
hannesm committed Jun 20, 2023
1 parent 506b931 commit cbc6ef8
Show file tree
Hide file tree
Showing 14 changed files with 28 additions and 51 deletions.
16 changes: 7 additions & 9 deletions lib/functoria/lib.ml
Expand Up @@ -58,22 +58,20 @@ module Config = struct
in
Key.Set.fold f all_keys skeys

let v ?(config_file = Fpath.v "config.ml") ?(keys = []) ?(packages = [])
?(init = []) ~configure_cmd ~pre_build_cmd ~lock_location ~build_cmd ~src
name jobs =
let packages = Key.pure @@ packages in
let v ?(config_file = Fpath.v "config.ml") ?(init = []) ~configure_cmd
~pre_build_cmd ~lock_location ~build_cmd ~src name jobs =
let jobs = Impl.abstract jobs in
let keys = Key.Set.(union (of_list keys) (get_if_context jobs)) in
let keys = get_if_context jobs in
{
config_file;
packages;
keys;
name;
init;
configure_cmd;
pre_build_cmd;
lock_location;
build_cmd;
packages = Key.pure [];
jobs;
src;
}
Expand Down Expand Up @@ -503,7 +501,7 @@ module Make (P : S) = struct
(Cli.eval ~name:P.name ~version:P.version ~configure ~query ~describe
~build ~clean ~help ~mname:P.name argv)

let register ?packages ?keys ?(init = default_init) ?(src = `Auto) name jobs =
let register ?(init = default_init) ?(src = `Auto) name jobs =
(* 1. Pre-parse the arguments set the log level, config file
and root directory. *)
let argv = Sys.argv in
Expand All @@ -520,8 +518,8 @@ module Make (P : S) = struct
in
let main_dev = P.create (init @ jobs) in
let c =
Config.v ~config_file ?keys ?packages ~init ~configure_cmd
~pre_build_cmd ~lock_location ~build_cmd ~src name main_dev
Config.v ~config_file ~init ~configure_cmd ~pre_build_cmd ~lock_location
~build_cmd ~src name main_dev
in
run_configure_with_argv argv args c
in
Expand Down
2 changes: 0 additions & 2 deletions lib/functoria/lib.mli
Expand Up @@ -63,8 +63,6 @@ module Make (P : S) : sig
(** Configuration builder: stage 1 *)

val register :
?packages:package list ->
?keys:abstract_key list ->
?init:job impl list ->
?src:[ `Auto | `None | `Some of string ] ->
string ->
Expand Down
6 changes: 3 additions & 3 deletions lib/mirage/mirage.ml
Expand Up @@ -478,8 +478,8 @@ let ( ++ ) acc x =
| None, Some x -> Some [ x ]
| Some acc, Some x -> Some (acc @ [ x ])

let register ?(argv = default_argv) ?(reporter = default_reporter ())
?keys:extra_keys ?packages ?src name jobs =
let register ?(argv = default_argv) ?(reporter = default_reporter ()) ?src name
jobs =
if List.exists Functoria.Impl.app_has_no_arguments jobs then
invalid_arg
"Your configuration includes a job without arguments. Please add a \
Expand All @@ -489,6 +489,6 @@ let register ?(argv = default_argv) ?(reporter = default_reporter ())
let first = [ keys argv; backtrace; randomize_hashtables; gc_control ] in
let reporter = if reporter == no_reporter then None else Some reporter in
let init = Some first ++ reporter in
register ?keys:extra_keys ?packages ?init ?src name jobs
register ?init ?src name jobs

module Action = Functoria.Action
4 changes: 0 additions & 4 deletions lib/mirage/mirage.mli
Expand Up @@ -1069,17 +1069,13 @@ val app_info_with_opam_deps : (string * string) list -> info impl
val register :
?argv:argv impl ->
?reporter:reporter impl ->
?keys:Key.t list ->
?packages:Functoria.package list ->
?src:[ `Auto | `None | `Some of string ] ->
string ->
job impl list ->
unit
(** [register name jobs] registers the application named by [name] which will
executes the given [jobs].
@param packages The opam packages needed by this module.
@param keys The keys related to this module.
@param reporter
Configure logging. The default log reporter is {!default_reporter}. To
disable logging, use {!no_reporter}.
Expand Down
2 changes: 0 additions & 2 deletions test/f0/f0.mli
@@ -1,8 +1,6 @@
open Functoria.DSL

val register :
?packages:package list ->
?keys:abstract_key list ->
?init:job impl list ->
?src:[ `Auto | `None | `Some of string ] ->
string ->
Expand Down
5 changes: 2 additions & 3 deletions test/functoria/e2e/app/config.ml
@@ -1,10 +1,9 @@
open Functoria
open E2e

let main = main "App.Make" (job @-> job)

let key =
let doc = Key.Arg.info ~doc:"How to say hello." [ "hello" ] in
Key.(create "hello" Arg.(opt string "Hello World!" doc))

let () = register ~keys:[ Key.v key ] "noop" [ main $ noop ]
let main = main ~keys:[ Key.v key ] "App.Make" (job @-> job)
let () = register "noop" [ main $ noop ]
2 changes: 0 additions & 2 deletions test/functoria/e2e/lib/e2e.mli
@@ -1,8 +1,6 @@
open Functoria.DSL

val register :
?packages:package list ->
?keys:abstract_key list ->
?init:job impl list ->
?src:[ `Auto | `None | `Some of string ] ->
string ->
Expand Down
5 changes: 2 additions & 3 deletions test/functoria/help/config.ml
@@ -1,10 +1,9 @@
open F0
open Functoria

let main = Functoria.(main "App" job)

let key =
let doc = Key.Arg.info ~doc:"How to say hello." [ "hello" ] in
Key.(create "hello" Arg.(opt string "Hello World!" doc))

let () = register ~keys:[ Key.v key ] ~src:`None "noop" [ main ]
let main = Functoria.main ~keys:[ Key.v key ] "App" job
let () = register ~src:`None "noop" [ main ]
7 changes: 4 additions & 3 deletions test/functoria/query/config.ml
@@ -1,10 +1,11 @@
open F0
open Functoria

let main = Functoria.(main ~extra_deps:[ dep (app_info ()) ] "App" job)

let key =
let doc = Key.Arg.info ~doc:"How to say hello." [ "hello" ] in
Key.(create "hello" Arg.(opt string "Hello World!" doc))

let () = register ~keys:[ Key.v key ] ~src:`None "noop" [ main ]
let main =
Functoria.main ~keys:[ Key.v key ] ~extra_deps:[ dep (app_info ()) ] "App" job

let () = register ~src:`None "noop" [ main ]
5 changes: 2 additions & 3 deletions test/mirage/help/config.ml
@@ -1,9 +1,8 @@
open Mirage

let main = main "App" (job @-> job)

let key =
let doc = Key.Arg.info ~doc:"How to say hello." [ "hello" ] in
Key.(create "hello" Arg.(opt string "Hello World!" doc))

let () = register ~keys:[ Key.v key ] "noop" [ main $ noop ]
let main = main ~keys:[ Key.v key ] "App" (job @-> job)
let () = register "noop" [ main $ noop ]
9 changes: 2 additions & 7 deletions test/mirage/job-no-device-behind-if/config.ml
@@ -1,13 +1,8 @@
open Mirage

let main = main "App" job

let key =
let doc = Key.Arg.info ~doc:"How to say hello." [ "hello" ] in
Key.(create "hello" Arg.(opt string "Hello World!" doc))

let () =
register
~keys:[ Key.v key ]
~src:`None "noop"
[ if_impl Key.is_solo5 main main ]
let main = main ~keys:[ Key.v key ] "App" job
let () = register ~src:`None "noop" [ if_impl Key.is_solo5 main main ]
5 changes: 2 additions & 3 deletions test/mirage/job-no-device/config.ml
@@ -1,9 +1,8 @@
open Mirage

let main = main "App" job

let key =
let doc = Key.Arg.info ~doc:"How to say hello." [ "hello" ] in
Key.(create "hello" Arg.(opt string "Hello World!" doc))

let () = register ~keys:[ Key.v key ] ~src:`None "noop" [ main ]
let main = main ~keys:[ Key.v key ] "App" job
let () = register ~src:`None "noop" [ main ]
5 changes: 2 additions & 3 deletions test/mirage/query/config.ml
@@ -1,9 +1,8 @@
open Mirage

let main = main "App" (job @-> job)

let key =
let doc = Key.Arg.info ~doc:"How to say hello." [ "hello" ] in
Key.(create "hello" Arg.(opt string "Hello World!" doc))

let () = register ~keys:[ Key.v key ] ~src:`None "noop" [ main $ noop ]
let main = main ~keys:[ Key.v key ] "App" (job @-> job)
let () = register ~src:`None "noop" [ main $ noop ]
6 changes: 2 additions & 4 deletions test/mirage/query/config_dash_in_name.ml
@@ -1,10 +1,8 @@
open Mirage

let main = main "App" (job @-> job)

let key =
let doc = Key.Arg.info ~doc:"How to say hello." [ "hello" ] in
Key.(create "hello" Arg.(opt string "Hello World!" doc))

let () =
register ~keys:[ Key.v key ] ~src:`None "noop-functor.v0" [ main $ noop ]
let main = main ~keys:[ Key.v key ] "App" (job @-> job)
let () = register ~src:`None "noop-functor.v0" [ main $ noop ]

0 comments on commit cbc6ef8

Please sign in to comment.