Releases: nerves-project/nerves
v0.9.2
v0.9.1
- 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 compileNerves.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
- Update Notes
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
toNerves.Artifact.Providers
- Moved
Nerves.Package.Providers.HTTP
toNerves.Artifact.Resolver
Nerves.Artifact.Resolver
no longer implements the
Nerves.Artifact.Provider
behaviour.
- Moved
-
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 thenerves_package
config inmix.exs
. The Mix task
nerves.deps.get
will recursively callnerves.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
inmix.exs
using the keysprovider
andprovider_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 thenerves_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
andcontent-length
headers. - Run integrity check on tar files to validate they are not corrupted on
download.
- Fixed issue with
v0.8.3
- 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 thisYou can fix this by updating and regenerating the new project.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
- Revert plugin Nerves in new project generator until
v0.8.2
- 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.
- Fixed an error in the
- Enhancements
- Added contributing guide
- Improved error messages when
NERVES_SYSTEM
orNERVES_TOOLCHAIN
are unset.
v0.8.0
-
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
- Removed legacy compiler key from the package struct. The
-
Bug Fixes
- raise an exception when the artifact build encounters an error
v0.7.5
-
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.
- Docker
-
Bug Fixes
- Docker
- Fixed issue where moving the project location on the host would require
the container to be force deleted.
- Fixed issue where moving the project location on the host would require
- Docker
v0.7.4
- Bug Fixes
- Make sure the path NERVES_DL_DIR exists before writing artifacts to it.
v0.7.3
- 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
Nerves v0.7.2
- Bug Fixes
- Fixed issue where
nerves.system.shell
would hang and load improperly.
- Fixed issue where
- Enhancements
- Deprecated the
rootfs_additions
configuration option, to be superseded by
therootfs_overlay
option, which matches the convention used by the
Buildroot community.
- Deprecated the