mix virtual_time.doctor (GenServerVirtualTime v1.1.1)

Copy Markdown View Source

Reports modules your project uses that live in another package of the family, and the dependency line that makes the build work again.

The library is published as a family of packages that share one version: gen_server_virtual_time (the clock and the OTP wrappers), actor_simulation (the DSL, statistics and diagrams) and actor_simulation_codegen (the code generators). A module keeps its name when it moves to another package, so a project that is missing one of them does not need code changes — it needs a dependency.

Usage

mix virtual_time.doctor                  # report, always exit 0
mix virtual_time.doctor --check          # exit 1 when something is missing (CI)
mix virtual_time.doctor --paths lib,test,config

Example

$ mix virtual_time.doctor

This project refers to modules that are not available.

Add these to your deps:

    {:actor_simulation, "~> 1.0"}

No code changes are needed — a module keeps its name when it changes
package. Then run `mix deps.get`.

Where they are used:
    lib/my_app/pipeline.ex:12: ActorSimulation.new  →  {:actor_simulation, "~> 1.0"}