Calamares 3.2 Plan (Revised)

It’s a new year, and the Calamares 3.1 series has reached 3.1.12, and I’ve been saying that it’s time to switch to Calamares 3.2 development in earnest for some time now. Let’s revisit the Calamares 3.2 plan, and talk about the next three months.

There is a Calamares 3.2-rc2 in GitHub now. This release candidate includes:

  • all the features and bugfixes from the 3.1.x-stable branch,
  • better error reporting from Python modules,
  • new modules like KDE Plasma look-and-feel (optional, disabled automatically in the build if you don’t have Plasma development files; if enabled, you still need tools in the live environment), User Tracking (this allows you to configure various kinds of tracking during installation, letting the user choose – also for disabling any tracking),
  • KPMCore 3.3 is now required. This adds support for LVM partitioning, thanks to the work of Andrius Štikonas.

There is a bunch of small fixes and minor code improvements throughout the tree. Planned features before the final 3.2 release include:

  • Merging the requirements-checking branch, to make it possible for modules to impose requirements on the whole installer,
  • Adding the contextual-package-removal module,
  • Splitting umount into its two functional components, one preserving files from the live system, and one unmounting filesystems; this will probably be accompanied by switching the module to C++.

In terms of infrastructure, the script has been updated to install the right dependencies on KDE Neon, and setting up icecream and Qt creator is now hidden behind a --full-ide option.

But let’s turn back to the original plan for Calamares 3.2 and the outline of what needed to be done, written back then:

  • Rootless Calamares (e.g. not running as root) has not been worked on at all; at the same time, KPMCore has done a great deal of work to be able to run rootless, so progress has been made regardless. Accessibility has been addressed through a patch to Qt, which is unfortunately stalled in Qt’s bug tracker. So rootlessness for accessibility purposes is still desired. I don’t want to make any promises for rootless functionality before 3.2.0.
  • Additional translations, for the .desktop file and plain Python modules have been completely adopted. These are not very visible in the 3.1.x-stable branch because translations are only written and updated in master – this will require some more attention to how translations are run in future.
  • Additional requirements-checking is mostly implemented, although not yet merged to master. There are performance considerations still to be worked out, and moving checks from the welcome page to the requirements-checker for partitioning (or elsewhere).
  • Unifying Boost::Python and PythonQt modules has not been a priority, and has not been investigated. Not many distributions seem to have a complete PythonQt implementation that Calamares might use.

The next few months should see a return to releases from master as we grind through -rcs. I don’t expect a regular schedule, though, but rather releases based on merging feature-branches into master. I’m hopeful we can see a complete Calamares 3.2.0 release in March 2018.

Written on January 4, 2018