Releases: Azure/dalec
v0.15.1
v0.15.0
What's Changed
Language-specific dependencies
Dalec has included support for fetching go module dependencies for several releases.
In this release we have included support for fetching rust cargo dependencies.
We plan to add support for more languages in the next release, including npm, yarn, and pip.
Caching
Go modules
When DALEC fetches go modules, it now keeps a persistent cache for all go modules across multiple builds/projects.
This means that go modules versions you have already fetched in any other dalec build can be re-used without having to go to the internet.
Persistent cache dirs
In the spec you can now define a cache directory to use as part of your build steps.
This is useful, for instance, for storing incremental compiler caches.
By default cache keys automatically include the target distro name and CPU architecture to prevent common issues that can happen when trying to share a cache between different distros/arches, but this can be disabled.
See the cache dirs docs
In addition to being able to specify fully custom cache dirs, this release also includes support for 2 special case cache dirs:
- gobuild - This is specifically tailored to the go build cache. You can explicitly enable it in the spec OR dalec will try to detect if go is present in the build environment and it will automatically add the cache. This auto detection can be disabled in your spec.
- bazel - This keeps a local cache directory for bazel builds. Unlike go, this is not going to be auto-detected you have to specify it in your spec file. Once specified dalec will add the cache dir to the system bazelrc file so your bazel build caches can be persisted locally.
We plan to expand support for more tailored caches in the future.
Docker --no-cache
Not really related to the kind of caching we're talking about above, but...
We added support docker build --no-cache
as well as docker build --no-cache-filter
The available filters you can pass to --no-cache-filter
are:
dalec.srcpkg
- Ignores just the cache related to generating the source package. Subsequent steps may still be cached if the result from building the source package is the same as previous runs.dalec.pkg
- Ignores the cache for the actual package build stepsdalec.container
- Ignores the cache for generating the container from the built package.
These were all added so we can adequately test cache directory persistence, but you may find them useful for your own cases.
Other changes
- Add support for arg expansion in patches, sources include/exclude/path by cpuguy83 in #620
- Reduce some verbosity in builds by cpuguy83 in #630
- Add custom marshalling for changelog date by cpuguy83 in #618
- Add chown support for symlinks by bchuo in #613
- Allow target-specific provides/conflicts/replaces by cpuguy83 in #624
- Add support for disabling automatic runtime dependency injection by cpuguy83 in #638
New Contributors
- grnmeira made their first contribution in #601
v0.14.2
What's Changed
- Set GOOS=windows by default in windowscross target
- Automatically convert symbols for package constraints between rpm/deb formats
Full Changelog: v0.14.1...v0.14.2
v0.14.1
What's Changed
Dalec spec
- Allow argument substitution for version constraints in provides/replaces, and package dependencies.
RPM
- Fix issue where "Provides" in the RPM spec was using the wrong field in the dalec spec (was using "replaces")
- Fix issue where "replaces" in the dalec spec were translated to the wrong (and non-existent) rpm spec field "Replaces". Now correctly sets "Obsoletes" in the rpm spec
Deb distros
- Fix potential issue with dependency resolution by trying to install packages with
apt install
first and only falling back when that fails - Calls
apt dist-upgrade
before installing built deb packages into container.
Full Changelog: v0.14.0...v0.14.1
v0.14.0
Notable changes
Builds should all now properly respect requested target platform(s).
Deb-based distros now use a single source tarball instead of the multi-orig format.
What's Changed
- Deb and multi-sources structure by @DannyBrito in #557
- Properly pass through target platform by @cpuguy83 in #586
Full Changelog: v0.13.6...v0.14.0
v0.13.6
v0.13.5
Important
This fixes an issues in 0.13.4 that accidentally caused extra packages (e.g. bash) to be installed in azlinux and mariner.
What's Changed
Full Changelog: v0.13.4...v0.13.5
v0.13.4
v0.13.3
v0.13.2
What's Changed
- Pass spec and platform to use for building zip file name by @jeremyrickard in #577
Full Changelog: v0.13.1...v0.13.2