
Dear BornAgain users: we released version 22.1. Release 22.0 was skipped because we mishandled deployment to PyPI. So this is major release 22, the result of a long development cycle with deep internal restructuring and cleanup. Altogether, we now achieve improved stability and functionality with 15% less lines of source code. Some highlights: The auto-generated Python bindings were simplified, and are now ready for NumPy 2. NumPy 1 continues to be supported. Simulations now return a unified data type Datafield. Plot functions in module ba_plot were simplified and unified. Documentation is provided in the online reference, chapters “Data types” and “Plotting”. Time-of-flight off-specular neutron scattering is now supported by classes LambdaScan and QzScan. In the sample model, class Sample replaces Multilayer. Class Roughness is now an attribute of Layer. The roughness model has become more versatile. Beside the previous default, now called SelfAffineFractalModel, there is a LinearGrowthModel that propagates real-space features from lower to upper interfaces. Otherwise interface-interface cross correlations can be set as a separate model component. New classes TanhTransient and ErfTransient are 1:1 replacements for the previous enum-based syntax. On the downside, all GUI project files compatibility is broken. For upgrading Python scripts, we provide for the first time a tool: upgrade-21-to-22.py. This tool, however, will fail if it encounters certain plot commands or class constructors that have no one-to-one correspondence in the new API. Beware that the semantics of the Spheroid constructor has changed: The arguments are now Rxy and Rz instead of Rxy and H. For a full list of changes see the CHANGELOG. Windows users who are working in Pyenv or Conda environments please be advised that a bug in Python 3.10 may cause a crash when a Python script is imported to the GUI unless certain environment variables are set, see here and here. We recommend upgrading to Python 3.11 or newer. Because of Apple’s increasingly restrictive policies we gave up on producing binary installer packages (bundles) for macOS. Mac users need to build BornAgain on their own machine. This is done easiest by using a "formula" from our Homebrew "tap". The build process is then steered by the Homebrew package manager. Just be prepared that it may take an hour or longer. Best greetings from the maintainer team: Ammar Nejati, Mikhail Svechnikov, Joachim Wuttke