Skip to content

Releases: nerves-project/nerves_bootstrap

v1.0.0-rc.2

27 Mar 21:09

Choose a tag to compare

  • Updates
    • Remove build_embedded from the mix.exs since it was unnecessary
    • Fix update check in mix local.nerves
    • Various changes to align new project generator with the one in Elixir 1.6.
    • Add rootfs_overlay directory and populate it with an iex.exs to load the
      nerves_runtime IEX helpers. This replaces a common manual process of doing
      this or something similar afterwards.
    • Add a commented out reference for enabling Erlang's heartbeat monitor

v1.0.0-rc.1

04 Mar 17:55

Choose a tag to compare

  • Bug fixes
    • Various mix format updates to the template
    • Update template so that projects use v1.0.0-rc system releases so that they
      compile
    • Fix archive update check logic

v0.8.2

23 Feb 18:11

Choose a tag to compare

  • Bug Fixes
    • Fixed check for update logic to exclude pre releases if on stable
      and show new pre releases / stable if current version is pre release.

v1.0.0-rc.0

22 Feb 16:02

Choose a tag to compare

Nerves no longer automatically compiles any nerves_package that is missing
it's pre-compiled artifact. This turned out to rarely be desired and caused
unexpectantly long compilation times when things like the Linux kernel or gcc
got compiled.

When a pre-compiled artifact is missing, Nerves will now tell you what your
options are to resolve this. It could be retrying mix deps.get to download it
again. If you want to force compilation to happen, add a :nerves option for
the desired package in your top level project:

  {:nerves_system_rpi0, "~> 1.0-rc", nerves: [compile: true]}

v0.8.1

15 Feb 23:51

Choose a tag to compare

  • Bug Fixes
    • deps.get and deps.update aliases should always be added to the
      project regardless of target.

v0.8.0

13 Feb 00:15

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

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

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

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

Choose a tag to compare

  • Enhancements
    • Removed unsupported systems from default targets and added x86_64.
    • Moved to independent hex package.