2.70.0 (stable):

Glib:
* Timer: Add resume() and is_active()
  (Kjell Ahlstedt) Issue #87 (chamignoom)
* Add the Environ class
  (Kjell Ahlstedt) Issue #89 (Alexander Shaduri)
* Binding: Add dup_source(), dup_target().
    Deprecate get_source(), get_target().
  TimeZone: Add operator bool(), create_identifier(). Deprecate create().
  (Kjell Ahlstedt)

Gio:
* FileInfo: Add get/set_access_date(), get/set_creation_date().
  Notification: Add set_category().
  TlsCertificate: Add property/get_not_valid_before(),
    property/get_not_valid_after(), property/get_subject_name(),
    property/get_issuer_name().
  TlsConnection: Add property/get_protocol_version(),
    property/get_ciphersuite_name().
  (Kjell Ahlstedt)

Tests:
* Add test of Glib::Environ
  (Kjell Ahlstedt) Issue #89 (Alexander Shaduri)

gmmproc:
* Handle gi-docgen syntax in C documentation
  (Kjell Ahlstedt)

Build:
* Require glib-2.0 >= 2.69.1
  (Kjell Ahlstedt)


2.68.2 (stable):

Glib:
* Replace all g_quark_from_static_string() by g_quark_from_string()
  (Kjell Ahlstedt) Issue #96 (小太)

Gio:
* FileEnumerator: Remove refreturn to avoid memory leak
  (talisein) Merge request !53
* ListModel::get_object(): Make it work for interface classes
  (Kjell Ahlstedt) Issue #93 (pumkinpal)
* AppInfo::get_all(): Avoid a crash on Windows
  (Kjell Ahlstedt) Issue #94 (Lawrence37)

Build:
* MSVC build: Remove extraneous GLIBMM_API in Glib::ustring
  (Kjell Ahlstedt) Issue #92 (Christoph Reiter)


2.68.1 (stable):

Glib:
* Variant: Fix template constructors so they work with C++20
  (Magne Oestlyngen) Merge request !50

Build:
* Meson build: Use relative paths to untracked/
  (Kjell Ahlstedt) Merge request gtkmm!61 (Mingli Yu)
* [gio|glib]mmconfig.h.*: Don't dllimport on MinGW
  (Chun-wei Fan) Issue gtkmm#90 (Lukas K.)
* Meson build: examples and tests: Add dependency('threads')
  (Kjell Ahlstedt)
* Meson build: Make it possible to use glibmm as a subproject
  (Kjell Ahlstedt)
* Meson build: No implicit_include_directories
  (Kjell Ahlstedt)
* Meson build: Make quiet installations possible
  (Kjell Ahlstedt)
* MSVC build: Avoid exporting classes with std::string members
  (Chun-wei Fan) Merge reqest !51

Tests:
* glibmm_ustring_compare: Fix so it works for C++20
  (Kjell Ahlstedt) Merge request !50 (Magne Oestlyngen) 


2.68.0 (stable):
This is the first stable release in the glibmm-2.68 ABI series.
It is parallel-installable with the glibmm-2.4 ABI.

The tarball for 2.68.0 has been created with 'meson dist'.
If you build with Autotools from the tarball, please read the relevant
part of the README file.

Glib:
* PropertyProxyConnectionNode::connect_changed():
  Fix using without property name
  (Daniel Boles) Issue #74 (wswfc), merge request !35
* Remove BalancedTree
  (Kjell Ahlstedt)

Gio:
* ListStore: Accept interfaces
  (Andreas Persson) Merge request !38
* MenuModel: Make MenuAttribute and MenuLink enum class
  (Kjell Ahlstedt)
* Add TlsClientConnectionImpl and TlsServerConnectionImpl
  (Kjell Ahlstedt)
* SocketClient::signal_event(): Fix wrapping of 'connection' parameter
  (Kjell Ahlstedt) Issue #73 (smilingthax)

gmmproc:
* Add optional decl_prefix parameter to _WRAP_GERROR and _WRAP_ENUM
  Used for adding GLIBMM_API or similar for MS Visual C++
  (Chun-wei Fan) Merge request !32
* Allow decorating comparison operators (for Visual Studio builds)
  (Chun-wei Fan) Merge request !33
* _CLASS_BOXEDTYPE, _CLASS_OPAQUE_COPYABLE: Fix move assignment
  (Kjell Ahlstedt) Issue #76 (misos1)
* Decorate private generated classes with __declspec when building
  with Visual Studio
  (Chun-wei Fan) Merge request !39, !41
* generate_wrap_init.pl.in: Use g_type_ensure(SomeClass::get_type())
  to ensure that get_type() is called
  (Kjell Ahlstedt)

Build:
* Use __declspec(dllexport) consistently when building glibmm with
  Visual Studio
  (Chun-wei Fan) Merge request !32
* Meson build: Set default value of the 'warnings' option to 'min'
  (Kjell Ahlstedt)
* Improve NMake support
  (Chun-wei Fan)
* Improve Visual Studio support
  (Chun-wei Fan) Merge request !37
* docs/reference/: Update for Doxygen >= 1.8.16
  (Kjell Ahlstedt)
* Meson build: Fix versioning on macOS
  (Kjell Ahlstedt) Pull request libsigcplusplus#65 (Tom Schoonjans)
* Meson build: Fix detection of macOS
  (Tom Schoonjans) Merge request !43
* Change the ABI to glibmm-2.68
  (Kjell Ahlstedt)

Documentation:
* Meson build: Add missing Glib::Value and Variant documentation
  (Kjell Ahlstedt)


2.65.3: (unstable):
Distro packagers should probably not package this yet.

Tests:
* glibmm_buildfilename: Add some tests
  (Kjell Ahlstedt) Issue #71 (Kalev Lember)

Build:
* Meson build: Install generate_extra_defs.h
  (Kjell Ahlstedt) Issue #70 (Jan Alexander Steffens)


2.65.2: (unstable):
Distro packagers should probably not package this yet.

Glib:
* Add missing #includes
  (Kjell Ahlstedt) Issue #69 (Kalev Lember)


2.65.1: (unstable):
Distro packagers should probably not package this yet.

Glib:
* Add get_user_runtime_dir()
  (scx) Issue #57, merge request !14
* Add get_host_name()
  (scx) Issue #58, merge request !15
* MainContext: Add push/pop/get_thread_default()
  (Kjell Ahlstedt) Issue #56 (Yackie-Yang)
* Add StdStringView and UStringView
  Use them in build_filename() and other functions
  (Thomas Holder, Kjell Ahlstedt) Issue #34
  (Thomas Holder) Issue #64, #65
* Regex::match(): Avoid using string after deletion
  (Thomas Holder) Issue #66, merge request !25
* Add Glib::canonicalize_filename()
  (Kjell Ahlstedt) Issue #59 (Patrick Storz)
* Binding: get_source() and get_target() return ObjectBase*
  (Kjell Ahlstedt) Issue #63 (Daniel Boles)
* ustring: Fix insert(iterator, In, In)
  (Thomas Holder) Merge request !19
* Value: Adding static_assert() for template parameter
  (Pavlo Solntsev) Merge request !23
* Error: Derive from std::exception, remove Glib::Exception
  (Kjell Ahlstedt) Issue #23 (Daniel Boles)
* Binding: Keep a binding alive even without a RefPtr
  (Kjell Ahlstedt) Issue #62 (Daniel Boles)

Gio:
* DBus::Connection: Make the wrap() function thread-safe
  (Kjell Ahlstedt) Issue #56 (Yackie-Yang)
* SettingsSchemaSource: Add list_schemas()
  Add a create(), wrapping new_from_directory()
  (Daniel Boles) Issue #19, merge request !20
* DBus::Message::get_unix_fd_list(): Add refreturn
  (Kjell Ahlstedt) Issue #68 (kr.woaini)

Tests:
* Add glibmm_ustring_compare test
  (Thomas Holder) Issue #65
* Add glibmm_regex test
  (Thomas Holder) Issue #66, merge request !25
* Add glibmm_binding test
  (Daniel Boles) Merge request !18

gmmproc:
* Add optional decl_prefix parameter to _CLASS_BOXEDTYPE,
  _CLASS_BOXEDTYPE_STATIC, _CLASS_GOBJECT, _CLASS_INTERFACE,
  _CLASS_OPAQUE_COPYABLE, _CLASS_OPAQUE_REFCOUNTED, _WRAP_GERROR
  Used for adding GLIBMM_API or similar for MS Visual C++
  (Chun-wei Fan)

Build:
* Change the ABI to glibmm-2.66
  (Kjell Ahlstedt)
* Add Meson support
  (Chun-wei Fan, Kjell Ahlstedt) Merge request !27
* Drop gendef from Windows builds
  (Chun-wei Fan) Issue #12 (Mikhail Titov), merge request !29

Documentation:
* Correct spelling of spawn_async_with_pipes()
  (Mike Fleetwood) Merge request !16
* Glib::Binding: Several doc improvements
  (Daniel Boles) Merge request !18
* Glib::Binding: Explain why SlotTransform takes GValue*
  (Kjell Ahlstedt) Issue #61 (Daniel Boles)
* Gio::AsyncResult: Improve the class description 
  (Kjell Ahlstedt) Issue #27 (Alberto Mardegan)


2.63.1: (unstable):
Distro packagers should probably not package this yet.

Glib:
* ustring: Fix memory leak in make_valid()
  Use convert_return_gchar_ptr_to_*() in a couple of methods
  (Martin Ejdestig) Merge request !11
* Add ustring::sprintf(), wrapping g_strdup_printf()
  (Daniel Boles) Issue #21
* Fix callback races in glibmm when GSource is destructed
  (Dainis Jonitis) Issue #41
* Checksum, Datetime, TimeZone: Declare as _CLASS_BOXEDTYPE
  (Kjell Ahlstedt)
* Property: Add const get_proxy() returning ReadOnly
  Getting Proxy from ReadOnly is const
  (Daniel Boles) Issue #44
* Property: Update for compatibility with Gtk::Builder
  (Kjell Ahlstedt)
* Fix memory leak in Variant<std::tuple<>>::create()
  (Van de Bugger, Kjell Ahlstedt) Issue #48
* Remove TimeVal
  (Kjell Ahlstedt)

Gio:
* Add Application::add_option_group()
  (Kjell Ahlstedt Issue #46 (Patrick Storz)
* DBus::Object: Fix refcounts in some vfuncs
  (Kjell Ahlstedt)
* Gio::DBus: Add ObjectProxy, ObjectSkeleton, ObjectManager,
  ObjectManagerClient, ObjectManagerServer
  (Kjell Ahlstedt) Issue #43 (Martin Ejdestig)
* Drive, MountOperation, ThemedIcon, TlsDatabase, VolumeMonitor:
  Fix ownership of some lists and arrays (Fixes memory leaks
  and dangling pointers)
  (Kjell Ahlstedt) Issue #50 (Gary Wang)
* Add SocketControlMessage::add_deserialize_func()
  (Kjell Ahlstedt) Issue #52 (Ankur deep jaiswal)

gmmproc:
* Update for new glib deprecation macros
  (Kjell Ahlstedt)

Build:
* Doxyfile.in: Remove unused configuration constants
  (Kjell Ahlstedt) Issue #22
* Require glib-2.0 >= 2.61.2
  (Kjell Ahlstedt)
* Change the ABI to glibmm-2.64
  (Kjell Ahlstedt)

Documentation:
* Glib::init(), Gio::init(): Improve the documentation
  (Kjell Ahlstedt) Issue #49 (Van de Bugger)
* Glib::ustring can't always replace std::string
  (Kjell Ahlstedt) Issue #47 (Patrick Storz)


2.61.1: (unstable):
Distro packagers should probably not package this yet.

Glib:
* Add DateTime::get_timezone()
  Add KeyFile::get_locale_for_key()
  Add TimeZone::get_identifier()
  (Kjell Ahlstedt)
* KeyFile: Make it a refcounted class
  (Kjell Ahlstedt)
* Add Value_RefPtrBoxed<>
  Add Value<std::vector<string>> specializations and other Value
  specializations that are necessary for _WRAP_PROPERTY
  (Kjell Ahlstedt)

Gio:
* Put _WRAP_VFUNC in protected sections
  (Kjell Ahlstedt)
* Add AppInfo::launch_uris_async() and launch_uris_async()
  Add DBusConnection::get_flags()and property_flags()
  (Kjell Ahlstedt)
* TlsClientConnection: Remove property_accepted_cas()
  (Kjell Ahlstedt)
* ThemedIcon: Add create(const std::vector<Glib::ustring>& iconnames)
  (Kjell Ahlstedt)
* Remove NO_GTYPE from some _WRAP_ENUMs
  (Kjell Ahlstedt) Issue #37 (Jan Tojnar)
* TlsConnection: Remove rehandshake API
  (Kjell Ahlstedt)
* Application: Add signal_name_lost()
  (Kjell Ahlstedt)

Glib and Gio:
* Use {} for function arguments initialisation
  (Tapasweni Pathak) Merge request !9
  Issue #20 (Daniel Boles)

gmmproc:
* generate_wrap_init.pl.in: Don't exclude any Gtk classes
  (Kjell Ahlstedt)
* _WRAP_PROPERTY: generate a static_assert() that checks if
  the data type is acceptable
  (Kjell Ahlstedt)
* Add _IS_REFCOUNTED_BOXEDTYPE
  (Kjell Ahlstedt)
* _WRAP_ENUM and _WRAP_GERROR: Add gtype_func parameter
  (Kjell Ahlstedt)

Build:
* glibmmconfig.h.in: Remove unused configuration constants
  (Kjell Ahlstedt) Issue #22
* Require glib-2.0 >= 2.59.2
  (Kjell Ahlstedt)
* Change the ABI to glibmm-2.62
  (Kjell Ahlstedt)

Documentation:
* README: Add installation instructions
  (Tapasweni Pathak) Merge request !10
* Don’t use @retval on out args, use @param[out]
  (Daniel Boles) Merge request !6


2.59.1: (unstable):
Distro packagers should probably not package this yet.

Glib:
* ustring: Fix wchar conversion on macOS with libc++
  (Clemens Lang) Bug #795338
* Avoid compiler warnings from function pointer conversions
  (Kjell Ahlstedt) Issue libsigcplusplus#1 (sharkcz)
  (Kjell Ahlstedt) Issue libsigcplusplus#8 (db0451)
* ustring: Simplify format() using C++17 fold expression.
  (Daniel Boles) Merge request !4

Gio:
* Application: Add set_option_context_parameter_string(),
  set_option_context_summary(), set_option_context_description().
  (Kjell Ahlstedt)
* DesktopAppInfo: Add get_locale_string()
  (Kjell Ahlstedt)
* SocketClient: Take copy in RefPtrs for signal args
  (Daniel Boles) Issue #28 (Jens Mühlenhoff)
* Make SignalProxy_async_callback() available to e.g. gtkmm
  (Kjell Ahlstedt)

gmmproc:
* _WRAP_METHOD: Accept ":" in slot_callback parameter
  (Kjell Ahlstedt)

Build:
* Require C++17.
  (Murray Cumming)
* Require glib-2.0 >= 2.55.1
  (Kjell Ahlstedt) Issue #29 (Mart Raudsepp)
* Replace the Visual Studio project files with MSVC NMake project files
  (Chun-wei Fan) Merge request !2
* Change the ABI to glibmm-2.60
  (Kjell Ahlstedt)

Documentation:
* Use libsigc++-3.0.tag for libsigc++ documentation
  (Kjell Ahlstedt)


2.57.1: (unstable):
Distro packagers should probably not package this yet.

Gio:
* DataOutputStream::put_string(): Don't pass std:string by value
  (Kjell Ahlstedt)

gmmproc:
* Add _MEMBER_SET_STR() macro
  (Pavlo Solntsev) Bug #793778

Build:
* Change the ABI to glibmm-2.58
  (Kjell Ahlstedt)


2.55.2: (unstable):
Distro packagers should probably not package this yet.

Glib:
* IOCondition: Add an IO_ prefix to the enumerator names
  (Kjell Ahlstedt)
* TimeoutSource: Use monotonic time consistently
  (Kjell Ahlstedt) Bug #792524 (Dainis Jonitis)
* Source: Remove get_current_time().
  (Kjell Ahlstedt)
* KeyFile, OptionContext, Regex: Add exception specs to errthrow.
  (Kjell Ahlstedt)
* ustring:
  - Replace 8×format() with 1 variadic template.
  - Replace 9×compose() with 1 variadic template.
  - Use std::initializer_list instead of pointer + size
  (Daniel Boles) Bug #784211
* VariantBase:
  - Add operator==() and operator!=().
  (Kjell Ahlstedt) Bug #789330 (Daniel Boles)
  - cast_dynamic(): Remove noexcept(false).
  (Kjell Ahlstedt)

Glib::Gio:
* AppInfo: Update the name of the AppLaunchContext parameters
  (Kjell Ahlstedt)
* Action: Add exception specs to errthrow.
  (Kjell Ahlstedt)
* Application: Fix property_resource_base_path()'s type
  (Kjell Ahlstedt)
* Credentials, et al.: Add exception specs to errthrow.
  (Kjell Ahlstedt)
* DataInputStream:
  - Remove read_until*().
  - Fix the documentation of read_line_utf8().
  (Kjell Ahlstedt)
* InetSocketAddress, ProxyAddress: No guint16 in _WRAP_PROPERTY().
  (Kjell Ahlstedt)
* Settings: set_int() and friends shall return bool.
  (Kjell Ahlstedt) Bug #784211
* TlsClientConnection: Remove get/set/property_use_ssl3().
  (Kjell Ahlstedt)

gmmproc:
* Warn if parameter lists are not compatible
  (Kjell Ahlstedt)
* _WRAP_METHOD: Accept optional list of exceptions in errthrow
  (Kjell Ahlstedt)
* _WRAP_METHOD_DOCS_ONLY: Optionally suppress @return section.
  (Kjell Ahlstedt) Bug #787978
* docextract_to_xml.py: Add --exclude-file option.
  (Kjell Ahlstedt)
* Suppress the @return section if return type is void.
  (Kjell Ahlstedt)
* generate_extra_defs.cc:
  - Write signal flags to .defs files.
  - Write default values of properties to .defs files.
  - Write default values of properties to generated documentation.
  (Kjell Ahlstedt) Bug #785895 (Daniel Boles)
* Warn for unmatched deprecations in signals and properties.
  (Kjell Ahlstedt)

Documentation:
* Glib::ObjectBase: Don't mention GtkObject in comments.
  (Kjell Ahlstedt)
* Glib::Variant: Hide namespace Glib::detail from Doxygen
  (Kjell Ahlstedt) Bug #787698 (Daniel Boles)
* Glib::Variant: Slightly elaborate Variant<Variant> docs.
  (Daniel Boles) Bug #778219 (Daniel Boles)


2.55.1: (unstable):
Distro packagers should probably not package this yet.

Glib:
* Object: Value_Pointer class should take only one template argument.
  (Marcin Kolny)
* Variant: Improved support for D-Bus object paths and signatures.
  (Kjell Ahlstedt) Bug #785700 (Johannes Dohmen)
* Glib::Value_Flags<>: static_cast to correct type.
  (Kjell Ahlstedt)

Gio:
* Derive all interfaces directly from Glib::Interface
  (Kjell Ahltedt) Bug #776537
* Application: OptionType: Make this an enum class.
  (Kjell Ahlstedt)
* BufferedInputStream, BufferedOutputStream, DataOutputStream:
  Implement Seekable.
* CharsetConverter: Implement the Gio::Initable interface.
  and call Initable::init() from CharsetConverter's constructor.
  (Kjell Ahlstedt) Bug #776537
* Add FileDescriptorBased interface and make GUnixInputStream and
  GUnixOutputStream implement it.
* MemoryInputStream, UnixInputStream: Implement PollableInputStream.
  (Kjell Ahlstedt)
* MemoryOutputStream, UnixOutputStream: Implement PollableOutputStream.
  (Kjell Ahlstedt)
* TlsDatabase: create_certificate_handle_vfunc():
  Fix memory leak, and correctly return nulltpr.
  (Kjell Ahlstedt) Bug #783360

gmmproc:
* Accept curly braces in default values in _WRAP macros
  (Khell Ahlstedt) Bug #783216 comment 13
* Don't accept unpaired double quotes.
  (Khell Ahlstedt)
* gmmproc: Fix _WRAP_ENUM for enumerators with apostrophes.
  (Khell Ahlstedt)
* gmmproc, _WRAP_ENUM: Add optional CONV_TO_INT parameter.
  (Khell Ahlstedt)

Build:
* Change the ABI to glibmm-2.56.
  (Murray Cumming)
* Really exclude DesktopAppInfo from wrap_init.cc on MacOS.
  (Kjell Ahlstedt) Bug #781947

Documentation:
* miscutils: Update docs of get_*_name() from GLib.
  (Daniel Boles)
* Fix documentation of enum Glib::IOCondition.
  (Khell Ahlstedt)


2.53.2 (unstable):
Distro packagers should probably not package this yet.

Glib:
* ConstructParams: Do not increment allocation size twice
  (Daniel Elstner)

Gio:
* ActionMap: Really fix add_action_with_parameter().
  (Daniel Boles) Bug 774444#c31
* UnixSocketAddress::create(): Remove a default value to avoid ambiguity.
  (Kjell Ahlstedt) Bug #782592

Gio::DBus
* Proxy: Wrap call() and call_sync() methods.
  (Vyacheslav Yurkov) Bug #781818

gmmproc:
* Use of static_cast<> instead of C-style casts.
  (Murray Cumming)

Build:
* Fix the build on MacOS, where glib doesn't have gdesktopinfo.
  (John Ralls) Bug #781947
* Really use desktopappinfo.hg to fix the build.
  (Murray Cumming)

Documentation:
* Glib, Gio: Update documentation of in-class enums.
  (Kjell Ahlstedt)
* ActionMap: Improve add_action_with_parameter docs
  (Daniel Boles)


2.53.1.1 (unstable):

Glib:
* Use C++11 enum classes instead of old-style enums, and put many enums
  inside relevant class declarations:
  - Glib::NodeTree: Move enums into class.
  - Glib::BindingFlags is now Glib::Binding::Flags.
  - Glib::KeyfileFlags is now Glib::Keyfile::Flags.
  - Glib::ModuleFlags is now Glib::Module::Flags.
  - Glib::ChecksumType is now Glib::Checksum::Type.
  - Glib::Regex: Move enums inside class.
  - Glib::Resource: Move enums into class.
  (Murray Cumming, Kjell Ahlstedt)
* RefPtr: Make this an alias for std::shared_ptr<> instead.
  - Use std::dynamic_pointer_cast<>() instead of RefPtr<>::cast_dynamic().
  - Use std::static_pointer_cast<>() instead of RefPtr<>::cast_static().
  - Use std::const_pointer_cast<>() instead of RefPtr<>::cast_const().
  - When creating RefPtr directly, instead of using create() methods,
    use Glib::make_refptr_for_instance() so the std::shared_ptr<> has the
    necessary Deleter.
  (Murray Cumming) Bug #755037
* Remove Glib::WeakRef. Use std::weak_ref<> instead.
  (Murray Cumming) Bug #755037
* Object: Use g_object_new_with_properties() instead of (deprecated)
  g_object_newv() and (deprecated) GParameter.
  (Murray Cumming)
* IOChannel: Avoid creating a RefPtr to this.
  (Murray Cumming) Bug #755037
* SignalProxy:
  connect(): Signals with non-void return values now have no default value
  for the "after" parameter, forcing application developers to think about
  whether they should connect before or after already-connected signal
  handlers, and default signal handlers. This is awkward but necessary.
  Just provide "true" to get the previous behaviour, or use connect_notify().
  connect_notify(): Signals with void return values have no connect_notify(),
  because it is not useful with those signals.
  (Kjell Ahlstedt) Bug #126213.

Gio:
* Use C++11 enum classes instead of old-style enums, and put many enums
  inside relevant class declarations:
  - Gio::Drive: Move enums into class.
  - Gio::TlsDatabase: Move enums into class.
  - Gio::UnixSocketAddressType is now Gio::UnixSocketAddress::Type.
  - Gio::Mount: Move enums into class.
  - Gio::TlsPasswordFlags is now Gio::TlsPassword::Flags.
  - Gio::IOStreamSpliceFlags is now Gio::IOStream::SpliceFlags.
  - Gio::SettingsBindFlags is now Gio::Settings::BindFlags.
  - Gio::ResolverRecordType is now Gio::Resolver::RecordType.
  - Gio::Socket: Move enums into class.
  - Gio::File: Move some flags enums into the class.
  - Gio::OutputStreamSpliceFlags is now Gio::OuputStream::SpliceFlags.
  - Gio::CredentialsType is now Gio::Credentials::Type.
  - Gio::NotificationPriority is now Gio::Notification::Priority.
  - Gio::FileMonitorEvent is now Gio::FileMonitor::Event.
  - Gio::FileAttributeInfoFlags is now Gio::FileAttributeInfo::Flags.
  - Gio::EmblemOrigin is now Gio::Emblem::Origin.
  - Gio::Converter: Put enums inside class.
  - Gio::ConverterFlags is now Gio::Converter::Flags.
  - Gio::ConverterResult is now Gio::Converter::Result.
  - Gio::AppInfoCreateFlags is now Gio::AppInfo::CreateFlags.
  - Gio::ApplicationFlags is now Gio::Application::Flags.
  (Murray Cumming, Kjell Ahlstedt)
* Remove duplicate ErrorEnum declaration.
  (Kjell Ahlstedt)
* ConstructParams:
  - Remove (hopefully really unnecessary) copy constructor.
  - C++11: =delete the operator=, instead of making it private.
  (Murray Cumming)
* Value:
  - Remove the CType alias, which should be unnecessary.
  - value_custom: Replace a template parameter with C++11 type traits.
  - Value<RefPtr<T>>: Only use this specialization if T has get_base_type().
  (Murray Cumming) Bug #755037
* Variant:
  - operator bool(): Simplify to avoid clang++ warnings.
  - C++11: Variant: Replace throw(std::bad_cast) with noexcept(false).
    See https://bugzilla.redhat.com/show_bug.cgi?id=1438766
  (Murray Cumming)
* Socket: Avoid creating a RefPtr to this.
  (Murray Cumming) Bug #755037

Gio:DBus:
* Use C++11 enum classes instead of old-style enums, and put many enums
  inside relevant class declarations:
  - Gio::DBus::InterfaceSkeletonFlags is now Gio::DBus::InterfaceSkeleton::Flags.
  - Gio::DBus::ServerFlags is now Gio::DBus::Server::Flags.
  (Murray Cumming, Kjell Ahlstedt)

gmmproc:
* _WRAP_ENUM(): Generate C++ enum classes instead of enums, and let the enums
  be inside class declarations.
  (Kjell Ahlstedt) Bug #86864

Build
* Windows:  Visual Studio builds: Update ABI version
  (Chun-wei Fan)


2.53.1 (unstable):

Glib:
* OptionGroup:
  - Don't allow copy or move.
  - Remove the OptionGroup& parameter in on_pre_parse(), on_post_parse() and
    on_error().
  (Kjell Ahlstedt)
* IOChannel, StreamIOChannel: Remove deprecated parts.
  (Kjell Ahlstedt)
* ustring: Add make_valid().
  (Krzysztof Piecuch) Bug #780075
* Remove (unused) Sequence and sequence().
  (Murray Cumming)
* Remove ListHandle, SListHandle, ArrayHandle, SArrayHandle, and
  StringArrayHandle, replacing them with std::vector in API.
  (Murray Cumming)

gmmproc:
* _WRAP_METHOD(): Some more use of auto in generated code.
  (Murray Cumming)

Build:
* Change the ABI to glibmm-2.54.
  (Murray Cumming)
* Add some #include directives.
  (Kjell Ahlstedt)
* Visual Studio: Require Visual Studio 2017 and update the glibmm project.
  (Chu-wei Fan)


2.51.5

Gio:
* Application: get_default(): Correct the reference counting.
  (KJell Ahlstedt) Bug #779936 (James Legg)
* Add PropertyAction.
  (Kjell Ahlstedt)

Glib:
* Remove Glib::unconst() because it is unused and unnecessary.
  (Kjell Ahlstedt)
* Variant: Add template specialization for std::tuple,
  and a test.
  (Alexander Rössler, Kjell Ahlstedt) Bug #777791


2.51.2 (unstable):
Distro packagers should probably not package this yet.

Glib:
* Object construction: Add custom class init and instance init functions
  An extra class init function is useful in Gtk::WidgetCustomDraw and
  Gtk::WidgetCustomSnapshot.
  (Kjell Ahlstedt) Bug #775348

Gio:
* Action: #include <glibmm/variant.h>, for convenience.
  (Daniel Boles) Bug #777953
* SimpleAction: Make set_state() public.
  (Daniel Boles) Bug #777953

Documentation:
* Glib::Variant: Explain how to create "maybe" type.
  (Daniel Boles) Bug #778219


2.51.1.2 (unstable):
Distro packagers should probably not package this yet.

Glib:
* Remove some deprecated API
  (Kjell Ahlstedt)
* Variant: Remove the string specializations of cast_dynamic.
  (Kjell Ahlstedt)
* Glib::VariantType: Add get_item_types(), removing first() and
  next().
  (Kjell Ahlstedt) Bug #775741


Gio:
* init(): Set the global locale.
  (Kjell Ahlstedt) Bug #661588
* ActionBase: get_state_hint_variant() now returns VariantContainerBase.
  (Kjell Ahlstedt)
* ActionMap: add_action_with_parameter(): Register the parameter type,
  to make this work.
  (Daniel Boles) Bug #774444
* ActionResult: Add is_tagged_vfunc().
  (Kjell Ahlstedt)
* Glib::Dispatcher: Implement the pimpl idiom
  (Kjell Ahlstedt) Bug #651942
* File, FileInfo, FileIOStream, FileOutputStream: Use Glib::ustring for
  (UTF-8) file attributes of string type.
  (Kjell Ahlstedt) Bug #615950
* NetworkMonitor: Derive from Gio::Initable.
  (Kjell Ahlstedt)
* RemoteActionGroup: Rename some vfuncs to add _full().
  (Murray Cumming)

Documentation:
* ActionMap:
  - ActivateSlot: Mention add_action_bool().
  - ActivateWithParameterSlot: Be more specific.
  (Daniel Boles) Bug #774444

Build:
* Update the Visual Studio project files.
  (Chun-wei Fan)
* Some minor cppcheck fixes.
  (Murray Cumming)


2.51.1.1 (unstable):

General:
* Remove no_default_handler in some _WRAP_SIGNAL()s
  This allows application developers to simply override
  the default on_*() signal handlers for these signals too,
  as they can already with most other signals.
  If you are using, for instance, the -Wsuggest-override
  compiler option, watch out for new compiler warnings suggesting
  that your existing signal handler should now be marked with the
  override keyword - that means you should do so but you should
  also stop connecting the signal handler in your code.
  (Kjell Ahlstedt)
* Build: examples/Makefile.am: Re-insert the dispatcher examples
  (Kjell Ahlstedt)

Glib:
* Dispatcher: Don't cast a HANDLE to an int on Windows.
  (Kjell Ahlstedt) Bug #772074
* ObjectBase:
  - Remove connect_property_changed_with_return()
  and let connect_property_changed() return a sigc::connection.
  (Kjell Ahlstedt)
  - Use std::forward_list for interface class pointers.
  (Kjell Ahlstedt)
  - Replace extra_object_base_data map by instance data.
  (Kjell Ahlstedt)
* ObjectBase: overload get_property().
  (Marcin Kolny)
* Main, IOSource: autodeduce type of fd field.
  (Marcin Kolny) Bug #770274
* Settings: Add property_settings_schema(), and update
  signal_changed().
  (Kjell Ahlstedt)
* Settings: Make set_enum() + set_flags() usable
  (djb) Bug #774647
* SettingsSchemaKey: Add missing value/range methods
  (Daniel Boles) Bug #774903
* SignalProxyNormal: Remove connect_() and connect_notify_(),
  adding connect_impl().
  (Kjell Ahlstedt)
* Rename SignalProxyDetailed to SignalProxyDetailedBase, and
  SignalProxyDetailedAnyType to SignalProxyDetailed.
  Remove SignalProxyDetailed# aliases (# = 0..6).
  (Kjell Ahlstedt)
* Source: Replace extra_source_data by instance data.
  (Kjell Ahlstedt) Bug #561885

Gio:
* ActionMap::add_action_vfunc(): Const correction.
  (Murray Cumming)
* Application: Add dbus_register/unregister_vfunc.
  (Ritesh Khadgaray, Kjell Ahlstedt) Bug #762191
* Menu: insert/prepend/add_item(): Const correction.
  (Murray Cumming)
* MenuAttributeIter: get_value(): Const correction.
  (Murray Cumming)
* MenuModel: get_item_atribute(): const correction.
  (Murray Cumming)
* RemoteActionGroup: Derive from Gio::ActionGroup.
  (Murray Cumming)

Gio::Dbus:
* Proxy: Fix memory leak in get_cached_property_names().
  (Kjell Ahlstedt) Bug #775210
* Proxy: Derive from (and implement) Gio::DBus::Interface.
  (Murray Cumming)


2.51.1 (unstable):

This is the first release of the glibmm-2.52 API/ABI.
It installs in parallel with the gtkmm-2.4 API/ABI, of which
the most recent version is glibmm 2.50. We know that is a bit
confusing. We are taking the opportunity to do this glibmm ABI
break while GTK+ (and therefore gtkmm) is also doing an ABI
break. But we cannot call this glibmm-3.0 because there is no
glib 3.0.

Build:
* Require C++14.
  (Murray Cumming)
* Use libsigc++-3.0 instead of libsigc++-2.0.
  https://www.murrayc.com/permalink/2016/03/07/libsigc-3-0-very-variadic/
  (Murray Cumming)
* Remove lots of deprecated API.
  (Kjell Ahlstedt)

Gio:
* BufferedInputStream, InputStream, OutputStream: Add vfuncs,
  allowing implementation in C++.
  (Krzysztof Kosiński, Kjell Ahlstedt) Bug #572471
* SettingsSchemaSource::get_default(): Correct the reference count.
  (Marcin Kolny) Bug #774593
* Settings: Fix type of 'key' parameter of writable-change-event signal
  (Marcin Kolny) Bug #773977

Glib:
* ustring: Add cbegin() and cend().


2.50.0:

No changes since 2.49.7.

2.49.7:

Gio
* AppInfo: Add launch_default_for_uri_async().
  (Murray Cumming)
* Application::get_busy(): return the bool.
  (Murray Cumming) Bug #770304
* Drive: Add is_removable().
  (Murray Cumming)
* Settings:
  - set_uiint(): Deprecate for set_uint().
  - Add get/set_uint64().
  - Add get/set_int64().
  (Murray Cumming)
* giomm.h: Add include for settingsschemasource.h
  (Murray Cumming)

Documentation:
* Glib::OptionGroup: Improve the documentation of add_entry()
  (Kjell Ahlstedt)


2.49.5:

Glib:
* OptionContext: Wrap g_option_context_parse_strv()
  (Kjell Ahlstedt)

gmmproc:
* Add DocsParser::remove_c_memory_handling_info()
  (Kjell Ahlstedt)
* Add missing objects to glib/gio_extra_objects.defs
  (Kjell Ahlstedt)
* Remove DocsParser::non_object_method_name()
  (Kjell Ahlstedt)
* swap() implementations: Use std::swap().
  (Murray Cumming)

Documentation:
* Gio::SocketService: Update the class documentation
  (Kjell Ahlstedt)

2.49.4:

glib:
* Replace some use of some deprecated libsigc++ API.
  (Murray Cumming)

Build:
* Really enable silent builds.
  (Sebastian Geiger) Bug #768797

2.49.2:

Gio:
* FilterInputStream: Added a constructor.
  (Krzysztof Kosiński, Kjell Ahlstedt) Bug #572471
* FilterOutputStream:
  - Correct the property_base_stream() return type.
  (Krzysztof Kosiński) Bug #572471
  (Krzysztof Kosiński, Kjell Ahlstedt) Bug #572471
* InputStream: Added a constructor, is_closed(), has_pending(),
  set_pending(), clear_pending()
  (Krzysztof Kosiński, Kjell Ahlstedt) Bug #572471
* OutputStream: Added a constructor, is_closed(), is_closing(),
  has_pending(), set_pending(), and clear_pending().
  (Krzysztof Kosiński, Kjell Ahlstedt) Bug #572471
* Pollable, InputStream, OutputStream: Return -1 on error in vfuncs.
  (Kjell Ahlstedt)

gmmproc:
* Make h2def.py recognize some GDK_PIXBUF macros
  (Kjell Ahlstedt)
* Add optional argument err_return_value in _WRAP_VFUNC
  (Kjell Ahlstedt)

Build:
* Visual Studio build files: Update projects
  (Chun-wei Fan)

2.49.1:

gmmproc:
* Discard unused m4 sections.
  (Kjell Ahlstedt)
* Add 'deprecated' option in _WRAP_ENUM and _WRAP_GERROR
  (Kjell Ahlstedt)
* _CLASS_GOBJECT(): Allow custom move operation implementations with
  _CUSTOM_MOVE_OPERATION().
  (Marcin Kolny) Bug #756593

Gio:
* Added ListModel, ListStoreBase and ListStore<>, and tests.
  (Kjell Ahlstedt, Murray Cumming, Marcin Kolny)
  Bug #755307
* SocketAddress: Correct the constructor's implemention.
  (Murray Cuming) Bug #766150 (Vladimir)

Gio:DBus:
* Proxy: allow using GDBusProxy* conversion outside DBus namespace

Glib:
* FileAtrributeInfoList, Checksum, Module, RefPtr:
  Make operator bool explicit.
  (Murray Cumming)
* Property: Allow to set property nick, blurb, and flags.
  (Marcin Kolny) Bug #755256
* VariantBase: Add explicit operator bool(), deprecating
  operator const void*.
