Single version number for umbrella application?

I’m sure there must be an easy and/or idiomatic way to do this, but I haven’t managed to find it.

If I have an umbrella application with several applications inside it, is it possible to define an overall version number somewhere and have it picked up by the individual apps, the umbrella app (now that exdoc seems to require a version for that too) and by distillery for releases? I’m currently having to bump versions in three separate mix.exs files, plus rel/config.exs, every time I want to make a release, which is tedious and error prone.

I think I can use set version: current_version(:some_app_name) to configure the release version, so that’s one off the list, but any hints to combine the individual app versions would be appreciated.

1 Like

A VERSION.txt file (containing the version) in the root directory and the appropriate String.trim(File.read!("[path]/VERSION.txt")) where version is needed can do the job if that works for you.

Thanks! That’s the kind of thing I would automatically have done in Ruby, but for some reason I expected the “right” answer in Elixir to be something fancier. Sometimes (usually?) the simple solutions are the best.

You might be able to grab the overall umbrella’s version from the Mix build system somehow?