diff --git a/bin/describe/describe_pkg.ml b/bin/describe/describe_pkg.ml index 571da5f3dc14..80f0af0ea19b 100644 --- a/bin/describe/describe_pkg.ml +++ b/bin/describe/describe_pkg.ml @@ -117,14 +117,9 @@ module List_locked_dependencies = struct |> Pp.vbox ;; - let enumerate_lock_dirs_by_path ~context_name_arg ~all_contexts_arg = + let enumerate_lock_dirs_by_path = let open Fiber.O in - let+ per_contexts = - Pkg_common.Per_context.choose - ~context_name_arg - ~all_contexts_arg - ~version_preference_arg:None - in + let+ per_contexts = Pkg_common.Per_context.choose ~version_preference_arg:None in List.filter_map per_contexts ~f:(fun { Pkg_common.Per_context.lock_dir_path; _ } -> if Path.exists (Path.source lock_dir_path) then ( @@ -140,10 +135,9 @@ module List_locked_dependencies = struct else None) ;; - let list_locked_dependencies ~context_name_arg ~all_contexts_arg ~transitive = + let list_locked_dependencies ~transitive = let open Fiber.O in - let+ lock_dirs_by_path = - enumerate_lock_dirs_by_path ~context_name_arg ~all_contexts_arg + let+ lock_dirs_by_path = enumerate_lock_dirs_by_path and+ local_packages = Pkg_common.find_local_packages in let pp = Pp.concat @@ -171,12 +165,6 @@ module List_locked_dependencies = struct let term = let+ builder = Common.Builder.term - and+ context_name = - Pkg_common.context_term - ~doc:"Print information about the lockdir associated with this context" - and+ all_contexts = - Arg.( - value & flag & info [ "all-contexts" ] ~doc:"Print information about all lockdirs") and+ transitive = Arg.( value @@ -189,12 +177,7 @@ module List_locked_dependencies = struct in let builder = Common.Builder.forbid_builds builder in let common, config = Common.init builder in - Scheduler.go ~common ~config - @@ fun () -> - list_locked_dependencies - ~context_name_arg:context_name - ~all_contexts_arg:all_contexts - ~transitive + Scheduler.go ~common ~config @@ fun () -> list_locked_dependencies ~transitive ;; let command = Cmd.v info term diff --git a/bin/pkg/lock.ml b/bin/pkg/lock.ml index b3c3428b2cd0..91aa61db75b1 100644 --- a/bin/pkg/lock.ml +++ b/bin/pkg/lock.ml @@ -124,8 +124,6 @@ let solve ;; let lock - ~context_name - ~all_contexts ~dont_poll_system_solver_variables ~version_preference ~opam_repository_path @@ -134,11 +132,7 @@ let lock ~experimental_translate_opam_filters = let open Fiber.O in - let* per_context = - Per_context.choose - ~context_name_arg:context_name - ~all_contexts_arg:all_contexts - ~version_preference_arg:version_preference + let* per_context = Per_context.choose ~version_preference_arg:version_preference and* solver_env_from_current_system = if dont_poll_system_solver_variables then Fiber.return None @@ -160,14 +154,6 @@ let term = let+ builder = Common.Builder.term and+ opam_repository_path = Opam_repository_path.term and+ opam_repository_url = Opam_repository_url.term - and+ context_name = - context_term - ~doc: - "Generate the lockdir associated with this context (the default context will be \ - used if this is omitted)" - and+ all_contexts = - Arg.( - value & flag & info [ "all-contexts" ] ~doc:"Generate the lockdir for all contexts") and+ version_preference = Version_preference.term and+ dont_poll_system_solver_variables = Arg.( @@ -207,8 +193,6 @@ let term = let common, config = Common.init builder in Scheduler.go ~common ~config (fun () -> lock - ~context_name - ~all_contexts ~dont_poll_system_solver_variables ~version_preference ~opam_repository_path diff --git a/bin/pkg/outdated.ml b/bin/pkg/outdated.ml index 928737f70304..1206dafc50b6 100644 --- a/bin/pkg/outdated.ml +++ b/bin/pkg/outdated.ml @@ -3,17 +3,10 @@ open Pkg_common module Lock_dir = Dune_pkg.Lock_dir module Opam_repo = Dune_pkg.Opam_repo -let find_outdated_packages - ~context_name_arg - ~all_contexts_arg - ~opam_repository_path - ~opam_repository_url - ~transitive - () - = +let find_outdated_packages ~opam_repository_path ~opam_repository_url ~transitive () = let open Fiber.O in let+ pps, not_founds = - Per_context.choose ~context_name_arg ~all_contexts_arg ~version_preference_arg:None + Per_context.choose ~version_preference_arg:None >>= Fiber.parallel_map ~f: (fun @@ -82,12 +75,6 @@ let find_outdated_packages let term = let+ builder = Common.Builder.term - and+ context_name_arg = context_term ~doc:"Check for outdated packages in this context" - and+ all_contexts_arg = - Arg.( - value - & flag - & info [ "all-contexts" ] ~doc:"Check for outdated packages in all contexts") and+ opam_repository_path = Opam_repository_path.term and+ opam_repository_url = Opam_repository_url.term and+ transitive = @@ -101,12 +88,7 @@ let term = let builder = Common.Builder.forbid_builds builder in let common, config = Common.init builder in Scheduler.go ~common ~config - @@ find_outdated_packages - ~context_name_arg - ~all_contexts_arg - ~opam_repository_path - ~opam_repository_url - ~transitive + @@ find_outdated_packages ~opam_repository_path ~opam_repository_url ~transitive ;; let info = diff --git a/bin/pkg/pkg_common.ml b/bin/pkg/pkg_common.ml index 35fcb5a6766b..b6e04f1ffef3 100644 --- a/bin/pkg/pkg_common.ml +++ b/bin/pkg/pkg_common.ml @@ -4,10 +4,6 @@ module Solver_env = Dune_pkg.Solver_env module Variable_name = Dune_pkg.Variable_name module Variable_value = Dune_pkg.Variable_value -let context_term ~doc = - Arg.(value & opt (some Arg.context_name) None & info [ "context" ] ~docv:"CONTEXT" ~doc) -;; - let solver_env ~solver_env_from_current_system ~solver_env_from_context = [ solver_env_from_current_system; solver_env_from_context ] |> List.filter_opt @@ -82,42 +78,13 @@ module Per_context = struct } ;; - let choose ~context_name_arg ~all_contexts_arg ~version_preference_arg = + let choose ~version_preference_arg = let open Fiber.O in - match context_name_arg, all_contexts_arg with - | Some _, true -> - User_error.raise [ Pp.text "--context and --all-contexts are mutually exclusive" ] - | context_name_opt, false -> - let+ workspace = Memo.run (Workspace.workspace ()) in - let context_name = - Option.value context_name_opt ~default:Dune_engine.Context_name.default - in - let context = - (* TODO this doesn't work for target contexts defined by cross compilation *) - List.find workspace.contexts ~f:(fun context -> - Dune_engine.Context_name.equal (Workspace.Context.name context) context_name) - in - (match context with - | None -> - User_error.raise - [ Pp.textf - "Unknown build context: %s" - (Dune_engine.Context_name.to_string context_name |> String.maybe_quoted) - ] - | Some (Default { lock; base = context_common; _ }) -> - [ make_solver workspace context_common ~version_preference_arg ~lock ] - | Some (Opam _) -> - User_error.raise - [ Pp.textf - "Unexpected opam build context: %s" - (Dune_engine.Context_name.to_string context_name |> String.maybe_quoted) - ]) - | None, true -> - let+ workspace = Memo.run (Workspace.workspace ()) in - List.filter_map workspace.contexts ~f:(function - | Workspace.Context.Default { lock; base = context_common } -> - Some (make_solver workspace context_common ~version_preference_arg ~lock) - | Opam _ -> None) + let+ workspace = Memo.run (Workspace.workspace ()) in + List.filter_map workspace.contexts ~f:(function + | Workspace.Context.Default { lock; base = context_common } -> + Some (make_solver workspace context_common ~version_preference_arg ~lock) + | Opam _ -> None) ;; end diff --git a/bin/pkg/pkg_common.mli b/bin/pkg/pkg_common.mli index 4aa861c73cee..7fe3793a2ef3 100644 --- a/bin/pkg/pkg_common.mli +++ b/bin/pkg/pkg_common.mli @@ -1,7 +1,5 @@ open Import -val context_term : doc:string -> Context_name.t option Term.t - (** Create a [Dune_pkg.Solver_env.t] by combining variables taken from the current system and variables taken from the current context, with priority being given to the latter. Also adds a binding from the variable @@ -27,9 +25,7 @@ module Per_context : sig } val choose - : context_name_arg:Context_name.t option - -> all_contexts_arg:bool - -> version_preference_arg:Dune_pkg.Version_preference.t option + : version_preference_arg:Dune_pkg.Version_preference.t option -> t list Fiber.t end diff --git a/bin/pkg/print_solver_env.ml b/bin/pkg/print_solver_env.ml index e2ce9b5d8714..d74145b960b3 100644 --- a/bin/pkg/print_solver_env.ml +++ b/bin/pkg/print_solver_env.ml @@ -17,18 +17,9 @@ let print_solver_env_for_one_context ] ;; -let print_solver_env - ~context_name - ~all_contexts - ~version_preference - ~dont_poll_system_solver_variables - = +let print_solver_env ~version_preference ~dont_poll_system_solver_variables = let open Fiber.O in - let+ per_context = - Per_context.choose - ~context_name_arg:context_name - ~all_contexts_arg:all_contexts - ~version_preference_arg:version_preference + let+ per_context = Per_context.choose ~version_preference_arg:version_preference and+ solver_env_from_current_system = if dont_poll_system_solver_variables then Fiber.return None @@ -44,14 +35,6 @@ let print_solver_env let term = let+ builder = Common.Builder.term - and+ context_name = - context_term - ~doc: - "Generate the lockdir associated with this context (the default context will be \ - used if this is omitted)" - and+ all_contexts = - Arg.( - value & flag & info [ "all-contexts" ] ~doc:"Generate the lockdir for all contexts") and+ version_preference = Version_preference.term and+ dont_poll_system_solver_variables = Arg.( @@ -70,11 +53,7 @@ let term = let builder = Common.Builder.forbid_builds builder in let common, config = Common.init builder in Scheduler.go ~common ~config (fun () -> - print_solver_env - ~context_name - ~all_contexts - ~version_preference - ~dont_poll_system_solver_variables) + print_solver_env ~version_preference ~dont_poll_system_solver_variables) ;; let info = diff --git a/bin/pkg/validate_lock_dir.ml b/bin/pkg/validate_lock_dir.ml index 18288b6b9d25..6fa8a1923fc1 100644 --- a/bin/pkg/validate_lock_dir.ml +++ b/bin/pkg/validate_lock_dir.ml @@ -11,14 +11,9 @@ let info = Cmd.info "validate-lockdir" ~doc ~man ;; -let enumerate_lock_dirs_by_path ~context_name_arg ~all_contexts_arg = +let enumerate_lock_dirs_by_path () = let open Fiber.O in - let+ per_contexts = - Pkg_common.Per_context.choose - ~context_name_arg - ~all_contexts_arg - ~version_preference_arg:None - in + let+ per_contexts = Pkg_common.Per_context.choose ~version_preference_arg:None in List.filter_map per_contexts ~f:(fun { Pkg_common.Per_context.lock_dir_path; _ } -> if Path.exists (Path.source lock_dir_path) then ( @@ -27,9 +22,9 @@ let enumerate_lock_dirs_by_path ~context_name_arg ~all_contexts_arg = else None) ;; -let validate_lock_dirs ~context_name_arg ~all_contexts_arg = +let validate_lock_dirs () = let open Fiber.O in - let+ lock_dirs_by_path = enumerate_lock_dirs_by_path ~context_name_arg ~all_contexts_arg + let+ lock_dirs_by_path = enumerate_lock_dirs_by_path () and+ local_packages = Pkg_common.find_local_packages in if List.is_empty lock_dirs_by_path then Console.print [ Pp.text "No lockdirs to validate." ] @@ -70,17 +65,10 @@ let validate_lock_dirs ~context_name_arg ~all_contexts_arg = ;; let term = - let+ builder = Common.Builder.term - and+ context_name = - Pkg_common.context_term ~doc:"Validate the lockdir associated with this context" - and+ all_contexts = - Arg.(value & flag & info [ "all-contexts" ] ~doc:"Validate all lockdirs") - in + let+ builder = Common.Builder.term in let builder = Common.Builder.forbid_builds builder in let common, config = Common.init builder in - Scheduler.go ~common ~config - @@ fun () -> - validate_lock_dirs ~context_name_arg:context_name ~all_contexts_arg:all_contexts + Scheduler.go ~common ~config validate_lock_dirs ;; let command = Cmd.v info term diff --git a/test/blackbox-tests/test-cases/pkg/describe-pkg-lock.t b/test/blackbox-tests/test-cases/pkg/describe-pkg-lock.t index 5cb0dbe9be09..53ee3201aacc 100644 --- a/test/blackbox-tests/test-cases/pkg/describe-pkg-lock.t +++ b/test/blackbox-tests/test-cases/pkg/describe-pkg-lock.t @@ -23,7 +23,7 @@ First we setup a repo. > EOF Here is the output of solving for multiple contexts: - $ solve_project --all-contexts < (lang dune 3.11) > (package > (name x) diff --git a/test/blackbox-tests/test-cases/pkg/detect-duplicate-lock-dir-paths.t b/test/blackbox-tests/test-cases/pkg/detect-duplicate-lock-dir-paths.t index de016cb34990..57846727b994 100644 --- a/test/blackbox-tests/test-cases/pkg/detect-duplicate-lock-dir-paths.t +++ b/test/blackbox-tests/test-cases/pkg/detect-duplicate-lock-dir-paths.t @@ -14,19 +14,8 @@ Define several build contexts that all use the default lockdir > (name custom-context-with-default-lock-dir))) > EOF -Check that we can still generate lockdirs for individual contexts: +It's an error to lock when multiple contexts have the same lockdir: $ dune pkg lock --opam-repository-path=mock-opam-repository - Solution for dune.lock: - (no dependencies to lock) - $ dune pkg lock --opam-repository-path=mock-opam-repository --context=default - Solution for dune.lock: - (no dependencies to lock) - $ dune pkg lock --opam-repository-path=mock-opam-repository --context=custom-context-with-default-lock-dir - Solution for dune.lock: - (no dependencies to lock) - -It's an error to use --all-contexts when there are multiple contexts with the same lockdir: - $ dune pkg lock --opam-repository-path=mock-opam-repository --all-contexts File "dune-workspace", line 5, characters 1-56: 5 | (default 6 | (name custom-context-with-default-lock-dir))) @@ -50,16 +39,8 @@ Define several build contexts that all use the same custom lockdir: > (lock foo.lock))) > EOF -Check that we can still generate lockdirs for individual contexts: - $ dune pkg lock --opam-repository-path=mock-opam-repository --context=a - Solution for foo.lock: - (no dependencies to lock) - $ dune pkg lock --opam-repository-path=mock-opam-repository --context=b - Solution for foo.lock: - (no dependencies to lock) - -It's an error to use --all-contexts when there are multiple contexts with the same lockdir: - $ dune pkg lock --opam-repository-path=mock-opam-repository --all-contexts +It's an error to lock when multiple contexts have the same lockdir: + $ dune pkg lock --opam-repository-path=mock-opam-repository File "dune-workspace", line 7, characters 1-39: 7 | (default 8 | (name a) diff --git a/test/blackbox-tests/test-cases/pkg/env-conditional-dependencies.t b/test/blackbox-tests/test-cases/pkg/env-conditional-dependencies.t index 5e43a9275c87..beeecce4e2f2 100644 --- a/test/blackbox-tests/test-cases/pkg/env-conditional-dependencies.t +++ b/test/blackbox-tests/test-cases/pkg/env-conditional-dependencies.t @@ -48,7 +48,7 @@ Create a workspace config that defines separate build contexts for macos and lin > EOF Now the os-specific dependencies are included on their respective systems. - $ dune pkg lock --dont-poll-system-solver-variables --opam-repository-path=mock-opam-repository --all-contexts + $ dune pkg lock --dont-poll-system-solver-variables --opam-repository-path=mock-opam-repository Solution for dune.macos.lock: - foo.0.0.1 - foo-macos.0.0.1 diff --git a/test/blackbox-tests/test-cases/pkg/just-print-solver-env.t b/test/blackbox-tests/test-cases/pkg/just-print-solver-env.t index a761c283d102..c92afc51e8d1 100644 --- a/test/blackbox-tests/test-cases/pkg/just-print-solver-env.t +++ b/test/blackbox-tests/test-cases/pkg/just-print-solver-env.t @@ -28,7 +28,7 @@ Add some build contexts with different environments > (lock dune.linux.no-doc.lock))) > EOF - $ dune pkg print-solver-env --all-contexts --dont-poll-system-solver-variables + $ dune pkg print-solver-env --dont-poll-system-solver-variables Solver environment for context no-doc: - arch = x86_64 - opam-version = 2.2.0~alpha-vendored diff --git a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/bar/bar.0.0.1/opam b/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/bar/bar.0.0.1/opam deleted file mode 100644 index 013b84db6175..000000000000 --- a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/bar/bar.0.0.1/opam +++ /dev/null @@ -1 +0,0 @@ -opam-version: "2.0" diff --git a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/bar/bar.0.4.0/opam b/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/bar/bar.0.4.0/opam deleted file mode 100644 index 013b84db6175..000000000000 --- a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/bar/bar.0.4.0/opam +++ /dev/null @@ -1 +0,0 @@ -opam-version: "2.0" diff --git a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/bar/bar.0.5.0/opam b/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/bar/bar.0.5.0/opam deleted file mode 100644 index 013b84db6175..000000000000 --- a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/bar/bar.0.5.0/opam +++ /dev/null @@ -1 +0,0 @@ -opam-version: "2.0" diff --git a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/baz/baz.0.0.1/opam b/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/baz/baz.0.0.1/opam deleted file mode 100644 index 013b84db6175..000000000000 --- a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/baz/baz.0.0.1/opam +++ /dev/null @@ -1 +0,0 @@ -opam-version: "2.0" diff --git a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/baz/baz.0.1.0/opam b/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/baz/baz.0.1.0/opam deleted file mode 100644 index 013b84db6175..000000000000 --- a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/baz/baz.0.1.0/opam +++ /dev/null @@ -1 +0,0 @@ -opam-version: "2.0" diff --git a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/foo/foo.0.0.1/opam b/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/foo/foo.0.0.1/opam deleted file mode 100644 index 990146824636..000000000000 --- a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/packages/foo/foo.0.0.1/opam +++ /dev/null @@ -1,5 +0,0 @@ -opam-version: "2.0" -depends: [ - "baz" {>= "0.1"} - "bar" {>= "0.2"} -] diff --git a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/repo b/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/repo deleted file mode 100644 index 013b84db6175..000000000000 --- a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/mock-opam-repository/repo +++ /dev/null @@ -1 +0,0 @@ -opam-version: "2.0" diff --git a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/run.t b/test/blackbox-tests/test-cases/pkg/lock-per-context.t/run.t deleted file mode 100644 index 217c4fdbfd58..000000000000 --- a/test/blackbox-tests/test-cases/pkg/lock-per-context.t/run.t +++ /dev/null @@ -1,148 +0,0 @@ -Create a workspace with multiple contexts, each specifying a lockdir name. - $ cat >dune-workspace < (lang dune 3.8) - > (lock_dir - > (path foo.lock) - > (version_preference newest)) ; this is the default - > (lock_dir - > (path prefers_oldest.lock) - > (version_preference oldest)) - > (context - > (default - > (lock foo.lock))) - > (context - > (default - > (name foo) - > (lock bar.lock))) - > (context - > (default - > (name prefers_oldest) - > (lock prefers_oldest.lock))) - > (context - > (opam - > (name bar) - > (switch default))) - > EOF - -Generate a `dune-project` file listing some dependencies. - $ cat >dune-project < (lang dune 3.8) - > (package - > (name lockfile_generation_test) - > (depends - > foo - > (bar (>= "0.3")) - > )) - > EOF - -Test that we get an error when --context and --all-contexts are passed at the same time. - $ dune pkg lock --opam-repository-path=mock-opam-repository --all-contexts --context=foo - Error: --context and --all-contexts are mutually exclusive - [1] - -Test that we get an error if a non-existant context is specified. - $ dune pkg lock --opam-repository-path=mock-opam-repository --context=baz - Error: Unknown build context: baz - [1] - -Test that we get an error if an opam context is specified. - $ dune pkg lock --opam-repository-path=mock-opam-repository --context=bar - Error: Unexpected opam build context: bar - [1] - -Generate the lockdir for the default context. - $ dune pkg lock --opam-repository-path=mock-opam-repository - Solution for foo.lock: - - bar.0.5.0 - - baz.0.1.0 - - foo.0.0.1 - -Only foo.lock (the default context's lockdir) was generated. - $ find *.lock | sort - foo.lock - foo.lock/bar.pkg - foo.lock/baz.pkg - foo.lock/foo.pkg - foo.lock/lock.dune - $ rm -rf *.lock - -Generate the lockdir with the default context explicitly specified. - $ dune pkg lock --opam-repository-path=mock-opam-repository --context=default - Solution for foo.lock: - - bar.0.5.0 - - baz.0.1.0 - - foo.0.0.1 - -Again, only foo.lock (the default context's lockdir) was generated. - $ find *.lock | sort - foo.lock - foo.lock/bar.pkg - foo.lock/baz.pkg - foo.lock/foo.pkg - foo.lock/lock.dune - $ rm -rf *.lock - -Generate the lockdir for the non-default context. - $ dune pkg lock --opam-repository-path=mock-opam-repository --context=foo - Solution for bar.lock: - - bar.0.5.0 - - baz.0.1.0 - - foo.0.0.1 - -Now only bar.lock was generated. - $ find *.lock | sort - bar.lock - bar.lock/bar.pkg - bar.lock/baz.pkg - bar.lock/foo.pkg - bar.lock/lock.dune - $ rm -rf *.lock - -Generate the lockdir for a context which prefers oldest package versions. - $ dune pkg lock --opam-repository-path=mock-opam-repository --context=prefers_oldest - Solution for prefers_oldest.lock: - - bar.0.4.0 - - baz.0.1.0 - - foo.0.0.1 - -Re-generate the lockdir for a context which prefers oldest package versions, -but override it to prefer newest with a command line argument. - $ dune pkg lock --opam-repository-path=mock-opam-repository --context=prefers_oldest --version-preference=newest - Solution for prefers_oldest.lock: - - bar.0.5.0 - - baz.0.1.0 - - foo.0.0.1 - -Generate the lockdir for all (non-opam) contexts. - $ dune pkg lock --opam-repository-path=mock-opam-repository --all-contexts - Solution for prefers_oldest.lock: - - bar.0.4.0 - - baz.0.1.0 - - foo.0.0.1 - Solution for bar.lock: - - bar.0.5.0 - - baz.0.1.0 - - foo.0.0.1 - Solution for foo.lock: - - bar.0.5.0 - - baz.0.1.0 - - foo.0.0.1 - -Now both lockdirs were generated. - $ find *.lock | sort - bar.lock - bar.lock/bar.pkg - bar.lock/baz.pkg - bar.lock/foo.pkg - bar.lock/lock.dune - foo.lock - foo.lock/bar.pkg - foo.lock/baz.pkg - foo.lock/foo.pkg - foo.lock/lock.dune - prefers_oldest.lock - prefers_oldest.lock/bar.pkg - prefers_oldest.lock/baz.pkg - prefers_oldest.lock/foo.pkg - prefers_oldest.lock/lock.dune - $ rm -rf *.lock diff --git a/test/blackbox-tests/test-cases/pkg/outdated.t b/test/blackbox-tests/test-cases/pkg/outdated.t index 8c24e57cde2e..c0c2fe549234 100644 --- a/test/blackbox-tests/test-cases/pkg/outdated.t +++ b/test/blackbox-tests/test-cases/pkg/outdated.t @@ -10,7 +10,7 @@ $ mkpkg bar < depends: [ "foo" {>= "0.0.1"} ] > EOF - $ cat > dune-workspace < dune-workspace.dev < (lang dune 3.11) > (context > (default)) @@ -19,7 +19,7 @@ > (name workspace-context) > (lock dune.workspace.lock))) > EOF - $ solve_project --all-contexts < (lang dune 3.11) > (package > (name baz) @@ -35,7 +35,7 @@ No package should be outdated after a fresh lock. $ outdated dune.lock is up to date. Same for all contexts: - $ outdated --all-contexts + $ outdated --workspace dune-workspace.dev - dune.workspace.lock is up to date. - dune.lock is up to date. @@ -49,7 +49,7 @@ Dune should report the new version of bar as available. 1/2 packages in dune.lock are outdated. - bar 0.0.1 < 0.0.2 Same for all contexts: - $ outdated --all-contexts + $ outdated --workspace dune-workspace.dev - 1/2 packages in dune.workspace.lock are outdated. - bar 0.0.1 < 0.0.2 - 1/2 packages in dune.lock are outdated. @@ -63,7 +63,7 @@ Dune should only report the bar package as it is an immediate dependency. Showing immediate dependencies, use --transitive to see them all. - bar 0.0.1 < 0.0.2 Same for all contexts: - $ outdated --all-contexts + $ outdated --workspace dune-workspace.dev - 2/2 packages in dune.workspace.lock are outdated. Showing immediate dependencies, use --transitive to see them all. - bar 0.0.1 < 0.0.2 @@ -77,7 +77,7 @@ If --transitive is also passed then both should be reported. - bar 0.0.1 < 0.0.2 - foo 0.0.1 < 0.0.2 Same for all contexts: - $ outdated --all-contexts --transitive + $ outdated --transitive --workspace dune-workspace.dev - 2/2 packages in dune.workspace.lock are outdated. - bar 0.0.1 < 0.0.2 - foo 0.0.1 < 0.0.2 @@ -109,7 +109,7 @@ When printing both successes and failures, any errors should appear afterwards. [1] Similarly for all contexts. - $ outdated --all-contexts --transitive + $ outdated --transitive --workspace dune-workspace.dev - 1/2 packages in dune.workspace.lock are outdated. - foo 0.0.1 < 0.0.2 - 1/2 packages in dune.lock are outdated. @@ -139,7 +139,7 @@ appear irrespective of being a transitive dependency. [1] With multiple contexts, the errors should also be printed for each context. - $ outdated --all-contexts + $ outdated --workspace dune-workspace.dev - dune.workspace.lock is up to date. - dune.lock is up to date. Error: Some packages could not be found. diff --git a/test/blackbox-tests/test-cases/pkg/prevent-user-setting-with-test.t b/test/blackbox-tests/test-cases/pkg/prevent-user-setting-with-test.t index 61a62fa6c2bd..6328260e2ff3 100644 --- a/test/blackbox-tests/test-cases/pkg/prevent-user-setting-with-test.t +++ b/test/blackbox-tests/test-cases/pkg/prevent-user-setting-with-test.t @@ -14,7 +14,7 @@ Add a workspace that attempts to set the "with-test" variable: > (lock dune.lock))) > EOF - $ dune pkg print-solver-env --all-contexts --dont-poll-system-solver-variables + $ dune pkg print-solver-env --dont-poll-system-solver-variables File "dune-workspace", line 5, characters 2-19: 5 | (with-test false))) ^^^^^^^^^^^^^^^^^ diff --git a/test/blackbox-tests/test-cases/pkg/unavailable-packages.t b/test/blackbox-tests/test-cases/pkg/unavailable-packages.t index 7b3de10c7b6c..da35f72faf01 100644 --- a/test/blackbox-tests/test-cases/pkg/unavailable-packages.t +++ b/test/blackbox-tests/test-cases/pkg/unavailable-packages.t @@ -2,29 +2,32 @@ $ mkrepo Set up two build contexts: a default one for linux and another for macos. - $ cat >dune-workspace <dune-workspace.linux < (lang dune 3.8) > (lock_dir > (path dune.lock) > (solver_env > (os linux))) + > (context (default)) + > EOF + + $ cat >dune-workspace.macos < (lang dune 3.8) > (lock_dir > (path dune.macos.lock) > (solver_env > (os macos))) - > (context (default)) > (context > (default > (name macos) > (lock dune.macos.lock))) > EOF - !! Do not delete this one for the one in helpers.sh as it passes --context !! Helper shell function to generate a dune-project file and generate lockdir for both contexts: $ solve_project() { > cat >dune-project - > dune pkg lock --dont-poll-system-solver-variables --opam-repository-path=mock-opam-repository --context=default - > dune pkg lock --dont-poll-system-solver-variables --opam-repository-path=mock-opam-repository --context=macos + > dune pkg lock --dont-poll-system-solver-variables --opam-repository-path=mock-opam-repository --workspace=dune-workspace.linux + > dune pkg lock --dont-poll-system-solver-variables --opam-repository-path=mock-opam-repository --workspace=dune-workspace.macos > } A package which is only available on linux: