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
