Skip to content

Releases: nerves-project/nerves_bootstrap

v0.8.0

13 Feb 00:15
Compare
Choose a tag to compare

In the last relase (0.7.x) we added two additional aliases deps.get and
deps.update. In this release, we added an alias for run.
This led to a point where is became unreasonable to manage
all the required aliases in the project mix.exs. We changed the pratice to
allow nerves_bootstrap to manage the required aliases for you by calling
Nerves.Bootstrap.add_aliases/1, however, this causes users who
did not have the nerves_bootstrap archive installed to be stuck in an error
loop unless they would cd to a directory that did not contain an offending
mix.exs file to install the missing archive.

This version provides a safer way of allowing nerves_bootstrap to manage
its required aliases by hooking into a single alias: loadconfig.

To update, you will need to modify your mix.exs to the following:

  # mix.exs

  def project do
    [
      # ...
      aliases: ["loadconfig": [&bootstrap/1]],
    ]
  end

  # Starting nerves_bootstrap adds the required aliases to Mix.Project.config()
  # Aliases are only added if MIX_TARGET is set.
  def bootstrap(args) do
    Application.start(:nerves_bootstrap)
    Mix.Task.run("loadconfig", args)
  end
  • Enhancements
    • precompile will compile all Nerves packages instead of only the system
      and its children.
    • Calling run while MIX_TARGET is set will raise an exception for
      trying to run cross compiled code on the host.
    • Application.start(:nerves_bootstrap) will attempt to add aliases to the
      mix project on the top of the stack if MIX_TARGET is set.

v0.7.1

02 Feb 16:08
Compare
Choose a tag to compare
  • Enhancements
    • Added alias for deps.update to append nerves.deps.get to fetch
      artifacts.

v0.7.0

24 Jan 21:19
Compare
Choose a tag to compare
  • Enhancements
    • Added Mix task nerves.deps.get

    • nerves_bootstrap will check for updates when nerves.deps.get is called.

    • Added Nerves.Bootstrap.add_aliases/1
      This helper function ensures that your project has the required Nerves
      mix aliases defined and in the correct execution order. The function takes
      the existing aliases as a keyword list and injects the required Nerves aliases.
      You will need to update your mix.exs target aliases to use this version of
      nerves_bootstrap like this:

      defp aliases(_target) do
        [
          # Add custom mix aliases here
        ]
        |> Nerves.Bootstrap.add_aliases()
      end

      You should also update your required dependency for nerves to
      {:nerves, "~> 0.9", runtime: false}

  • Bug Fixes
    • disable precompiler when calling mix nerves.clean to prevent having to
      build the package so we can clean it.
    • Fixes issue where project dependencies that contain calls to System.get_env
      in their config or mix file or rebar deps that have rebar-config.script
      overrides that make os:getenv calls were not being configured for the
      cross compile environment.

v0.6.4

04 Jan 15:57
Compare
Choose a tag to compare
  • Enhancements
    • Changed update location from Github to hex.pm
    • Fixed compiler warning
    • Synchronize new project template with Elixir 1.6 updates (includes formatter)

v0.6.3

04 Jan 15:57
Compare
Choose a tag to compare
  • Enhancements
    • Removed unsupported systems from default targets and added x86_64.
    • Moved to independent hex package.