Changelog --------- * Changes are always commented with their author in (braces) * Exception: No braces means author == Nico Schottelius 3.0.5: * Core: Introduce override concept (Daniel Heule) * Type __process: Make --state absent work (Steven Armstrong) 3.0.4: 2014-01-29 * Core: Ignore install types in config mode * Documentation: Update reference (files path in object space) * Documentation: Update best practise: Replaces templates/ with files/ * Type __apt_ppa: Install required software (Steven Armstrong) * Type __debconf_set_selections: Support --file - to read from stdin * Type __jail: Fix jaildir parameter handling (Jake Guffey) 3.0.3: 2014-01-22 * Core: Enhance error message when requirement is missing object id * Core: Add environment variable to select shell for executing scripts (Daniel Heule) * Explorer hostname: Return host name by using uname -n * New Type: __hostname (Steven Armstrong) * Type __cdist: Use default paremeters (Daniel Heule) * Type __key_value: Use default paremeters (Daniel Heule) * Type __line: Use printf instead of echo for printing user input * Type __qemu_img: Use default paremeters (Daniel Heule) * Type __zypper_repo: Use default paremeters (Daniel Heule) * Type __zypper_service: Use default paremeters (Daniel Heule) 3.0.2: 2014-01-19 * Documentation: Document all messages sent by types (Daniel Heule) * New Type: __block (Steven Armstrong) * New Type: __mount (Steven Armstrong) * Type __cron: Replace existing entry when changing it (Daniel Heule) * Type __ssh_authorized_keys: Use new type __block (Steven Armstrong) 3.0.1: 2014-01-14 * Core: Copy only files, not directories (Steven Armstrong) * Core: Allow hostnames to start with / * Type __line: Remove unecessary backslash escape * Type __directory: Add messaging support (Daniel Heule) * Type __directory: Do not generate code if mode is 0xxx (Daniel Heule) * Type __package: Fix typo in optional parameter ptype (Daniel Heule) * Type __start_on_boot: Fix for SuSE's chkconfig (Daniel Heule) 3.0.0: 2013-12-24 * Core: Added messaging support * Core: Removed unused "changed" attribute of objects * Core: Support default values for multiple parameters (Steven Armstrong) * Core: Ensure Object Parameter file contains \n (Steven Armstrong) * New Type: __zypper_repo (Daniel Heule) * New Type: __zypper_service (Daniel Heule) * New Type: __package_emerge (Daniel Heule) * New Type: __package_emerge_dependencies (Daniel Heule) * Type __cron: Add support for raw lines (Daniel Heule) * Type __cron: Suppress stderr output from crontab (Daniel Heule) * Type __cron: Fix quoting issue (Daniel Heule) * Type __file: Do not generate code if mode is 0xxx * Type __iptables_rule: Use default parameter * Type __key_value: Fix quoting issue (Steven Armstrong) * Type __package: Use state --present by default (Steven Armstrong) * Type __package_zypper: Support non packages as well (Daniel Heule) * Type __package_zypper: Support package versions (Daniel Heule) * Type __postfix_*: Depend on __postfix Type (Steven Armstrong) * Type __postfix_postconf: Enable support for SuSE (Daniel Heule) * Type __postfix: Enable support for SuSE (Daniel Heule) * Type __start_on_boot: Use default parameter state * Type __start_on_boot: Add support for gentoo (Daniel Heule) * Type __user: Add support for state parameter (Daniel Heule) * Type __user: Add support for system users (Daniel Heule) * Type __user: Add messaging support (Steven Armstrong) * Type __zypper_service: Support older SuSE releases (Daniel Heule) 2.3.7: 2013-12-02 * Type __file: Secure the file transfer by using mktemp (Steven Armstrong) * Type __file: Only remove file when state is absent (Steven Armstrong) * Type __link: Only remove link when state is absent (Steven Armstrong) * Type __directory: Only remove directory when state is absent (Steven Armstrong) * Type __directory: Fix newly introduced quoting issue * Type __package_zypper: Fix explorer and parameter issue (Daniel Heule) * Core: Fix backtrace when cache cannot be deleted 2.3.6: 2013-11-25 * New Type: __locale * Type __line: Ensure special characters are not interpreted 2.3.5: 2013-10-10 * Core: Unit test fix for remote_copy (Steven Armstrong) * Documentation: Updated manpages of __package and __file (Alex Greif) * Documentation: Add more examples to cdist-manifest (Dan Levin) * Type __package_apt: Do not install recommends by default 2.3.4: 2013-10-03 * Core: Add missing bits to support dry run (Steven Armstrong) * Core: Make unit test remote copy more compatible with scp (Steven Armstrong) * New Type: __postfix (Steven Armstrong) * New Type: __postfix_master (Steven Armstrong) * New Type: __postfix_postconf (Steven Armstrong) * New Type: __postfix_postmap (Steven Armstrong) * New Type: __postfix_reload (Steven Armstrong) * Type __line: Ensure regex does not contain / * Type __ssh_authorized_keys: Bugfix: Preserve ownership (Steven Armstrong) 2.3.3: 2013-09-09 * Core: Add support for default values of optional parameters (Steven Armstrong) * Type __start_on_boot: Bugfix for systemd (Steven Armstrong) 2.3.2: 2013-09-05 * Build: Ensure tests don't change attributes of non-test files * Core: Fix typo in argument parser * Core: Code cleanup: Remove old install code (Steven Armstrong) * Core: Improve error message when using non-existing type in requirement * New Type: __iptables_rule * New Type: __iptables_apply * Type __cdist: Also create home directory * Type __cdist: Add support for --shell parameter * Type __motd: Regenerate motd on Debian and Ubuntu 2.3.1: 2013-08-28 * Core: Support relative paths for configuration directories * Core: Code cleanup (removed context class, added log class) * Documentation: Add more best practises * Documentation: Add troubleshooting chapter * Type __key_value: Fix quoting problem (Steven Armstrong) 2.3.0: 2013-08-12 * Core: Added support for cdist shell * Documentation: Improved some manpages 2.2.0: 2013-07-12 * Build: Cleanup the Makefile * Type __package_opkg: Use shortcut version * Core: Remove old pseudo object id "singleton" (Steven Armstrong) 2.1.2: 2013-07-09 * Build: Change clean-dist target to "distclean" * Build: Moved a lot of build logic into Makefile for dependency resolution * Core: Make global explorers available to initial manifest (Arkaitz Jimenez) * Core: Change execution order to run object as one unit * Documentation: Improved documentation (Tomáš Pospíšek) * New Remote Example: Add support for sudo operations (Chase James) * New Type: __update_alternatives * New Type: __cdist * Type __apt_ppa: Fix comparison operator (Tyler Akins) * Type __start_on_boot: Archlinux changed to use systemd - adapt type * Type __git: Missing quotes added (Chase James) * Type __postgres_database: Make state parameter optional (Chase James) * Type __postgres_role: Make state parameter optional, fix password bug (Chase James) * Type __process: Make state parameter optional * Type __cron: Simplyfied and syntax change 2.1.1: 2013-04-08 * Core: Use dynamic dependency resolver to allow indirect self dependencies * Core: Remove umask call - protect /var/lib/cdist only (Arkaitz Jimenez) * Explorer os: Added Slackware support (Eivind Uggedal) * Type __git: Support mode and fix owner/group settings (contradict) * Type __jail: State absent should implies stopped (Jake Guffey) * Type __directory: Make stat call compatible with FreeBSD (Jake Guffey) * Type __cron: Allow crontab without entries (Arkaitz Jimenez) * Type __user: Add support for creating user home (Arkaitz Jimenez) 2.1.0: 2012-12-09 * Core: Ensure global explorers are executable * Core: Ensure type explorers are executable (Steven Armstrong) * New Type: __git * New Type: __ssh_authorized_keys (Steven Armstrong) * New Type: __user_groups (Steven Armstrong) * Type __rvm_gemset: Change parameter "default" to be boolean * Type __user: Remove --groups support (now provided by __user_groups) * Type __apt_ppa: Bugfix: Installeded ppa detection (Steven Armstrong) * Type __jail: Change optional parameter "started" to boolean "stopped" parameter, change optional parameter "devfs-enable" to boolean "devfs-disable" parameter and change optional parameter "onboot" to boolean. * Type __package_pip: Bugfix: Installeded the package, not pyro * Remove Type __ssh_authorized_key: Superseeded by __ssh_authorized_keys * Support for CDIST_PATH (Steven Armstrong) 2.1.0pre8: 2012-11-15 * Type cleanup: __apt_ppa, __apt_ppa_update_index, __file, __ssh_authorized_key, __timezone, all install types (Steven Armstrong) * Types: Remove all parameter changing code * Type __rvm_ruby: Change parameter "default" to be boolean * Documentation: Web documentation clean up 2.1.0pre7: 2012-11-07 * Core: All unit tests restored back to working * Core: Print error message when missing the initial manifest 2.1.0pre6: 2012-11-05 * New Example: Turn remote calls into local calls (used for unittesting) * Core: Export PYTHONPATH, it's also needed by emulator * Bugfix Type __rvm_ruby: Add clean package dependencies * Bugfix Type __rvm_gem: Run rvm as user, not as root * Cleanup Type __rvm, __rvm_gemset: Use shortcut version * Bugfix __rvm_gemset: Correctly check for gemsets * Cleanup Type __postgres_database, __postgres_role: Reference each other in documentation * Cleanp Type __postgres_role: Use boolean parameters where appropriate * Cleanp Type __postgres_role: Use shortcut version 2.1.0pre5: 2012-11-01 * Core: First round of tests updated to work with multiple configuration directories 2.1.0pre4: 2012-10-31 * Dist: PyPi: Moved cdist.py to script/cdist to avoid double import * Core: Added support for multiple configuration directories (no documentation) 2.1.0pre3: 2012-10-30 * Dist: PyPi: Types and explorer included as package data 2.1.0pre2: 2012-10-26 * Dist: PyPi: Add conf/ directory to distribution * Dist: Initial support for archlinux packaging 2.1.0pre1: 2012-10-26 * Core: Removed obsolete variable __self * Removed type __addifnosuchline (replaced by __line) * Removed type __removeline (replaced by __line) * Type __directory: Parameter --parents and --recursive are now boolean * Type __package_apt, __package_luarocks, __package_opkg, __package_pacman, __package_pkg_freebsd, __package_pkg_openbsd, __package_rubygem, __package_yum, __process: Parameter state accepts only "present" and "absent" * Dist: Initial support for pypi packaging 2.0.15: 2012-11-02 * Core: Make variable __object_name available in type explorers (Steven Armtrong) * New Type: __qemu_img * New Type: __line * New Type: __pf_apply (Jake Guffey) * New Type: __pf_ruleset (Jake Guffey) * Bugfix Type: __rvm: Make type work if rvm is already installed 2.0.14: 2012-09-07 * Bugfix Type: __jail: Use correct variable (Jake Guffey) * Change Type: __jail: Parameter jailbase now optional (Jake Guffey) * Bugfix Type: __user: Use passwd database on FreeBSD (Jake Guffey) * Bugfix Type: __start_on_boot: Do not change parameters * Feature __user: Added support for BSDs (Sébastien Gross) * Feature __group: Added support for FreeBSD (Jake Guffey) * New Type: __package_zypper * Feature Types: Initial Support for SuSE Linux 2.0.13: 2012-06-05 * Bugfix __ssh_authorized_key: Ensure it sets proper group (contradict) * Bugfix __addifnosuchline: Fixed quotes/interpolation bug ("a b" became "a b") * New Explorer: interfaces (Sébastien Gross) * Feature core: Support reading from stdin in types (Steven Armstrong) * Feature core: Support multiple parameters for types (Steven Armstrong) * Feature __file: Support reading from stdin with - syntax (Steven Armstrong) 2.0.12: 2012-05-29 * Core: Correctly raise error on Python < 3.2 (Steven Armtrong) * Core: Add support for --remote-exec and --remote-copy parameters * Documentation: Debian Squeeze hints (Sébastien Gross) 2.0.11: 2012-05-23 * Fix insecure file/directory creation: Use umask 077 2.0.10: 2012-05-18 * Cleanup __group: No getent gshadow in old Redhat, use groupmod -g (Matt Coddington) * Bugfix __package_yum: Missing cat * Bugfix __start_on_boot: Correctly use sed and quotes (Steven Armstrong) * Feature __file: Support for --state exists (Steven Armstrong) * Feature core: Make variable __manifest available to type manifests * Feature core: Correct parent dependency handling (Steven Armstrong) * Bugfix several types: Fix sed for FreeBSD (Istvan Beregszaszi) * New Type: __jail (Jake Guffey) * Change Type: __rvm*: --state present/absent not installed/remvoed (Evax Software) * Bugfix Type: __cron: Hide error output from crontab * Various smaller bugfixes (Chris Lamb) 2.0.9: 2012-03-12 * Cleanup documentation: Fix environment variable list to be properly displayed (Giel van Schijndel) * Cleanup documentation: Some minor corrections * New Type: __package_opkg (Giel van Schijndel) * New Type: __package_pkg_freebsd (Jake Guffey) * New Type: __mysql_database (Benedikt Koeppel) * Feature __package: Support for OpenWRT (Giel van Schijndel) * Feature __start_on_boot: Support for OpenWRT (Giel van Schijndel) * Feature __start_on_boot: Support for Amazon Linux (Matt Coddington) * New Example: Use rsync to backup files (Matt Coddington) * Feature core: Exit non-zero, if configuration failed * Documentation: Describe how to do templating (Aurélien Bondis) 2.0.8: 2012-02-20 * Bugfix core: Remove another nasty traceback when sending SIGINT (aka Ctrl-C) * Cleanup: Better hint to source of error * Cleanup: Do not output failing script, but path to script only * Cleanup: Remove support for __debug variable in manifests (Type != Core debugging) * Cleanup: Change __package_* to support absent/present (default state name now). The values removed/installed will be removed in cdist 2.1. * Cleanup: Change __process to support absent/present (default state name now). The values running/stopped will be removed in cdist 2.1. * Feature Core: Support boolean parameters (Steven Armstrong) 2.0.7: 2012-02-13 * Bugfix __file: Use chmod after chown/chgrp (Matt Coddington) * Bugfix __user: Correct shadow field in explorer (Matt Coddington) * Bugfix __link: Properly handle existing links (Steven Armstrong) * Bugfix __key_value: More robust implementation (Steven Armstrong) * Bugfix __user: Fix for changing a user's group by name (Matt Coddington) * New Type: __package_pip * Bugfix/Cleanup: Correctly allow Object ID to start and end with /, but not contain //. 2.0.6: 2012-01-28 * Bugfix __apt_ppa: Also remove the [ppa-name].list file, if empty. (Tim Kersten) * Bugfix __group: Referenced wrong variable name (Matt Coddington) * Feature __package_apt: Initial support for virtual packages (Evax Software) * Feature Core: Added new dependency resolver (Steven Armstrong) * Feature Explorer, __package_yum: Support Amazon Linux (Matt Coddington) * New Type: __rvm (Evax Software) * New Type: __rvm_gem (Evax Software) * New Type: __rvm_gemset (Evax Software) * New Type: __rvm_ruby (Evax Software) 2.0.5: 2012-01-18 * Bugfix __key_value: Use correct delimiters (Steven Armstrong, Daniel Maher) * Cleanup: Explicitly require Python >= 3.2 (do not fail implicitly) * Documentation: (Re)write of the tutorial * Feature: __addifnosuchline supports matching on regular expressions (Daniel Maher) * Feature: __directory, __file, __link: Add --state parameter (Steven Armstrong) * New Type: __package_luarocks (Christian G. Warden) * New Type: __cdistmarker (Daniel Maher) 2.0.4: 2011-11-18 * Bugfix core: Remove traceback when sending SIGINT (aka Ctrl-C) * Bugfix core: Accept parameters with - in the name (Steven Armstrong) * Cleanup: __object_fq variable removed (never used) * Cleanup: Environment variable __self DEPRECATED, use __object_name instead * Cleanup: Environment variable __self scheduled for removal in cdist 2.1 * Documentation: Many examples for use of __remote_* (Steven Armstrong) * Feature: Automatically require all used objects (Steven Armstrong) * New Type: __cron (Steven Armstrong) 2.0.3: 2011-10-18 * Improved logging, added --verbose, by more quiet by default * Bugfix __user: Correct quoting (Steven Armstrong) * Bugfix __addifnosuchline: Falsely exited * Bugfix requirements: Restore original require="" behaviour * Feature requirements: Check for broken object_ids and abort * Massive refactoring and unittesting introduced (Steven Armstrong) 2.0.2: 2011-09-27 * Add support for detection of OpenWall Linux (Matthias Teege) * Add support for __debug variable in manifests * Bugfix core: Various issues with type emulator 2.0.1: 2011-09-23 * Bugfix core: Always print source of error in case of exec errors * Bugfix core: Various smaller bugs in string concatenation * Feature: Add marker "changed" to changed objects 2.0.0: 2011-09-16 * New Type: __package_rubygem (Chase Allen James) * __self replaced by __object_fq * Rewrote cdist in Python 1.7.1: 2011-07-26 * Documentation: Add explorers to reference * Documentation: Typo cleanup (Derek Brost) * Type __key_value: Bugfix (Steven Armstrong) * New Type: __postgres_role (Steven Armstrong) * New Type: __postgres_database (Steven Armstrong) 1.7.0: 2011-05-10 * Bugfix type __package_yum: Fix redhat support (Ramon Salvadó) * Improved type __package_yum: Add centos support (Ramon Salvadó) * New Type: __timezone (Ramon Salvadó) * Renamed explorer: hardware_type to machine * Core: Do not execute empty code fragments 1.6.2: 2011-04-19 * Core: Introduce __cdist_tmp_base_dir * Core: Cleanup and enhance cdist-type-template * Core: cdist-mass-deploy: Report failed cdist-deploy-to instances * New Type: __ssh_authorized_key (Aurélien Bondis) 1.6.1: 2011-04-07 * Improved logging: Show code responsible for abort * Improved logging: Consistently prefix with current object or core * Bugfix: Type __debconf_set_selections used wrong contens for selection * Bugfix: Don't fail, if cache directory is not existing * Bugfix: __user and __group exited non-zero if no change was necessary * New Explorer: hardware_type * New Type: __package_pkg_openbsd (Andi Brönnimann) * New Type: __autofs_map (Steven Armstrong) * New Type: __autofs_master (Steven Armstrong) 1.6.0: 2011-04-06 * New Type: __package_yum * New type: __debconf_set_selections * New explorer: os_version * Bugfix: Type __group failed in case of __group NAME syntax * Bugfix: __package* types: consistently name --state removed instead of uninstalled or deinstalled * Type __package: Added Fedora support * Type __package_apt: Removed --preseed support * Explorer os gained Fedora support * Simplified types __user and __group * New helper binary: cdist-mass-deploy 1.5.0: 2011-04-01 * Add basic cache functionality * New type: __process * Restructured execution: (Steven Armstrong) Orientate processing on objects, resolve dependencies and ensure correct execution order. * Documentation: Rewrite stages docs (Steven Armstrong) * Documentation: Remove legacy man pages (Steven Armstrong) 1.4.1: 2011-03-25 * New type: __key_value (Steven Armstrong) * New type: __apt_ppa (Steven Armstrong) * Documentation: Manpage generation cleanup * Documentation: Manpage fix for __apt_ppa 1.4.0: 2011-03-24 * Add --recursive to __directory * Move cdist generated stuff to .cdist of an object * Allow objects to be redefined 1.3.2: 2011-03-21 * Add --source to __motd * Add --preseed to __package_apt * Include HTML documentation of manpages and publish them 1.3.1: 2011-03-21 * Document: cdist-type-build-emulation * Document: cdist-type-emulator * Document: cdist-remote-explorer-run * Fix dependencies in cdist-code-run * Fix dependencies in cdist-manifest-run-all * Add --source to __issue and fix os check 1.3.0: 2011-03-20 * Add support for local and remote code generation and execution * Bugfix: Remove obsolete $@ call in cdist-remote-explorer-run * Bugfix: Correct manpage for __removeline (broke manpage generation) 1.2.0: 2011-03-19 * Added dependencies (see cdist-type(7)) * New type: __removeline (Daniel Roth) * New type: __group (Steven Armstrong) * New type: __user (Steven Armstrong) * Documentation: cdist-run-remote * Documentation: cdist-code-run-all * Documentation: cdist-object-gencode * Documentation: cdist-explorer-run-global * Documentation: cdist-manifest-run-init * Documentation: cdist-manifest-run-all * Documentation: cdist-object-gencode-all * Documentation: cdist-manifest-run 1.1.0: 2011-03-16 * Replace type __file with __file, __directory, __link * Documentation: cdist-env * Documentation: cdist-config * Documentation: cdist-dir * Documentation: cdist-quickstart 1.0.4: 2011-03-15 * New type: __motd * New type: __addifnosuchline (Daniel Roth) * New type: __user * Document type: __issue * Document type: __package * Document type: __package_pacman * Document type: __package_apt * New parameter for __file: --owner and --group 1.0.3: 2011-03-11 * Update regexp used for sane characters * Allow types without parameters * Allow type to be singleton * Type __file learned --type symlink 1.0.2: 2011-03-09 * Add manpages: cdist-type, cdist-type__file, cdist-reference, cdist-explorer * Make doc/man/ usable as MANPATH entry 1.0.1: 2011-03-08 * Added cdist-type-template including manpage * Fix manpage building * Add new manpages: cdist-stages, cdist-bin-transfer 1.0.0: 2011-03-07 * Initial release