Version 1.90.2
--------------
Released: 2023-07-06

Note that this is the last release of UPower with lid handling. OS components
that rely on the lid status should get it from logind instead. See:
https://www.freedesktop.org/software/systemd/man/org.freedesktop.login1.html

- Fix wireless devices not disappearing from Settings when disconnected
- Require a newer libgudev to avoid bugs related to newline stripping
  when reading sysfs attributes
- Add installed-tests files for use with gnome-desktop-testing
- Fix integration test to work with system installed upower binary and
  under jhbuild

Version 1.90.1
--------------
Released: 2023-07-04

- Detect headsets with kernel batteries such as Logitech and
  Steelseries headsets, and make them automatically disappear if
  the headset is turned off (if the kernel driver supports the
  wireless_status attribute)
- Hide duplicate Logitech Bluetooth devices (Bolt-compatible devices
  connected through Bluetooth would show as 2 batteries)
- Hide duplicate Logitech wireless devices when they get connected
  through USB as well
- Fix Bluetooth device names not synchronising, and use user-chosen
  names when available
- Handle the "present" sysfs attribute changing
- Fix iDevices not appearing
- Fix reading capacity_level with newer libgudev
- Fix OpenBSD backend

Version 1.90.0
--------------
Released: 2022-07-21

Note that the version number bump was made to allow bugfixes for older
releases while also making new releases that contain with more in-depth
code changes. The old (soft) API/ABI guarantees are currently unchanged.

Changes:
- Refactor internal battery handling into separate classes
- Guess charging/discharging state based on energy rate (#196)

Bug fixes:
- Fix polling after resume (#198)
- Fix battery state guessing (#146)
- Reload history when battery ID changes
- Test fixes

Version 0.99.19
---------------
Released: 2022-06-08

Changes:
- Move state guessing into DisplayDevice
- Always use 90% threshold to consider a battery full
- Various test improvements

Bug fixes:
- Fix mice showing up as keyboards (#189)
- Allow unit test inspector to fail (#187)
- Fix test cases when daemon shuts down too slowly (#188)

Version 0.99.18
---------------
Released: 2022-05-17

Changes:
- Remove broken wakeup DBus API
- Tag UPS hid devices using hwdb and update list from upstream
- Only permit Refresh method when in debug mode
- Refactor device polling
- Refactor udev device discovery and sibling detection
- Improved testing and CI
- Handle SIGTERM to trigger a clean shutdown

Bug fixes:
- Improve polling of batteries after line-power "online" status change
- Multiple wacom tablet detection fixes
- Fix updates after a BT hid power supply moves in sysfs
- Fix enumeration of "Whats Up!" devices on startup
- Accept USB power supplies without warning
- Allow building without gtk-doc

Version 0.99.17
---------------
Released: 2022-03-09

Bug fixes:
- Fix FD handling issues that may cause lid to not be detected

Version 0.99.16
---------------
Released: 2022-02-23

Bug fixes:
- Silence unnecessary udev event warnings
- Increase test timeout (#171)
- Explicitly link with plist
- Fix UpClient reference leak
- Fix DisplayDevice state on battery hotplug
- Fix critical action to work after it was cancelled (#172)

Version 0.99.15
---------------
Released: 2022-02-09

Bug fixes:
- Various build fixes
- Update bluetooth device alias when it changes (#169)

Version 0.99.14
---------------
Released: 2022-02-03

Changes:
- Port build system to meson
- New ChargeCycles D-Bus property (#152)
- New async GLib APIs (#121)
- lid related functions are now deprecated
- Refresh API is now deprecated

Bug fixes:
- Plenty of test suite fixes
- Fix leak of inhibitor lock (#160)
- Recognize USB power supplies (#148)
- Fix time compression of data points (#167)
- Fix disk write amplification when battery is low (#150)

Version 0.99.13
---------------
Released: 2021-08-17

Bug fixes:
- Tweak default percentage levels to better match other operating systems
- Support large energy rates seen in some modern laptops
- Fix touchpads showing up as mice
- Fix composite battery state when multiple batteries are used and
  one isn't drawing any power
- Make the icon and warning properties respect the "low battery level"
  configuration option
- Stop the device being suspended during the 20-second "shutdown" grace period

Version 0.99.12
~~~~~~~~~~~~~~~
Released: 2021-06-17

New Features:
- Add a raft of new device types
- Add support for iPhone XR, XS and newer models

Bug fixes:
- Work-around incorrect battery percentage reported by MacBooks
- Identify keyboard/pointing device combos as keyboards
- Fix small memory leak in Bluetooth backend
- Fix warning in Bluetooth backend
- Set update time in Bluetooth backend
- Remove support for obsolete CSR devices

Version 0.99.11
~~~~~~~~~~~~~~~
Released: 2019-09-03

New Features:
 - Add code of conduct document
 - build: Migrate from intltool to gettext
 - rules: Split off HID++ udev rules
 - Harden systemd service
 - Let systemd create /var/lib/upower
 - Move D-Bus policy file to /usr/share/dbus-1/system.d/

Bug fixes:
 - Fix endless loop burning 100% CPU on keyboard plugout with external
   backlight
 - linux: Start polling for unknown device batteries too
 - linux: Retry to get a battery type if it's unknown
 - linux: Don't treat device batteries like laptop batteries
 - Replace use of G_TYPE_INSTANCE_GET_PRIVATE and g_type_class_add_private()

Version 0.99.10
~~~~~~~~~~~~~~~
Released: 2019-02-20

Bugfixes:
 - Set 'pending-charge' for DisplayDevice if at least one
   battery is in the 'pending-charge' state
 - Map pending-charge to fully-charged when charge is 100%

Version 0.99.9
~~~~~~~~~~~~~~
Released: 2018-10-25

Bugfixes:
 - Fix lack of update after AC status changes, and broken keyboard
   backlight, following the daemon lockdown added in 0.99.8
 - Multiple API documentation fixes
 - Out-of-tree build fixes

Version 0.99.8
~~~~~~~~~~~~~~
Released: 2018-06-18

New Features:
 - Lock down systemd service file
 - Add support for "Unknown" capacity level, and clarify handling
   of devices with coarse battery levels
 - Add a new version of up_client_get_devices() which unrefs contents

Bugfixes:
 - Fix warnings when D-Bus related properties change
 - Prevent crash after attaching an Apple TV, and support newer
   versions of iOS
 - Lower severity of "unhandled action" messages
 - Fix battery status on MacBooks after a plug or unplug event
 - Fix double-close on exit

Version 0.99.7
~~~~~~~~~~~~~~
Released: 2017-11-28

New Features:
 - Add support for Bluetooth LE device batteries (Bastien Nocera)
 - Allow to be replaced via --replace,-r (Christian Kellner)

Bugfixes:
 - Fix critical action after resume from hibernate (Miroslav Sustek)
 - Fix compilation with libimobiledevice git (Bastien Nocera)

Version 0.99.6
~~~~~~~~~~~~~~
Released: 2017-09-11

New Features:
 - Add UP_DEVICE_KIND_GAMING_INPUT for gaming devices (Bastien Nocera)
 - Detect joysticks as gaming input devices (Bastien Nocera)

Bugfixes:
 - Correctly close inhibitor FD (Benjamin Berg)
 - Fix crash when '@' is present in the device name (oleid, Bastien Nocera)
 - Fix lid detection on FreeBSD (Alberto Villa)
 - Grab the model name from device if unavailable from battery (Bastien Nocera)

Version 0.99.5
~~~~~~~~~~~~~~
Released: 2017-07-24

New Features:
 - Add a more complete self test for HID++ devices (Bastien Nocera)
 - Add BatteryLevel property for devices with a finite number of power levels (Bastien Nocera)
 - Add support for pausing and resuming of the daemon poll (Christian Kellner, Bastien Nocera)
 - Get a serial number for device batteries (Bastien Nocera)
 - Refresh devices after waking up from sleep (Christian Kellner)

Bugfixes:
 - Add proper error and cancellable handling to UpClient constructor (Martin Pitt)
 - Do not spin in a loop when /proc/timer_stats cannot be written (Richard Hughes)
 - Exit early from up-tool when connecting to upower fails (Martin Pitt)
 - Expand the integration-tests to run in more environments (Bastien Nocera, Christian Kellner)
 - Fix reading and writing the keyboard brightness level (Hans de Goede, Marco Trevisan)
 - Fix -Wformat-y2k compilation errors (Bastien Nocera)
 - Lower initial power usage when iDevice isn't accessible (Bastien Nocera)
 - Simplify string checks in upower-glib (Bastien Nocera)

Version 0.99.4
~~~~~~~~~~~~~~
Released: 2016-02-16

New Features:
 - Add support for Logitech G700s/G700 Gaming Mouse (muzena)
 - Port to GDBus (Cosimo Cecchi)
 - Support g_autoptr() for all libupower-glib object types (Kalev Lember)

Bugfixes:
 - Add critical action support for *BSD (Eric Koegel)
 - Change the default low battery policy to percentage (Bastien Nocera)
 - Fix deprecation warning in integration-test (Bastien Nocera)
 - Fix memory leak in up_client_get_devices() (Bastien Nocera)
 - Fix possible double-free (Bastien Nocera)
 - Update HID rules and fix build regression (Arnaud Quette)

Version 0.99.3
~~~~~~~~~~~~~~
Released: 2015-05-28

Bugfixes:
 - Bail out when iDevice state is malformed (Bastien Nocera)
 - Defer getting iDevice info until ready (Bastien Nocera)
 - Fix crash on uninitialized variant (Vlad Orlov)
 - Fix libimobiledevice msg in configure (Bastien Nocera)
 - More memory handling fixes in iDevice (Bastien Nocera)
 - Properly detect bluetooth mice and keyboards that are HID devices (Marc Deslauriers)
 - Support Logitech Unifying in Linux 3.19 (Peter Wu)
 - Work-around broken battery on the Onda v975w (Bastien Nocera)

Version 0.99.2
~~~~~~~~~~~~~~
Released: 2014-12-18

Bugfixes:
 - Avoid unaligned memory access in hidpp-device (Peter Wu)
 - Bump GLib min req to 2.34 (Eric Koegel)
 - Correct check to prevent the display of invalid ASCII codes (Eric Koegel)
 - Fencepost array access error (Eric Koegel)
 - Fix cleanup in up_device_idevice_coldplug/finalize (Nikolay Martynov)
 - Fix crash if there is no session D-BUS (Martin Pitt)
 - Fix error handling for Python 3.4 (Martin Pitt)
 - Fix various memory and reference leaks (Peter Wu)
 - Release resources at shutdown (Peter Wu)
 - Respect the CriticalPowerAction config option (Bastien Nocera)
 - Set update-time on the aggregate device (Bastien Nocera)
 - Split out updating on_battery and warning_level (Bastien Nocera)
 - Update aggregate device on battery removal (Evangelos Foutras)
 - Update display device when battery is removed (Bastien Nocera)
 - Use g_get_real_time() when possible (Bastien Nocera)

Version 0.99.1
~~~~~~~~~~~~~~
Released: 2014-08-18

New Features:
 - Expose "capacity" and "energy-full-design" properties on OpenBSD (Fabian Raetz)
 - Remove IsDocked property (Bastien Nocera)
 - Remove unused polkit dependency (Eric Koegel, Martin Pitt)

Bugfixes:
 - Create the history directory at runtime (Cosimo Cecchi)
 - Do not log a critical warning when using _set_object_path_sync() (Richard Hughes)
 - Fix API doc for up_client_get_on_battery() (Bastien Nocera)
 - Fix possible UpHistoryItem leak on failure (Bastien Nocera)
 - Fix segfault on getting property when daemon is not running (Martin Pitt)
 - Fix shutdown on boot on some machines (Bastien Nocera)
 - Fix small memleak on startup with Logitech devices (Bastien Nocera)
 - Free the obtained device list array after use (Alexander Jesner)
 - Update lid status when updating AC status (Jasper Lievisse Adriaanse)

Version 0.99.0
~~~~~~~~~~~~~~
Released: 2013-10-29

Notes:
 - This version contains major API changes. Use the 0.9.* versions if you want
   to keep using the old API.

New Features:
 - Add WarningLevel and IconName properties to all devices (Bastien Nocera)
 - Add DisplayDevice composite battery (Bastien Nocera)
 - Enforce critical battery policy on the daemon side (Bastien Nocera)

Bugfixes:
 - Reduce client-side and daemon-side wake-ups (Bastien Nocera)
 - Emit PropertiesChanged signals (Bastien Nocera)
 - Register objects on the bus once they've been setup (Bastien Nocera)
 - Clamp percentage for overfull batteries (Martin Pitt)

Feature Removals:
 - Remove battery recall support (Bastien Nocera)
 - Remove QoS support (Bastien Nocera)
 - Remove OnLowBattery property (use WarningLevel instead) (Bastien Nocera)
 - Remove DeviceChanged and Changed signals (PropertiesChanged
   signals are sent instead) (Bastien Nocera)

Version 0.9.22
~~~~~~~~~~~~~~
Released: 2013-10-08

New Features:
 - Add temperature property for batteries (Seth Forshee)

Bugfixes:
 - Fix error handling in up_client_get_properties_sync() (Bastien Nocera, Martin Pitt)
 - Make GetHistory() array order consistent (Martin Pitt)
 - Fix crash with bluetooth input devices (Martin Pitt)
 - Lots of fixes/rework for Logitech wireless input devices (Peter Wu)
 - Allow valid UTF-8 encoded properties (Shih-Yuan Lee (FourDollars))
 - Detect the battery of bluetooth input devices (Shih-Yuan Lee (FourDollars))
 - Only one warning if no valid voltage found (Timothée Ravier)
 - openbsd: Do not call g_thread_init() (Richard Hughes)

Version 0.9.21
~~~~~~~~~~~~~~
Released: 2013-07-26

New Features:
 - Add support for Logitech Wireless (NonUnifying) devices (Arkadiusz Miśkiewicz)
 - Use PIE to better secure installed tools and also use full RELRO in the daemon (Richard Hughes)

Bugfixes:
 - Allow clients to call org.freedesktop.DBus.Peer (Richard Hughes)
 - Detect udev rules dir (Tom Gundersen)
 - Drop --enable-systemd and linking to libsystemd-daemon (Martin Pitt)
 - Find hidraw devices correctly with systemd udev >= v196 (Arkadiusz Miśkiewicz)
 - Fix test for logind availability (Martin Pitt)
 - Update the upower man page with all the current options (Richard Hughes)

Version 0.9.20
~~~~~~~~~~~~~~
Released: 2013-03-18

New Features:
 - Add a --enable-deprecated configure argument to remove pm-utils support (Richard Hughes)
 - Deprecate running the powersave scripts (Richard Hughes)
 - Factor out the Logitech Unifying support to support other devices (Richard Hughes)
 - Require applications to define UPOWER_ENABLE_DEPRECATED to use deprecated functionality (Richard Hughes)

Bugfixes:
 - Bump maximum accepted "time to empty" to 10 days (Martin Pitt)
 - Don't use the deprecated INCLUDES in Makefile.am (Richard Hughes)
 - Fix batteries which report current energy but full charge (Alex Hornung)
 - Fix K750 features name, use 1 second interval (Julien Danjou)
 - Fix memory leak in up_polkit_get_subject (Charles Kerr)
 - Fix two memory leaks (Colin Watson)
 - integration-test: Always run on a fake system bus (Martin Pitt)
 - integration-test: Move to using umockdev (Martin Pitt)
 - Never use -WError when building (Richard Hughes)
 - Raise the hard PolicyKit dep to 0.97 (Richard Hughes)

Version 0.9.19
~~~~~~~~~~~~~~
Released: 2013-01-02

New Features:
 - Add a Documentation tag to the service file (Matthias Clasen)
 - Add luminosity property (Julien Danjou)
 - Add support for Logitech Unifying devices (Julien Danjou)

Bugfixes:
 - Always return 0 from notify-upower.sh (Richard Hughes)
 - Do not continue to poll if /proc/timer_stats is not readable (Richard Hughes)
 - Fix "can-hibernate" formatting in upower --dump (Martin Pitt)
 - Fix device matching for recent kernels (Peter Hurley)
 - Fix srcdir != builddir (Colin Walters)
 - Send resume signal when built with systemd and using pm-utils suspend (Jan Alexander Steffens)

Version 0.9.18
~~~~~~~~~~~~~~
Released: 2012-08-08

New Features:
 - Use systemd if possible for suspend and hibernate (Matthias Clasen)

Bugfixes:
 - openbsd: Properly initialize update-time when creating devices (Landry Breuil)

Version 0.9.17
~~~~~~~~~~~~~~
Released: 2012-06-25

New Features:
 - Fail on CRITICALs in the integration-test (Martin Pitt)

Bugfixes:
 - Drop 'type' parameter from CancelRequest() signature (Sascha Silbe)
 - Fix the LatencyChanged signal (Sascha Silbe)
 - Fix use-after-free of qos item (Sascha Silbe)
 - Fix wrong PowerSupply property for devices without a scope sysfs attribute (Martin Pitt)
 - linux: Don't allow non-power-supply devices to set the OnBattery property (Daniel Nicoletti)
 - linux: Remove obsolete check for magicmouse_ and duplicated wacom_ checks (Daniel Nicoletti)
 - linux: Treat the battery state 'not charging' as PENDING_CHARGE (Richard Hughes)
 - Selectively disable warnings for deprecated GValueArray (Martin Pitt)

Version 0.9.16
~~~~~~~~~~~~~~
Released: 2012-04-30

Translations:
New Features:
 - Add boolean RunPowersaveCommand to UPower.conf (Landry Breuil)
 - Install a systemd service file if systemd is used (Benedikt Morbach)

Bugfixes:
 - Clamp the UPS percentage from 0 to 100 to fix syslog spam (Richard Hughes)
 - Correct the cap on the energy rate (Gary Ching-Pang Lin)
 - Do not print error message for missing /etc/crypttab (Kelly Anderson)
 - Fix crash in up_device_csr_finalize (Martin Pitt)
 - Never detect HID devices with batteries as power supplies (Richard Hughes)
 - Re-coldplug dock status when resuming from sleep (Evan Broder)
 - Return all history records for a timespan of zero (Richard Hughes)
 - libupower-glib: fix small memory leak (Pavel Vasin)
 - libupower-glib: srcdir != builddir fix (Ryan Lortie)
 - openbsd: Fix history by not trying to refresh if /dev/apm wasn't opened yet (Landry Breuil)
 - openbsd: Handle case where minutes_left might be negative (Landry Breuil)
 - openbsd: Set powersave command to apm -C/-A (Landry Breuil)
 - openbsd: Use a singleton pattern to access /dev/apm (Landry Breuil)

Version 0.9.15
~~~~~~~~~~~~~~
Released: 2011-12-05

New Features:
 - Add --with-historydir to specify where we want the history files to be stored (Landry Breuil)
 - Use linear regression to get better predicted battery times (Leonardo Robol)

Bugfixes:
 - Don't assert when the power_supply device type is usb (Richard Hughes)
 - Don't spam the log when we're saving history when on low power (Richard Hughes)
 - Fail the tests gracefully if GI is not available (Martin Pitt)
 - Fix crash in up_device_csr_finalize() (Martin Pitt)
 - Fix invocation of src/linux/integration-test (Martin Pitt)
 - Handle Linux power supplies not exporting a present property (Heiko Stübner)
 - If a power-supply device doesn't report charge or energy, try to read the percentage (Richard Hughes)
 - Move the wacom hack to allow us to support other types of USB device (Richard Hughes)
 - Port the tests to Python 3 (Martin Pitt)

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

New Features:
 - Filter the debugging details unless --verbose is specified (Richard Hughes)

Bugfixes:
 - Fix linux up_backend_supports_sleep_state() return code (Christian Seiler)
 - Fix the kFreeBSD detection (Pino Toscano)

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

New Features:
 - Modernize autotools config (Javier Jardón)
 - Use git.mk and remove the manual .gitignore files (Richard Hughes)
 - Use upstream gettext instead the glib one (Javier Jardón)

Bugfixes:
 - Avoid warnings about missing annotations (Javier Jardón)
 - Don't rely on files' presence to define the default backend (Diego Elio Pettenò)
 - Fully port the test suite to use GObject Introspection (Martin Pitt)
 - Hardcode wacom battery devices as not power-supply devices (Richard Hughes)
 - Use autoreconf instead custom script (Javier Jardón)
 - Use g_unix_signal_add_full() which has been renamed in GLib (Denis Washington)

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

Bugfixes:
 - Add AC_PROG_LIBTOOL as advised by autotools (Landry Breuil)
 - Add openbsd missing includes for close and strcmp (Landry Breuil)
 - Fix how we estimate the device rate for batteries that do not provide this data (Richard Hughes)
 - Silence some openbsd warnings about unused vars and bad return values (Landry Breuil)
 - Switch to using .xz tarballs (Richard Hughes)

Version 0.9.11
~~~~~~~~~~~~~~
Released: 2011-05-25

New Features:
 - Add new NotifySleep() and NotifyResume() signals that include the sleep type (Richard Hughes)

Bugfixes:
 - Ensure up-apm-native.h gets shipped in the tarball for OpenBSD (Richard Hughes)
 - Check energy vs. charge in the Linux integration tests (Martin Pitt)
 - Only include glib-unix.h if the GLib version is >= 2.29.4 (Richard Hughes)
 - Respect $PYTHON for running the test suite (Martin Pitt)
 - Run subset of tests when system D-BUS is not available (Martin Pitt)

Version 0.9.10
~~~~~~~~~~~~~~
Released: 2011-05-03

New Features:
 - Add a config option 'IgnoreLid' for users with broken lid switches (Richard Hughes)
 - Add integration test suite for Linux (Martin Pitt)
 - Add option to run daemon on the session bus for testing (Martin Pitt)
 - Add OpenBSD backend which uses the APM_IOC_GETPOWER ioctl() (Landry Breuil)
 - Support virtual UPS devices for testing (Martin Pitt)

Bugfixes:
 - Consider a discharging UPS as "on battery" (Martin Pitt)
 - Do not overwrite aclocal flags in autogen, fixes b.fd.o #35261 (Tobias Mueller)
 - Fix "unknown" battery status guessing to not be recursive (Martin Pitt)
 - Respect $UPOWER_CONF_FILE_NAME in up_config_init (Martin Pitt)
 - Support batteries that report both energy and charge (Benson Leung)
 - upower needs -pthread (Landry Breuil)
 - Use the new threadsafe signal handling support in GLib (Richard Hughes)
 - Wuninitialized needs -O (Landry Breuil)

Version 0.9.9
~~~~~~~~~~~~~
Released: 2011-03-21

New Features:
 - Add a config option to disable the Watts Up Pro device (Richard Hughes)
 - Add a LidForceSleep property to ensure that we don't melt any laptops (Richard Hughes)
 - Add an option for polling dock devices in UPower.conf, defaulting to false (Richard Hughes)

Bugfixes:
 - Depend on stable GUdev API (Michael Biebl)
 - Drop devkit and devkit-power-daemon symlinks (Michael Biebl)
 - Fix bitmap check in the input code (Arnaud Patard)
 - Honour ACLOCAL_FLAGS in Makefile.am (Richard Hughes)

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

New Features:
 - Add an IsDocked binary property to the main interface (Richard Hughes)
 - Use the number of active DRM devices to determine the system docked status (Richard Hughes)

Bugfixes:
 - Add method to set history dir (Martin Pitt)
 - Check for and link against libplist (Martin Pitt)
 - Drop check for polkit-backend again (Martin Pitt)
 - Fix compilation error against Linux 2.6.36 (Martin Pitt)
 - Fix links to git repository in HACKING (Zygmunt Krynicki)
 - Fix self check to work as non-root (Martin Pitt)
 - Re-add AM_MAINTAINER_MODE (but enable it by default) (Michael Biebl)
 - Reduce race condition in history purging self check (Martin Pitt)
 - Support the power_now sysfs attribute to get time remaining on new kernels (Richard Hughes)
 - Update the list of HID UPS devices (Arnaud Quette)

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

Translations:
 - Add French translation (Christoph Thompson)

New Features:
 - Add support for controlling leds keyboard backlights (Alex Murray)
 - Port from EggDebug to the GLib built-in logging framework (Richard Hughes)

Bugfixes:
 - Fix building with gobject-introspection 0.9.10 (Edward Sheldrake)
 - Fix up all the warnings when building with new versions of gobject-introspection (Richard Hughes)
 - Keyboard backlight of zero is not an error (Alex Murray)
 - libupower-glib: Reject invalid object paths to avoid asserting libdbus (Richard Hughes)
 - Remove the UP_DEVICE_SUPPLY_CHARGED_THRESHOLD heuristic (Michal Schmidt)

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

New Features:
 - Remove devkit-power-gobject (Richard Hughes)

Bugfixes:
 - Allow explicitly disabling libimobiledevice support (Brett Witherspoon)
 - Free GErrors after returning them (Matthias Clasen)
 - Add missing D-Bus return in up_qos_cancel_request() (Matthias Clasen)
 - Fix double D-BUS return in up_daemon_*_allowed (Matthias Clasen)
 - Fix up_polkit_get_subject() D-BUS error return (Matthias Clasen)
 - Ensure the new device types get valid descriptions in upower --dump (Richard Hughes)
 - Fix compile with the latest PolicyKit release (Richard Hughes)
 - Only save by default 7 days data to stop the log files becoming huge. Fixes rh#634228 (Richard Hughes)
 - Do not continue to poll the serial port if there is no Watts Up Pro adaptor (Richard Hughes)
 - Fix the build with new versions of gobject-introspection (Richard Hughes)

Version 0.9.5
~~~~~~~~~~~
Released: 2010-07-12

New Features:
 - Add battery query support for iDevices (Bastien Nocera)
 - Assign names to our idle sources when using new versions of glib2 (Richard Hughes)
 - Dynamic testing for enough hibernate swap (Martin Pitt)
 - Port UPower to libusb1 to avoid unfixable crashes (Richard Hughes)
 - Port to GTest (Richard Hughes)
 - Get the powersave command from the backend rather than hardcoding Linux specifics (Richard Hughes)

Bugfixes:
 - Update the list of supported TrippLite HID Power Devices (Joseph Stockman)
 - Fix a potential daemon crash. Fixes fd#27902 (Mariusz Ceier)
 - Increase UP_DAEMON_SWAP_WATERLINE (Martin Pitt)
 - Fix up a potential crasher in the CSR device code (Richard Hughes)
 - When calculating used swap space, only use anonymous pages (Steven Walter)
 - Use pm-is-supported to test if various sleep modes are supported (Victor Lowther)

IMPORTANT NOTE:
 - This is the last release with the deprecated devkit-power-gobject library
   included. Users should have ported to libupower-glib months ago...

Version 0.9.4
~~~~~~~~~~~
Released: 2010-05-12

New Features:
 - Detect when the kernel changes the reported charge units. Fixes rh#587112 (Kyle McMartin)

Bugfixes:
 - Only emit ::Sleeping() after we've checked AboutToSleep (Richard Hughes)
 - Ensure we send ::Sleeping() if clients do not call AboutToSleep (Richard Hughes)
 - Ensure we sent ::notify signals when UpDaemon properties change (Richard Hughes)

Version 0.9.3
~~~~~~~~~~~
Released: 2010-05-06

New Features:
 - Add a config file with SleepTimeout and AllowHibernateEncryptedSwap entries (Richard Hughes)

Bugfixes:
 - Fix c&p typo in documentation (Michael Biebl)
 - The gettext package should match the tarball name (Richard Hughes)
 - Provide UpDaemon with C setters rather than relying on GObject properties (Richard Hughes)
 - Sanity check the device is not already in the list before adding (Richard Hughes)
 - Fix recognition of lithium iron phosphate (LiFePO4) batteries (Sascha Silbe)

Version 0.9.2
~~~~~~~~~~~~~
Released: 2010-04-06

New Features:
 - Add a missing accessor: up_client_get_lid_is_present() (Richard Hughes)
 - Change the tarball name to be all lower case to match udisks and udev (Richard Hughes)
 - Convert the daemon to using objects from libupower-glib, not devkit-power-gobject (Richard Hughes)
 - Do not allow client programs to enumerate the device list more than once (Richard Hughes)
 - Get the encrypted swap status from the backend, rather than hardcoding Linux specifics (Richard Hughes)
 - Get the kernel sleep capabilities from the backend, rather than hardcoding Linux specifics (Richard Hughes)
 - Get the suspend and hibernate commands from the backend, rather than hardcoding Linux specifics (Richard Hughes)
 - Get the swap size from the backend, rather than hardcoding Linux specifics (Richard Hughes)
 - Show in ./configure summary if unit tests have been enabled or not (Michael Biebl)

Bugfixes:
 - Do not warn what we are correcting energy-full when there is no data to copy (Richard Hughes)
 - Ensure we enumerate devices before we start monitoring them (Richard Hughes)
 - Fixes to the autogen.sh script (Michael Biebl)
 - Make dummy backend usable for architectures without a native backend (Michael Biebl)
 - Remove libdevkit-power-gobject dependency from backends (Michael Biebl)
 - Simplify udev subdirectory handling (Michael Biebl)

Version 0.9.1
~~~~~~~~~~~~~
Released: 2010-03-03

New Features:
 - Add a new method and two new signals to inform userspace of the pending suspend and the resume event (Richard Hughes)
 - Add {Suspend,Hibernate}Allowed D-Bus methods (Martin Pitt)
 - Add up_polkit_is_allowed() function (Martin Pitt)
 - Check PolicyKit in client's can_{suspend,hibernate} properties (Martin Pitt)
 - Don't ship an introspection file for devkit-power-gobject, it's soon to be obsolete (Richard Hughes)
 - Install the introspection data to the correct location (Richard Hughes)
 - Make the upower client tool use libupower-glib, rather than devit-power-gobject (Richard Hughes)
 - Use GCancellable in libupower-glib so we can eventually get to GIO async methods (Richard Hughes)

Bugfixes:
 - Ensure we return all lines of the UpDevice when we call up_device_to_string() (Richard Hughes)
 - Fix libupower-glib include dir and pkgconfig (Martin Pitt)
 - Fix up autogen.sh after the configure.ac modernisation (Michael Biebl)
 - Fix up the FreeBSD backend compile (Michael Biebl)
 - Fix up the include directory in the pkgconfig file (Richard Hughes)
 - Make sure the tests link against all necessary libraries (Michael Biebl)
 - Move the history files to /var/lib/upower (Michael Biebl)
 - Update help and g_option_context_new to upower (Michael Biebl)
 - Use the new project name in g_option_context_new (Michael Biebl)

Version 0.9.0
~~~~~~~~~~~
Released: 2010-02-01

NOTES:
 - The DBus service and interfaces have been renamed
 - The devkit-power-gobject library is still API and ABI stable
 - The libupower library co-installs with devkit-power-gobject for now
 - The version has changed to 0.9.0 from 015. You'll need to use an epoch in
   your distro package if you're not renaming the package from DeviceKit-power
   to UPower. See the sample Fedora spec if you need a template.

Translations:
 - Add Swedish translation (Daniel Nylander)
 - Added Italian translation (Luca Ferretti)
 - Add Polish translation (Piotr Drąg)

New Features:
 - Add initial GObject introspection support (Richard Hughes)

Bugfixes:
 - Use a fallback for the capability bit when checking the lid status. Fixes #25041 (Richard Hughes)
 - Rename the DBus service from org.freedesktop.DeviceKit.Power to org.freedesktop.UPower (Richard Hughes)
 - Rename the PolicyKit rules from org.freedesktop.devicekit.power to org.freedesktop.upower (Richard Hughes)
 - Make the client tool be called upower, but maintain a symlink to devkit-power (Richard Hughes)
 - Rename the man pages and rename the main daemon binary name (Richard Hughes)
 - Change the version number to 0.9.0 and tarball name to UPower (Richard Hughes)
 - Version-lock the devkit-power-gobject version to 015, not 0.9.0 (Richard Hughes)
 - Make DkpClient a singleton to avoid some weird race conditions (Richard Hughes)
 - Add libupower so applications can switch away from devkit-power-gobject (Richard Hughes)
 - Update the Free Software Foundation address (Richard Hughes)

Version 014
~~~~~~~~~~~
Released: 2010-01-08

New Features:
 - Import the FreeBSD backend (Joe Marcus Clarke)

Bugfixes:
 - Check if swap exists before determining how much is free (Debbie Beliveau)
 - Comment out some problematic compiler warnings (Joe Marcus Clarke)
 - Prevent segfault if connection to system dbus fails (Martin Koegler)
 - Fix segfault in the history code. Fixes fd#25632 (Richard Hughes)

Version 013
~~~~~~~~~~~
Released: 2009-12-07

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - This will probably be the last release of DeviceKit-power as the project has
   been renamed to upower.

New Features:
 - When using devkit-power --monitor, print a timestamp before each message for
   debugging. Fixes fd#24666 (Richard Hughes)

Bugfixes:
 - Update the list of HID UPS (Arnaud Quette)
 - Use a gdouble for percentage to fix on-battery reporting (Byron Clark)
 - Bug 24262 – incorrect battery recall warning for Lenovo T61 (Martin Pitt)
 - Fix the toshiba battery recal notices by matching up the double quotes (Richard Hughes)
 - Avoid going from discharging to pending-discharge when the expansion battery
   is very low (Richard Hughes)
 - Some vendors fill the NVRAM full of junk. Don't crash the daemon if the
   battery is broken. Fixes rh#533654 (Richard Hughes)
 - When the internal battery is in the unknown state, we can't make a decision
   whether the system is on battery power (Richard Hughes)
 - Some batteries give out massive rate values when nearly empty (Richard Hughes)

Version 012
~~~~~~~~~~~
Released: 2009-10-19

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.

New Features:
 - Detect encrypted swap and prevent hibernate in this case. Fixes fd#23196 (Richard Hughes)
 - Add g_object_notify() calls for properties on DkpClient (Richard Hughes)

Bugfixes:
 - Ensure we only reset the update-time property when we have done the refresh, not before (Richard Hughes)
 - Don't emit changed events from the DkpBackend layer, instead push then through DkpDevice (Richard Hughes)
 - When we do a delayed refresh, actually do 5 x 1 second apart rather than 1 x 3 seconds (Richard Hughes)

Version 011
~~~~~~~~~~~
Released: 2009-10-06

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - The DBus interface has changed to use FirstLetterCaps property names
   so Qt projects can use the DBus interface without resorting to ugly hacks.

New Features:
 - Return meaningful errors if the user tries to suspend or hibernate without
   kernel support or swap set up (Richard Hughes)
 - Use the sysfs file 'type' to work out the battery type before using a
   fallback (Enrico Zini, Richard Hughes)

Bugfixes:
 - Update list of HID UPS devices (Arnaud Quette)
 - Add backend code to make DeviceKit-power compile without GUdev for non-Linux
   platforms (Richard Hughes)
 - Only disable the polling if the kernel tells us we're fully charged, not if
   we guessed it (Richard Hughes)
 - Make the remove logic much cleaner to try to fix bugs where removing the
   mouse kills the session (Richard Hughes)
 - Fix up some small memory leaks (Richard Hughes)
 - Freeze and thaw the device during initial coldplug (Richard Hughes)
 - Fix up a few potential problems spotted by clang (Richard Hughes)
 - Fix a tiny memory leak when we collect the properties from the interface
   multiple times (Richard Hughes)
 - Use voltage_now as a fallback to the design voltage (Enrico Zini, Richard Hughes)

Version 010
~~~~~~~~~~~
Released: 2009-07-22

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - This project now depends on GUdev and PolicyKit1

New Features:
 - Port to GUdev (Richard Hughes)
 - Port to PolicyKit1 (Richard Hughes)

Bugfixes:
 - Add a notify flag to set_lid_is_closed to fix the initial state (Loïc Minier)
 - Correct a description string from one of the new enums (Richard Hughes)
 - Only guess the battery status if we have > 1 battery in the system (Richard Hughes)
 - Use the global battery state as a metric for single battery machines (Richard Hughes)
 - Query the kernel to decide if we have hibernate and suspend support (Richard Hughes)
 - If we don't have enough swap available, don't advertise hibernate. Fixes rh#513015 (Richard Hughes)
 - Force a refresh all battery devices when the ac-adaptor changes. Fixes rh#512995 (Richard Hughes)

Version 009
~~~~~~~~~~~
Released: 2009-07-06

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - The experimental devkit-power-gobject library has no API or ABI guarantees.
 - This is the first version of DeviceKit-power where multiple laptop batteries
   are officially supported.

New Features:
 - Interface with pm-powersave as external vendors are using this (Richard Hughes)
 - Enable pretty compiler output with new automake versions (Richard Hughes)
 - udev rules files now live in /lib/udev/rules.d, not /etc/udev/rules.d (Richard Hughes)
 - Add battery recall data rules (Richard Hughes)
 - Export the recall-notice, recall-vendor and recall-url properties on power devices (Richard Hughes)
 - Protect the non-GObject accessors with DKP_DISABLE_DEPRECATED (Richard Hughes)
 - Add two new state enums, pending-discharge and pending-charge (Richard Hughes)
 - Use the global state to fix the unknown battery status (Richard Hughes)

Bugfixes:
 - Suppress lid change event on startup (Martin Pitt)
 - Fix two issues with the pm-powersave code (Roland Dreier)
 - Mark batteries as empty if they have unknown state and a very low energy (Richard Hughes)
 - For power_supply, unknown is a valid state from the kernel (Richard Hughes)
 - Don't assume all batteries have positive energy_full values (Richard Hughes)
 - Add one more variation of lithium-poly (Richard Hughes)
 - Don't show empty vendor, model or serials in the debug outputs (Richard Hughes)
 - Fix a small memory leak on supply coldplugging (Richard Hughes)
 - Hardcode pm-powersave like we do pm-suspend and pm-hibernate (Richard Hughes)
 - Initial refresh after coldplug is not fatal if it fails (Richard Hughes)
 - Set the GObject properties correctly in the DkpDeviceHid class (Richard Hughes)
 - The UPS can't expose empty or fully-charged, so fixup these states (Richard Hughes)
 - Fix detecting the USB UPS devices (Richard Hughes)
 - Add a lid-is-present property (Richard Hughes)
 - Be less asserty when enum values are added in newer versions of the spec (Richard Hughes)
 - Add a DKP_CHECK_VERSION macro which we can use in client tools (Richard Hughes)
 - Move the udev rules to their own directory (Richard Hughes)
 - Move a small rule about the fully charged level from g-p-m (Richard Hughes)

Version 008
~~~~~~~~~~~
Released: 2009-06-01

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - The experimental devkit-power-gobject library has no API or ABI guarantees.

New Features:
 - Allow the daemon to get the global online state for all devices (Matthew Garrett)
 - Add a has-capability to the org.freedesktop.DeviceKit.Power.Wakeups interface (Richard Hughes)
 - Add a property lid-is-closed for g-p-m and x-p-m to use (Richard Hughes)

Bugfixes:
 - Fix up some issues in DkpClient, and expose GObject properties (Ali Abdallah)
 - Remove the 0x prefix from some rule matches (Ronald)
 - Allow all DBus properties to be read with the new DBus (Richard Hughes)
 - Only reset the update-time if the read was successful (Richard Hughes)
 - Optimise the udev rules to skip non-usb devices (Richard Hughes)
 - Ensure we get properties on devices correctly that have not yet been changed (Richard Hughes)
 - Make the suspend and hibernate scripts execute synchronously. Fixes rh#497563 (Richard Hughes)
 - Ignore method timeouts when we suspend and hibernate (Richard Hughes)
 - Add two missing files to the last commit (Richard Hughes)
 - Don't overwrite energy-full-design with zero after coldplug (Richard Hughes)
 - Only get the device state for the poll after the refresh (Richard Hughes)
 - Continue to poll when power supply device is marked unknown. Fixes rh#495493 (Richard Hughes)
 - Correct a debugging statement (Richard Hughes)
 - Never overwrite ID_PRODUCT or ID_VENDOR (Richard Hughes)
 - Don't return history data relative to the earliest point (Richard Hughes)
 - Setup different polls based on the battery state (Matthew Garrett)
 - Don't poll on unknown forever. Based on a patch from Matthew Garrett (Richard Hughes)
 - Fix up the return statuses from coldplug and refresh (Richard Hughes)
 - Only attempt to print history if the device is capable (Richard Hughes)
 - Allow properties in DkpDevice (client) to be set (Richard Hughes)

Version 007
~~~~~~~~~~~
Released: 2009-03-30

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - The experimental devkit-power-gobject library has no API or ABI guarantees.

New Features:
 - Get rid of internal Object and instead use the GObject property system (Richard Hughes)
 - Move the library directory from libdevkit-power to devkit-power-gobject (Richard Hughes)
 - Ship a shared library. There are now three external projects using copies of
   this, which is rediculous (Richard Hughes)
 - Require I_KNOW_THE_DEVICEKIT_POWER_API_IS_SUBJECT_TO_CHANGE (Richard Hughes)

Bugfixes:
 - Fix up DBus interface for CVE-2008-4311 (Stanislav Brabec)
 - Fix g-p-m and DeviceKit-power when running with a permissive dbus. Fixes fd#20882 (Frederic Crozat)
 - Remove use of EggObjList, and make the library more sane (Richard Hughes)
 - Fix compile error in dkp-power. Fixes #20749 (Richard Hughes)

Version 006
~~~~~~~~~~~
Released: 2009-02-10

Bugfixes:
 - Fix compile failure with gcc-4.4.0 and old versions of glib2 (Richard Hughes)
 - Only enable the wakeups polling if a client requires the data (Richard Hughes)
 - Correctly set the power-supply property (David Zeuthen)
 - Don't crash when we limit the resolution of a small dataset (Richard Hughes)
