Comments (11)
Currently it's not enabled, but I was talking with José the other day, and his belief was that it should work in theory. I'll create a test umbrella project and play around with getting it working. Could you give me an example of the umbrella project you have in mind, and how they interact? No need to be super specific, just a general idea so that I can create a test project which will match that scenario roughly.
from exrm.
@bitwalker Thanks for the very fast reply. I've only been trying things out with a toy project at this point but my directory structure looks something like so:
$> tree -L 2
.
├── apps
│ ├── app_one
│ └── app_two
├── _build
│ └── dev
├── deps
│ ├── conform
│ ├── cowboy
│ ├── cowlib
│ ├── exrm
│ └── ranch
├── mix.exs
├── mix.lock
└── README.md
As you can see I've got Cowboy as a dependency. My toplevel mix.exs
looks like this:
defmodule TestApp.Mixfile do
use Mix.Project
def project do
[apps_path: "apps",
deps: deps]
end
defp deps do
[{:cowboy, github: "extend/cowboy"},
{:exrm, "~> 0.6.10"}]
end
end
I don't have any dependencies listed in the individual app mix.exs
files. Does that help?
/edit I forgot to mention that app_one
and app_two
do not depend on eachother.
from exrm.
Perfect! That definitely helps. I'm addressing another issue tonight, but I'll get the test project set up and start looking at it tomorrow. I have a rough idea of where I think some changes will be required in exrm, but I'll have to dig in and see what breaks first. Thanks for bringing this to my attention again, I had let it kind of slip since umbrella projects haven't been too common so far.
from exrm.
@bitwalker No probs, thanks for looking into this.
To quickly bootstrap an umbrella project that is pretty much exactly like mine you can do:
mix new test_app --umbrella
cd test_app/apps
mix new app_one
mix new app_two
cd ..
# add exrm dep
# add some other dep maybe cowboy
mix deps.get
mix release
Cheers.
from exrm.
One quick question for you, what were you planning on putting in app_one and app_two? Was one going to be a web server and the other something else?
from exrm.
@bitwalker Well, sort of. I actually have two web servers and a common set of functionality but I was just tinkering with Elixir and Mix+exrm to see whether it could handle the "composite app" structure from Rebar.
I know that composite apps are sort of frowned upon with Rebar but sometimes they're necessary :/
from exrm.
Gotcha, well that's helpful for sure, I just want to make sure I've got a "real" test app. I'd hate to think I've got things figured out, push a new version, and then find out my assumptions were all wrong.
from exrm.
@novabyte I just pushed a new release, 0.6.15, which adds support for umbrella projects. If you'd like to see my example project which I used to test this, it's here. Thanks again!
from exrm.
@novabyte I've made quite a few changes tonight, and decided to roll over to a new minor version. The most up to date code is now in 0.7.0, and the umbrella example application has been updated. I would highly recommend checking it out and reading through the README there, as I think there will be some stuff of interest to you.
from exrm.
@bitwalker wow, wow, wow! This is awesome, thanks so much! 😃
from exrm.
You're very welcome! Let me know if you run into any issues!
from exrm.
Related Issues (20)
- Mix.env/1 being used with string instead of atom when `--env="prod"` passed from script HOT 1
- Generating upgrade fails when attaching git revision to version HOT 1
- "/rel/<projectname>/bin/<projectname> stop" does not work HOT 3
- `mix release` fails with `{unreachable_package, cowlib}` HOT 4
- Error when following Phoenix Walkthrough Documentation
- [Bug?] Not responding to pings HOT 1
- RELX_REPLACE_OS_VARS boot script fails on awk with env vars containing certain characters HOT 3
- Color codes always output
- Release on ubuntu but cannot use in macOS HOT 2
- Can't generate release if config contains values set by an anonymous function HOT 3
- Remote console doesn't seem to have access to all applications in an umbrella app HOT 1
- Running mix release in docker cause MatchError. HOT 1
- Upgrade releases and storage... HOT 1
- deploy: module Experimental.Flow is not available
- mix release fails with 'no case clause matching: :eacces' HOT 8
- Raspbian Jessie with erlang 19 failed to start release HOT 1
- using a different erts version when deploying a release
- Default protocols are not replaced by consolidated in release. HOT 3
- Error while trying to rewrite app file HOT 2
- Mix.Shell.cmd/2 no longer exists, could we get an update to use the new Mix.Shell.cmd/3?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from exrm.