What's the recommended way of the directory hirerachy for multiple Elixir projects?

Say, I have several projects. Some of them are umbrella projects. Some are simple web apps consisting of only the main web app. And some are in different languages such as Ruby, Python.

What’s the recommended directory hirerachy for that? I’ve come up with this:

/home/my_user/apps/{app1, app2, app3, etc...}

But how about “releases” directories for Phoenix projects? And perhaps “builds” too.

Should I use this:

/home/my_user/apps/{builds, releases}

Or better this?

/home/my_user/apps/{app1/{builds, releases}, app2/{builds, releases}}....

Or anything else?

For Phoenix and Elixir based I use edeliver and distillery to deploy them.

I think the details of the composition of your projects and your personal preferences will probably mean the right answer for you may be different, but its an interesting question.

I personally have ~/repos/<org>/<project>/<reponame> and ~/repos/<language>/<reponame> . ~/repos/<language> are for any random repo I clone from Github for any number of reasons, as well as my open source projects that are in maintenance mode. ~/repos/<org> is for “real-work” that I’m getting paid for by a specific organization, or a very serious side-project. Note that a repo may contain multiple libraries, images, apps if it is going to be the typical case that a single commit will touch multiple of them. I generally start with a mono-repo and don’t break libraries out until they have a completely separate release life-cycle (such as extracting a component from a private project to an open-source library that I continue to maintain separately).

1 Like

My question isn’t about how to organize the folders of all my projectS. But how to organize a single elixir project.