Version 0.3.6
~~~~~~~~~~~~~
Released: 2013-05-07

New Features:
 - Add an installed flag as an additional optional check for comparing packages (Richard Hughes)
 - Add a --version argument to the Zif command line tool (Richard Hughes)
 - Add support for the nogpgcheck command line option (Richard Hughes)
 - Add the rdeptree command (Elad Alfassa)
 - Add zif_store_remote_get_pubkey_enabled() to be able to get the keys even when gpgcheck=0 (Richard Hughes)
 - Install the package when the user does 'zif install /usr/sbin/powertop' (Richard Hughes)
 - Print the raw timing data when profile is enabled (Richard Hughes)
 - Support installing packages using an rpm provide name (Richard Hughes)

Bugfixes:
 - Cache the conflicts name table in ZifMdPrimarySql as it is typically small (Richard Hughes)
 - Clarify what zif_package_compare_full() does and add several new check flags (Richard Hughes)
 - Do not abort because an update tries to remove the running kernel (Richard Hughes)
 - Do not abort the comparison if the same package is in an array more than once (Richard Hughes)
 - Do not load the ZifStoreRemote metadata every time it is used (Richard Hughes)
 - Do not return an error on update if a local package is not resolvable in a remote store (Richard Hughes)
 - Do not return duplicate results from zif_store_array_x functions (Richard Hughes)
 - Don't change behaviour of zif_package_compare() compared to previous releases (Richard Hughes)
 - Don't use the deprecated INCLUDES in Makefile.am (Richard Hughes)
 - Fix a crash when using 'zif local-install' on an unsigned package (Richard Hughes)
 - Fix some metadata downloads being retried over and over again (Richard Hughes)
 - Fix two progress warnings when ZifStoreRemote metadata has already been loaded (Richard Hughes)
 - Make the slow updates check more forgiving (Richard Hughes)
 - Never use -Werror (Richard Hughes)
 - Skip unavailable repos when refreshing the metadata (Richard Hughes)
 - Speed up zif_store_array_get_updates() by a factor of 4.6 (Richard Hughes)
 - Use only the name as the key when filtering packages by newest (Richard Hughes)
 - When there are two versions of the same package, prefer showing the installed version (Richard Hughes)

Version 0.3.5
~~~~~~~~~~~~~
Released: 2013-01-08

New Features:
 - Add a new logo for Zif (Ryan Lerch)

Bugfixes:
 - Don't fail 'zif refresh-cache' if a repo is unavailable (Richard Hughes)
 - Ensure all the manifest files get included in the tarball (Richard Hughes)
 - Fix compilation with old versions of rpm (Richard Hughes)
 - Fix 'zif remove-with-deps' to not remove user-action packages (Richard Hughes)
 - Set the correct basearch for ARM processors (Richard Hughes)
 - Use g_object_add_weak_pointer() to check for refcounting bugs (Richard Hughes)

Version 0.3.4
~~~~~~~~~~~~~
Released: 2012-11-25

Notes:
 - Cold startup is now much quicker. Typically this makes the command
   line 'zif' executable 80% faster to startup.
 - There are many fixes specifically for Fedora 18. If you're using this
   release already then you really want to upgrade.

New Features:
 - Store the metdata checksum in an xattr to speed up checking metadata

Bugfixes:
 - Do not crash when removing deps of packages
 - Filter the *-release packages before finding 'releasever_pkg'
 - Only read the metadata files from disk if we need to check the contents
 - Turn off header validation when loading the rpmdb
 - Ignore any fractional part of the timestamp when parsing repomd.xml
 - Don't reset the local state when getting package deps
 - Don't reset the parent state when getting package requires
 - Do not use zif_state_reset() when filtering a package array
 - Don't use the deprecated sysconfig files that have been removed in F18
 - Add zif_state_check() as a lightweight way of checking for cancellation
 - Own the string value if zif_string_new_value() is used
 - Fix several other small memory leaks

Version 0.3.3
~~~~~~~~~~~~~
Released: 2012-10-24

New Features:
 - Add zif_repos_get_stores_debuginfo() helper function
 - Add zif_transaction_get_update() for pre-resolve checks
 - Enable any debuginfo repos if the user searches for a debuginfo package
 - Enable the debuginfo repos if any updates pull them in as deps
 - Fix a lot of GObject Introspection tags and add a small python example
 - Support the skip_if_unavailable config option

Bugfixes:
 - Be less vocal when we can't find an librpm-referenced package in the transaction set
 - Do not return primary metadata when the ZifStore is not enabled
 - Don't allow a store to be added to a ZifStoreArray more than once
 - Don't make broken repos conditional on --skip-broken when depsolving
 - Ensure all errors are reported in the zif command line tool
 - If the ZifStore gets disabled don't keep trying to use it in ZifStoreArray
 - Only use enabled ZifStoreRemote's when depsolving
 - Skip errors when using ZifStoreArray and a ZifStore gets disabled whilst being used

Version 0.3.2
~~~~~~~~~~~~~
Released: 2012-09-21

Bugfixes:
 - Import all the GPG keys found from gpgkey in a repo file
 - Add two more ignorable rpmCallbackTypes
 - Use the new RPMCALLBACK_INST_STOP to control the install phases
 - Ensure the package-progress gets set on the master ZifState
 - Try harder to get the package progress when packages are being removed

Version 0.3.1
~~~~~~~~~~~~~
Released: 2012-08-06

New Features:
 - Add a package-progress-changed signal on ZifState (Richard Hughes)
 - Remove the deprecated ZifLock methods (Richard Hughes)
 - Support per-thread and system-wide lock modes (Richard Hughes)

Bugfixes:
 - Make taking locks threadsafe (Richard Hughes)

Version 0.3.0
~~~~~~~~~~~~~
Released: 2012-06-02

Notes:
 - This break ABI by adding padding to all the Class structs, although
   there are no actual API changes.

New Features:
 - Add ZifStoreDirectory which allows us to use a directory of rpm files as a remote store
 - Add --package-dump to specify a remote file dump in the command line tool
 - Add zif_lock_get_state() to get what locks are being held

Bugfixes:
 - Pad the output of 'zif get-details pkgname' in a better way
 - Allow the repo to be skipped if libsoup returns with 'Cannot resolve hostname'
 - Do not rely on g_slice_new() being zeroed
 - Do not crash if a package does not have a URL set

Version 0.2.9
~~~~~~~~~~~~~
Released: 2012-04-11

Notes:
 - A few nice bugfixes, and a neat feature to reduce the time spent
   checking conflicts by more than 40%.

New Features:
 - Add a schema version to the config file to detect old versions of the config file
 - Add zif_package_get_version_arch() to get a version.arch string for a package
 - Add zif_package_set_provides_files() so the file provides can be set manually
 - Filter out file deps never used for conflicts checking

Bugfixes:
 - Correctly parse the releasever when the providing package has an epoch
 - Do not ever remove the currently running kernel
 - Don't show a warning if remote repomd doesn't set a description for a package
 - Only print the 'percentage should not go down...' message if we are profiling
 - Switch to grub2-reboot when setting the default grub entry

Version 0.2.8
~~~~~~~~~~~~~
Released: 2012-02-22

New Features:
 - Add an 'remove-with-deps' option to auto-remove packages earlier installed as dependencies (Richard Hughes)
 - Add zif_store_resolve_package() to resolve a single package (Richard Hughes)
 - Allow multiple sections inside manifest files (Richard Hughes)

Bugfixes:
 - Do not remove a dep package on remove that has the require provided by something else (Richard Hughes)
 - Don't abort the auto-remove transaction if an original dep is no longer installed (Richard Hughes)
 - Fix a critical warning when getting repomd from a broken repo (Richard Hughes)
 - Fix the progress state when searching for files (Richard Hughes)
 - Make the transaction history timestamps 64 bits in size (Richard Hughes)

Version 0.2.7
~~~~~~~~~~~~~
Released: 2012-02-03

Bugfixes:
 - Add a kernel update test transaction (Elad Alfassa)
 - Add a test transaction for removing an older version (Elad Alfassa)
 - Check the mirrorlist contains at least one non-comment or empty line (Richard Hughes)
 - Fix getting the update details for packages that installed multiarch (Richard Hughes)
 - Fix 'zif update kernel' as we want to install newer versions, not remove the current running version (Richard Hughes)

Version 0.2.6
~~~~~~~~~~~~~
Released: 2011-11-01

New Features:
 - Add zif_state_set_process_event_sources() for non-mainloop programs to use (Richard Hughes)
 - Allow getting per-source config keys from .repo files (Richard Hughes)
 - Automatically call zif_init() so client programs don't have to (Richard Hughes)
 - Implement zif_history_get_transactions_for_package (Elad Alfassa)
 - Use a random name for the scriptlet file saved in /tmp (Richard Hughes)
 - When the Zif.conf file is changed, reload the config data on next access (Richard Hughes)

Bugfixes:
 - Do not consider a repo-id ending with '-testing' a development repo (Richard Hughes)
 - Don't print a warning if the number of steps is zero (Richard Hughes)
 - Fix the deptree output (Elad Alfassa)
 - Fix the transaction reason for downgraded packages (Richard Hughes)
 - Fix 'zif get-upgrades' by loading the local store (Richard Hughes)
 - Ignore packages that are already installed when doing 'zif install foo bar baz' (Richard Hughes)
 - Only print the enabled repos by default when doing 'zif repo-list' (Richard Hughes)
 - Optimise resolving in ZifStore by not splitting the string (Richard Hughes)
 - Require exactly 'y<enter>' or 'yes<enter>' before running a transaction (Richard Hughes)
 - Restore the parent ZifStateAction after the child has completed (Richard Hughes)
 - Return errors from zif_config_expand_substitutions() rather than ignoring them (Richard Hughes)
 - zif_state_set_number_steps_real: return TRUE if steps is 0 (Kalev Lember)

Version 0.2.5
~~~~~~~~~~~~~
Released: 2011-10-03

New Features:
 - Add a deptree command to zif's CLI (Elad Alfassa)
 - Add a new transaction reason downgrade-installed (Richard Hughes)
 - Add a transaction reason of downgrade-for-dep (Richard Hughes)
 - Add functions for downloading and rebuilding delta rpms (Kalev Lember)
 - Do not allow the transaction commit if selinux is enabled and old (Richard Hughes)
 - Enable -debuginfo repos when we try to install -debuginfo packages (Richard Hughes)
 - Kick mirrors if the download speed is less than 10kb/sec (Richard Hughes)
 - Score the best provide in a similar way that yum does it (Richard Hughes)
 - Show a warning in the CLI tool when downgrading packages (Richard Hughes)
 - When a repo specifies 'gpgkey=' add to the keyring before verifying (Richard Hughes)

Bugfixes:
 - Allow a transaction commit to install untrusted files (Richard Hughes)
 - Correctly parse local file >= or <= depends (Richard Hughes)
 - Do not assume that the char** arrays from SQLite are NULL terminated (Richard Hughes)
 - Don't add includes in zif.h that are not supposed to be exported (Richard Hughes)
 - Don't print 'Can't open history database' when installed from source (Richard Hughes)
 - Ensure the main loop has no pending actions when processing state (Richard Hughes)
 - Ensure we can find file provides in SQL metadata (Richard Hughes)
 - Ensure we match a basic package_id when checking in a ZifStore (Richard Hughes)
 - Fix a buffer over-run when replacing strings (Richard Hughes)
 - Fix crash in zif upgrade-distro-live (Richard Hughes)
 - Include the missing remove-for-update summary in the CLI tool (Richard Hughes)
 - Only return depends from ZifMdPrimaryXml if they are satisfied (Richard Hughes)
 - Prefer already installed provides over upgrades where possible (Richard Hughes)
 - Remove the warning when we have multiple provides (Richard Hughes)
 - Remove ZifArray, nothing actually uses it (Richard Hughes)
 - Try to make the signal handling in libzif somewhat sane (Richard Hughes)
 - Use the results from all repos when calculating the 'best' provide (Richard Hughes)
 - When specifying resolving with prefer-native, re-search non-native (Richard Hughes)

Version 0.2.4
~~~~~~~~~~~~~
Released: 2011-09-23

Notes:
 - Lots of new functionality to the 'zif' command line tool
 - 65% less memory required when depsolving
 - 25% faster when starting up from cold
 - Lots of issues fixed reported from many people -- thanks!

New Features:
 - Add a new zif command 'build-depends' (Richard Hughes)
 - Add a new zif command 'downgrade' (Richard Hughes)
 - Add a new zif command 'history' (Richard Hughes)
 - Add a new ZifStateAction of ZIF_STATE_ACTION_CHECKING_UPDATES (Richard Hughes)
 - Add a new ZifStateAction of ZIF_STATE_ACTION_LOADING_RPMDB (Richard Hughes)
 - Add architecture and version resolve filtering (Richard Hughes)
 - Add a simple website with a single page (Richard Hughes)
 - Add lzma decompress support (Anders F Bjorklund)
 - Add missing commands to the bash completion script (Elad Alfassa)
 - Add missing test config (Anders F Bjorklund)
 - Add the environment variable ZIF_SQL_DEBUG for debugging queries (Richard Hughes)
 - Add zif_depend_new_from_values() as it's more efficient (Richard Hughes)
 - Add zif_package_get_name_version() to get the cached string (Richard Hughes)
 - Add zif_package_set_repo_id() to allow us to set the repo_id (Richard Hughes)
 - Add zif_store_remote_get_pubkey() to get the gpgkey for the repo (Richard Hughes)
 - Add zif_store_resolve_full() to resolve with lookup flags (Richard Hughes)
 - Add zif_string_replace() to make replacing substrings efficient (Richard Hughes)
 - Allow the user to use globs or regular expressions (Richard Hughes)
 - Enable GObject introspection support (Richard Hughes)
 - Initial work on improving the website (Elad Alfassa)
 - Scale the progressbar depending on the width of the terminal (Richard Hughes)
 - Set the effective UID and command line for the transaction (Richard Hughes)
 - Set the pakage trust to UNVERIFIED if it's supposed to be signed (Richard Hughes)
 - Show the user the total download size before the transaction (Richard Hughes)
 - Support non-standard multiline repo files (Richard Hughes)
 - Support repo URLs that start with file:// (Richard Hughes)
 - Track transactions to provide a history feature (Richard Hughes)
 - Use wget to download files from FTP servers (Richard Hughes)

Bugfixes:
 - Alias makecache to refresh-cache for yum compatibility (Richard Hughes)
 - Allow Resolve(zif.i386) to match zif.noarch (Richard Hughes)
 - Do not abort the transaction when a pubkey is already been added (Richard Hughes)
 - Do not crash if a repo file is empty (Richard Hughes)
 - Do not fail 'make check' if ~/Code/zif does not exist (Richard Hughes)
 - Don't assume a provide array has a best depend (Richard Hughes)
 - Don't let GIO start it's own session bus (Richard Hughes)
 - Don't scatter the progressbar when doing 'zif info zif\*' (Richard Hughes)
 - Elipsize filenames prefixed with a SHA1 hash (Richard Hughes)
 - Ensure all the packages are downloaded on the command line (Richard Hughes)
 - Ensure that packages from the yumdb are marked as installed (Richard Hughes)
 - Ensure the rpmdb is only loaded once in the command line (Richard Hughes)
 - Ensure the ZifMdPrimaryXml is loaded before we get the package list (Richard Hughes)
 - Ensure we set the 'upgrade' flag when adding updates (Richard Hughes)
 - Fix building on RHEL6 (Farkas Levente)
 - Fix up the provides filtering to be a bit more sane (Richard Hughes)
 - Get the releasever correctly (Richard Hughes)
 - If using skip-broken then don't cancel the install item (Richard Hughes)
 - Ignore metalink if a baseurl is specified (Richard Hughes)
 - Make zif_store_find_package() much quicker on a ZifStoreLocal (Richard Hughes)
 - Mark the config file %config(noreplace) in the spec file example (Richard Hughes)
 - Only prevent 'protected_packages' if it's a user action (Richard Hughes)
 - Prefer the native arch when resolving if the flag is set (Richard Hughes)
 - Put the zif command line tool into a subpackage (Richard Hughes)
 - Remove the ZifDepend per-depend hash in ZifPackage (Richard Hughes)
 - Require wget in zif.spec.in (Elad Alfassa)
 - Set the installed package for new updates (Richard Hughes)
 - When getting updates set the maximum metadata timeout to be 24h (Richard Hughes)

Version 0.2.3
~~~~~~~~~~~~~
Released: 2011-09-05

New Features:
 - Add a 'loaded' property to ZifStore
 - Add commands to get the dependancy data about packages
 - Return the last detailed download error message to aid debugging without --verbose
 - Use different GError codes when downloading fails

Bugfixes:
 - Allow certain self test files to be skipped when there is no internet access
 - Don't fail the self tests when not in the GMT timezone
 - Ensure we set the location_href for primary XML metadata
 - Fix a critical warning when refreshing the system cache
 - Fix a critical warning when doing 'zif info name'
 - Fix the error handling when getting filelists from XML metadata
 - Fix three small memory leaks
 - Ignore requires that start with 'rpmlib(' and don't have RPMSENSE_RPMLIB set
 - Ignore rpmlib() defines from handcrafted incorrect metadata
 - Use zif_config_get_enum() to avoid leaking pkg_compare_mode each time
 - When the rpmdb changes, do not empty the package list on unload

Version 0.2.2
~~~~~~~~~~~~~
Released: 2011-08-01

New Features:
 - Add a runtime interface for enabling and disabling repos
 - Add 'install-as-update' command to the manifest file format
 - Generate a xz tarball by default
 - Reset the file modification date if we skip the download because the checksum matched
 - Store arrays of ZifPackages when resolving to simplify things

Bugfixes:
 - Do not attempt to remove packages we want to remove if they obsolete *and* provide a depend
 - Do not print a critical warning for an empty .repo file
 - Ensure that local packages are not marked as installed
 - Ensure we check the age of the uncompressed file when loading the metadata item
 - Ensure we don't skip a valid-looking repomd.xml when we want to refresh it
 - Fix a crash in the zif command line tool when getting the deps list
 - Fix a potential division-by-zero in zif_transaction_set_progress()
 - Fix a typo that could mean the metalink file was not re-downloaded in some cases
 - Replace zif_md_file_check() with two seporate methods with sane semantics

Version 0.2.1
~~~~~~~~~~~~~
Released: 2011-07-04

Notes:
 - Lots of nice speed and depsolver fixes.
 - New commands to the command line tool: distro-sync, upgrade-distro-live

New Features:
 - Add a distro-sync command to the zif command line tool
 - Add a section in the manual page about the environment variables we can use
 - Add a zif_package_array_find() convenience function
 - Add localpkg_gpgcheck to the config file as yum has split up the policy for local and remote packages
 - Add methods to be able to add a single depend to a package
 - Add the ability to test getting the updates list in a manifest file
 - Add the command line action 'upgrade-distro-live' to perform a live upgrade without using anaconda
 - Add zif_compare_evr_full() which takes an additional ZifPackageCompareMode
 - Add zif_depend_new_from_data() to be able to get a depend item from a pair of key,value data arrays
 - Add zif_package_add_file() to be able to add a single file to a package
 - Add zif_package_array_filter_duplicates() for O(n) duplicate package removal
 - Add zif_package_compare_full() so we can pass in flags for name and arch checking
 - Add zif_package_set_compare_mode() to set the version comparison mode to use
 - Add zif_store_array_get_updates() to easily get the update set for an array of stores
 - Create our own easy-to-read manifest format rather than abusing a keyfile
 - Create the sqlite metadata when generating an install tree for anaconda
 - Generate the group metadata when performing the distro upgrade
 - Parse the provides, requires, obsoletes and conflicts data from legacy XML primary metadata
 - Sort the package results in the command line tool

Bugfixes:
 - Allow clients to call zif_package_get_provides() on repos that don't have any filelists
 - Allow the groups mapping file to be a symlink
 - Change the default of upgrade_repo_dir to use the yum location, it's hardcoded in anaconda
 - Complete the code for a 'complete' upgrade-distro that actually downloads packages
 - Do not redownload files that already exist and are correct
 - Enable distro package compare mode when getting the list of packages during a distribution upgrade
 - Enable the automatic content type sniffing for the mirrorlist.txt file
 - Ensure an obsoleted subpackage is removed on update
 - Ensure packages created using the legacy metadata format get assigned a store
 - Ensure we use the metalink and mirrorlist methods when downloading missing repomd.xml files
 - Fix a critical warning in the error path for zif_store_find_package()
 - Fix getting the updates list on multiarch when there is a package obsoletes
 - Fix getting the updates list when there is an update with an obsoleted subpackage
 - Fix 'zif distro-upgrade' as the compression format of the initrd is now xz, not gzip
 - Fix zif_package_array_filter_best_arch() so that is does not prefer x86_64 on an i386 machine
 - Fix zif_package_array_filter_newest() to correctly remove just the old packages
 - If we try to get the newest package from a list with different names, fall back to just checking the versions
 - Only filter the best provide array by architecture if there is more than one package
 - Set the release version back to the orginal value when done doing a distro upgrade
 - When processing the package requires, ensure the list contains the same package only once
 - When refreshing do not download the .gz metadata if the .sqlite metadata is available

Version 0.2.0
~~~~~~~~~~~~~
Released: 2011-06-07

Notes:
 - This release breaks API in a small way for zif_store_remote_set_enabled
 - Multiarch is now well supported with some new transaction self tests
 - Native RHN support has been added which works, but is slow

New Features:
 - Add an --exact-arch command line argument to the zif command line tool
 - Add initial RHN package and store support with elective precaching
 - Take the architecture in consideration when filtering a package list for age
 - Use mirrorlist_expire from the config file

Bugfixes:
 - Add a ZifState argument to zif_store_remote_set_enabled()
 - Create a nice format string for RPMPROB_OBSOLETES for new versions of RPM
 - Do not assert if zif_config_set_filename() is called twice, return a GError instead
 - Do not require the caller to unref zif_state_get_child() to match the method comment
 - Ensure we exit with an error if we ensure a store that is not supported
 - Fedora 15 and above no longer ships a stage2 upgrade image
 - Fix updating a x86_64 package where multiple architecture updates are available
 - If the user specified --skip-broken then connect up a dummy error handler
 - If we failed to write the lock file, then do not retry another 9 times
 - It's not valid to call zif_package_compare() with two packages of different architecture
 - Remove the global lock and instead use three locks for writing and none for reading
 - Repo files do not have to contain an 'enabled=' entry

Version 0.1.5
~~~~~~~~~~~~~
Released: 2011-01-24

Notes:
 - A few nice bugfixes in this release.
 - Zif now reports the speed of installing and downloading.

Translations:
 - Update Arabic translation (karim)
 - Update Czech translation (fri)
 - Update Frech translation (mathdabomb)
 - Update Malay translation (farizluqman)
 - Update Spanish (Chile) translation (rahermosillac)

New Features:
 - Add a default value of the rpmdb prefix in the config file (Richard Hughes)
 - Add some example programs for people learning the API (Richard Hughes)
 - Add zif_state_set_speed() to be able to track the speed (Richard Hughes)
 - Allow specifying an array of possible content types for download (Richard Hughes)
 - Allow the user to specify the upgrade type using the zif CLI (Richard Hughes)
 - Enable the verbose depsolve if the environment variable is set (Richard Hughes)
 - Report the disk speed when installing and removing packages (Richard Hughes)
 - Set the file download speed in ZifDownload (Richard Hughes)
 - Show the transaction speed in the CLI tool (Richard Hughes)
 - Verify the package content type and completed size when downloading (Richard Hughes)

Bugfixes:
 - Avoid a critical warning when cancelling a GetPackages method (Richard Hughes)
 - Do WhatProvides() on each dependancy when in remove (Richard Hughes)
 - Increase the default metadata age to 7 days (Richard Hughes)
 - Return a specific error early if the destination device is out of space (Richard Hughes)
 - Return the filename in the error message if the rpm verify failed (Richard Hughes)
 - Upstream grubby defaults to /etc/grub.conf, so change this for Fedora (Richard Hughes)

Version 0.1.4
~~~~~~~~~~~~~
Released: 2011-01-07

Notes:
 - Lots of nice bugfixes in this release.
 - Zif does now not read or write files owned by yum at the request of
   the yum developers. This means Zif can now stand on it's own, and
   does not require yum to to installed on the target system.

Translations:
 - Add Arabic translation (karim)
 - Add French translation (mathdabomb)
 - Add Malay translation (farizluqman)
 - Add Spanish (Chile) translation (rahermosillac)
 - Update Czech translation (fri)

New Features:
 - Add yumdb_allow_write to control yumdb access (Richard Hughes)
 - Construct our own problem description from the rpmProblem object (Richard Hughes)

Bugfixes:
 - Always get the ChangeLog data even if there is no updateinfo data (Richard Hughes)
 - Always set the transaction progress to writing in remove (Richard Hughes)
 - A mirrorlist does not have to have a 'repo' header, so do not fail bare files (Richard Hughes)
 - Correctly identify comps groups with no descriptions (Richard Hughes)
 - Do not parse yum.conf by default on request of the yum developers (Richard Hughes)
 - Do not read data from the yumdb by default (Richard Hughes)
 - Do not use deprecated low level methods such as rpmdbOpen() (Richard Hughes)
 - Ensure we create the log file if it doesn't already exist (Richard Hughes)
 - Ensure we set a prefix if one is set when we load the rpmdb (Richard Hughes)
 - Fix up the initrd and stage2 content types when using rawhide (Richard Hughes)
 - Free the interator before closing the database in ZifStoreLocal (Richard Hughes)
 - Generate ordering for transactions (Panu Matilainen)
 - If for whatever reason the percentage goes backwards, only print one warning (Richard Hughes)
 - Ignore redirects when downloading files (Richard Hughes)
 - Install zif-delta.h as we're using it in public headers now (Richard Hughes)
 - Parse the 'info' rpm verbosity string correctly (Richard Hughes)
 - Print the output of 'zif get-categories' in a nicer way (Richard Hughes)
 - Return an error when the rpm transaction didn't ever get to the writing phase (Richard Hughes)
 - RPMSENSE_PROVIDES and RPMSENSE_CONFLICTS dont exist in headers anymore (Panu Matilainen)
 - Show the scriptlet standard out and error on the command line (Richard Hughes)
 - Try to detect invalid mirrorlist and metalink files (Richard Hughes)
 - Use a canonicalized path in the self test code to appease librpm (Richard Hughes)
 - Use headerFree() instead of headerUnlink() (Panu Matilainen)
 - Use headerGetFoo() helpers to save a bit of manual work (Panu Matilainen)
 - Use our own lock file by default, not /var/run/yum.pid (Richard Hughes)
 - Use rpmtsCheck() before running the transaction (Richard Hughes)
 - Use xml:base when looking for sources for packages to deal with koji (Richard Hughes)
 - We can't trust the return value of rpmtsCheck (Panu Matilainen, Richard Hughes)

Version 0.1.3
~~~~~~~~~~~~~
Released: 2010-12-13

Notes:
 - Lots of new API in this release, and a few methods have been removed
   or renamed. Please use the gtk-doc documentation when migrating.
 - Zif has gained the ability to install, update and remove packages.
 - Zif has initial support for upgrading the distribution, but this is
   not fully complete, and should not be used yet as it's not tested.
 - Zif is now a translatable project, with a updated and improved 'zif'
   command line tool.

Translations:
 - Updated Czech translation (fri)

New Features:
 - Add 7 methods to ZifDownload to support location based mirrors (Richard Hughes)
 - Add a bash completion script (Richard Hughes)
 - Add a command 'manifest-check' to be able to verify a manifest file (Richard Hughes)
 - Add a command 'manifest-dump' to be able to create a file representing system state (Richard Hughes)
 - Add a command 'zif get-config-value' to be able to query things like basearch and archinfo (Richard Hughes)
 - Add a 'committing' action to ZifState (Richard Hughes)
 - Add a dependency 'any' hash table to reduce the number of calls to zif_depend_satisfies() (Richard Hughes)
 - Add a new command 'update-details' to get the update metadata (Richard Hughes)
 - Add an UpgradeKind parameter to zif_release_upgrade_version() (Richard Hughes)
 - Add a --profile switch to the zif command line tool to be able to get profiling information (Richard Hughes)
 - Add a simple document explaining how to switch PackageKit to using Zif (Richard Hughes)
 - Add a simple 'shell' command that can profile individual actions (Richard Hughes)
 - Add a ZIF_CHECK_VERSION macro (Richard Hughes)
 - Add conflicts support to Zif (Richard Hughes)
 - Add conflict support into Zif (Richard Hughes)
 - Add initial GPGME support for checking signatures of repodata. (Richard Hughes)
 - Add 'install', 'remove' and 'update' commands into the zif command line tool (Richard Hughes)
 - Add 'kind' and 'filename' properties to ZifMd (Richard Hughes)
 - Add lots of translations to the command line tool (Richard Hughes)
 - Add obsoletes support into the ZifTransaction processing (Richard Hughes)
 - Add obsoletes support to Zif (Richard Hughes)
 - Add pk_progress_bar_set_on_console (Richard Hughes)
 - Add progress reporting to ZifTransaction::Commit (Richard Hughes)
 - Add support for stage2 when doing an OS upgrade (Richard Hughes)
 - Add the upgrade and get-upgrades commands to the zif command line tool (Richard Hughes)
 - Add the ZifUpgrade object to represent a distribution upgrade (Richard Hughes)
 - Add YumDB read and write functionality (Richard Hughes)
 - Add 'zif check' command to resolve the entire rpmdb (Richard Hughes)
 - Add 'zif db-list <packagename>' to print values in the yumdb (Richard Hughes)
 - Add zif_depend_get_description() which returns a cached string describing the ZifDepend object (Richard Hughes)
 - Add zif_depend_parse_description() to be able to parse a ZifDepend from a string (Richard Hughes)
 - Add zif_depend_satisfies() which is a more robust way to compare dependencies (Richard Hughes)
 - Add zif_download_location_clear() to clear the list of active mirrors (Richard Hughes)
 - Add zif_download_location_get_size() so we can get the size of the location array (Richard Hughes)
 - Add ZifManifest to test the results of the ZifTransaction resolve (Richard Hughes)
 - Add zif_package_array_get_oldest() (Richard Hughes)
 - Add zif_package_get_printable() to be able to get more readable package names (Richard Hughes)
 - Add zif_package_id_to_nevra() so we can properly implement find_packages() (Richard Hughes)
 - Add zif_package_meta_set_from_data() so we can add data at at later time (Richard Hughes)
 - Add ZifPackageMeta which is a metapackage we can use when testing the depsolving code (Richard Hughes)
 - Add zif_release_set_repo_dir() to be able to set the repo directory when upgrading (Richard Hughes)
 - Add ZifRelease which provides the ability to parse releases.txt (Richard Hughes)
 - Add zif_state_set_report_progress() to reduce the ZifState operations to a NO-OP when depsolving (Richard Hughes)
 - Add zif_state_set_steps() to be able to set a non-linear expected duration for a ZifState (Richard Hughes)
 - Add ZifStoreMeta, an in-memory package store (Richard Hughes)
 - Add zif_store_meta_set_is_local() so the store id is different for remote and local stores (Richard Hughes)
 - Add zif_store_remote_set_id() so we can setup virtual remote stores (Richard Hughes)
 - Add zif_transaction_clear() so we can re-use the transaction object (Richard Hughes)
 - Add zif_transaction_get_reason() so we can get the reasons for each install or removal (Richard Hughes)
 - Add ZifTransaction to manage an rpm transaction (Richard Hughes)
 - Alias some of the zif commands to the yum CLI commands (Richard Hughes)
 - Allow a conflict to update another package, rather than failing the depsolve (Richard Hughes)
 - Always do a test transaction before committing the transaction to disk (Richard Hughes)
 - Automatically add vendor update info if the update source is 'updates@fedoraproject.org' (Richard Hughes)
 - Check packages for public key signatures at prepare time, and mark them untrusted if they do not verify (Richard Hughes)
 - Convert ZifDepend to a proper GObject as GLib is a lot quicker to instantiate objects now (Richard Hughes)
 - Get the installed repository name from yumdb when loading packages from the rpmdb (Richard Hughes)
 - Implement zif_transaction_commit(), and provide the ability to write a transaction to the system rpmdb (Richard Hughes)
 - Make ZifDownload get proxy settings from ZifConfig (Richard Hughes)
 - Make ZifRelease download the kernel and initrd when asked to do an OS upgrade (Richard Hughes)
 - Move the config defaults to a new file, /etc/zif.conf which inherits values from /etc/yum.conf (Richard Hughes)
 - Move the package update detail to ZifPackageRemote so we can add zif_package_remote_is_downloaded() (Richard Hughes)
 - Move the pkgid state from ZifPackageRemote to ZifPackage as a local package can have a pkgid too (Richard Hughes)
 - Move the zif release information into zif.conf, rather than hardcoding it (Richard Hughes)
 - Support the config file items 'installonly_limit' and 'installonlypkgs' (Richard Hughes)
 - Support yum style proxies as well as PackageKit style proxies (Richard Hughes)
 - Teach zif_download_file() how to download local files (Richard Hughes)
 - Treat permission denied as a special error code in ZifDownload (Richard Hughes)
 - Try to anti-mangle the email address in the changeset (Richard Hughes)
 - Try to re-download packages using the 'retries' parameter from the config file (Richard Hughes)
 - When running in 'background' mode, throttle the depsolve to use only idle CPU (Richard Hughes)
 - Write a kickstart file when performing a distribution upgrade (Richard Hughes)
 - Write to the yumdb when we install or erase packages (Richard Hughes)
 - Write to yum.log when we add and remove packages (Richard Hughes)

Bugfixes:
 - Avoid a critical warning in zif_config_expand_substitutions() if we never loaded the file (Richard Hughes)
 - Create the boot path if it does not exist when upgrading (Richard Hughes)
 - Delete any cached packages when doing ZifStore::clean on a ZifStoreRemote (Richard Hughes)
 - Do not abort with a critical warning if we try to add a gpg-pubkey package to the package array (Richard Hughes)
 - Do not do a critical warning when ctrl-c is used when waiting for the lock (Richard Hughes)
 - Do not fail the transaction resolve if there is nothing to update or remove (Richard Hughes)
 - Do not overflow when downloading huge files (Richard Hughes)
 - Enable localization of the command line tool (Richard Hughes)
 - Ensure the package_id is valid when using zif_store_find_package() (Richard Hughes)
 - Fix a depsolve problem where the need and want was inverted, which made some provides fail (Richard Hughes)
 - Fix a number of issues that made 'zif update-info' show incorrect results (Richard Hughes)
 - Fix cancelling the ZifDownload instance (Richard Hughes)
 - If a provide was not found, also include the package that required it (Richard Hughes)
 - Improve a truckload of gtk-doc comments (Richard Hughes)
 - Improve the quality of the translated strings (Richard Hughes)
 - Localize the transaction action output on the command line (Richard Hughes)
 - Lower the ZifState global share check, as we cannot count on the number of steps being linear (Richard Hughes)
 - Make zif_package_local_new() and zif_package_remote_new() return a base class type, not a derived type (Richard Hughes)
 - Match the pkgKey in the SQL query, not the code (Richard Hughes)
 - Only add the changeset data to the update once to achieve a nice speed boost for 'zif update-detail' (Richard Hughes)
 - Only calculate the conflicts data when the install, remove and updates resolve phases have completed (Richard Hughes)
 - Only make the upgrade kernel default once (Richard Hughes)
 - Remove get-updates from the public API (Richard Hughes)
 - Remove zif_md_set_mdtype() as the kind should only be set at object construction time (Richard Hughes)
 - Rename ZifMdType to ZifMdKind to avoid name conflicts (Richard Hughes)
 - Return the command line of the locking process in the error message (Richard Hughes)
 - Rewrite the command line test tool so it works reliably (Richard Hughes)
 - Send an array of depends to the 'WhatFoo' methods to speed up getting the updates (Richard Hughes)
 - Store the ZifDepend string info as a refcounted string (Richard Hughes)
 - Use localized reasons when showing what the transaction is going to do in the CLI (Richard Hughes)
 - Use proper backtracking when using --skip-broken (Richard Hughes)
 - When chaining up ZifState, ensure child percentage are interpolated (Richard Hughes)
 - When searching for a remote provide, also search the packages array as packages provide themselves (Richard Hughes)
 - When using --skip-broken and an update fails, unwind any items added to the install and remove queues (Richard Hughes)
 - Work around a compiler bug that was causing refreshed metadata downloads to randomly fail (Richard Hughes)

Version 0.1.2
~~~~~~~~~~~~~
Released: 2010-11-01

New Features:
 - Add set_string(), set_boolean(), and set_uint() to ZifConfig (Richard Hughes)
 - Add the concept of an 'action' on ZifState, so that we can show what zif is doing (Richard Hughes)
 - Add zif_package_[s|g]et_time_file() so we can filter by newest (Richard Hughes)
 - Add zif_state_valid() and get a lot more strict for ZifState problems (Richard Hughes)
 - Show all packages when we match on multiple results from getdetail (Richard Hughes)

Bugfixes:
 - Add dependencies without a RPMSENSE flag (Richard Hughes)
 - Add the correct build requires in the pkgconfig file (Richard Hughes)
 - Correctly decode string lists using librpm (Richard Hughes)
 - Do not print a warning when the total download size is not known (Richard Hughes)
 - Do not segfault if a repo does not have filelists and we try to search for files (Richard Hughes)
 - Fix an error path leading to a critical warning in zif_store_remote_what_provides() (Richard Hughes)
 - Fix an infinite loop where repomd.xml isn't present, and not downloadable (Richard Hughes)
 - Fix refresh on a remote store as no files were ever downloaded (Richard Hughes)
 - Fix searching for more than one filename in local repos (Richard Hughes)
 - If we download new repodata, ensure we also get a new repomd (Richard Hughes)
 - It is valid to call zif_state_finished() on a ZifState that never had a size set (Richard Hughes)
 - Only print downloading debugging if it resulted in a global percentage change (Richard Hughes)
 - Recognise the pkgtags metadata type, and encode the unknown value into the ABI (Richard Hughes)
 - Search for all the search terms in zif_md_filelists_sql_search_file() (Richard Hughes)
 - Try to re-download the repomd at least once for any reason at all (Richard Hughes)
 - When the repomd is invalid, try to re-download it (Richard Hughes)

Version 0.1.1
~~~~~~~~~~~~~
Released: 2010-10-04

New Features:
 - Avoid state warnings when doing GetCategories (Richard Hughes)
 - Return an error from zif_repos_get_store() when the repo could not be found (Richard Hughes)
 - Add zif_groups_get_cats_for_group() to get the categories for an enumerated group (Richard Hughes)
 - If we pass a full category_id ('apps;education') to zif_md_comps_get_packages_for_group() only consider the child (Richard Hughes)
 - Disable profiling by default in ZifState to speed up SearchGroup by 26% (Richard Hughes)
 - When we do zif_store_search_group() we want to use the enumerated groups, not the rpm groups (Richard Hughes)
 - Add zif_package_id_get_name() which is 9x faster than zif_package_id_split() where only the name is required (Richard Hughes)
 - Only propagate ZifState up to 1% resolution, which speeds up an incredible 18% on pretty much every action (Richard Hughes)
 - Don't trample the GError if the metadata search fails (Richard Hughes)
 - If a required metadata file does not exist, then re-download the repomd.xml and reload the store (Richard Hughes)
 - Ensure error handlers get set on child ZifState objects (Richard Hughes)
 - Make the output of 'zif repolist' aligned (Richard Hughes)
 - Add 'repoenable' and 'repodisable' commands to the zif command line tool (Richard Hughes)
 - Remove a state child warning when doing GetDepends() (Richard Hughes)
 - Do not mix up results with the progressbar when doing 'zif getdepends' (Richard Hughes)
 - Return refcounted arrays from ZifUpdate (Richard Hughes)
 - Add ZifPackage C accessors for version, arch and data (Richard Hughes)
 - Fix a ZifState warning in zif_store_remote_get_update_detail() (Richard Hughes)
 - Don't abort with an error when zif_store_remote_get_update_detail() can't find an installed package (Richard Hughes)
 - Only instantiate helper singletons when required in ZifPackage (Richard Hughes)
 - Refuse to add duplicate ZifChangesets to a ZifUpdate (Richard Hughes)
 - Do not abort if the repomd.xml has additional unknown metadata types (Richard Hughes)

Version 0.1.0
~~~~~~~~~~~~~
Released: 2010-09-08

Notes:
 * Zif is a simple yum-compatible library that only provides read-only
   access to the rpm database and the Fedora metadata for PackageKit.
 * Zif is not designed as a replacement to yum, or to be used by end users.

New Features:
 - Modern GObject library with GCancellation and GError
 - Full state support for accurate progress reporting
 - Remote, installed and local packages handled as abstract packages
 - Local and remote sources handled using an abstract sack
 - Self test program (248 tests)
 - Shares the yum lock
 - Uses librpm to get data from rpm
 - Reads and updates yum metadata (primary, filelists, updateinfo, other,
   metalink, mirrorlist, comps)
 - Reads standard yum repo files
 - Reads a subset of comps for distro-specific groups
 - Uses optional metalink/mirrorlist repository handling
 - Uses yum.conf main config file
 - Uses the PackageKit categories->group mapping file
