25.05 Release notes

New features and highlights

  • New module services.iocs to deploy EPICS IOCs as systemd services.

    If you deployed EPICS IOCs manually by using systemd.services, or used the configuration epnix.nixos.services.ioc.config generated from the now deprecated IOC module system, read the IOC services NixOS guide.

  • New module environment.epics to configure EPICS parameters.

    This enables configuring the EPICS CA address list, in a single location, for every EPNix module, such as IOCs, Archiver Appliance, Phoebus services, etc.

    Read the EPICS environment NixOS guide for more information.

  • A new set of options in programs.phoebus-client enables you to configure the settings.ini of your Phoebus directly using Nix options, including colors and fonts. Read the Phoebus client NixOS guide for more information.

  • A multi-language formatter is now included in the new EPICS top template. Run nix fmt in your IOC to format your project with the same coding conventions as EPNix.

    To use it in existing EPICS top projects, add inherit (epnix) formatter; in the same block as overlays.default = ...;, and add a .clang-format file containing BasedOnStyle: WebKit.

  • Archiver Appliance was upgrade from 1.1.0 -> 2.0.5, see the Archiver Appliance 2.0.5 release notes. None of the breaking change should affect users of the services.archiver-appliance NixOS options.

Breaking changes

Phoebus

Phoebus was upgraded from 4.7.x to 5.0.x, which contains breaking changes:

Documentation

  • A revised sidebar, with common parts at the top, and sections that only apply to different user profiles

  • A revised introduction, and an explanation of Advantages / disadvantages, to better explain the project to newcomers

  • New Cheatsheet, with links to often used commands and documentation, also available in PDF

  • An explanation of all the files that can be found in the IOC template, in Template files

EPNix development

  • The documentation was converted from RST to Markdown to make it easier to contribute to

  • The default formatter for Nix code changed from Alejandra to Nixfmt (RFC style). If you had pending Pull Requests and rebasing them leads to merge conflicts, you can use the Mergiraf tool to help resolving those conflicts, then run nix fmt again.

  • Other languages are now formatted when running nix fmt in the EPNix repository, including Bash, C/C++, and Python