{"category":{"__v":1,"_id":"55bf8ff483675d17000b9b2b","pages":["55bf8ff483675d17000b9b2c","55bf8ff483675d17000b9b2d","55bf8ff483675d17000b9b2e","55bf8ff483675d17000b9b2f","55bf8ff483675d17000b9b30","55bf8ff483675d17000b9b31"],"project":"5589b4b0db0a020d00a75f8a","version":"55bf8ff383675d17000b9b2a","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-06-23T19:34:09.101Z","from_sync":false,"order":0,"slug":"documentation","title":"Documentation"},"project":"5589b4b0db0a020d00a75f8a","user":"5589b346986b6c0d00f54355","version":{"__v":1,"_id":"55bf8ff383675d17000b9b2a","project":"5589b4b0db0a020d00a75f8a","createdAt":"2015-08-03T15:59:47.166Z","releaseDate":"2015-08-03T15:59:47.166Z","categories":["55bf8ff483675d17000b9b2b"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"0.18.0","version":"0.18"},"_id":"55bf8ff483675d17000b9b30","__v":0,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-07-05T05:24:14.458Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":4,"body":"I'm starting this list to begin collating the various caveats around\nbuilding releases. As soon as I feel like I have a firm grasp of all the\nedge cases, I'll formalize this in a better format perhaps as a\n\"Preparing for Release\" document.\n\n- Ensure all dependencies for your application are defined in either the\n  `:applications` or `:included_applications` block of your `mix.exs` file. This is how the build\n  process knows that those dependencies need to be bundled in to the\n  release. **This includes dependencies of your dependencies, if they were\n  not properly configured**. For instance, if you depend on `mongoex`, and\n  `mongoex` depends on `erlang-mongodb`, but `mongoex` doesn't have `erlang-mongodb`\n  in it's applications list, your app will fail in it's release form,\n  because `erlang-mongodb` won't be loaded.\n- If you are running into issues with your dependencies missing their\n  dependencies, it's likely that the author did not put the dependencies in\n  the `:application` block of *their* `mix.exs`. You may have to fork, or\n  issue a pull request in order to resolve this issue. Alternatively, if\n  you know what the dependency is, you can put it in your own `mix.exs`, and\n  the release process will ensure that it is loaded with everything else.\n- Due to the way `config.exs` is converted to the `sys.config` file used by\n  Erlang releases, it is important to make sure all of your config values are\n  namespaced by application, i.e. `config :myapp, foo: bar` instead of `config foo: bar`,\n  and access your config via `Application.get_env(:myapp, :foo)`. If you do not\n  do this, you will likely run into issues at runtime complaining that you are attempting\n  to access configuration for an application that is not loaded.\n\nIf you run into problems, please create an issue, and I'll address ASAP.","excerpt":"Problems often encountered by new users","slug":"common-issues","type":"basic","title":"Common Issues"}

Common Issues

Problems often encountered by new users

I'm starting this list to begin collating the various caveats around building releases. As soon as I feel like I have a firm grasp of all the edge cases, I'll formalize this in a better format perhaps as a "Preparing for Release" document. - Ensure all dependencies for your application are defined in either the `:applications` or `:included_applications` block of your `mix.exs` file. This is how the build process knows that those dependencies need to be bundled in to the release. **This includes dependencies of your dependencies, if they were not properly configured**. For instance, if you depend on `mongoex`, and `mongoex` depends on `erlang-mongodb`, but `mongoex` doesn't have `erlang-mongodb` in it's applications list, your app will fail in it's release form, because `erlang-mongodb` won't be loaded. - If you are running into issues with your dependencies missing their dependencies, it's likely that the author did not put the dependencies in the `:application` block of *their* `mix.exs`. You may have to fork, or issue a pull request in order to resolve this issue. Alternatively, if you know what the dependency is, you can put it in your own `mix.exs`, and the release process will ensure that it is loaded with everything else. - Due to the way `config.exs` is converted to the `sys.config` file used by Erlang releases, it is important to make sure all of your config values are namespaced by application, i.e. `config :myapp, foo: bar` instead of `config foo: bar`, and access your config via `Application.get_env(:myapp, :foo)`. If you do not do this, you will likely run into issues at runtime complaining that you are attempting to access configuration for an application that is not loaded. If you run into problems, please create an issue, and I'll address ASAP.