README.md

# ExMonorepo

Add minimal support for storing apps as a unstructured monorepo.

## Installation

```
$ git clone git://gitlab.com/fwtno/exmonorepo
$ cd exmonorepo && mix archive.build && mix archive.install exmonorepo*.ez
```

To use it make a file `monorepo.exs` with the contents `repo = "./"` and set `use ExMonorepo` in `mix.exs`.

```elixir
defmodule ExpkgTest.MixProject do
  use Mix.Project

  # Use monorepo implementation
  use ExMonorepo

  def project do
    [
      app: :expkg,
      version: "0.1.0",
      elixir: "~> 1.13",
      start_permanent: Mix.env() == :prod,
      deps: deps(),
    ]
  end

  def application do
    [extra_applications: [:logger]]
  end

  defp deps do
    [{:dependency, "~> 0.1"}, {:root, "~> 0.1"}]
  end
end
```



## Known Limitations

 * Only supports mix dependencies - not rebar/make/...
 * Umbrella apps are not tested - may behave weird
 * Consider this as alpha software, paper cuts and chopped limbs will occur.
 * Keeping `__DIR__` as monorepo will have weird side effects.
 * This is a gready SCM, it will disable fetching from hex (and possibly others)
   in case it find the dependency. It's important to keep `deps/` folder
   out of search path.