Skip to content

Releases: nerves-project/nerves

v0.9.2

30 Jan 17:18
Compare
Choose a tag to compare
  • Bug Fixes
    • Fixed issue where env var artifact path overides were being calculated
      instead of honored.

v0.9.1

26 Jan 23:49
Compare
Choose a tag to compare
  • Bug Fixes
    • Fixed issue with artifact default path containing duplicate names
    • Nerves.Env.host_os can be set from $HOST_OS for use with canadian
      cross compile
    • Nerves.Env.host_arch can be set from $HOST_ARCH for use with canadian
      cross compile
    • mkdir -p on Artifact.base_dir before trying to link to build path artifacts
    • raise if artifact_urls are not binaries.

v0.9.0

24 Jan 20:27
Compare
Choose a tag to compare
  • Update Notes

Upgrade guide

Starting in Nerves v0.9.0, artifacts will no longer be fetched during
mix compile. Artifact archives are intended to be fetched following mix deps.get.
To handle this, you will need to update your installed version of nerves_bootstrap by
calling mix local.nerves. After updating nerves_bootstrap, you should update
your mix.exs file to add the new required mix aliases found there. A helper
function is available named Nerves.Bootstrap.add_aliases that you can pipe your
existing aliases to like this:

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

Also, update your nerves dependency to:

{:nerves, "~> 0.9", runtime: false}

  • API Changes

    • Moved Nerves.Package.Providers to Nerves.Artifact.Providers
    • Moved Nerves.Package.Providers.HTTP to Nerves.Artifact.Resolver
    • Nerves.Artifact.Resolver no longer implements the
      Nerves.Artifact.Provider behaviour.
  • Enhancements

    • Added Mix task nerves.artifact.get. Use to fetch the artifact archive from an
      artifact_url location. Once downloaded its checksum will be checked against
      artifact_checksum from the nerves_package config in mix.exs. The Mix task
      nerves.deps.get will recursively call nerves.artifact.get to fetch archives.

    • Added Mix task nerves.artifact.archive. This task will produce the
      artifact archive and artifact checksum file which are used when calling
      nerves.artifact.get.

    • Nerves packages can override the Provider in the nerves_package config
      in mix.exs using the keys provider and provider_opts. This is
      useful to force a package to build using a specific provider like
      Nerves.Artifact.Providers.Docker. See the package configuration docs
      for more information.

    • Added artifact_sites to the nerves_package config. Artifact sites
      are helpers that are useful for cleanly specifying locations where artifacts
      can be fetched. If you are hosting your artifacts using Github relases
      you can specify it like this:

      artifact_sites: [
        {:github_releases, "orginization/project"}
      ]

      You can also specify your own custom server location by using the :prefix
      helper by passing a url or file path:

      artifact_sites: [
        {:prefix, "/path/to/artifacts"},
        {:prefix, "https://my_bucket.s3-east.amazonaws.com/artifacts"}
      ]

      Artifact sites will be tried in order until one successfully downloads the
      artifact.

  • Bug Fixes

    • Fixed issue with Nerves.Utils.HTTPResolver crashing when missing the
      content-disposition and content-length headers.
    • Run integrity check on tar files to validate they are not corrupted on
      download.

v0.8.3

23 Nov 11:40
Compare
Choose a tag to compare
  • Bug Fixes
    • Revert plugin Nerves in new project generator until
      the fix can be made in distillery.
      This issue was causing the release to contain compiled
      libraries from the host instead of the target.
      The error would look similar to this
      Got:
      ELF 64-bit LSB relocatable, x86-64, version 1
      
      If binary, expecting:
      ELF 32-bit LSB executable, ARM, EABI5 version 1, interpreter /lib/ld-linux.so.3, for GNU/Linux 4.1.39
      
      You can fix this by updating and regenerating the new project.

v0.8.2

23 Nov 11:40
Compare
Choose a tag to compare
  • Bug Fixes
    • Fixed an error in the Nerves Distillery plugin that was causing the following error message:
      Plugin failed: no function clause matching in IO.chardata_to_string/1
      
    • Don't override the output_dir in the Distillery Plugin.
  • Enhancements
    • Added contributing guide
    • Improved error messages when NERVES_SYSTEM or NERVES_TOOLCHAIN are unset.

v0.8.0

23 Nov 11:39
Compare
Choose a tag to compare
  • Enhancements

    • Removed legacy compiler key from the package struct. The nerves_package compiler will be chosen by default.
    • Simplified the distillery relase config by making Nerves a distillery plugin
    • Skip archival phase when making firmware.
    • Allow the progress bar to be disabled for use in CI systems by setting NERVES_LOG_DISABLE_PROGRESS_BAR=1
    • Deprecate nerves.exs. The contents of nerves.exs files have been moved into mix.exs under the project key nerves_package
  • Bug Fixes

    • raise an exception when the artifact build encounters an error

v0.7.5

27 Aug 19:51
Compare
Choose a tag to compare
  • Enhancements

    • Docker
      • Reduced the image size by optimizing docker file.
      • Images are pulled from Docker Hub instead of building locally.
      • Containers are transient and build files are stored in docker volumes.
      • NERVES_BR_DL_DIR is mounted as a host volume instead of a docker volume.
  • Bug Fixes

    • Docker
      • Fixed issue where moving the project location on the host would require
        the container to be force deleted.

v0.7.4

27 Aug 19:52
Compare
Choose a tag to compare
  • Bug Fixes
    • Make sure the path NERVES_DL_DIR exists before writing artifacts to it.

v0.7.3

27 Aug 19:52
Compare
Choose a tag to compare
  • Enhancements
    • [mix firmware.image] remove the need to pass an image name. Default to the app name.
    • [mix] added shortdocs to all mix tasks.
    • [fwup] bumped requirement to ~> 0.15 and support 1.0.0 pre release.
    • Cache downloads to ~/.nerves/dl or $NERVES_DL_DIR if defined.

Nerves v0.7.2

08 Aug 22:02
Compare
Choose a tag to compare

Nerves v0.7.2

  • Bug Fixes
    • Fixed issue where nerves.system.shell would hang and load improperly.
  • Enhancements
    • Deprecated the rootfs_additions configuration option, to be superseded by
      the rootfs_overlay option, which matches the convention used by the
      Buildroot community.