Changelog
---------

	* Changes are always commented with their author in (braces)
	* Exception: No braces means author == Nico Schottelius

4.0.0pre1: 2014-01-20
	* Core: Integrate initial install support
	* Core: Integrate initial preos support

3.0.3:
	* Core: Enhance error message when requirement is missing object id
	* Explorer hostname: Return host name by using uname -n
	* New Type: __hostname (Steven Armstrong)

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