This update is the seventh in a series of regular updates on the state of the project.

Only changes that have been accepted and merged in Mobile NixOS are chronicled here. There’s always more work currently in-progress.

Notable changes

11 PRs were merged during the month. Changes are mostly cleanup and documentation related.

Documentation changes

The biggest change is the addition of an overview of the terms used to define a device (#148). This documentation section should help better understand how devices are composed.

The README (#138) as shown on GitHub has been reviewed to better guide users and contributors around the ecosystem, borrowing the organization of the main Nixpkgs README. Though the main reason for this change is that the README started to diverge with the documentation. Removing all examples and referring to the actual documentation files reduces the burden of maintaining multiple documentation fragments.

Code and architecture cleanup

Through some of the pull requests, a bunch of either dead, or ossified code was found and removed. The main user-facing change is the removal of device.info.

The device.info option was a mixed bag of misshapen, undefined options that were at the foundation of all device definitions. The replacement are discrete well-defined options that are defined in understandable categories. Systems define options that they use, making it easier to understand why an option is defined.

The main consequence of that change is that the current work-in-progress ports will need to be reviewed to use the new options.

As part of #155, additional cleanup was made in the first few commits.

New examples/hello system

While technically a new feature, the new examples/hello system (#155) is more of a first-user-experience "bugfix" than a useful new feature.

This introduces a new example system that can be cross-compiled entirely, and shows an interface to the end-user. This helps fix the biggest complaint about the project: the default build looks as if the system has stopped responding.

Though this is not actually fixing that complaint, it does not replace the default build output. Users making a new port, or testing an existing port, will rather be encouraged to first try building and using this example to confirm the port works.

 $ nix-build examples/hello --argstr device DEVICE-NAME -A build.default

A planned addition to this feature will be more features to test and validate support for different subsystems of the device. Currently this only tests the touchscreen (through requiring it for navigation) and validates the display shows the colours appropriately.

Additional highlights

Ports

No new port were made in May. There is still a total of 11 devices you can build for.