All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
This changelog adheres to Keep a CHANGELOG.
0.53.0 - 2024-09-13
- (VANAGON-257) Enable windowsfips-2016 to use '-fips' candle and heat flags.
0.52.0 - 2024-06-03
- Add Amazon 2 (ARM) platform definition to vanagon
0.51.0 - 2024-05-31
- (VANAGON-243) Add Ubuntu 24.04 (ARM) platform definition to vanagon
0.50.0 - 2024-04-29
(PA-6262) Change cmake to cmake3 form amazon linux 2 arm
0.49.0 - 2024-04-29
- Use URI.parse when selecting the docker target
- (VANAGON-242) Add Amazon Linux2 ARM platform definition to vanagon
0.48.0 - 2024-04-16
- (PA-6347) Add Fedora 40 platform definition to vanagon
0.47.0 - 2024-04-03
- (PA-5323) Add RedHat 9 (Power9) platform definition to vanagon
0.46.0 - 2024-03-18
- (RE-16095) Abandon fustigit in favor of build-uri. build-uri provides similar functionality without the monkey-patching
0.45.0 - 2024-02-16
- (VANAGON-228) Add Fedora-38 (Intel) platform definition to vanagon
- (RE-16102) Add Redhat-9 FIPS platform definition to vanagon
- (VANAGON-239) Add Ubuntu 24.04 (x86_64) platform definition
0.44.0 - 2023-11-30
- (VANAGON-237) Add macOS 14 (ARM) platform definition to vanagon
- (VANAGON-236) Add macOS 14 (Intel) platform definition to vanagon
- (maint) Add Debian 12 bookworm platform definitions
0.43.0 - 2023-11-20
- (PA-5947) Add Amazon Linux platform utility matcher, update RPM project spec template to require coreutils that are symlinked.
0.42.0 - 2023-11-09
- (PA-5786) Add revised
postinstall_required_actions
forcing scriptlets to run in the %post section for rpm
- (VANAGON-235) Report the actual URL when a Git URL is deemed invalid.
0.41.0 - 2023-10-26
- (VANAGON-231) Added amazon linux 2023 platform for intel & arm
- Reverted "(PA-5786) Add ability to execute direct post installation scriptlets"
0.40.0 - 2023-10-24
- (PA-5786) Add
postinstall_required_actions
forcing scriptlets to run in the %post section for rpm
0.39.3 - 2023-09-29
- (PA-5328) Add support for Debian 11 (ARM64)
- (maint) Force psych gem to use >= 4.0 to avoid breaking change in safe_load between v3 and v4 of the gem.
0.39.2 - 2023-08-29
- (maint) Handle an invalid mirror gracefully
0.39.1 - 2023-08-25
- (maint) Fix git remote detection
- (maint) Fix valid_url? check
0.39.0 - 2023-08-07
- (PA-5701) Allow platform's name to be overridden
0.38.0 - 2023-07-05
- (maint) Adds
brew
attribute to specify the path of Homebrew on macOS on different architectures. - (PA-5329) Add macOS 13 (ARM64)
- (PA-5326) Added macos 13 (x86_64)
0.37.1 - 2023-06-21
- (maint) Add TLS 1.2 to the platform add command for Windows
- (maint) Use keyword arguments
0.37.0 - 2023-06-13
- (VANAGON-227) Be more discerning when declaring a URI starting with 'https://github.com/' as a git repository for source purposes.
- (VANAGON-232) Be a bit more polite when ABS times out allocating a VM.
- (PA-5327) Remove OSX 10.15 (x86_64)
- (PA-5331) Red Hat 7 (aarch64)
- (maint) Add gpg key to provisioning step for default ubuntu-22.04-amd64 config.
0.36.0 - 2023-04-18
- (VANAGON-226) Fix problems with running on Ruby 3.0 - 3.2
- (VANAGON-204) Fix and update some rspec tests for Ruby 3
0.35.1 - 2023-03-21
- (maint) Name file in deb build 'buildinfo' instead of 'build' to make signing work with newer versions of debsign.
0.35.0 - 2023-02-14
- (VANAGON-211) Speed up file listings on Windows
- (VANAGON-214) Create home directory on macOS before installing brew, add macOS 11 & 12 ARM definitions, and opt-out from homebrew analytics.
0.34.0 - 2023-01-16
- (PA-4841) Update platform default for Ubuntu 18.04 aarch64/ARM64
0.33.0 - 2023-01-13
- (PA-4838) Update platform defaults for RHEL 8 ppc64le, RHEL 7 & 8 FIPS (x86-64)
0.32.0 - 2023-01-11
- (RE-15209) Exempt github URLs from being checked as valid git repositories in order to avoid rate-limiting from excessive traffic.
- (RE-15095) Update git gem from 1.11.0 to 1.13.0.
- (maint)
only-build
option is now converted to an array so it can be used.
0.31.0 - 2022-10-04
- (VANAGON-184) Remove support for Fedora 32 (x86-64)
- (VANAGON-185) Remove support for Fedora 34 (x86-64)
- (VANAGON-196) Remove support for Ubuntu 16.04 (x86 and x86-64)
- (VANAGON-197) Remove support for Debian 9 (x86 and x86-64)
- (RE-14715) Update fustigit gem to version 0.2.0.
- (maint) osx-10-15.x86-64 installs homebrew via bash rather then ruby
0.30.0 - 2022-08-18
- (maint) Update extra file signer to use rsync for extra file signing due to scp causing issues with osx.
0.29.0 - 2022-08-15
- (maint) Update extra file signer to use scp and sign using a script rather than a direct ssh command.
0.28.0 - 2022-07-27
- (VANAGON-193) Adds support for Fedora 36 (x86-64)
- (maint) set the Debian compat level from 7 (which is unsupported) to 10
- (maint) Fail more gently when a platform file isn't found. Also relax requirement that the platform name not end with the '.rb' extension.
- (maint) Update the macos hostArchitectures option to 'x86_64,arm64' in order to support the install of packages on macos M1 hardware
0.27.0 - 2022-06-06
- (VANAGON-182) Add Ubuntu 22.04
- (maint) Force dh_builddeb to use -Zgzip for compatibility with reprepro. This keeps existing gzip usage and thwarts Ubuntu 22.04's desire to switch to zstd.
0.26.3 - 2022-05-11
- (RE-14660) Update git gem dependency
- (maint) Simplifies logic for .tar.xz archives
0.26.2 - 2022-04-27
- (maint) Add the focal-updates.list file creation and gpg key add to the provisioning step in the defaults for ubuntu-20.04-amd64
0.26.1 - 2022-03-29
- (VANAGON-181) Add macOS 12 Monterey x86-64 support
- Reverted work to support Apple Notarization while we work through more issues
0.26.0 - 2022-03-10
- (VANAGON-179) Addition of ruby 3 support for vanagon
- (VANAGON-187) Change valid remote repository check to use 'git ls-remote --heads' rather than 'git ls-remote'
0.25.0 - 2022-01-24
- (maint) Use priority 3 for ABS and user 'vanagon' if none is given
0.24.0 - 2022-01-14
- (VANAGON-174) Addition 'el-9' platform
- (RE-14305) Add 'vanagon dependencies' command to generate gem dependencies as a json file
- (VANAGON-162) Added new instance variable 'log_url' to use in logs rather than the full git url
- (maint) Check environment for the X-RPROXY-PASS variable and add it to the http request header in the download method if it exists
- (maint) Allow target on CLI to set user and port
- (VANAGON-168) Remove Fedora 30 x86_64
- (VANAGON-169) Remove Fedora 31 x86_64
- (VANAGON-170) Remove OSX 10.14 x86_64
0.23.0 - 2021-09-23
- (VANAGON-171) Add Ubuntu 18.04 aarch64 defaults
- (VANAGON-166) Add RedHat 8 FIPS defaults
- (maint) Update vmpooler URL
- (VANAGON-167) Update tests to remove redhat 5
- (VANAGON-166) Do not undefine
__debug_package
on EL 8 FIPS - (VANAGON-177) Remove
__debug_package
workaround for EL 8
0.22.0 - 2021-07-06
- (PA-3709) Add Debian 11 64-bit support
- (PA-3755) add
--extended-attributes
on mac OS - (RE-14154) Exit if
VANAGON_FORCE_SIGNING
is set
- (maint) Update nspooler URL to reflect changed location.
0.21.1 - 2021-06-07
- (PA-3755) Add support for mac OS code signing
- (PA-3613) Added vanagon support for MacOS 11 Big Sur
- (VANAGON-85) Added the
clear_provisioning
method to the platform dsl to clear the provisioning command array. - (maint) Added the current vanagon commands to the README.md
- (PA-3570) add the posibility to clone into a custom dirname
- (PA-3604) add Fedora 34 support
- (maint) install
libarchive
on el-8
- (maint)
vanagon list
now returns results in alphabetical order.
0.21.0 - 2021-04-15
- (VANAGON-85) Moved platform definitions into core vanagon. Created default
platform definitions which projects can inherit. Added the
inherit_from_default
method to the platform DSL. Added a--defaults
option tovanagon list
. This shows all the default platforms that are available in core vanagon.
0.20.1 - 2021-03-15
- (RE-13838) Remove the rescue from the ship cli code that masked Artifactory upload failures. Make it easier to diagnose when artifacts fail to ship.
0.20.0 - 2021-2-2
- (VANAGON-123) Re-add support for multiple service types for a single platform. This is intended primarily for Debian packages supporting both systemd and sysv init systems. The systemd/init check was updated.
- (RE-13837) Workaround a parsing bug in ruby git where Git.ls-remote was mis-parsing unexpected output from ssh.
0.19.1 - 2021-1-13
- (maint) Fixed an issue invoking VanagonLogger in the error handling for the
Vanagon::Component.load_component
method
0.19.0 - 2021-1-12
- (VANAGON-129) Added support for passing a version to
requires
in components and projects. Updatedget_requires
to handle the versions, and pass them to the rpm and deb packages.
- (VANAGON-164) Fix bugs for Solaris templates - process the OpenStruct returned
by
get_requires
- (maint) Fix bugs in pick_engine
- (maint) Fix pristine config files clobbering (Solaris 10)
0.18.1 - 2020-12-09
- (maint) Patch bug in engine-selection method where target argument is getting ignored when ABS engine is loaded.
0.18.0 - 2020-12-08
- (maint) Added
vanagon list
subcommand with options to list--projects
, and / or--platforms
. By default, the list is spaced with new-line characters. The list can be space-separated instad by specifying--use-spaces
. It is possible to use--configdir
to select a specific config directory from which to list the projects and or platforms. - (maint) Added tab completion scripts for bash and zsh, located under
/extras/completions. Also added
vanagon completion
command, which echos the path to the completion script. To get the path to the script, usevanagon completion --shell SHELL
.Source the script to enable tab completion. - (PA-3497) Build arm64 debian packages for aarch64
- (VANAGON-79) Use VanagonLogger class for output instead of puts, warn, and and stderr.
- (maint) Pristine config files are no longer kept if there are no differences between the pristine and the target config file (OS X and Solaris 10).
- (RE-13776) When target argument is specified, do not load the engine
- (maint) Made 'always_be_scheduling' the default engine.
0.17.0 - 2020-11-02
- (DIO-1066) Update vanagon to go through ABS for VMs. Before this change, the ABS engine was partially implemented. This engine is a level of abstraction that supports any downstream engine (vmpooler, nspooler, AWS) and is forward compatible with ondemand Vmpooler pools. Used internally at Puppet
0.16.1 - 2020-09-18
- Fixed issue where the 'ship' command was failing to execute.
0.16.0 - 2020-09-17
- (RE-13660) Rewrote the command line parser around
docopt
. Introducedvanagon <subcommand>
replacement for the existing standalone commands. Added deprecation warnings to the existing commands but updated them for temporary backwards compatibility. Integrated the standalone executables into a call into the new Vanagon::CLI object instead of internal logic. - (VANAGON-100) Allow
--engine docker
to usedocker exec
anddocker cp
instead ofssh
andrsync
by settinguse_docker_exec true
in a platform definition.
- (VANAGON-163) Vanagon now prioritizes the
--engine
CLI flag over logic that picks the engine based on features used by the platform definition.
0.15.38 - 2020-06-16
- (maint) Fix for invalid build metadata JSON when generating compiled archives.
- (RE-13296) Follow redirects when installing rpm/deb repos.
- (RE-13303) Add the ability to sign additional files on windows during the MSI build step.
0.15.37 - 2020-05-06
- (maint) Build el-8 packages without build-id files to prevent collision errors.
0.15.36 - 2020-04-29
- (maint) Another el-8 debug_package fix that we missed the first time.
0.15.35 - 2020-04-29
- (RE-13396) Fix debug_package handling in el-8
0.15.34 - 2020-04-28
- (maint) Move informational output about loading inherited metadata to stderr instead of stdout.
0.15.33 - 2020-04-14
- (VANAGON-144) Add ability to load
build_metadata
from another project. This is useful when loading settings from another project. If you're loading settings viainherit_settings
thebuild_metadata
will automatically be loaded. If you're loading settings viainherit_yaml_settings
you'll need to add the named parametermetadata_uri
and set that to thefile://
orhttp://
location of the upstream metadata json file. - (VANAGON-161) Add support for setting clone options for components. This is
set with the
clone_option
component DSL method that takes in the option name and value as parameters. This method can be called multiple times. This supports the clone options from ruby-git which includebare
,branch
,depth
,origin
,path
,remote
andrecursive
.
- (VANAGON-112) Fix undefined variable in warning message for version/release from git.
0.15.32 - 2020-02-11
- (VANAGON-155) Added
none
option to therepo
binary so that repo can be called without deb or rpm packages. This will be helpful in packaging pipelines that do not always build deb or rpm packages.
0.15.31 - 2019-11-14
- Don't use
match?
method that wasn't added until ruby 2.4.
0.15.30 - 2019-11-12
- (VANAGON-157) Make curl calls fail on error.
- Add Debian and Ubuntu platform utility matchers.
- (VANAGON-72) Give platform access to the shared
settings
hash used by the projects and components.
- (VANAGON-159) Update
parse_and_rewrite
method. It will now do no processing if there aren't any rewrite rules. If there are rewrite rules and you're specifying your git source withgit:http[...]
, this method will sub out thegit:
to get around some of the extra processing fustigit does to URIs. - (VANAGON-35) Update
find_program_on_path
to support windows files with extensions.
0.15.29 - 2019-09-25
- Loosen
is_windows?
to include windowsfips.
0.15.28 - 2019-09-24
- Loosen Windows platform definition to include windowsfips.
0.15.27 - 2019-09-11
- Add
DEBIAN_FRONTEND=noninteractive
to apt curl install.
0.15.26 - 2019-09-10
- (PA-2838) Add support for windowsfips-2012r2.
- Add GitHub Action to publish gems on tag.
0.15.25 - 2019-07-24
- (RE-12605) Add CODEOWNERS file.
- Rewrite
file-list-for-rpm
with perl to drastically speed up current process. If perl is not available rpmspec will fall back to using the sed loop.
- Remove out-of-date MAINTAINERS file.
0.15.24 - 2019-07-08
- (VANAGON-153) Update version in SMF manifest from the current version (which is always 1) to the puppet-runtime version since version is expected to be an integer value, per SMF documentation.
- (VANAGON-153) Update the Solaris sed to
/usr/gnu/bin/sed
which is the GNU implementation. - (VANAGON-153) Use UNIX time for SMF version to ensure no two releases have the same version.
- (VANAGON-151) Update Docker engine with a 1 second sleep after each SSH failure to allow SSHD a chance to start up before Vanagon retries the command.
0.15.23 - 2019-05-14
- (VANAGON-150) Allow platforms to specify
docker run
arguments. - (PA-2670) Add support for
get_version_forced
in the vanagon component which enables finding the version of git sources while the component is being processed.
- (VANAGON-101) Sanitize the docker container name so it won't contain invalid characters.
0.15.22 - 2019-04-04
- (VANAGON-147) Disable shebang munging in rpm spec file.
0.15.21 - 2019-03-12
- (RE-12096) Set filesystem type when creating OSX packages to prevent signing failure of osx-10.14 packages.
0.15.20 - 2019-02-12
- (PE-24814) Add support to handle ghostfile settings included in
the
Component::DSL
which adds them to the final rpm spec.
- (VANAGON-132) Create metadata files with
<project>.<platform>
in the file name. Previouslyext/build_metadata.json
nowext/build_metadata.<project>.<platform>.json
.
0.15.19 - 2018-12-20
- Moved
package_overrides
higher up in the RPM spec file to support setting additional globals or defines that are used in the__os_install_post
.
- (VANAGON-146) Simplified parsing of project vendor field for improved error handling.
0.15.18 - 2018-12-10
- (PA-2231) Add support for Fedora 29 by explicitly requiring /usr/bin/touch and /usr/bin/mkdir when building for versions of Fedora >= 29, since core Fedora packages no longer provide /bin versions of these commands.
- (VANAGON-75) Add
namespace
toVanagon::Patch
class so that patch files will not get overwritten if two different components have patch files with the same name.
0.15.17 - 2018-11-13
- (PA-1272) Add
Vanagon::Platform::OSX.install_build_dependencies
method to install with homebrew as a non-root user.
0.15.16 - 2018-11-01
- (VANAGON-122) Add
VANAGON_USE_MIRRORS
environment variable that, when set to 'n', will skip internal mirrors when fetching sources.
- Stop delivering content to the
system/volatile
directory on Solaris 11. Previously, package installation on Solaris 11.4 failed because this is a "reserved" directory.
0.15.15 - 2018-09-11
- (VANAGON-106) Add homepage to component DSL.
- Add
build_requirements
command to list external build requirements.
- (VANAGON-141) Ensure git reference defaults to HEAD.
0.15.14 - 2018-08-14
- (RE-11270) Create
ext
directory before writing build_metadata. - Add the --no-progress switch for choco downloads in an effort to shrink the size of build logs.
0.15.13 - 2018-07-11
- (VANAGON-139) Fix
retrieve_built_artifact
in the local engine to match previous updates to the method signature.
0.15.12 - 2018-06-19
- (VANAGON-138) Fix incorrect sha1sum output when publishing yaml settings.
0.15.11 - 2018-06-08
- (VANAGON-123) This work has been reverted. It was causing a regression for installation on debian systems using automated installers or chroots.
- (VANAGON-131) Paths were being incorrectly determined when inheriting yaml settings from a local file source.
0.15.10 - 2018-05-29
- (VANAGON-130) Add
publish_yaml_settings
to the project DSL to let you output the project's settings at build time as a yaml file. - (VANAGON-131) Add
inherit_yaml_settings
to the project DSL to let you load the settings file created bypublish_yaml_settings
.
- A looped sed call during RPM generation was optimized.
0.15.9 - 2018-05-08
- (VANAGON-123) Add support for multiple service types for a single platform. This is intended primarily for Debian packages supporting both systemd and sysv init systems.
0.15.8 - 2018-04-17
- The fix for bill-of-materials in release 0.15.7 broke tar generation. This release fixes that issue.
0.15.7 - 2018-04-17
- Added task to sign packages after being built and before you ship.
Simply run
bundle exec sign
. - Added redhatfips as an RPM platform.
- (VANAGON-75) Fail build explicitly when patch filenames conflict.
- (VANAGON-117) Updated build help message to indicate platform/target can be comma-separated.
- Previously custom BOM paths were not properly handled. When using compiled archives, bill of materials installed in custom paths were not removed prior to packing up the archive which could lead to conflicts when the archive was used in other projects with custom BOM paths. When generating the list of files to tar up, bill-of-materials was always added. However, if project.bill_of_materials is set that file won't exist. This change makes it conditionally add bill-of-materials or #{proj.bill_of_materials.path}/bill-of-materials.
- (VANAGON-117) Removed
--target
from options parser. It was added with part of the now-removed devkit work, and any of the other subcommands that accept a target take target as a positional parameter, so that flag is completely unused.
0.15.6 - 2018-03-19
- (VANAGON-125) On AIX, postinstall scripts for upgrades now run in the triggerpostun phase. This ensures they run after any postun scripts which can interfere with the operation of the postinstall scripts.
- (VANAGON-125) On AIX, service stop in postun now only runs on an uninstall, not on upgrades.
0.15.5 - 2018-03-05
- (VANAGON-120) Postinstall scripts for upgrades now run in the postinstall phase, as expected. Previously, they were run in the postuninstall phase.
0.15.4 - 2018-02-14
- Added support for performing erb transforms on sources. This can be done by
passing
erb: true
toadd_sources
. fetch_artifact
was added to the project DSL. With this, you can specify additional artifacts to retrieve from the builder.no_packaging
was added to the project DSL. With this, you can specify that you want to skip the packaging steps during the vanagon build. This is useful in cases where you only need to run through the build steps.fetch_artifact
should be used along withno_packaging
to pull back the build artifact you're looking for.release_from_git
was added to the project DSL. With this, you can set the project release number to be the number of commits since the last tag.
0.15.3 - 2018-02-06
- Added a runtime dependency on the packaging gem, which is required for the 'ship' and 'repo' commands.
0.15.2 - 2018-01-24
- RPM platform names beginning with 'redhat' were not matching the
is_rpm?
andis_el?
checks.
0.15.1 - 2018-01-19
- Automatic source detection can be skipped for git sources over http(s) by prefixing the source URL with 'git:', for example, 'git:https://github.com/puppetlabs/vanagon'.
- RPM platform names can now match 'redhat' in addition to 'el', 'fedora', and 'cisco-wrlinux'.
- Automatic source detection for git sources now times out if
git ls-remote
does not return within 5 seconds. This allows us to work around an issue where some sources incorrectly respond togit ls-remote
by prompting for a username/password even though it is not a git source. If this causes issues with a slower git source, you can skip the checking by specifying this is a git source, either by using a git url (git://github.com/puppetlabs/vanagon), or specifying that the http(s) source should be treated as a git source with the 'git:' prefix (git:http://github.com/puppetlabs/vanagon).
- (VANAGON-116) Retry source fetches individually rather than retrying all if one fails.
0.15.0 - 2018-01-09
- (VANAGON-69) Allow path for
sed
to be customized in platform definitions. - (VANAGON-108) Allow path and default options for
mktemp
to be customized in platform definitions.
- Updated to rubocop 0.52.1
- RPMs were not being completely stripped of debug symbols. We weren't setting the correct variables in the spec file to completely strip RPMs. We've updated the spec file to set the correct variables for EL, SLES, and Fedora builds. AIX and Cisco WRLinux have had no changes to stripping at this time.
- (VANAGON-34) Usage for version in
conflicts
,replaces
, andprovides
is confusing. Previously the version for those settings was intended to only contain the version number, and then in the packaging the default comparison operator was added. This default was<
forconflicts
andreplaces
, and>=
for provides. Those defaults are being maintained for the time being, but in the future the default will move to=
. Those version settings should now be set with a comparison operator, and methods have been added to do the necessary munging for version comparison in Debian packages.
0.14.3 - 2017-12-12
- In the
ship
command we need to rescue bothLoadError
s and genericException
s to ensure the job doesn't fail on packaging < 1.0.x.
0.14.2 - 2017-12-12
- In the
ship
binary we were incorrectly rescuing a LoadError when shipping to artifactory. Therescue
has been updated to explicitlyrescue LoadError
since LoadError doesn't inherit from Exception.
0.14.1 - 2017-11-21
- Remove devkit as an executable in the gemspec
0.14.0 - 2017-11-21 (tag-only release)
- (VANAGON-59) Adds support for RPM and deb triggers. These can be added using
add_rpm_install_triggers
,add_debian_interest_triggers
, andadd_debian_activate_triggers
in the component DSL. - (VANAGON-96) Add support for generating binary archives (gzipped tarballs)
instead of or in addition to generating platform-native packaging. The
project DSL now includes
generate_packages
andgenerate_archives
which take a binary. By default projects will generate platform-native packages and projects will not generate binary archives. - (VANAGON-97) When generating binary archives, make sure the bill of materials (when applicable) and generated build metadata are included in the build output.
- (VANAGON-76) Implement a more flexible
--preserve
flag.--preserve
now supportsalways
,never
, andon-failure
. Default behavior of preserving on failure has been maintained, and--preserve
with no additional arguments is equivalent to--preserve always
. - (VANAGON-99) Add
install_only
to the component dsl to make it easier to consume artifacts generated viagenerate_archives
. - (VANAGON-111) When using
generate_archives
, generate a sha1sum at build time. To enable this,shasum
has been added to the platform DSL for specifying alternate paths for the sha1sum command. - (VANAGON-111) Enable consumption of remote checksums. Each of the supported component checksums (sha1sum, md5sum, sha256sum, sha512sum) can now either take a checksum or a URL where the checksum can be found.
- Add
archive
package type for windows so you can generate an archive without needing to generate WIX or nuget artifacts. - Add nspooler support to the pooler engine.
- (VANAGON-110) Add support for inheriting the project hash from an upstream
project.
inherit_settings
has been added to the project DSL for this.
- Avoid duplicate file warnings when RPMs have files containing spaces in their path.
- Print backtrace if the command executed in
retry_with_timeout
fails.
- The
mirrors
list will no longer include the source URI so you don't end up hitting the upstream source instead of the configured mirrors. - Updated to pull from github.com/puppetlabs/packaging 1.0.x branch to enable shipping artifacts to artifactory in addition to the internal build server.
- The
devkit
command has been removed since much of its initial functionality has been built intobuild
,render
, andinspect
.
0.13.1 - 2017-07-19
- Component Url is now reported in the
build_metadata.json
file.
0.13.0 - 2017-07-12
- A metadata file is generated when producing artifacts which contains
metadata about components and various other information about a built
artifact. This new file will exist at
ext/build_metadata.json
and contains the version of Vanagon which built the last artifact, a timestamp of when the artifact was created, the version of the artifact that was built, and a list of components with their version information which make up the built artifact.
0.12.2 - 2017-06-29
- Previously, we created AIX services once at install, but did not have correct logic to update them if they changed. This release adds the necessary logic to reconfigure AIX services.
0.12.1 - 2017-06-12
- install_file was not respecting file mode, which was causing problems with file permissions on platforms like MacOS that do not explicitly manage permissions in the packaging. This should now be fixed for those cases, with the exception of Windows MSI packaging, that still needs to be managed in the WIX files.
0.12.0 - 2017-05-31
- Added
generate_source_artifacts
method to the platform dsl to allow generation of.src.rpm
and debian source artifacts. - Added support to the Component DSL for Mirror URLs using the
#mirror
method. This functionality supersedes the previous Rewrite Rule functionality and the Rewrite Rule functionality has been deprecated (see Deprecated for0.12.0
). Vanagon will attempt to use any Mirror URLs provided for a component before it attempts to use the canonical upstream URL. Multiple Mirror URLs can be specified, and Vanagon will attempt to retrieve them in random order until a URL returns a200
code or all Mirror URLs are exhausted. For examples of mirrors in use, see the example project and component.
- The Component DSL Rewrite Engine is deprecated in favor of Component DSL Mirror URLs. Existing Rewrite Rules will be converted to Mirror URLs and added to the Mirror URL list. The Component DSL Rewrite Engine will be removed before Vanagon 1.0.0 is released.
- Updated to sending notification messages on STDERR instead of STDOUT. This both enables easier filtering and helps with some of the fragility around commands expecting formatted output on STDOUT. For more context around this see the ticket and pull request.
- Exceptions now provide accurate backtraces if thrown while parsing Component, Platform, or Projects.
0.11.3 - 2017-04-10
- Removed dependency on files
/bin/touch
and/bin/mkdir
for any RPMs generated for AIX platforms. - If the
workdir
path is underneath a symbolically linked path, Vanagon will now resolve the complete path instead of using the symbolically linked path. - Vanagon no longer creates backup copies of any source files patched during the staging process.
0.11.2 - 2017-04-04
- Added the
link_target
keyword argument toinstall_service
. Iflink_target
is specified, instead of installing theservice_file
in the platform/init system default for service files, the file will be installed to thelink_target
and a link will be added from the system's default for service files to the link target.
0.11.1 - 2017-03-30
- Dirname now honors when user overrides the default directory a source unpacks into
- Update git tests to no longer hit the network and run quite a bit faster
0.11.0 - 2017-03-22
- A new Platform DSL method,
shell
, has been added. This allows a user to define a custom shell or path to a specific shell for a given platform. - Support for specifying the owner, group, and permission mode has been added to the Component DSL.
- Fixed many bugs in the handling of component environment variables. Rendering them as target-specific variables in a project's Makefile introduced a number of bugs in many Vanagon projects due to target-specific variables being transitive between dependent Make targets.
- All defined Project and Platform environment variables are rendered as Make variables. Specifically, as "Simply expanded variables".
- All defined Component environment variables will be rendered as Make variables. This means that escaped literals (
$$VARIABLE_NAME
) and subshells ($$(echo "I'm a subshell")
) will now be converted to their Makefile equivalents:$(VARIABLE_NAME)
and$(shell echo "I'm a subshell")
and Vanagon will emit a deprecation notice for these values. The goal is to provide a single target for formatting environment variables in an effort to make behavior more deterministic. - The
build
command line flag,--remote_workdir
, has been renamed to--remote-workdir
. This flag allows users to specify a directory on the remote build target for Vanagon to stage components & metadata under when compiling.
- We've removed initial support for metrics collection. The functionality depended on Make's usage of target-specific variables, so if they're unreliable (and they are) then the metrics functionality is also unreliable. Consider instead using Remake if you need to profile a Vanagon build. We may provide official support for
remake --profile
in a future Vanagon release.
0.10.0 - 2017-02-21
- Initial support to the Makefile to enable metrics collection during a build
- Allow user to specify the directory on the build host to place sources and perform build tasks to allow for faster iteration
- Overhaul of how vanagon handles environment variables. Vanagon now has an environment class that allows users to scope environment variables to be project specific, platform specific, or component specific
- Allow
dist
tag used in naming rpm packages to be specified
0.9.3 - 2017-03-01
- Allow user to specify the directory on the build host to place sources and perform build tasks to allow for faster iteration.
- Add support for linking directories during the install step. Prior to this,
if you did an
ln -s sourcedir targetdir
file list autogeneration would fail since we were following symlinks. We now do not follow symlinks when generating the file lists. - Add support for setting
owner
,group
andmode
for configfiles. This functionality already existed forinstall_file
but was missing forinstall_configfile
. - Allow
dist
tag used in naming rpm packages to be specified.
0.9.2 - 2017-01-31
- Experimental
render
command added to aid in rapid Makefile iteration and testing
- is_osx? method deprecated in favor of is_macos? (VANAGON-28)
- Updated to Rubocop 0.47.x
- MAINTAINERS file updated with current project maintainers
0.9.1 - 2017-01-09
This is a bug-fix release to replace the yanked 0.9.0 release.
- The DSL code underneath the Component source checksums was refactored in 0.9.0. Tests passed, but the code was broken. Upon triage we discovered that those code paths were never well tested to begin with, which is how the bug was missed. The DSL code paths in question have been improved, and the bug has been corrected.
- We sanitize the
ENV
hash further while testing token support in the vmpooler engine.
0.9.0 - 2017-01-06; yanked on 2017-01-06
- Support for reading vmpooler tokens from a
vmfloaty config file.
The new order of precedence for defining vmpooler tokens is:
VMPOOLER_TOKEN
environment variable- Reading it from the file
~/.vmpooler-token
- Reading it from the file
~/.vmfloaty.yml
- A Rakefile to help ease common development tasks, like running spec tests, code coverage,
and Rubocop.
bundle exec rake -T
away! - Added
--only-build
flag, allowing developers to build a subset of components from a Vanagon project.
- RPMs built with Vanagon now depend on
/bin/mkdir
and/bin/touch
. RPMpre-
andpost-
scripts use those commands, but the packages did not express that dependency. This resolves a problem reported by Mike Schmidt in CPR-393. - Git sources now support repositories in a detached HEAD state, so pre-staged and shallow-cloned repositories on disk are valid sources for individual components.
- Local sources now support recursive local directories (expressed as
file://
URIs) as valid sources for individual component.
- Any spec tests that used
/tmp
as a hardcoded temporary directory location now useDir.mktmpdir
instead. Safety first!
0.8.2 - 2016-09-29
- Fixed bug to make md5 the default checksum type for component add_source()
0.8.1 - 2016-09-28
- Enable brp strip scripts for stripping binaries on Cisco RPM platforms
- MAINTAINERS file updated with current project maintainers
- Vanagon now supports sha256sum and sha512sum checksum validation in its DSL
0.8.0 - 2016-08-11
- Git component source handling has been offloaded to an external library (
ruby-git
). - Git functionality now supports virtually all variants of acceptable Git URIs (including the all-too-common Triplet format of
<user>@<host>:<repo>.git
). - HTTP component sources now follow URL redirects.
- Component sources support many more archive types, with support for bzip2, xz, rar, etc.
- Vanagon now uses a clear heuristic to determine what sort of operation to perform for Component sources:
- Git
- HTTP/HTTPS
- Local filesystem
- Give up
- More status messages and error messages. Vanagon still exits with a stack dump if operations don't succeed but at least now the output is slightly more meaningful.
- Reverted the change to default output directories for el and deb to pre 0.7.0 defaults.
0.7.1 - 2016-08-01
- MSI names will output as NAME-VERSION-ARCH.MSI
0.7.0 - 2016-07-27
- Vanagon now uses one defaut output path for all platforms, with an option to override the default using platform.output_dir in the platform config
- MSIs no longer contian _VANAGON in the name
- Update rubocop to 0.41.2
- Fix building packages without stripping static archives
0.6.3 - 2016-06-29
- On AIX, services are stopped on upgrade.
0.6.2 - 2016-06-27
- Inspectable components
- Documentation (incomplete)
- ec2 engine
- There is now a VANAGON_RETRY_COUNT environment variable to set retry counts
- There is now a VANAGON_TIMEOUT environment variable to set timeout
- Increased the default timeout on retry logic
- Put retry logic around fetching sources
- Vanagon no longer retries makefile execution
- Windows WiX "defaults" have been removed, and examples have been added to the examples directory
- Default retry count is now 1
- Retry logic prints out error messages
- AIX and el 4 upgrades / installs no longer leave files under rpmstatedir
0.6.1 - 2016-04-27
- Added is_cross_compiled? utility methods to specify if a platform is cross-compiled
- Vanagon now follows HTTP redirects
- make timeout accessible in the dsl
0.6.0 - 2016-04-15
- With this release the vanagon MSI engine has stabilized and is now ready for use!
- Updates in the deb/rpm conflicts functionality did not work correctly with deb-based systems. Both 'Replaces' and 'Breaks' are specified in the control script when replaces are added to vanagon now.
- Make retry_count accessible in the dsl.
- Update to not pass the platform flag to the WiX compiler options since the erb engine will populate fields based on platform.
- Vanagon::Component::Source::LocalSource was renamed to Vanagon::Component::Source::Local for consistency with naming elsewhere in the project.
0.5.10 - 2016-04-08
- Fixes to version string handling: now reject empty strings so we don't get bad versions (thanks to Colin Wood for the contribution)
- Solaris services will now correctly reference the SMF service type, which should enable proper service restarts on package upgrades.
- Local file sources added with the add_source function no longer require checksums.
0.5.9 - 2016-3-31
- Fixes to deb/rpm conflicts functionality
0.5.8 - 2016-3-29
- Fixes to OS X postinstall for services
- Added the ability to specify conflicts in our deb and rpm packages
0.5.7 - 2016-3-23
- MSI for vanagon PRE-RELEASE. MSI functionality for vanagon is starting in to the testing phase, this release includes that functionality
0.5.6 - 2016-3-21
- Re-added the previous Debian architecture change, fixed for all Debian and Ubuntu platforms.
- Fixed syntax issues in the osx pre and post install scripts
0.5.5 - 2016-3-21
- Reverted the change to specify debian architectures, the option was breaking on Debian < 8 and needs more work and testing.
0.5.4 - 2016-3-21
- Fixed a condition where services were not being reloaded on upgrade for OSX
- It is now possible to specify architecture when generating deb packages
0.5.3 - 2016-3-15
- Solaris builds will now attempt to restart services after a package upgrade
- Vanagon builds will retry some error-prone build steps (and log the output)
0.5.2 - 2016-3-08
- Vanagon no longer fails if the destination path already exists
- "gem install" no longer fails when bundler is in use due to a polluted environment
- If rspec is called with '--require spec_helper' as an option, a helper will swallow output of $stdout and $stderr
0.5.1 - 2016-2-04
- Vanagon now assumes anything that is not listed as an archive is just a file, and thus NON-ARCHIVE-EXTENSIONS no longer needs to be updated for new extentions.
- Builds will halt if any git command fails
- Hardware engine will release locks on failures
- Builds no longer fail if things items were in /usr/local on debian
- on RPM builds, if there are no directories to package builds no longer fail
- Repeated builds no longer fail due to a symlink issue
- Added functionality to enable SSH forwarding in to vanagon pooler hosts
- Added functionality to build nuget archives
- Added support for patching gems
0.5.0 - 2016-1-06
- Replaced the ERB template based Makefile generation with a procedural Makefile backend
- Added build_dir function for when tools need to be moved away from the regular build directory to avoid conflicts with build files and source files
- Vanagon-generated packages no longer change group ownership of files when installed on Solaris 10
- Added lock_manager gem to vanagon project
- Added hardware engine
- Added support for .vim, .json and .service config files
- Added support for zip files
0.4.1 - 2015-11-12
- Fixed an issue where, with test builds when the version string contains a git sha alphanumeric component, the Solaris 11 VERSION file contains the transformed IPS-compatible version string (with the alpha characters stripped). Now the VERSION file will be consistent across all of the platforms.
0.4.0 - 2015-11-03
- xml files are now valid http component sources
- bill_of_materials method added to project DSL to allow BOM to be placed in a specific location instead of the system docdir
- post and pre package install actions available for deb and rpm packages in the component DSL
- Platform DSL methods apt_repo, zypper_repo and yum_repo deprecated in favor of the generic add_build_repository that is platform agnostic
- The add_pre_install_action component DSL method has a new signature that has two required arguments (script and package state).
- Empty directories will now be included when they previously may not have been
- /var/run moved to /system/volatile on solaris 11
- Links outside of the project directories will now be included in packages
- Nxos support has been removed and replaced by cisco-wrlinux
0.3.19 - 2015-10-16
- Solaris 11 manifests now correctly handle services installed into subdirectories such as network
- User creation now correctly includes --system if needed
0.3.18 - 2015-10-14
- Move Vanagon bill-of-materials location on OSX from /usr to /usr/local
- Rename vcloud_name to vmpooler_template in platform DSL
- Ensure AIX doesn't include newlines when adding AIX services
- Only install curl if missing when adding yum repositories in platform provisioning
- Update Makefile targets to finish build dependencies before configuring dependents
0.3.17 - 2015-10-02
- Initial support for custom pre- and post-install actions from the component level. Currently implemented for RPM, we will expand that as needed.
- platform_triple now available as a platform DSL method. Very useful when cross-compiling.
- replaces and provides are now available in the project DSL (they were previously only available in the component DSL)
- apply_patch component DSL method now accepts fuzz and strip as arguments for patches that don't apply cleanly with just -p1. patch application now ignores whitespace by default
0.3.16 - 2015-09-24
- Configfiles installed explicitly on debian
0.3.15 - 2015-09-22
- Support for AIX services
- .sh and .csh added as valid plaintext file sources
- WindRiver Linux added as a distinct platform type subclassing RPM
- File/configfile implementation refactored to remove duplicate file issues in rpm packaging.
- AIX rpm spec no longer requires chkconfig
- aix_package dsl method was removed. Packages desired for a build should be added as build_requires or via platform provisioning.
0.3.14 - 2015-09-15
- OSX packages no longer include the platform codename and instead use the platform version.
0.3.13 - 2015-09-14
- Pooler engine now has token support to ensure long template life. Use VMPOOLER_TOKEN environment variable or write token into ~/.vanagon-token
- Noarch project method is now applied to solaris packages
- Cross compiles will no longer attempt to install the produced package on solaris 11.
0.3.12 - 2015-09-03
- Empty directories now included in vanagon builds
- Broken usage of ips_version fixed for solaris 11
0.3.11 - 2015-09-02
- Solaris 11 support
- Support a custom release string in package names
- Support platform-specific 'install' commands
- Miscellaneous updates to better support Mac OS X, Solaris, and AIX
- Updated Mac OS X package name and directory structure to match other platforms
0.3.10 - 2015-08-26
- Added a CHANGELOG.md to track high level user facing changes
- Include HuaweiOS for RPM5 tweaks
- Update vanagon_hosts.log format to use FQDN instead of the short name
- Updates to RPM scriptlets for consistency and better handling of upgrades