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
