Fl4m3Ph03n1x

Fl4m3Ph03n1x

Background

Following my question on Umbrella projects:

I know have it clear that the mix.exs file of my umbrella should be for general tooling and tasks my projects directly don’t depend on.

One such tool is credo: GitHub - rrrene/credo: A static code analysis tool for the Elixir language with a focus on code consistency and teaching. · GitHub

Problem

My projects don’t depend or need credo, but I sure like having it around. My objective would therefore be to have mix credo --strict evaluate all my umbrella applications, without me having to specifically install it in every single app.

I understand this is possible, however when I do mix credo --strict it always shows I have 0 problems, even though I have the code with TODO tags and other issue that I know trigger it.

Obviously my configuration is not set up correctly.

Configuration

This is my folder structure:

.
├── README.md
├── apps
│   ├── auction_house
│   │   ├── README.md
│   │   ├── config
│   │   ├── cover
│   │   ├── lib
│   │   ├── mix.exs
│   │   └── test
│   ├── store
│   │   ├── README.md
│   │   ├── lib
│   │   ├── mix.exs
│   │   └── test
├── config
│   ├── config.exs
│   ├── dev.exs
│   ├── prod.exs
│   └── test.exs
├── mix.exs
└── mix.lock

So as you can see, each app has its own mix.exs file which only has the very specific dependencies the projects depends on.

Then on a higher level (apps folder) I have a mix.exs file for the umbrella project. This is what that file looks like:

defmodule MarketManager.MixProject do
  use Mix.Project

  ##########
  # Public #
  ##########

  def project do
    [
      apps_path: "apps",
      version: "1.0.0",
      elixir: "~> 1.10",
      start_permanent: Mix.env() == :prod,
      deps: deps(),
      ]
  end

  def application do
    [
      extra_applications: [:logger],
      mod: {MarketManager.Application, [env: Mix.env()]} # No idea what to put here, really
    ]
  end

  ###########
  # Private #
  ###########

  defp deps do
    [
      # Testing and Dev
      {:credo, "~> 1.4", only: [:test, :dev], runtime: false}
    ]
  end

end

Question

What am I doing wrong?

Showing Posts 1 to 1

Fl4m3Ph03n1x

Fl4m3Ph03n1x OP

Turns out several things were wrong. To start, my umbrella mix.exs file has stuff it doesn’t need:

defmodule MarketManager.MixProject do
  use Mix.Project

  def project do
    [
      apps_path: "apps",
      version: "1.0.0",
      elixir: "~> 1.10",
      start_permanent: Mix.env() == :prod,
      deps: deps(),
      ]
  end

  defp deps do
    [
      # Testing and Dev
      {:credo, "~> 1.4", only: [:test, :dev], runtime: false}
    ]
  end

end

Done. This is all that it should have.

With that fixed, turns out my auction_house app should not have a config folder. Instead, it should use the config folder of the umbrella project itself.

With these two issues fixed, credo now works as expected !

— All posts loaded —

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
Cxx-mlr
I’m working on a small exercise involving update_in/3, and I came up with this solution: data = %{ name: "Periodic Table", category:...
New
ChrisAmelia
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication): toke...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews