Overview of changes in malcontent 0.14.0
========================================

* Bugs fixed:
  - #89 After reworking user selector and navigation, removing currently viewed
    users isn't handled (Philip Withnall)
  - #101 Integrate NSS web filtering module in flatpak (Philip Withnall)
  - #122 Allow viewing screen time usage when using malcontent-control as a
    child user (Philip Withnall)
  - #129 Hide level bar if there’s no data available yet
  - #133 EstimatedTimesChanged signal is not emitted after a screen time
    extension request is granted (Philip Withnall)
  - !292 docs: Add diagram and some more notes to screen time design document
  - !293 malcontent-client: Improve some error messages for invalid command
    lines
  - !294 build: Post-release version bump
  - !295 po: Fix a few localisation problems
  - !296 Update Chinese translation
  - !297 docs: Add a diagram of web filtering IPC
  - !298 Update Czech translation
  - !299 updated ru.po
  - !300 Replace sl.po with translation update
  - !305 Update Czech translation
  - !306 Update Chinese translation
  - !307 Update Georgian translation
  - !309 Update Slovenian (sl) translation
  - !311 build: Use system libcdb library if available
  - !312 malcontent-webd-update/tests: Only install webd template if tests are
    installed
  - !314 nss/tests/nss-objdump: Also allow linker library
  - !315 Update Swedish translation
  - !316 build/ci: Minor cleanups related to docs
  - !317 Update Kazakh translation

* Translation updates:
  - Chinese (China) (lumingzh)
  - Czech (AsciiWolf)
  - Georgian (NorwayFun)
  - Kazakh (Baurzhan Muftakhidinov)
  - Russian (Ser82-png)
  - Slovenian (filmsi)
  - Swedish (Anders Jonsson)


Overview of changes in malcontent 0.14.alpha
============================================

* This is an unstable development release previewing some new features; a lot of
  things have changed around, so it’s expected that there may be some packaging
  issues; please file an issue on
  https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues if so

* Add developer API documentation

* Refresh UI

* Add support for screen time limits

* Add backend for web filtering

* Bugs fixed:
  - #2 Build developer documentation (Philip Withnall)
  - #73 Updated sl.po translationn
  - #74 Add family API (Philip Withnall)
  - #75 Ensure MctSessionLimits can do daily time limit and bedtime schedule
    (Philip Withnall)
  - #76 Add org.freedesktop.MalcontentTimer1.Parent API for querying child
    computer usage (Philip Withnall)
  - #80 Refresh UI for unlock page
  - #81 Rework user selector
  - #83 Add screen time subpage with basic screen limits options
  - #84 Add screen time chart
  - #88 Implement NSS web filtering module and filter list daemon (Philip
    Withnall)
  - #91 Port documentation comments to gi-docgen format
  - #95 Build sysext image in CI for integration testing with gnome-shell
    (Philip Withnall)
  - #96 Selecting username from commandline fails (Ignacy Kuchciński)
  - #97 Add org.freedesktop.MalcontentTimer1.Child API for extending a child’s
    session time (Philip Withnall)
  - #98 After adding screen time subpage, the previous value of bedtime/screen
    limit are not preserved (Philip Withnall)
  - #100 Bump the app copyright date (Philip Withnall)
  - #102 Add tests for filter list parsing code in malcontent-webd (Philip
    Withnall)
  - #107 Follow-up from "Add screen time chart"
  - #109 Set a default daily screen time limit value
  - #110 Show logged-in child accounts in the parental controls application
  - #111 Screen time summary level bar overflows
  - #112 Fix assertion when closing the application (Philip Withnall)
  - #113 Investigate gtklevelbar breaking
  - #115 Improve documentation of the malcontent-client record-usage command
    (Philip Withnall)
  - #117 Emit EstimatedTimesChanged signal from malcontent-timerd if session
    limits settings change (Philip Withnall)
  - #118 Malcontent-timerd daemon error on GNOME OS child account login (Philip
    Withnall)
  - #119 Fix duration picker breaking in 12-hour clock mode
  - #120 Update Turkish translation
  - !189 build: Post-release version bump
  - !190 Bulgarian translation by kraftwerk
  - !191 malcontent-control: Port about dialog to AdwAboutDialog
  - !192 ci: Add various linting tests for shell and Python
  - !193 malcontent-client: Add support for setting a session limit policy
  - !194 Improve REUSE license/copyright tagging somewhat
  - !195 Update Georgian translation
  - !196 malcontent-timerd: Add initial implementation of timer daemon
  - !197 po: Add new malcontent-timerd files to POTFILES.in
  - !198 updated ru.po
  - !200 ui: Fix wrong a11y role in button
  - !202 nss: Add a new libnss_malcontent.so.2 NSS module for web filtering
  - !204 libmalcontent: Add web filtering settings storage and API
  - !205 malcontent-client: Add {get,set}-web-filter commands
  - !210 Add icons to libmalcontent-ui gresources
  - !211 docs: Add Code of Conduct
  - !213 Add missing mct_session_limits_equal() and mct_web_filter_equal()
    functions
  - !214 manager: Rework change notification from AccountsService and support
    notification for session limits and web filters
  - !215 Various minor type and terminology fixes
  - !216 user-selector: Factor out getuid() calls into a :current-user property
  - !217 Fix icons in dark theme
  - !218 tools: Add a sysext build tool
  - !219 malcontent-control: Add D-Bus service file
  - !220 malcontent-control: Change component type to "desktop-application"
  - !221 accounts-service: Make extension symlinks relative
  - !222 Handle external changes to users and settings
  - !224 Fix waiting asynchronously for user manager
  - !225 malcontent-webd: Add initial implementation of web filtering daemon
  - !226 Adjust malcontent-timer for shell integration
  - !227 po: Add missing files to POTFILES.in
  - !228 Replace sl.po; this is the updated translation (100%).
  - !229 nss: Add unit tests for NSS module
  - !230 Update of sl.po
  - !231 malcontent-timer: Remove an invalid attribute from a D-Bus XML file
  - !232 tests: Add test for the sandboxing of malcontent-webd.service and
    malcontent-timerd.service
  - !233 Update Czech translation
  - !235 Malcontent client improvements
  - !236 Update Polish translation 250828
  - !237 docs: Add web filtering design document
  - !238 docs: Add a document about system integration (packaging)
  - !240 Update Czech translation
  - !241 malcontent-client: Fix --help output for set-web-filter subcommand
  - !242 Calculate next session times in malcontent-timer
  - !243 Update Czech translation
  - !245 po: Add false positves to POTFILES.skip
  - !246 Update Polish translation 250907
  - !247 manager: Handle UnknownInterface error from AccountsService
  - !249 Minor malcontent-webd fixes
  - !251 docs: Mention the update-error file in malcontent-webd.8
  - !252 libmalcontent-ui: Update documentation to use gi-docgen
  - !254 docs: Add some reference links to screen time design document
  - !255 Update Chinese translation
  - !256 Update Slovenian translation
  - !257 libmalcontent-timer: Retry queries if the timer store is busy
  - !258 time-page: Prevent calling unref on a NULL pointer
  - !259 malcontent-webd-update: Disable timeout when updating filters
  - !260 malcontent-webd: Relax UMask in service file
  - !261 Update Czech translation
  - !262 po: Add missing file to POTFILES.in
  - !263 Update Chinese translation
  - !264 build: Use exposed interfaces directory
  - !265 libmalcontent-ui: Add missing gir include path
  - !266 Minor fixes for malcontent-control
  - !268 Replace sl.po with translation update.
  - !269 Russian translation updated
  - !270 Update Czech translation
  - !271 Update Chinese translation
  - !272 Updated RU against most recent pot
  - !273 Statically link libgsystemservice
  - !274 Various minor fixes and build system tests
  - !277 l10n: Replace sl.po (Slovenian)
  - !279 Update Swedish translation
  - !282 tests: Add unit tests for `MctExtensionAgentObject`
  - !286 libmalcontent: Port remaining doc comments to gi-docgen format
  - !289 malcontent-control: Fix a crash when quitting just after making changes
  - !291 po: Update Bulgarian translation

* Translation updates:
  - Bulgarian (twlvnn, twlvnn kraftwerk)
  - Chinese (China) (lumingzh)
  - Czech (AsciiWolf)
  - Georgian (NorwayFun)
  - Polish (Piotr Drąg)
  - Russian (Julia Dronova, Ser82-png)
  - Slovenian (filmsi, Martin Srebotnjak)
  - Swedish (Anders Jonsson)
  - Turkish (Sabri Ünal)


Overview of changes in malcontent 0.13.0
========================================

* Bugs fixed:
  - #48 Parental controls app: show the launcher, or merge into Settings?
    (Philip Withnall)
  - !172 Update fa.po
  - !173 Update Czech translation
  - !176 malcontent-control: Update metainfo file
  - !177 Update Swedish translation
  - !179 docs: Add list of legal references for relevant countries’ laws
  - !180 po: Update Slovenian translation
  - !181 Update Polish translation 240909
  - !182 Add Chinese translation
  - !183 application: Fix opening Settings
  - !184 malcontent-control: Call setlocale() earlier to fix early i18n
  - !185 restrict-applications-selector: Fix pending changes being lost on
    search
  - !186 libmalcontent-ui: Port to libadwaita 1.6
  - !187 app-filter: Fix logic for allowlist filtering on GAppInfo

* Translation updates:
  - Chinese (China) (lumingzh)
  - Czech (AsciiWolf)
  - Persian (Danial Behzadi)
  - Polish (Piotr Drąg)
  - Slovenian (Martin Srebotnjak)
  - Swedish (Anders Jonsson)


Overview of changes in malcontent 0.12.0
========================================

* Bugs fixed:
  - #31 Support searching list of apps to restrict (Philip Withnall)
  - #53 Keynav focus disappears after GTK4 port (Philip Withnall)
  - #56 Confusing sentence in user-controls.ui: above, below? (Philip Withnall)
  - #66 mct_app_filter_is_appinfo_allowed fails when desktop entry is missing
    Exec key (Philip Withnall)
  - #68 “All Ages” option for Application Suitability is misleading (Philip
    Withnall)
  - !153 Update pt_BR translation
  - !157 Add AppInfo support to malcontent-client check-app-filter
  - !159 Update Czech translation
  - !160 update ru.po
  - !161 Update Swedish translation
  - !162 data: Update appdata
  - !163 build: Hide private structs from generated GIR files
  - !165 Various build and dependency cleanups for GTK 4.12
  - !166 Update Turkish translation
  - !167 Update pt_BR translation
  - !168 Update Polish translation 240303
  - !169 Update Hungarian translation
  - !170 malcontent-client: Fix syntax error in appinfo support

* Translation updates:
  - Czech (AsciiWolf)
  - Hungarian (Balázs Úr)
  - Polish (Piotr Drąg)
  - Portuguese (Brazil) (Matheus Polkorny)
  - Russian (Ser82-png)
  - Swedish (Anders Jonsson)
  - Turkish (Sabri Ünal)


Overview of changes in malcontent 0.11.1
========================================

* Bugs fixed:
  - !147 0.11.0
  - !148 build: Switch to Meson’s gnome.post_install function
  - !149 po: add Georgian translation
  - !150 Update Hungarian translation
  - !151 Update Hindi (hi) translation
  - !152 doc: Add Turkish Translation

* Translation updates:
  - Georgian (NorwayFun)
  - Hindi (Hemish)
  - Hungarian (Balázs Úr)
  - Turkish (Sabri Unal)


Overview of changes in malcontent 0.11.0
========================================

* libmalcontent-ui, and the malcontent-control application, now use
  libappstream rather than appstream-glib. (#51)

* libmalcontent-ui, and the malcontent-control application, now use GTK 4 and
  libadwaita rather than GTK+ 3. (!141)

* As a result of these changes, the pkg-config name has been bumped to
  libmalcontent-ui-1, and the gobject-introspection name to MalcontentUi-1.

* Improve keyboard navigation of the malcontent-control application. (#52)

* Translation updates:
 - Italian
 - Russian

Overview of changes in malcontent 0.10.5
========================================

* Bugs fixed:
 - !134 Update it.po
 - !135 Add German help translation
 - !136 Update pt_BR.po
 - !137 Update tr.po
 - !138 Update Chinese (Taiwan) translation file.

* Translation updates:
 - Chinese (Taiwan)
 - Italian
 - Portuguese (Brazil)
 - Turkish


Overview of changes in malcontent 0.10.4
========================================

* Bugs fixed:
 - !127 Update Catalan translation
 - !128 Update German proof-read translation from https://l10n.gnome.org/vertimus/malcontent/main/po/de/
 - !129 Update it.po
 - !132 Remove superfluous arguments to i18n.merge_file
 - !133 help: Add Italian help translation

* Translation updates:
 - Catalan
 - German
 - Italian


Overview of changes in malcontent 0.10.3
========================================

* Bugs fixed:
 - #44 Do not make malcontent-control user uninstallable using gui
 - !123 Add Czech translation
 - !124 Update Czech translation
 - !125 malcontent-control: Fix an unterminated option entry array
 - !126 malcontent-control: Focus controls rather than user selector

* Translation updates:
 - Czech


Overview of changes in malcontent 0.10.2
========================================

* Hide the launcher for malcontent-control from gnome-shell if using the GNOME
  desktop; find it via gnome-control-center instead (!119)

* Bugs fixed:
 - !118 ci: Limit depth of clone of subprojects
 - !119 malcontent-control: Hide application in GNOME
 - !121 ci: Rename master to main branch

* Translation updates:
 - Indonesian
 - Italian


Overview of changes in malcontent 0.10.1
========================================

* Bugs fixed:
 - #32 App sort key does not match displayed name
 - !112 Update Swedish translation
 - !113 Update Polish translation 201220
 - !116 libmalcontent-ui: Drop handling of eos-link desktop files

* Translation updates:
 - Polish
 - Swedish


Overview of changes in malcontent 0.10.0
========================================

* Improve support for systems without accountsservice (#27)

* Fix some data loss-causing state synchronisation problems (#18, #28)

* Hide support for flatpak user repositories, as they are typically not
  configured on systems (#30)

* Bugs fixed:
 - #4 Add manpage docs for malcontent-client monitor, set and oars-section commands
 - #13 Consider terminology of ‘parental controls’
 - #15 Improving padding/spacing in malcontent-control UI
 - #18 Reload ‘Restrict Apps’ list when installed apps change on system
 - #19 Add command line option to malcontent-control to pre-select a user
 - #23 appdata not validating
 - #25 Parental controls app empty state is misleading
 - #27 Fails closed if accountsservice isn't available on the bus
 - #28 ‘Restrict Applications’ dialogue is empty if MctUserControls is created with empty app filter
 - #30 ‘Restrict App Installation’ tickboxes are confusing
 - !85 Update Ukrainian translation
 - !86 l10n: Update Italian translation
 - !87 l10n-sv
 - !88 Add Danish translation
 - !91 libmalcontent: Rationalise a couple of translatable strings
 - !92 Fix several issues with the app list in the restrict applications dialogue
 - !93 Update Ukrainian translation
 - !94 Update Polish translation 201018
 - !96 Update Polish translation 201025
 - !100 Bump appstream-glib dep and update content rating code
 - !101 Fix partial loss of parental controls settings when partially updating them
 - !102 user-controls: Only save the app filter if it’s changed
 - !103 malcontent-control: Add link to guidance on how to set parental controls
 - !104 docs: Add a development principles section to the README
 - !106 Update Danish translation
 - !107 Update Ukrainian translation
 - !108 Update Ukrainian translation
 - !109 Update Ukrainian translation
 - !111 accounts-service: Allow installation to the system repo by default

* Translation updates:
 - Danish
 - Italian
 - Polish
 - Swedish
 - Ukrainian


Overview of changes in malcontent 0.9.0
=======================================

* Use appstream-glib code for content rating systems if available — this
  adds a dependency on appstream-glib, but no particular version (see #7)

* Rename three APIs in `app-filter.h` to avoid discriminatory language:
  - `mct_app_filter_builder_blacklist_path` → `…_blocklist_path`
  - `…_blacklist_flatpak_ref` → `…_blocklist_flatpak_ref`
  - `…_blacklist_content_type` → `…_blocklist_content_type`
  This is an API break. (See !72)

* Add a `privileged_group` configure option to set the name of the system
  sudo group — it might be `sudo` or `wheel` (thanks to Sergey Shatunov; see #22)

* Bugs fixed:
 - #7 Lift GNOME Software content rating implementation into appstream-glib, and fix it
 - #21 No references to homosexuality
 - #22 Polkit rules should use wheel group instead of sudo
 - !69 Two small UI tweaks
 - !72 tree-wide: Replace usages of whitelist/blacklist
 - !73 po: Update translations from downstream in Endless
 - !74 Update Ukrainian translation
 - !75 Update Polish translation 200614
 - !77 all: Fix various typos and incorrect terminology
 - !78 build: Use meson.current_source_dir() instead of source_root()
 - !79 build: Re-add libglib-testing subproject
 - !80 Update Brazilian Portuguese translation
 - !81 ci: Use pre-built Docker images for CI builds
 - !82 subprojects: Limit depth when cloning
 - !83 Update Spanish translation

* Translation updates:
 - Afrikaans
 - Arabic
 - Bangla
 - Basque
 - Bokmål, Norwegian
 - Bulgarian
 - Catalan
 - Catalan — valencia.UTF-8
 - Chinese (Taiwan)
 - Croatian
 - Czech
 - Danish
 - Dutch
 - Esperanto
 - Finnish
 - French
 - Friulian
 - Gaelic
 - Galician
 - German
 - Greek, Modern (1453-)
 - Hebrew
 - Hindi
 - Hungarian
 - Indonesian
 - Italian
 - Kazakh
 - Korean
 - Latvian
 - Lithuanian
 - Malay
 - Malayalam
 - Occitan (post 1500)
 - Panjabi
 - Persian
 - Polish
 - Portuguese
 - Portuguese (Brazil)
 - Romanian
 - Russian
 - Serbian
 - Serbian — latin.UTF-8
 - Slovak
 - Slovenian
 - Spanish
 - Swedish
 - Thai
 - Turkish
 - Ukrainian
 - Vietnamese


Overview of changes in malcontent 0.8.0
=======================================

* Add user manual (!51)

* Add a header bar and primary menu to the main UI (!58)

* Bump Meson dependency to 0.50.0 (!59)

* Fix translation of libmalcontent-ui widgets when used in other applications (!68)

* Bugs fixed:
 - !3 Remove use of libglib-testing subproject
 - !50 Various meson cleanups
 - !51 Add user manual/documentation
 - !52 Update Polish translation 200329
 - !53 Added Indonesian translation
 - !54 Update Ukrainian translation
 - !55 libmalcontent: Add enum types to fix introspection of MctManagerError
 - !56 Update Polish translation 200405
 - !57 Update Ukrainian translation + docs translation
 - !58 malcontent-control: Add a header bar and primary menu
 - !59 meson: bump minimum version to 0.50.0
 - !60 user-controls: Add a fallback bus connection
 - !62 Added Indonesian help translation
 - !63 Import translations from Endless
 - !64 Import zh_TW translation from Endless
 - !65 Add translator comments for about dialog strings
 - !66 Update Brazilian Portuguese translation
 - !67 Add Brazilian Portuguese translation
 - !68 Fix translation of libmalcontent-ui

* Translation updates:
 - Afrikaans
 - Arabic
 - Bangla
 - Basque
 - Bokmål, Norwegian
 - Bulgarian
 - Catalan
 - Catalan — valencia.UTF-8
 - Chinese (Taiwan)
 - Croatian
 - Czech
 - Danish
 - Dutch
 - Esperanto
 - Finnish
 - French
 - Friulian
 - Gaelic
 - Galician
 - German
 - Greek, Modern (1453-)
 - Hebrew
 - Hindi
 - Hungarian
 - Indonesian
 - Italian
 - Kazakh
 - Korean
 - Latvian
 - Lithuanian
 - Malay
 - Malayalam
 - Occitan (post 1500)
 - Panjabi
 - Persian
 - Polish
 - Portuguese
 - Portuguese (Brazil)
 - Romanian
 - Russian
 - Serbian
 - Serbian — latin.UTF-8
 - Slovak
 - Slovenian
 - Spanish
 - Swedish
 - Thai
 - Turkish
 - Ukrainian
 - Vietnamese


Overview of changes in malcontent 0.7.0
=======================================

* Add `-Dui` configure option to help work around circular dependency with
  flatpak (#16)

* Add data serialization and deserialization methods for app filters and
  session limits (!45)

* Add mct_app_filter_is_enabled() and mct_session_limits_is_enabled() APIs
  for determining whether filtering/limits are enabled at a high level (!47)

* Bugs fixed:
 - #16 Circular dependency on flatpak
 - !35 Update Ukrainian translation
 - !37 Drop a few unnecessary dependencies
 - !39 Add Polish translation
 - !40 Use libglib-testing submodule only as fallback
 - !41 Fix typo in malcontent-client.8
 - !42 docs: Update license information in README and meson.build
 - !43 user-controls: Make OARS drop down open to the right
 - !44 Fix updating the UI when a user’s locale changes
 - !45 Support data serialisation and deserialisation
 - !46 Fix papercuts when editing parental controls of current user
 - !47 app-filter: Add mct_app_filter_is_enabled() API
 - !48 Update POTFILES.in 200320
 - !49 malcontent-control: Refactor bus initialisation

* Translation updates:
 - Polish
 - Ukrainian


Overview of changes in malcontent 0.6.0
=======================================

* Add icon for `malcontent-control` (thanks Jakub Steiner) (#9)

* Redesign `malcontent-control` UI in response to design feedback (#11)

* Add `AccountInfo` interface for metadata on parent accounts (!26)

* Fix translation of the UI (!31)

* Bugs fixed:
 - #9 Add icon for malcontent-control
 - #11 User controls UI tweaks
 - !26 accounts-service: Add AccountInfo interface
 - !27 user-selector: Fix some const-to-non-const cast warnings
 - !29 po: Add some missing files to POTFILES.in
 - !30 Add Ukrainian translation
 - !31 build: Fix definition of PACKAGE_LOCALE_DIR
 - !32 Add Brazilian Portuguese translation
 - !33 po: Order LINGUAS alphabetically
 - !34 More small UI tweaks

* Translation updates:
 - Portuguese (Brazil)
 - Ukrainian


Overview of changes in malcontent 0.5.0
=======================================

* Add libmalcontent-ui library for parental controls widgets

* Add malcontent-control parental controls app

* Add initial support for session limits (but more needs to be done)

* Rename some of the commands for `malcontent-client` and rename some C APIs
  (but with compatibility defines)

* Bugs fixed:
 - #6 Align GLib dependency requirements
 - !16 docs: Improve documentation of "app-filter-changed" signal
 - !18 build: Port meson-make-symlink script to Python
 - !19 Add session limits support and PAM module
 - !20 Initial version of parental controls app
 - !21 build: Fix default value of pamlibdir
 - !22 Iterate on UI of parental controls app
 - !23 Split widgets into separate library
 - !24 Allow user controls to be used for not-yet-existing users


Overview of changes in malcontent 0.4.0
=======================================

* Implement `--quiet` in the `check` and `set` subcommands of
  `malcontent-client` to make it nicer to use from scripts (!13)

* Add support for filtering apps by content type (!15)

* Bugs fixed:
 - !2 tests: Use gdbus-codegen to drop hand-coded interface definitions
 - !12 libmalcontent: Add missing field initialisers to BUILDER_INIT
 - !13 Implement --quiet in the check and set subcommands of malcontent-client
 - !14 Improve README coverage of whole system design
 - !15 Add support to filter by content type


Overview of changes in malcontent 0.3.0
=======================================

* API change for getting app filters: use `mct_manager_get_app_filter()` now,
  rather than `mct_get_app_filter()` (#1, !6)

* Support signalling that a user’s app filter has changed using
  `MctManager::app-filter-changed` (#1)

* Add a `MCT_APP_FILTER_ERROR_DISABLED` error to distinguish between the app
  filter not being installed/supported, and temporarily not working (!9)

* Add a top-level header file: use `#include <libmalcontent/malcontent.h>`

* Bugs fixed:
 - #1 Emit a signal when a user’s parental controls change
 - !5 docs: Fix NEWS entry
 - !6 lib: Change allow_interactive_authorization bool to flags
 - !7 build: Post-release version bump
 - !8 docs: Expand README to be more informative
 - !9 libmalcontent: Add MCT_APP_FILTER_ERROR_DISABLED error
 - !11 libmalcontent: Add a top-level header file


Overview of changes in malcontent 0.2.0
=======================================

* Renamed project from eos-parental-controls to malcontent

* Bugs fixed:
 - !1 Rename project