<!-- SPDX-FileCopyrightText: no
     SPDX-License-Identifier: CC0-1.0
-->

This is the changelog for Calamares. For each release, the major changes and
contributors are listed. Note that Calamares does not have a historical
changelog -- this log starts with version 3.2.0. The release notes on the
website will have to do for older versions.


Calamares version 3.2.61 is the last one to have updated CHANGES-3.2
in the *calamares* (e.g. development, or 3.3, branch). For changes
in the stable release branch, see CHANGES-3.2 in that branch.



# 3.2.61 (2022-08-24) #

This is the second community-maintainence release of Calamares 3.2.
It corrects a handful of bugs foud in the stable release. There
are also translation updates.

This release contains contributions from (alphabetically by first name):
 - Adriaan de Groot
 - Anke Boersma

## Core ##
 - The "About" and "Debug" buttons in a QWidgets-based panel were no
   longer translated. This has been fixed (by re-using translations
   of the same buttons from the QML module. #2030 (Thanks Anke)

## Modules ##
 - *bootloader* Python code slipped in that was incompatible with
   the minimum required Python version. #2033 (Thanks Adriaan)
 - *locale* fixes a large regression introduced with 3.2.60, where
   the location picked for many locales was not the same as in 3.2.59,
   and generally peculiar (e.g. picking "English" led to "en_AG" which
   is nice if you are in Bermuda, but not expected in the rest of the
   world). #2008
 - *luksopenswaphookcfg* Remove duplicate options. #1659 (Thanks Anke)


# 3.2.60 (2022-06-19) #

This is the first community-maintainence release of Calamares 3.2.
Somewhat ironically, all the commits in the branch come from
Adriaan de Groot -- the community is working in the 3.3 (*calamares*)
branch.

## Core ##
 - No core changes

## Modules ##
 - *fstab* now warns when the mount options are empty (which is non-
   sensical, and indicates that the configuration is bad).
 - *locale* does a better job of preserving Catalan (Valencia)
   across modules; previously it dropped the *Valencia*
   after the locale module unless you specifically re-selected
   `ca@valencia` in the locale module. (Reported by Lliurex)
 - *welcome* now has text labels on the special buttons (nominally,
   this is part of the core, but the *About* button was always on the
   welcome page).


# 3.2.59 (2022-05-29) #

This release contains contributions from (alphabetically by first name):
 - Arjen Balfoort

This is the final release of Calamares 3.2 where the release is from
the *calamares* branch -- that is, where the primary development
branch is also the branch being released regularly. Future releases
of the 3.2 series are bugfix-only, and no new feature development
or translations are expected. This is also the final release done
*as work-work* by the current maintainer.

## Core ##
 - Prep-work for moving the *About Calamares* button to the panels,
   rather than keeping it in the Welcome module. The about information
   is somewhat more flexible now, so that a new maintainer can be added
   easily without frustrating translators.
 - The progress panels (both Widgets and QML) now have an About button
   on them, showing the traditional *About Calamares* dialog.
 - Translations for the (QML) slideshow were not being loaded correctly.
   The log is now somewhat more informative when that fails.

## Modules ##
 - *fstab* can now be configured to put `/tmp` on a *tmpfs*, and this can
   depend on it being on an SSD or not. Options applicable to `/tmp` can
   be configured separately as well. #1818 (Thanks Arjen)
 - *partition* now has some support for re-using LUKS partitions.
   (Thanks Arjen)
 - *partition* will cycle out a LUKS key if all the key slots are in use
   and a new key is added, rather than crashing the installer. (Thanks Arjen)
 - *welcome* and *welcomeq* have no *About* button anymore; this is now
   available from the progress panel, since it's also not-really about the
   distro itself.


# 3.2.58.2 (2022-05-24)

This is a extra-quick release for an issue that shows up when using a
swap **file** on a btrfs filesystem; the installation would fail with
a Python error, raised from btrfs-progs. Reported by Evan James, Erik
Dubois, TechXero.


# 3.2.58.1 (2022-05-20)

This is a hot-fix release for a regression in the *partition* module where
it was impossible to proceed unless *Encrypt system* was checked.


# 3.2.58 (2022-05-18) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Arjen Balfoort
 - Enrique Medina Gremaldos
 - Evan James

## Core ##
 - Internal improvements to translations-setup means that Catalan (in the
   Valencian dialect), Occitan (Lenga d'Oc) and Serbian (in Latin script)
   are all better supported. Thanks Enrique.

## Modules ##
 - *netinstall* Now displays entries with an empty name slightly differently.
   An empty name is not generally useful, but in combination with
   *immutable:true* and *selected:false* can be used to introduce separators
   or descriptive comments into the list of packages.
 - *partition* does not offer full-disk encryption when using ZFS. ZFS and the
   way Calamares sets up FDE don't mix well. (Thanks Evan)
 - *partition* Various bugs related to LUKS have been fixed. (Thanks Arjen)
 - *users* module now has a structured *user* key with settings specific
   to the user (shell, in particular). This maintains backwards compatibility
   with the *userShell* key.
 - *users* module now has lists of forbidden login- and host-names, to
   avoid settings that will mess up the install (e.g. using a login-name
   that is one of the system's reserved names). #1944


# 3.2.57 (2022-05-04) #

This release contains contributions from (alphabetically by first name):
 - Arjen Balfoort (new contributor! Welcome!)
 - Victor Fuentes

## Core ##
 - Calamares can now be started in Serbian (Latin Script) and Catalan
   (Valencia) when the LANG environment variable is set to values
   that indicate those languages.

## Modules ##
 - *fstab* and *luksbootkeyfile* have better support for an **un**encrypted
   `/boot` partition. #1931 (thanks Arjen)
 - *packagechooser* and *packagechooserq* can now be given a custom name
   in the side-panel. #1932 (thanks Victor)


# 3.2.56 (2022-04-22) #

As of this release, Calamares 3.2 development is winding down. The
reason is simple: systems where the backwards-compatibility of Calamares
3.2 is important are becoming increasingly difficult to work with
for **other** reasons. Foremost among these are deprecated versions
of dependencies and tools. Calamares 3.2 branch remains open for
bugfixes and will see a few more releases, but development is now
shifting wholesale to the newer generation.

This release contains contributions from (alphabetically by first name):
 - Victor Fuentes (new contributor! Welcome!)

## Core ##
 - Changes in git forced some changes on the CI tooling.

## Modules ##
 - *locale* showed the wrong timezone for Dhaka, although it configured
   the correct one. #1929
 - *users* module sets global storage key *fullname* to the full name
   of the user (e.g. what is entered in the "your full name" box on the
   users page). #1923 (Thanks Victor)


# 3.2.55 (2022-04-11) #

This release contains contributions from (alphabetically by first name):
 - vtriolet (new contributor! Welcome!)

## Core ##
 - `readTargetFile()` did not properly return all the lines of the target
   file. #1918 (thanks vtriolet)

## Modules ##
 - *users* module has rearranged configuration for setting the hostname.
   Legacy settings are preserved, but produce a warning. Please see
   `users.conf` for details.
 - *users* module has a new hostname.location setting, *Transient*, which
   will force the installed system to transient-hostname-setting by removing
   the file `/etc/hostname`.
 - *users* module has a new hostname.template setting, which allows some
   tweaking of how the hostname suggestion is constructed. In particular,
   it can be configured to use the current hostname (whatever that may be).
   See the example `users.conf` for details on available keys.


# 3.2.54 (2022-03-21) #

This release contains contributions from (alphabetically):
 - Bob van der Linden (new contributor! Welcome!)
 - El-Wumbus (new contributor! Welcome!)
 - Evan James
 - Santosh Mahto (new contributor! Welcome!)

## Core ##
 - During the installation ("exec") step, while the slideshow is displayed,
   there is also a button to show the scrolling installation log as it
   is written. (Thanks Bob)

## Modules ##
 - *fstab* module correctly handles empty UUID strings. (Thanks Evan)
 - *partition* module no longer forgets configured partition-layouts.
   It also respects configured partition labels better. (Thanks Santosh)


# 3.2.53 (2022-03-04) #

This release contains contributions from (alphabetically by first name):
 - Huang Jia Wen (new contributor! Welcome!)

## Core ##
 - Automount-manipulation (to switch off KDE Plasma automounting new devices)
   now logs slightly more as it works. Defaults have changed in KDE Plasma
   5.24 and it turns out the automount-manipulation does not work well.
   Distro's are encouraged to turn off automount in the live ISO (see #1885).

## Modules ##
 - *bootloader* now knows about loongarch64 and can install suitable EFI
   files for this CPU type. (Thanks Huang Jia Wen)
 - Progress reporting for `pacman` from the *packages* module has been switched
   off. The progress reporting works under low load, but there are many reports
   of it crashing (from XeroLinux and from Evan James, who has been debugging
   the issue) during a regular installation with thousands of updates. This
   will be revisited in the next release.
 - The *umount* module was buggy and did not actually unmount anything.


# 3.2.52 (2022-02-25) #

This release contains contributions from (alphabetically by first name):
 - Evan James

## Core ##
 - No core changes yet

## Modules ##
 - *fstab* recognizes nvme and mmc devices correctly as SSDs now. #1883
 - *luksbootkeyfile* handles trailing slashes in mount point
 - *partition* can be built with a new `SKIP` option, which skips
   the actual formatting steps but does not fail. The old `LAME`
   option is renamed `BAIL_OUT`.
 - *users* has a new key *sudoersConfigureWithGroup* to allow for
   different styles of sudo configuration. #1887


# 3.2.51 (2022-02-01) #

This release contains contributions from (alphabetically by first name):
 - Evan James

**WARNING** The *umount* module has been rewritten in C++. Check your
configuration if you previously used the copy-a-log functionality.

## Core ##
 - Evan has made a start on documenting which Global Storage keys there
   are and how they tie modules together. This can be found in the
   `src/modules/README.md` documentation.

## Modules ##
 - *bootloader* can now be configured to try to generate a unique
   suffix for the bootloader-id. #1820
 - *grubcfg* now has a configurable default for kernel parameters,
   which allows distributions to change the value from `quiet`.
   The default, if nothing is set, remains `quiet`. Use an explicitly-
   empty list to specify no-arguments-at-all.
 - *packagechooser* can now export its choices for use by the *netinstall*
   module. This makes it possible to use *packagechooser* for large-scale
   choices, followed by *netinstall* for fine-grained control. (Thanks Evan)
 - When the *partition* module has a conflicting configuration for the
   swap choices, it prints a warning and uses the configured choice, rather
   than always using "suspend". #1881
 - The *umount* module has been re-written in C++. The copy-a-log-file
   functionality has been removed. Use the *preservefiles* module for that.


# 3.2.50 (2022-01-18) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Erik Dubois
 - Evan James
 - Johannes Kamprad
 - Taejun Park (new contributor, welcome!)

**Replacement notice:** The *umount* module will be replaced by a C++
implementation in the next release. The "preserve log file" feature
will be removed in that release. Use the *preservefiles* module instead.

## Core ##
 - No core changes yet

## Modules ##
 - *initcpiocfg* mentioned a special kernel-name "all", which did not work,
   and a special kernel-name "$uname" which cannot work. Fixed the former
   and removed the "$uname" special key. (Thanks Evan)
 - *luksswaphookcfg* has been converted to a C++ module.
 - *networkcfg* could fail to update the NetworkManager configuration
   if the SSID or username contained non-ASCII characters **and** the
   default Python text-file encoding was set to ASCII. The files are
   now read and written in UTF-8, explicitly. #1848
 - *partition* always sets *bigtime* option on XFS filesystems, if possible.
   Requires sufficiently-recent xfsprogs. #1874
 - *preservefiles* was missing some necessary features, needed for it
   to replace the deprecated log-file-saving functionality in the *umount*
   module. (Thanks Erik and Joe for testing) #1851
 - *umount* is now marked as an emergency module in the example configuration,
   since it should **probably** be run as a cleanup. (Thanks Evan)
 - *welcome* and *locale* could be confusing, together, and configure
   the target system with a language that does not match the installer
   language, even though the user did not make any explicit choice.
   (Thanks Taejun) #1864


# 3.2.49.1 (2021-12-11) #

This is a hot-fix release, to fix a regression in the calculation of
swap-size. Reported by EndeavourOS (Joe Kamprad) and Xero Linux.


# 3.2.49 (2021-12-10) #

This release contains contributions from (alphabetically by first name):
 - Artem Grinev
 - Evan James

Distributions are **specifically** reminded to update the *umount* module
configuration (and to use *preservefiles* if needed).

## Core ##
 - Errors (e.g. when an installation fails for whatever reason) are displayed
   in a dialog with a scrollable details panel, rather than growing up
   to the size of the screen. (Thanks Artem)

## Modules ##
 - *bootloader* better supports multiple installations of the same OS.
 - *mount* supports btrfs subvolumes on subdirectories of / now.
 - *partition* now supports "deep" btrfs subvolume names, e.g. a
   separate subvolume for `/usr/local`. (Thanks Evan)
 - The *umount* module now warns if the "preserve log file" feature is used.
   This has been deprecated for a long time: use the *preservefiles* module
   instead. A future release will turn this into an error.


# 3.2.48 (2021-12-03) #

This release contains contributions from (alphabetically by first name):
 - Evan James

## Core ##
 - Python modules now have `warn()` and `error()` methods they can call,
   alongside the existing `debug()` and `warning()` (all live in the
   *libcalamares.utils* module).
 - Python modules can load YAML files via `libcalamares.utils.load_yaml()`.
   This may be the most useful for test-scripts.

## Modules ##
 - *fstab* now has a separate, special, flags-setting for swap subvolumes
   on btrfs. A swap subvolume is created if a swap **file** (not a separate
   partition) is selected in the auto-partitioning page. (Thanks Evan)
 - When using btrfs, the *mount* module creates subvolumes. It was not
   possible to **avoid** having a subvolume name created for the root.
   This is now possible. #1837
 - The *packages* module now has some special settings for the `pacman`
   package manager (generally used on Arch-derivatives). This allows
   tweaking of the installation process, if downloads are slow or
   packages may fail to install. See the `packages.conf` file for
   details. (Thanks Evan)


# 3.2.47 (2021-11-19) #

This release contains contributions from (alphabetically by first name):
 - Evan James
 - Jonas Strassel

## Core ##
 - The translation for Sinhala (`si`) has reached 100%. Thank you to
   හෙළබස and Sandaruwan, translators for Sinhala, for special effort
   in completing that translation.
 - Logging now supports Redacted names. This reduces the scope for
   leaking names or other private information through the logs
   (if they are posted to a pastebin). A name is redacted consistently
   within one run of Calamares, but differently each time.

## Modules ##
 - *bootloader* with systemd-boot now handles root subvolumes better
   (Thanks Evan)
 - *displaymanager* supports the *greetd* display manager, which is a
   kind of meta-DM itself, supporting multiple greeters. (Thanks Jonas)
 - *finishedq* now has an extra example QML file that builds the UI in
   a different fashion, demonstrating how a mobile-OS customization of
   Calamares would present the "all done" message.
 - *fstab* has an example configuration file that mentioned `space_cache`
   as an option. Since 2014 there was only one possible value, so this
   option matched the default-and-only value. Newer kernels with newer
   btrfs versions have a `v2` option value as well. Remove the example
   option, since the kernel automatically picks the right value, while
   setting it to the wrong one may prevent the system from booting.
   (Thanks Evan)
 - The *partition* module no longer logs recognizable disk names or
   UUIDs. These are redacted in the logs. #1593
 - The *partition* module, together with the new *zfs* module and changes
   in *mount* and *bootloader* can install to ZFS **if** the distribution
   kernel supports it. ZFS tools are required, as well as the relevant
   kernel modules. See the `README.md` in the *zfs* module. (Thanks Evan)


# 3.2.46 (2021-11-09) #

This release contains contributions from (alphabetically by first name):
 - Philip Müller

## Core ##
 - A new core class `Runner` is now responsible for running commands
   either in the host or in the target system. This is invisible for
   end-users, but **does** expand the API available to consumers inside
   Calamares modules. In particular, Python modules can now easily read
   and respond to command output. #1740

## Modules ##
 - *fstab* writes a slightly different message in `/etc/crypttab`
   about the root filesystem. Since Calamares itself ignores the
   (previous wording of) message, it was confusing. #1811
 - *packages* module has some support for reporting progress while
   the packages are installed. This depends on the package-manager itself
   reporting useful progress information **and** the *packages* module having
   support-code to interpret that progress. A proof-of-concept for `pacman`
   has been implemented. #1582
 - *partition* has a number of edge-cases for LVM and LUKS resolved. #1564 #1817
 - *partition* module once again always offers `/boot` as a mount-point, even
   when EFI would want `/boot/efi`. (Thanks Phil)
 - *summary* had a regression and showed some descriptive texts twice.


# 3.2.45 (2021-10-31) #

This release contains contributions from (alphabetically by first name):
 - Evan James (new contributor, welcome!)

## Core ##
 - New internal convenience functions from Evan

## Modules ##
 - *packagechooser* now displays screenshots nicely-scaled
   rather than jagged. (#1807)
 - *partition* module removes ZFS partitions directly. At install-time,
   we think that the partitions should be handled separately from a
   zpool that potentially includes those partitions. (Thanks Evan)
 - *services-systemd* supports timers, e.g. for weekly trim on SSDs.
   (Thanks Evan)


# 3.2.44.3 (2021-10-04) #

This is not a hotfix release, but a tiny-tiny incremental improvement
that fixes one hugely annoying -- user-facing message presenting
bytes as mebibytes -- bug in the partition module.

## Modules ##
 - The *partition* module now consistently uses the configured EFI
   partition size (defaults to 300MiB).
 - Internal changes in the *summary* module to increase consistency
   between *summary* and *summaryq*.


# 3.2.44.2 (2021-09-27) #

This release contains contributions from (alphabetically by first name):
 - Corey Lang (new contributor, welcome!)

This is a hotfix for a typo -- not a syntax error -- that affects the
*networkcfg* module. Reported and fixed by Corey.


# 3.2.44.1 (2021-09-24) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma

This is a hotfix for a typo -- not a syntax error -- that affects the
*initcpiocfg* module. Reported and fixed by Anke.


# 3.2.44 (2021-09-24) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Shrinivas Vishnu Kumbhar (new contributor, welcome!)
 - whorfin (new contributor, welcome!)

## Core ##
 - "Log spam" has been reduced a little in the partitioning module.

## Modules ##
 - *initcpiocfg* has had a number of internal code-fixes, and now adds
   the `consolefont` hook by default as well. (Thanks Shrinivas)
 - Both *locale* and *keyboard* have received some tweaks for configurations
   in India; unless the user selects otherwise, English is preferred.
 - The *luksbootkeyfile* module was reported to be too quick to declare
   a timeout when applying the keyfile. The timeout has been increased
   to one minute. (Thanks whorfin)
 - *networkcfg* tries harder to find the live-user login for re-working
   networking settings. This fixes a regression on FerenOS, where the
   installer was crashing because it could not find the live-user login.


# 3.2.43 (2021-09-17) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Joe Kamprad

## Core ##
 - Translations have been made more consistent. In particular, some *OK*,
   *Yes*, *No* and *Cancel* buttons that were previously untranslated
   or "stuck" in the language that Calamares started in, are now
   changed to the current language as selected in the welcome page.
 - Documentation improvements from Joe Kamprad. A *sizeLimit* of zero
   (which is the default if nothing is set in the branding configuration)
   disables log uploads.

## Modules ##
 - The *keyboardq* module (QML-based UI for keyboard-layout-selection)
   now features an interactive keyboard preview and has the
   layout adjusted. (Thanks Anke)


# 3.2.42 (2021-09-06) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Artem Grinev
 - Nico 'dr460nf1r3' (new contributor, welcome!)
 - Waneon Kim (new contributor, welcome!)

## Core ##
 - No core changes yet

## Modules ##
 - BTRFS partitions are no longer listed as "check in phase 2" in
   the *fstab* module. (Thanks Nico)
 - The *keyboard* module (and *keyboardq*) now pick an English layout
   (with Rupee) for keyboards when the language is English and locale is India,
   rather than Hindi layout.
 - The *localeq* module had the i18n.qml rewritten to make it easier
   to customize. A bug in the layout has been fixed, and the overall
   look has been updated.
 - *networkcfg* now translates the "live user" on an ISO to the regular
   user on the installed system, so that network configuration changes
   made in the live system are automatically used after installation. #1755
 - *partition* no longer allows you to delete an extended partition with
   children (which led to crashes). #1749 (Thanks Artem)
 - *partition* complains in more detail about the state of the UEFI
   boot partition (under manual partitioning schemes). #1761
 - *welcome* can now check multiple URLs to determine if internet connectivity
   is available. It is still recommended to check the distro home-page or
   some special "ping" page of the distro, although that has some privacy
   implications; using example.com or google.com may work as well. Listing
   multiple URLs will ping each of them in turn until one succeeds. #1669
 - The work to make a QML version available for all view modules is almost
   completed. Two new QML modules have been added *packagechooserq* and *summaryq*.
   Summaryq brings the option to present the summary page in a customizable
   way, with a bit more of a contemporary look. Packagechooserq adds the option
   to preselect an item and displays all options in one overview.
   (Thanks Anke)


# 3.2.41.1 (2021-08-05) #

This is a hotfix release for a crash in the *partition* module, reported on
KDE neon. #1746


# 3.2.41 (2021-07-31) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Camilo Higuita

## Core ##
 - The (re)translation framework has been internally re-vamped to be
   less resource-intensive and to work with all QObjects, not just
   widgets. Consumers of the translations framework are expected to
   set up the event filter on the top-level widget(s) manually. Since
   Calamares and the Calamares-test-applications have been adjusted already,
   no further action is needed.

## Modules ##
 - When the *keyboard* module is activated, it no longer replaces
   an explicit user choice (e.g. for a Belgian layout) by a guessed-for-
   this-language layout (e.g. Danish if you're installing in Danish).
 - Logic for handling installation lists has been moved around in the
   *packages* module so that package managers can, in principle,
   adjust how to handle critical and non-critical package lists.
 - In the *partition* module, translation code has been simplified.
 - The *usersq* module has had a fair bit of QML rewritten to make it easier
   to customize the colors used by the module in a consistent way.
   (Thanks Anke)
 - *Welcome* now uses a translated message from the Config object,
   increasing the sharing between widgets- and QML-modules.


# 3.2.40 (2021-07-14) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Anubhav Choudhary (SoK success!)
 - Emmanuel Arias (new contributor! welcome!)
 - Erik Dubois
 - Jerrod Frost (new contributor! welcome!)
 - Jia Chao (new contributor! welcome!)
 - Joe Kamprad
 - Lisa Vitolo (blast from the past!)
 - Omer I.S. (new contributor! welcome!)

In project news, chat (instant-messaging) communications has largely
moved to Matrix and Libera.Chat. CI notifications -- issues and build
results -- are sent to Matrix only.

## Core ##
 - The CMake modules for consumption by external modules (e.g. the
   calamares-extensions repository, but also any other modules built
   by distro's for internal use) now support consistent skip-module
   behavior and reporting. #1641 (one tiny part of this change)
 - In global storage, the *filesystem_use* key now has an API in
   libcalamares to systematically mark filesystem (types) as "in use"
   or not. This, in turn, means that modules can depend on that information
   for other work (e.g. removing drivers for unused filesystems). #1635
 - The "upload log file" now has a configurable log-file-size. (Thanks Anubhav)

## Modules ##
 - *bootloader* can now install an aarch64 (ARM) compatible EFI GRUB. (Thanks Jia)
 - *displaymanager* example configuration has been shuffled around a bit,
   for better results when the live image is running XFCE. Also lists
   more potential display managers. #1205 (Thanks Erik)
 - *keyboard* now switches on an alternate `en_US` keyboard layout when
   Arabic or Hebrew is selected as primary layout. (Thanks Omer)
 - *localeq* now has a fully functional offline option (alongside the default
   interactive map option, which requires internet).
 - The *netinstall* module can now fall back to alternative URLs when
   loading groups data. The first URL to yield a non-empty groups
   collection is accepted. No changes are needed in the configuration. #1673
 - *packagechooser* can now integrate with the *packages* module; that
   means you can specify package names to install for a given selection,
   and the regular package-installation mechanism will take care of it.
   Legacy configurations that use *contextualprocess* are still supported.
   See the `packagechooser.conf` file for details. #1550
 - A long-neglected pull request from Lisa Vitolo for the *partition*
   module -- allowing to set filesystem labels during manual partitioning --
   has been revived and merged.
 - The *partition* manager has had a long-standing bug with partition-flags
   and manual partitioning resolved. This may help resolve some installation
   issues on UEFI systems. #1724
 - *usersq* is further implemented and can now be used for a successful install.
   Not all warning messages available in the regular users module are implemented.


# 3.2.39.3 (2021-04-14) #

A minor bugfix tweak release. Since this contains yet **another**
autologin-related fix, and there is nothing large enough to justify
a 3.2.40 release yet, add it to the growing tail of 3.2.39. (Reported
by Joe Kamprad, #1672). Also fixes a regression from 3.2.28 in
localized packages (e.g. *package-LOCALE* did not work).


# 3.2.39.2 (2021-04-02) #

This is **another** hotfix release for issues around autologin ..
autoLogin, really, since the whole problem is that internal capitalization
changed. An unrelated bug in writing /etc/default/keyboard was
also fixed. (Reported by pcrepix, #1668)


# 3.2.39.1 (2021-03-30) #

This hotfix release corrects a regression in the *displaymanager*
module caused by changes in the *users* module; autologin was
internally renamed and no longer recognized by the *displaymanager*
module. (Reported by Erik Dubois, #1665)


# 3.2.39 (2021-03-19) #

This release contains contributions from (alphabetically by first name):
 - Matti Hyttinen

## Core ##
 - A *packages* service has been added to the core, for use by
   *netinstall* module and any others that need to set up
   package information for the *packages* module.

## Modules ##
 - The *mount* module has gained a configurable setup for btrfs volumes.
   If your distro has a default-to-btrfs setup, it can skip the hard-
   coded setup (which Calamares has had for a long time with @home
   and similar) and introduce a custom btrfs configuration through the
   `mount.conf` file. See issues #1659 and #1661 for warnings about
   using this in production.
 - *netinstall* now supports fallbacks for the groups data.
   Instead of a single URL, multiple URLs may be specified in
   a list and Calamares goes through them until one is successfully
   retrieved. Older configurations with a single string are
   treated like a one-item list. #1579
 - The *usersq* module now connects to the internal configuration
   object and may be usable for regular installations.


# 3.2.38.1 (2021-03-15) #

This hotfix release is for this item in the release notes of 3.2.38:
 - The .desktop file for Calamares now makes a longer trip, calling
   `sh -c "pkexec calamares"`; distributions may still need to adjust.
The change had been lost while updating other files. It has been restored
in `calamares.desktop` and `calamares.desktop.in`. (Reported by Erik)
Other minor changes and fixes:
 - presets in the *users* module show the hostname, too,
 - translations update for Korean, Ukranian and Chinese (zh_TW).


# 3.2.38 (2021-03-14) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Anubhav Choudhary
 - Neal Gompa

## Core ##
 - Uploading your log files (in case of installation failure) has been
   expanded and is now more configurable. Users should still take care
   when uploading logs, and distro's should configure a URL with
   no public viewing of those logs. (Thanks Anubhav)
 - The .desktop file for Calamares now makes a longer trip, calling
   `sh -c "pkexec calamares"`; distributions may still need to adjust.

## Modules ##
 - A new QML-based *finishedq* module has been added. (Thanks Anke)
 - The *packages* module no longer supports *urpmi*; no Calamares-
   consumers with that package manager seem to exist. (Thanks Neal)
 - The *users* module now can set a fixed username and prevent editing.
   The *presets* configuration entry in `users.conf` can set a *loginName*
   and a *fullName* and (independently) enable or disable editing of
   that value. You can, for instance, set *loginName* to "manjaro" if
   you like; the user can change it afterwards. You could set the
   *loginName* to "oem" and prevent editing it as well. #942


# 3.2.37 (2021-02-23) #

This release contains contributions from (alphabetically by first name):
 - benne-dee

## Core ##
 - Calamares has a table of 'best guess' languages for each country
   and when GeoIP is enabled, it will automatically select that
   country's language as default -- the user can of course pick
   a different one. The 'best guess' is based on Unicode / ISO
   data, which is sometimes dubious. Based on some personal notes,
   the 'best guess' language for Belarus has been changed to Russian.
 - Calamares has a table of 'best guess' keyboard mappings,
   allowing native language input. However, usernames and
   passwords should be in US-ASCII (this is a limitation of
   the login system -- **some** parts of the system will support
   non-ASCII input, but it's better safe than sorry).
   Add Greek to the list of languages that needs US-ASCII
   in addition to native input.
 - The CI infrastructure now builds Calamares and Calamares-extensions
   on a nightly basis.

## Modules ##
 - The *netinstall* module has a YAML schema, allowing packagers
   to validate and verify their netinstall configurations before
   shipping an ISO (or writing bug reports). Thanks benne-dee.
 - The *finished* module has been heavily refactored, opening
   the way to a QML-based version of the same module. This is
   also preparatory work for allowing packagers (e.g. PostmarketOS)
   to customize the messages on the finished page.


# 3.2.36 (2021-02-03) #

This release contains contributions from (alphabetically by first name):
 - Anubhav Choudhary
 - benne-dee
 - Gaël PORTAY
 - Jonas Strassel
 - Kevin Kofler
 - Matti Hyttinen
 - Neal Gompa

## Core ##
 - It is now possible to hide the *next* and *back* buttons during
   the "exec" phase of installation. Thanks Anubhav.
 - The Calamares CI has migrated to GitHub actions. Thanks Jonas.

## Modules ##
 - *bootloader* now uses the current file names for the UEFI Secure Boot
   shim instead of obsolete ones.
 - The *mount* module creates swap in its own subvolume, if btrfs is used.
   Thanks Matti.
 - *partition* includes more information about what it will do, including
   GPT partition types (in human-readable format, if possible). Thanks Gaël.
 - Some edge-cases with overlay filesystems have been resolved in the
   *partition* module. Thanks Gaël.
 - During the creation of filesystems and partitions, automounting is
   turned off (if DBus is available, and the host system supports
   KDE Solid automount control). This should reduce the number of
   failed installations if automount grabs partitions while they are
   being created. The code is prepared to handle other ways to control
   automount-behavior as well.


# 3.2.35.1 (2020-12-07) #

This release contains contributions from (alphabetically by first name):
 - Anubhav Choudhary
 - Matti Hyttinen

Some strange string artifacts appeared, leading to `{1?}` being
displayed in various user-facing messages. These have been removed
and the translations updated.

## Modules ##
 - The *initcpiocfg* module would sometimes configure the system to ask
   for a passphrase, when none is needed.


# 3.2.35 (2020-11-30) #

This release contains contributions from (alphabetically by first name):
 - Clarissa Borges
 - Matti Hyttinen

A new kind of issue template has been added for Calamares,
for reporting (and adding tests for) usability issues. Thanks
to Clarissa for leading that effort.

## Core ##
 - No core changes yet

## Modules ##
 - The *partition* module now supports a not-full-disk-encryption setup,
   where `/boot` is not encrypted, but the rest of the system is.
 - The *plasmalnf* module has been substantially rewritten, so that it
   can support a QML version of the module in future. The UI has changed
   a little, and now displays more themes than before.


# 3.2.34 (2020-11-16) #

This release contains contributions from (alphabetically by first name):
 - Artem Grinev
 - Gaël PORTAY

## Core ##
 - No core changes yet

## Modules ##
 - The *keyboard* module had a regression in which it no-longer painted
   the keycaps in the keyboard preview. (reported by Vinnie)
 - The *plasmalnf* module did not set all of the look-and-feel values
   in the target system. (reported by Bluestar Linux)
 - In the *users* module, warnings about the strength of the password
   are now correctly pluralized when possible.
 - In the *users* module, if ICU is installed, the user's full name is
   automatically transliterated to US-ASCII (for some locales; this will
   need tweaking) so that the login name is acceptable. (Thanks Artem)


# 3.2.33 (2020-11-09) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Andrius Štikonas
 - Artem Grinev
 - Gaël PORTAY
 - Matti Hyttinen
 - TTran Me

## Core ##
 - Calamares now sets the C++ standard for compilation to C++17; this
   is for better compatibility and fewer warnings when building with
   modern KDE Frameworks and KPMcore 4.2.0.
 - Vietnamese translations have been added. Welcome! (Thanks TTran)

## Modules ##
 - The *initcpiocfg* module should support plymouth with encryption
   now. (Thanks Matti)
 - The *keyboard* and *keyboardq* modules now share backend code
   and handle non-ASCII layouts better (for setting passwords
   and usernames). (Thanks Artem)
 - Various cleanups and documentation improvements in the *partition*
   module, and configurable GPT name for swap. (Thanks Gaël)
 - A long-standing bug related to GPT partition flags in the
   *partition* module has been resolved. #1327 #1267
 - The *users* module now has a more detailed way to specify
   user groups -- which may be system groups rather than user-GIDs.
   A new option in each group can require that the group already
   exists in the target system, allowing for better consistency checks
   with the squashfs. #1523


# 3.2.32.1 (2020-10-17) #

This is a release to address source-incompatible changes in KPMcore 4.2.0,
which was released just before Calamares 3.2.32 and had not yet been
compile-tested. There is also one changed message in the translations,
reported by Yuri Chornoivan.


# 3.2.32 (2020-10-16) #

This release contains contributions from (alphabetically by first name):
 - Fabian Tomat
 - Gaël PORTAY

## Core ##
 - When doing GeoIP lookups, Calamares pretends to be Firefox.
   This resolves an issue where the GeoIP provider was refusing
   QNAM connections with the default User-Agent.
 - New translation available, Friulian. Welcome!

## Modules ##
 - The *netinstall* module has some tricky configuration files;
   it now complains about more cases of bad syntax or poor structure.
 - The *partition* module can now be constrained to work only with
   a particular kind of partition table. (thanks Gaël)
 - The *partition* module is a little more resilient to variations
   in btrfs notation from os-prober.
 - The *shellprocess* module now supports having a different progress
   message (other than "Shell Processes Job") through the config file.


 # 3.2.31 (2020-10-06) #

This release contains contributions from (alphabetically by first name):
 - Corentin Noël
 - kadler15 (new contributor! hi!)

## Core ##
 - At the start of the *exec* phase, an overview is given of the
   various job weights, which allows you to tweak the overall
   progress reporting during the installation.
 - Problems with running Calamares on a 1-core single CPU have been resolved.

## Modules ##
 - The *keyboard* module now recognizes Turkish "F" layout and
   will set the vconsole keyboard layout correctly even if xkb
   keymaps are not found.
 - The *machineid* module, which generates UUIDs for systemd and dbus
   and can generate entropy files (filled from `/dev/urandom` in the host
   system) now supports more than one entropy file; generate them as needed
   (or copy a fixed value to all, depending on *entropy-copy*). Deprecate
   *entropy* (which generates a specific output file) as too inflexible.
 - In the *partition* module, swap can now be chosen as *file*, which is
   **not** create a swap partition, but write a `/swapfile` in the root
   directory, 512MiB large, and set that as swap. There is as yet no
   "smarts" about the size of the swap file.
 - Multiple problems in the *partition* module around partition
   sizing have been resolved by Corentin Noël.
 - The *preservefiles* module documentation did not match the functionality,
   and when used, didn't work right. #1521 (thanks kadler15)
 - Progress reporting from the *unpackfs* module has been revamped:
   it reports more often now, so that it is more obvious that files
   are being transferred even when the percentage progress does not
   change.
 - The *unpackfs* module now supports a *weight* setting for each
   of the unpack entries. For a single entry this does not matter,
   but if there are multiple entries it allows tweaking the relative
   progress between each entry.


# 3.2.30 (2020-09-03) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Asif Mahmud Shimon
 - Manzoor Ahmed Munawar
 - Sai Kamal
 - Victor Ibragimov

This release has two giant source-code changes that have no effect
on functionality, but do touch each and every source file:
 - SPDX headers for licensing information, following the standard
   set by REUSE.software ; all source files and resources have
   SPDX-License-Identifier information and copyright notices. All
   of the boilerplate texts have been removed.
 - Calamares coding style has been mechanically applied to the entire
   codebase. This was already done to most of it, but there were
   some hold-outs.

## Core ##
 - Network access status is deprecated in Qt 5.15's QNetworkAccessManager,
   and was not useful already in some previous versions. Replace its
   use in the Calamares network service by testing-it-ourself directly
   via a synchronous ping. (Thanks to Asif)
 - New Telugu translation. (Thanks to Sai)
 - Urdu translation started. (Thanks to Manzoor)
 - Timezones translated in Tajik and Russian. (Thanks to Victor)

## Modules ##
 - *keyboardq* and *localeq* improvements. (Thanks to Anke)
 - *users* module did not set up autologin properly. This is yet another
   regression left over from 3.2.28. (Reported by Phil and pcrepix, #1498)
 - *welcome* module now sets the *LANG* key in the locale configuration
   (which is shared with the *locale* module and consumed by the
   *localecfg* module). This makes it feasible to drop the *locale*
   module and still set the installed system's language to the language
   selected in Calamares. (Reported by FerenOS)


# 3.2.29 (2020-08-20) #

This release contains contributions from (alphabetically by first name):
 - Asif Mahmud Shimon (new contributor! hi!)

## Core ##
 - Edge case in extracting string-lists from YAML, reported and fixed
   by Asif (#1491).
 - Progress reporting is now more flexible. Modules can have a weight
   assigned to them in the descriptor; module instances can have a weight
   assigned which overrides the module descriptor. When jobs are run
   for a module instance, the jobs report progress pro-rated by the
   module's weight. Or in other words, it is now possible to tweak
   the amount of the overall progress bar that different modules fill.
   The default settings give unpackfs a weight of 12. (#1176)

## Modules ##
 - The *users* module did not read the *defaultGroups* correctly.
   Fixed by the string-lists change mentioned above.


 # 3.2.28.3 (2020-08-18) #

Another hotfix, for more issues reported by Marco Obaid. Users
were not having a password set (#1489)


# 3.2.28.2 (2020-08-12) #

A second hotfix, for autologin support -- the autologin group was not
created in the target system before assigning the user to it. Reported
by Marco Obaid.


# 3.2.28.1 (2020-08-10) #

This is a hotfix release for #1482 and #1483, where no user was
created during installation and a chmod was failing (resulting in
a failed installation). Reported by Jonathan Riddell.

With incidental improvements in SPDX tagging (code licensing)
and some new icon options for the welcomeq and localeq modules.


# 3.2.28 (2020-08-09) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - apt-ghetto
 - Victor Ibragimov

## Core ##
 - A new object *Network* is available to QML modules in `io.calamares.core`.
   It exposes network status through the *hasInternet* property.
 - Welcome to Tajik translations. The Tajik language has quickly reached
   100% completion. Thanks Victor!
 - Welcome to [Interlingue](https://en.wikipedia.org/wiki/Interlingue).
   The translation is at an early stage. Qt does not support language
   code *ie* though, so it may take some time to be integrated (much
   like Esperanto wasn't supported until Qt 5.12).

## Modules ##
 - The *locale* module has been completely redone on the inside.
   Users should see no changes. #1391
 - The *localeq* module uses the redone internals of the locale module.
   It can now be used to set timezone, language and locale information
   and is a suitable alternative module. Thanks to Anke Boersma who did
   the work of figuring out maps. Note that the map uses several GeoIP
   and GeoData providers and you may need to configure the URLs
   with suitable usernames for those services. #1426
 - Both *locale* and *localeq* can now be configured to use the system's
   timezone setting -- this can be useful to avoid both hard-coding an
   initial zone and doing extra GeoIP lookups, in the case where the
   live system already does so. #1391
 - The *locale* and *localeq* modules have additional machinery for
   timezone lookups; please report cases where clicking on the map
   returns an obviously bogus timezone (up until this release, for
   instance, Cape Town).
 - The *users* module no longer accepts `root` as a username. #1462
 - The *keyboardq* module is now more inline with the look of the rest
   of the Calamares modules, use of a background image is removed.
 - The *grubcfg* module now understands `/etc/default/grub.d`. #1457


# 3.2.27 (2020-07-11) #

This release contains contributions from (alphabetically by first name):
 - Gaël PORTAY
 - Vitor Lopes (new! welcome!)

## Core ##
 - QML modules with no surrounding navigation -- this is basically a
   special case for full-screen Calamares -- now have margins suitable
   for full-screen use.
 - PythonQt modules are increasingly on the way out.

## Modules ##
 - The Manjaro package manager *pamac* has been added to those supported by
   the *packages* module.
 - The *netinstall* module has had some minor UI tweaks.
 - Partitioning now tries harder to avoid floppy drives.


# 3.2.26.1 (2020-06-23) #

This is a hotfix release for undefined behavior caused by an
uninitialized integer variable. It includes new translations
and features as well since those arrived independently.

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Gaël PORTAY

## Core ##
 - Welcome to Azerbaijani translations. These are available
   in two variations, *Azerbaijani* and *Azerbaijani (Azerbaijan)*.
   [Wikipedia Azerbaijani](https://en.wikipedia.org/wiki/Azerbaijani_language#North_vs._South_Azerbaijani)
   has a nice overview.
 - Warnings while building with Qt 5.15 have been much reduced.

## Modules ##
 - *partitioning* has one case of undefined behavior (UB) due
   to a missing integer-initialization. (Thanks Gaël)
 - *keyboardq* QML module now works correctly. (Thanks Anke)


# 3.2.26 (2020-06-18) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Gaël PORTAY
 - Pablo Ovelleiro Corral
 - Philip Müller

## Core ##
 - The default branch for Calamares source repositories (calamares
   and calamares-extensions) is now *calamares*.
 - External modules can now be built again, outside of the Calamares
   source and build-tree.
 - The repository *calamares-tools* has been removed. The idea behind
   the tooling was to provide schema validation for Calamares configuration
   files. This has been merged into the primary repository, where it
   is now part of the test suite.

## Modules ##
 - *locale* put some more places into the correct timezone **visually**;
   for instance Norfolk Island gave up UTC+11.5 in 2015 and is now
   UTC+11, but Calamares still showed it in a zone separate from UTC+11.
 - *localeq* can now properly switch between on & offline mode,
   it detects internet status through js.
 - *packages* gained support for the Void Linux package manager,
   *xbps*. (thanks Pablo)
 - *tracking* now supports kuserfeedback configuration.
 - *welcomeq* added the GEOIP configuration option, so locale can be
   initially set according to IP address.


# 3.2.25 (2020-06-06) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Callum Farmer
 - FLVAL
 - Gaël PORTAY

## Core ##
 - The slideshow in `branding.desc` can be configured with QML (recommended,
   as it has been for the past umpteen releases) or with a list of
   images (new).
 - It is possible to turn off all the new QML code -- navigation, slideshow,
   QML-based modules -- with a single `-DWITH_QML=OFF` at CMake time.
   This removes QML from Calamares' dependency footprint (but only saves
   200kB in Calamares itself).
 - Tests have been extended and now support a tests/CMakeTests.txt file
   for fine-tuning tests for Python modules.
 - SPDX identifiers are used much more widely and consistently in Calamares.
   (thanks Callum)

## Modules ##
 - The QML based *welcomeq* module is now a viable alternative to the
   *welcome*(widgets based) module. Using QML files means it no longer
   is needed to have pop-up windows for additional information or warnings,
   all loads in the Calamares window itself.  Additional features include the
   option to customize the *About* info and load files like Release Notes
   direct into Calamares, QML files added to the branding directory can be used.
 - The *welcome* and *locale* modules that do GeoIP lookup can now also
   use "fixed" style; this just negates the GeoIP lookup and substitutes a
   constant (fixed) value; useful for testing specific locales.
 - The *keyboard* module no longer uses *ca_eng* keyboards in Canada by
   default, but sticks to the *us* keyboard. #1419


# 3.2.24 (2020-05-11) #

This release contains contributions from (alphabetically by first name):
 - Bill Auger
 - Gaël PORTAY
 - Luna Jernberg
 - Philip Müller

## Core ##
 - There is now a bash-completions script for Calamares; turn on
   the (CMake-time) option INSTALL_COMPLETION to get it. (Thanks Gaël)
 - The *productWallpaper* setting is documented and works. (Thanks Bill)
 - GlobalStorage is available to QML modules as `Global`.
 - The height of the navigation bar in QML can be set within the
   QML code for the navigation; if not set, try something sensible.
 - A regression in the requirements-checker which could block the
   installer from proceeding without telling the user **why** it
   was blocked, has been resolved.

## Modules ##
 - The *bootloader* module can force a UEFI-based machine to boot into
   the newly-installed system. #1394 (Thanks Gaël)
 - *partition* Pop-ups about boot flags use the right flag names. #1192


# 3.2.23 (2020-04-17) #

This release contains contributions from (alphabetically by first name):
 - FLVAL

## Core ##
 - Some strange annotations were added to the *About* dialog text in
   all the translations, like `{1?}`. These have been removed again.

## Modules ##
 - *locale* module had some errors in timezone data, where clicking
   on a city would select a different timezone. Some of these are
   now fixed (thanks FLVAL). #1374
 - *netinstall* supports a wider variety of package naming schemes,
   and is more flexible in loading a `netinstall.yaml` that is copied from
   the example configuration file, *groups* key and all. #1369
 - *users* module logs a full error message from libpwquality if something
   is wrong internally.


# 3.2.22 (2020-04-08) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Camilo Higuita

## Core ##
 - Both the sidebar (on the left) and the navigation buttons (along the
   bottom of the window) can now be configured to use the traditional
   *widgets*, to use *qml*, or *hidden* from view (hiding the navigation
   is not recommended unless you have a pure-QML UI to run inside
   Calamares). The example QML that is compiled into Calamares has
   been improved. To use your own QML, put files `calamares-sidebar.qml`
   or `calamares-navigation.qml` into the branding directory.
 - The sidebar and navigation can now be placed on any side of the
   main window. This is probably only useful for QML-based UIs.
   See `branding.desc` for details.

## Modules ##
 - The *welcomeq* module has been improved with better layout and
   nicer buttons in the example QML form. (Thanks to Anke Boersma)
 - The *keyboardq* and *localeq* modules now provide some QML for
   configuring these parts, although they are still very primitive.
 - *netinstall* has had some minor layout fixes.
 - *unpackfs* has much more detailed progress reporting and no
   longer jumps around strangely in overall progress.
 - *partition* now correctly marks a partition as bootable in BIOS + MBR
   installs. #1175


# 3.2.21 (2020-03-27) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Camilo Higuita
 - Gabriel Craciunescu
 - Gaël PORTAY

## Core ##
 - Python job modules (such as *unpackfs* or *packages*) can now provide
   a `pretty_status_message()` function, like the existing `pretty_name()`
   function, that is used to update the status during install. #1330
 - QML support-modules and objects are now registered into the io.calamares
   namespace. This affects modules using Calamares models inside their
   QML UI (at this point, very few). With this release, the necessary
   `import` for Calamares parts looks like
   > ```import io.calamares.ui 1.0```
   A complete list of objects available from Calamares van be found in the
   documentation in `Qml.h`.
 - The sidebar (which shows overall progress in the installation) is now
   more configurable: the branding key *sidebar* controls it. The sidebar
   can be shown as a widget (default, as it has been), hidden, or use a
   new QML view which is more easily customised.
 - A new `settings.conf` key *quit-at-end* will automatically close
   Calamares (by clicking on the *Done* button) when the end of the
   sequence is reached. If *finished* is the last module in the sequence,
   this will run whatever it is configured for; you can also leave out
   the finished page and Calamares will close after the exec parts.

## Modules ##
 - *packages* now reports more details in the installation progress-bar.
 - *netinstall* module supports an `expanded` key, which will pre-expand
   a group (as if the user had pressed the arrow-button in the tree-view).
   This only affects the UI, and only the **outermost** level of groups.
 - *netinstall* module now supports a special value for *groupsUrl*.
   Setting this to *local* will read the groups directly from the
   configuration file.
 - *netinstall* groups now support a new key `immutable` which prevents
   their check-state from being changed (they are shown, or hidden,
   as usual and can be expanded).
 - Modules that use QML need a new import line. The QML file for the
   module is configured through new keys *qmlSearch* and *qmlFilename*
   (previously those were without the `qml` prefix, which invites name
   collisions). The full module identifier is also used as a filename,
   so that multiple instances of a module can use different QML files.
 - *partition* module has a number of new features and settings for
   type, UUID, and filesystem characteristics. Thanks to Gaël.


# 3.2.20 (2020-02-27) #

This release contains contributions from (alphabetically by first name):
 - Bart Ribbers

## Core ##
 - When logging level is set to 8 (eight), for instance via the `-D8`
   logging flag, or the `-d` debug flag, the *Show debug information*
   button will appear in the progress view. This helps with debugging
   issues where the `-d` flag would be inappropriate.
 - Calamares now starts at logging level 1 (warnings and errors to
   the console) by default. Previously it (wrongly) started at level 8.

## Modules ##
 - The *partition* module now stores which filesystems are in use in
   global storage.
 - The *contextualprocess* module now understands "compound variable
   names", where a dot (.) is used to index into structured data
   stored in global storage. This allows it to use the map stored
   by the partition module (but also other things, like looking into
   the branding information).
 - The *packages* module now understands "apk", the Alpine Linux
   package manager.


# 3.2.19.1 (2020-02-24) #

This is a hotfix release for bugs in the *users* module.
Reported by Philip Mueller and Walter Lapchynski.

## Modules ##
 - The *users* module no longer wrote `/etc/hostname` at all.
 - The *users* module erroneously shows the root password input fields.
 - The *initramfs* module sets a resume-hook even when there is no swap.
 - The partitioning service expects *udevadm* in `/sbin`, but some
   distro's place it elsewhere.
 - The mount service didn't unmount directories properly, leading to
   blocked installations.


# 3.2.19 (2020-02-21) #

This release contains contributions from (alphabetically by first name):
 - Anke Boersma
 - Camilo Higuita
 - Gabriel Craciunescu

## Core ##
 - *Assamese* translation has been completed.
 - Translations are now loaded from more places: instead of **only**
   being compiled in to the Calamares executable, they can now be
   read from the current directory (when Calamares is run in developer
   mode) and from the application data directory.This allows updating the
   translations without requiring a recompile: helpful for translators
   and possibly for distributions with their own translation style.
   See the translators and deployers wiki for details.
 - A new `ViewStep` base class, `QmlViewStep`, has been added that loads
   a configurable QML file and plays it. This is used by the new *notesqml*
   module -- which is in itself a minimal wrapper around the same that
   adds only a translatable module name.

## Modules ##
 - The *machineid* and *users* modules now prefer high-quality random
   data from `/dev/urandom` rather than pseudo-random data. #1254
 - A new *notesqml* module supports loading QML. This can be used for
   "fancy" release notes as a QML application, rather than a webview
   or text widget. Note that this does not replace the slideshow-during-
   installation module.
 - The *users* module now has knobs for setting the hostname and writing
   the `/etc/hosts` file. The new configuration options are documented
   in `users.conf`. #1140
 - Multiple *netinstall* modules can exist side-by-side, and they each
   control the package installation for their part of the package list.
   Previously, a netinstall module would overwrite all of the package
   configuration done by other netinstall modules. Translations can be
   provided in the configuration file, `netinstall.conf`. #1303
 - The *fstab* module no longer "claims" all the swap partitions it finds
   on disk. It only uses swap specified for the current installation.
   This means that "replace" and "alongside" installations will have
   no swap configured in the target system.


# 3.2.18 (2020-01-28) #

This release contains contributions from (alphabetically by first name):
 - Bill Auger

## Core ##
 - *Assamese* translation has been added (still in preliminary state).
 - Timezone support code has migrated into the core of Calamares. This
   means that modules now have easier access to timezone information.
   Translations for timezones have also been enabled, so it is **possible**
   at least to translate the displayed zones in the *locale* module.
 - Branding can now specify whether to (try to) display the Calamares window
   in the middle of the desktop or not. The *windowPlacement* key in
   `branding.desc` specifies *center* or *free* placement.

## Modules ##
 - All modules can now set a new key in `module.desc` called *noconfig*.
   If this key is set to `true` (the default is `false), no configuration
   file is searched-for or loaded, and no warning is printed if the
   configuration is missing. This should tidy up some unnecessary warnings
   on startup. #1302 #1301
 - The *license* module has seen a significant change to its looks.
   Actions are now labeled more clearly, and the URL (or filename)
   for each license is displayed.
 - The *locale* module now supports translations for timezone and
   location names (e.g. "Berlin" is "Berlijn" in Dutch).
 - *Packagechooser* is a little more careful with displaying
   default and empty package names. (thanks to Bill Auger)
 - The *unpackfs* module now carries a larger weight in the overall
   progress of the installation, which should resolve downstream reports
   like "progress stops at 24% for a long time". This is currently
   hard-coded, but will become configurable in a future release. #1176


# 3.2.17.1 (2019-12-02) #

This is a hotfix release for a bug in the grubcfg module.
Reported by Philip Mueller and Erik Dubois.

## Modules ##
 - The *grubcfg* module had a typo in it that made installations fail.


# 3.2.17 (2019-11-28) #

This release contains contributions from (alphabetically by first name):
 - Bill Auger

## Core ##
 - A translation "string freeze" is now enforced by the release scripts.

## Modules ##
 - A new module, *hostinfo*, places information about the host into
   Global Storage. This can support contextualprocess modules that
   need that information.
 - The password-checks in the *users* module are now ordered consistently.
   A new check *nonempty* can be used to explicitly check for a non-empty
   password. This was previously hard-coded. If you have no other
   password-requirements set (e.g. minimum-length) and rely on
   Calamares to filter out empty passwords, add this check.
 - The *grubcfg* module has a new configuration setting *keepDistributor*
   which prevents replacing the `GRUB_DISTRIBUTION` line when writing
   the new configuration. #1201
 - *packagechooser* documentation has been updated.
 - *welcome* module now works better with dark themes.
 - The *license* module could get into a confused state, now fixed. #1271


# 3.2.16 (2019-11-01) #

This release contains contributions from (alphabetically by first name):
 - Bill Auger

## Core ##
 - Some obscure build scenarios which would lead to bogus module-is-
   misconfigured messages on startup have been resolved.

## Modules ##
 - The explanatory messages on the *users* page have moved to tooltips,
   and placeholder text has been added to the fields. #1202
 - The bad-password messages in the *users* page have been improved. #1261
 - Password-checking in the *users* module has been substantially
   changed. A new key *allowWeakPasswords* can be used to introduce
   an additional checkbox to the page, which can then be used to
   switch off strict password checking. (Thanks to Bill Auger)
 - The icons used in password warnings on the *users* page have been
   changed to the colorful status icons (rather than the thin red X).


# 3.2.15 (2019-10-11) #

This release contains contributions from (alphabetically by first name):
 - No other contributors this time around.

## Core ##
 - No changes to core functionality

## Modules ##

 - *displaymanager* module now treats *sysconfig* as a regular entry in the
   *displaymanagers* list, and the *sysconfigSetup* key is used as a
   shorthand to force **only** that entry in the list. #1253
 - *machineid* module has been re-written in C++ and extended with
   a new configuration key to generate urandom pool data. #1252
 - *unpackfs* now supports a special *sourcefs* value of `file`
   for copying single files (optionally with renaming) or directory
   trees to the target system.
 - *unpackfs* now support an *exclude* and *excludeFile* setting for
   excluding particular files or patters from unpacking. #1229


# 3.2.14 (2019-09-30) #

This release contains contributions from (alphabetically by first name):
 - Andrius Štikonas
 - Harald Sitter

## Core ##
 - No changes to core functionality

## Modules ##

 - *locale* module no longer recognizes the legacy GeoIP configuration.
   This has been deprecated since Calamares 3.2.8 and is now removed.
 - *packagechooser* module can now be custom-labeled in the overall
   progress (left-hand column). #1228
 - *displaymanager* module now recognizes KDE Plasma 5.17.
 - *displaymanager* module now can handle Wayland sessions and can detect
   sessions from their .desktop files. #1247 #1248
 - *unpackfs* now has special handling for *sourcefs* setting "file"
   (so you can copy single files or directories that are on the source
   system, directly to the target). #1188 #1181


# 3.2.13 (2019-08-30) #

This release contains contributions from (alphabetically by first name):
 - Arnaud Ferraris
 - Arnaud Rebillout
 - Bill Auger
 - Kevin Kofler

## Core ##

- The Calamares standard coding style -- embodied in `ci/calamaresstyle`
  has had a few updates and has now been consistently applied across
  the core codebase (e.g. libcalamares, libcalamaresui, calamares, but
  not the modules).
- *KCoreAddons* is now a required dependency. This lets us drop a chunk
  of code that was copied from KCoreAddons years ago, and use the
  (maintained!) upstream version instead. It also gives us KMacroExpander
  everywhere, which will simplify code for handling substitutions
  in configuration files.
- *Slideshows* now have a new property *activatedInCalamares* which
  controls the keyboard shortcuts (and can control timers and other
  properties of the slideshow, too).

## Modules ##

- The *packagechooser* module can load data from the config-file,
  from AppData XML files referred by the config-file, and (new) also
  from AppStream caches by referring to an application's AppStream id. #1212
- The *partition* module now understands the units *KB*, *MB*, *GB* which
  are powers-of-ten sizes, alongside the powers-of-two sizes that it already
  used. (thanks to Arnaud)
- The *welcome* module now supports a *Donate* button if *showDonateUrl*
  is set to a non-empty URL. #1197
- The *welcome* module can have URLs for the various buttons configured
  directly in the module configuration (rather than in `branding.desc`).


# 3.2.12 (2019-08-07) #

This release contains contributions from (alphabetically by first name):
 - apt-ghetto
 - Bill Auger
 - embar

## Core ##

 - Preliminary work to allow jobs to have a *weight* assigned to them
   has been added. This will allow the progress bar to better reflect
   progress by the amount of work done rather than purely by the
   number of jobs. (Thanks to Bill Auger)
 - Preliminary work has been added to post the installation log to a
   pastebin for bug reporting. (Thanks to Bill Auger)
 - Support for translated human-readable strings in Calamares
   config files has been added. This is used only in the *packagechooser*
   module (see below) but will expand to those modules that need
   user-visible strings from the configuration file (existing
   solutions need either gettext or Qt support).
 - Esperanto is now available when Qt version 5.12.2 or later is used.

## Modules ##

 - *fstab* A new configuration key *efiMountOptions* has been added, to
   allow setting filesystem options specifically for the EFI partition.
   (Thanks to apt-ghetto)
 - *packagechooser* is a new module for low-density package choices,
   e.g. for selecting a default desktop environment, or adding some
   proprietary drivers, or chosing browsers of office suites. It presents
   **one** collection of items -- at most ten or so, because of the UI --
   and the user can select zero or more of them. The behavior is
   configurable, and package information can be set through the Calamares
   configuration file or by reading AppData files for the packages. #426


# 3.2.11 (2019-07-06) #

This release contains contributions from (alphabetically by first name):
 - No other contributors this time around.

This is a security release with no functional changes (except for
improved security) relative to 3.2.10. The Calamares team would like
to acknowledge the help of the following people in reporting and
understanding the issues (alphabetically by first name):
 - Kevin Kofler
 - Seth Arnold
 - Simon Quigley
 - Thomas Ward
Both CVE's have been resolved.

## Core ##

No core changes.

## Modules ##

 - *initramfs* could create an initramfs with insecure permissions.
   Since the keyfile is included in the initramfs, an attacker could
   read the file from the initramfs. #1190 CVE-2019-13178
 - *luksbootkeyfile* created a key file where a window of opportunity
   existed where the key file could have too-lax file permissions.
   #1191 CVE-2019-13179


# 3.2.10 (2019-06-28) #

This release contains contributions from (alphabetically by first name):
 - No other contributors this time around.

Distributions are **advised** to check the slideshow they use for the
installation step; changes in loading and translation mechanisms may
require changes in the slideshow.

## Core ##

 - With this release, option *WITH_PYTHONQT* changes default to **off**.
   There does not seem to be any serious use of the PythonQt API and
   the UI opportunities it offers, so begin the process of deprecating
   and removing that. Sometime in the future, QML pages will fill the
   gap for easily-prototyped-yet-slick UI elements.
 - A crash when no *finished* page (or rather, no page at all) is
   configured after the last *exec* section of the sequence has been
   solved. The *finished* page can be left out (but then you don't get
   the restart-now functionality). #1168
 - The *slideshow* which is run during installation now has API versions.
   API version 1 (the default) runs as before, where the slideshow is loaded
   when the installation starts. API version 2 loads the slideshow on
   Calamares startup, thus improving responsiveness. Documentation
   in `src/branding/README.md`. #1152
 - The example slideshow now uses API version 2.

## Modules ##

 - *initramfs* has been changed from a Python module to a C++ module.
   Packaging will need to adjust now it installs a .so instead of a .py.
   The module itself functions as before. It does have a new configuration
   option, to change the version passed as to the `-k` option of
   update-initramfs. #1180
 - *partition* Now has its own setting for *requiredStorage*, duplicating
   the same setting in the *welcome* module. This is useful for
   configurations where no *welcome* module is used, but a minimum
   size must be checked anyway. #1169


# 3.2.9 (2019-06-03) #

This release contains contributions from (alphabetically by first name):
 - Kevin Kofler

## Core ##

No user- or deployer-visible changes. Bugfixing as usual, see the
milestone for details.

## Modules ##

 - *branding* now supports os-release variables in the *strings* section,
   which allows re-using (at runtime) information set in /etc/os-release .
   This requires KDE Frameworks 5.58. #1150
 - *branding* allows the use of FreeDesktop.org icon names for the
   *productLogo* and *productIcon* keys. If a file is named there, then
   the file is used, and otherwise the icon is looked up in the current
   theme. #1160
 - *packages* On Arch, with the `pacman` package manager, avoid a hang
   during system update. #1154
 - *welcome* allows a custom image path or icon name to be set for the
   language-selection drop-down (instead of the international standard one).


# 3.2.8 (2019-05-10) #

This is a **source-incompatible** release of Calamares. Include files
have been shuffled around, so third-party C++ modules will need
adjustment to the changed names.

This release contains contributions from (alphabetically by first name):
 - Arnaud Ferraris
 - Kevin Kofler

## Core ##

 - All user-visible texts referring to "MB" and "GB" now use the standard
   "MiB" and "GiB" wording, which matches what we were actually calculating
   with (i.e. 2^20 and 2^30 respectively). #1129
 - The side-pane, which shows the list of steps that will be executed,
   now tries to fit the text (name of each module) into the available space
   by shrinking the font as needed. #1137
 - *libcalamares* (accidentally) linked with Qt's GUI libraries when
   PythonQt was found. This led to the odd situation where the non-GUI
   Calamares library depends on a bunch of GUI libraries.
 - *libcalamares* The `utils/` subdirectory has been hugely refactored,
   with functionality split out into separate files. C++ modules will
   need to have their `#include` names updated. Basically, users of
   `utils/CalamaresUtils.h` will need to include the header file for
   the functionality that is actually used.

## Modules ##

 - *finished* has a new mechanism for configuring the behavior of the
   *restart now* button. The old-style boolean configuration is still
   supported but generates a warning. #1138
 - *locale* module GeoIP configuration has a new preferred format.
   See `locale.conf` for details. The old configuration is still
   supported but will be phased out before 3.3.0 -- in particular,
   support for "legacy" format will be removed, since that was a
   crutch for the disappearance of one GeoIP provider in 2018.
 - *oemid* is a new module for configuring OEM phase-0 (image pre-mastering,
   or pre-deployment) things. It has limited functionality at the moment,
   writing only a single batch-identifier file. #943
 - *welcome* can now do GeoIP lookups as well (but be careful with the
   configuration, since you need a GeoIP that provides country information,
   not just timezones). This will let Calamares select a starting language
   that matches where it is -- which might not be useful at all. #934
 - All Python modules now bail out gracefully on (at least some) bad
   configurations, rather than raising an exception. The pre-release
   scripts now test for exceptions to avoid shipping modules with
   ImportError or SyntaxError results.


# 3.2.7 (2019-04-27) #

This is a **hotfix** release for regressions introduced in the
Python modules. The *localecfg* module was unusable because of
a missing `import`.


# 3.2.6 (2019-04-25) #

This release contains contributions from (alphabetically by first name):
 - Arnaud Ferraris
 - Dominic Hayes (feren)
 - Raul Rodrigo Segura (raurodse)

## Core ##

 * Under-the-hood code cleanups in lots of parts of the core. Calamares now
   builds without warnings when Clang 8 is used.
 * A new *disable-cancel-during-exec* setting provides more fine-grained
   control than *disable-cancel*, which hides the button entirely.
   #1122 (Thanks to Dominic, FerenOS)
 * A branding module can now also cause a stylesheet to be loaded, which
   will be applied to the widgets inside Calamares. #961 (Thanks to Raul)

## Modules ##

 * All of the Python-based modules now have translations enabled. #991
 * *Displaymanager* module has improved support for LightDM configuration.
   #1123 (Thanks to Dominic, FerenOS)
 * *License* module can now display local files inline, and scrolls to
   allow longer lists of licenses and to support long license texts
   displayed inline. #1124 #1125 #1052
 * *Partition* module has additional checks for validity partition layouts.
   #1127 (Thanks to Arnaud)
 * *Welcome* module has improved usability: a standard icon
   alongside the *Language* label, for improved recognition,
   and improved language-list display and sorting. #1107


# 3.2.5 (2019-04-15) #

This release contains contributions from (alphabetically by first name):
 - Arnaud Ferraris
 - Dan Simmons
 - Gabriel Craciunescu

## Core ##

 * View modules (in C++) can now perform their own requirements-checking
   to see if installation makes sense. This expands upon the existing
   requirements checks in the welcome module (RAM, disk space, ..).
   The checks have been made asynchronous, so that responsiveness during
   requirements-checking is improved and the user has better feedback.
 * Support for building an AppImage of Calamares has been added to the
   `ci/` directory. There are use-cases where a containerized build and
   configuration make sense rather than having Calamares installed in the
   host system. (Thanks to the AppImage team, Alexis)
 * OEM mode (phase-1) now correctly refers to Calamares as a "Setup Program"
   rather than an installer. #1100 (Thanks to Arnaud)

## Modules ##

 * *Bootloader* module: a serious bug introduced in 3.2.4 which prevents
   succesful boot after installation on EFI machines, has been repaired.
   (Thanks to Gabriel) #1104
 * *Displaymanager* module: it is no longer a fatal error to not have any
   display-managers. #1095
 * *Partition* module: it is now possible to build without libparted. Since
   KPMCore may not need this library anymore, it is a dependency that will
   be dropped as soon as it is feasible. Add this to the CMake flags:
   `-DCMAKE_DISABLE_FIND_PACKAGE_LIBPARTED=ON`
 * *Partition* module: the location that is selected for the bootloader,
   no longer changes when a new partition is created. #1098
 * Python modules: several modules have had translations added. This is
   usually only visible when the module runs as part of the *exec* step,
   when the module's *pretty name* is displayed. In addition, some error
   messages are now translated.
 * *UnpackFS* module: improved progress reporting and tests. #565


# 3.2.4 (2019-02-12) #

This release contains contributions from (alphabetically by first name):
 - Alf Gaida
 - aliveafter1000
 - Arnaud Ferraris
 - Caio Jordão Carvalho
 - Collabora LTD
 - Gabriel Craciunescu
 - Kevin Kofler
 - Philip Mueller
 - Scott Harvey

## Core ##

 * The Calamares application now recognizes the `-X` or `--xdg-config`
   option, which adds XDG_DATA_DIRS to the places used to find QML
   and branding directories, and XDG_CONFIG_DIRS to the places used
   to find the global settings and module configurations. This allows
   a more fine-grained, and more layered, approach to setting up
   Calamares configurations (in particular, distro's can **add**
   configuration files and give them priority, instead of **forking**
   configuration files).
 * The *branding* file now contains settings that control the size
   and resize behavior of Calamares. See the branding file for
   more documentation. In particular, the setting *windowExpanding*
   can be set to *normal*, *fullscreen* or *noexpand*.
 * The `settings.conf` file can now configure whether the *Cancel* button
   is shown (this isn't a branding thing, because it's quite fundamental
   to the workflow of the installer).

## Modules ##

 * The *partition* module supports RAID devices, but only when Calamares
   is compiled with the newest KPMCore release (3.3.0).
 * The calculation of required space -- including swap -- has been simplified,
   and Calamares no longer reserves 2GiB of space in calculations for internal
   use (this means that it no longer mysteriously drops swap when the disk
   size is close to the required installation size).
 * The name of the type of default filesystem (e.g. ext4 or btrfs) is now handled
   case- and localization-insensitively. This means that *btrfs* is now always
   an acceptable spelling.
 * The currently-selected disk device is remembered between manual partitioning
   and the partitioning-overview pages. (Thanks to Arnaud)
 * *partition* There is new support for partitioning layout presets.
   See `partition.conf` for documentation and details.
 * The *keyboard* module now handles the (bogus) Austrian keymap for
   the system console properly. (Thanks to Kevin)
 * The *preservefiles* module now has a mechanism for setting the permissions
   (and ownership) of preserved files. (Thanks to Scott)
 * New module *fsresizer* can be used to resize filesystems. It is intended
   for use in OEM installs where an image of fixed size is created,
   and then sized to the actual SD card the user has used.
 * The *mount* module now handles missing *extraMounts* and *extraMountsEfi*
   keys gracefully (this is probably a misconfiguration, though, and gives a
   warning).
 * The *packages* module now supports pre- and post-script options
   for all operations, not just during install (keep in mind that
   these run as three separate shells, though).
 * A new *rawfs* module supports straightforward copying of filesystems from
   the installation media to the target stystem. This can be used, for instance,
   for block-level-identical installations.


# 3.2.3 (2019-01-09) #

This release contains contributions from (alphabetically by first name):
 - aliveafter1000

## Core ##

There are no core changes in this release.

## Modules ##

 * *partition* Fixed bug where, during detection of existing systems, the
   existing system partitions may be mounted and then files deleted.
   This is a **limited** version of the patch from aliveafter1000
   that will be in 3.2.4, which tries harder to mount filesystems
   read-only and unmodifiable.
 * *locale* It was possible to set the installer and system language
   (e.g. to German) while the global storage value for *locale*
   remained set to English. Then no localization packages are installed
   (see feature `${LOCALE}` in `packages.conf`). Reported downstream
   in Netrunner.


# 3.2.2 (2018-09-04) #

This release contains contributions from (alphabetically by first name):
 - Andrius Štikonas
 - artoo@cromnix.org
 - Caio Jordão Carvalho
 - Harald Sitter
 - Philip Müller
 - Simon Quigley
 - Walter Lapchynski

## Core ##

 * Example configurations are **no longer installed** by default.
   The default setting for *INSTALL_CONFIG* has changed. Distributions
   are strongly encouraged to write their own configuration files and
   not rely on the example configuration files. Example configurations
   may change unpredictably.
 * It is now possible to express module dependencies through the
   *requiredModules* key in `module.desc`. All of the required modules
   for a given module must occur in the sequence **before** the module
   requiring them. None of the core modules use this facility.
 * The search paths for QML files, branding descriptors and module
   descriptors have been revamped and now self-document in the log.
 * A new `ci/RELEASE.sh` script has been added to streamline releases;
   it is not guaranteed to work anywhere in particular though.

## Modules ##

 * When multiple modules are mutually exclusive, or don't make sense
   to enable concurrectly, a new `USE_<foo>` framework has been added
   to CMake to simplify the selection of modules. This is in addition
   to the existing `SKIP_MODULES` mechanism.
 * Various off-by-one-sector errors in the automatic partitioning
   mode have been corrected. In addition, swap space is calculated
   a little more conservatively.
 * A new module has been added to the core which can configure openrc
   services. To make services configuration consistent:
   - The *services* module has been **renamed** *services-systemd*,
   - The openrc module is named *services-openrc*,
   - At CMake time, it is possible to select all of the services modules,
     or one specific one, by setting the *USE_services* CMake variable.
     By default, all of the modules are built and installed.
 * The systemd-services module can now disable targets and mask both
   targets and services (which will allow you to break the system with
   a bad configuration). The configuration is a little more flexible
   because a service (or target) name can be used on its own with
   sensible defaults.
 * The displaymanager module has been entirely revamped. A long-standing
   bug which ignored the settings for default desktop has been fixed
   (thanks to Walter Lapchynski). Translations have been added to the
   error messages. Each DM now has an implementation class for doing
   all the configuration steps it needs. This groups the code needed for
   a specific DM (and presumably, per-distro) in one place.
   Distro's are **strongly advised** to re-test their DM configuration
   and installation with the revamped code.

# 3.2.1 (2018-06-25) #

This release contains contributions from (alphabetically by first name):
 - Bill Auguer
 - Gabriel Craciunescu
 - Phil Mueller
 - Raul Rodrigo Segura

## Core ##

 * Qt 5.7 is now the minimum required Qt version. Because KPMCore
   (a fairly fundamental dependency) requires Qt 5.7, Calamares
   has followed suit.
 * New testing application `loadmodule` for loading and running a
   single Calamares module.
 * New translations Belarussian and Korean.
 * Jobs can now be *emergency jobs* which run even after a failure.
 * Improved debugging when modules fail to load.
 * Bad configuration files will now cause the user-interface of
   Calamares to display an error message, rather than silently
   ignoring some configuration errors. This will certainly cause
   problems for distributions with sloppy configurations.

## Modules ##

 * New module preservefiles, keeps (log) files around after install;
   this duplicates functionality with the unmount module, but unmount
   is very late, rather limited, and fragile.
 * Interactiveterminal module now disables itself if build requirements
   are not met, rather than blocking the build.
 * Fixes in the timezone map data make the southern hemisphere more
   usable and put Reykjavik in its place.
 * The packages module can now update the target system if explicitly
   told to do so.
 * More paths and executables are configurable in the bootloader module.
 * Distributions are advised to review the `users.conf` setup **again**,
   as some changes in version 3.2.0 caused regressions downstream.
 * Distributions are advised to review their `locale.gen` files
   **again**. Previous changes were too restrictive, matching only
   the specific format Chakra Linux uses. Calamares now preserves
   all the comment-lines in the file and writes enabled locales
   at the end, with a descriptive comment.

# 3.2.0 (2018-05-17) #

This release contains contributions from (alphabetically by first name):
 - Alf Gaida
 - AlmAck
 - Caio Jordão Carvalho
 - Frede H

## Modules ##

 * UI annoyances in the partitioning module were fixed; the
   mount-point selector is now more obvious when no mount-point
   has been chosen, and the mount-point and flags are preserved
   when (re)editing partitions.
 * The handling of `@@ROOT@@` substitution in shellprocesses was
   backwards; this has been fixed (the substitution is made when
   running in the **host**).
 * The user shell is no longer hard-coded to `/bin/bash`,
   but follows the default setting for useradd(8), e.g.
   those set in `/etc/default/useradd`.
