To 2.22.0
---------

This release stores newly generated configuration files in the repository root and changes the docker image to run as the ``ahriman`` user. Existing system-wide configuration files remain supported, so regular installations do not require manual intervention. Docker installations require data migration.

Regular installation
^^^^^^^^^^^^^^^^^^^^

Newly generated ahriman and devtools configuration files are stored below ``/var/lib/ahriman/.config/ahriman`` instead of system-wide configuration directories. Existing configurations continue to work without any changes.

However, it is recommended to migrate to the new configuration schema by doing the following steps:

#.
   Stop all ahriman services.

#.
   Remove the old generated configuration files. For example, for repository ``aur`` and architecture ``x86_64``:

   .. code-block:: shell

      sudo rm /etc/ahriman.ini.d/00-setup-overrides-x86_64-aur.ini
      sudo rm /usr/share/devtools/pacman.conf.d/aur-x86_64.conf

   Repeat this step for every configured repository. Do not remove manually maintained configuration overrides.

#.
   Run setup command (i.e. ``ahriman service-setup``) again with the same arguments as used before as the ``ahriman`` user.

#.
   Start the services again.

Docker installation
^^^^^^^^^^^^^^^^^^^

The repository root inside the Docker image has changed from ``/var/lib/ahriman/ahriman`` to ``/var/lib/ahriman``. Existing repository contents must therefore be moved one directory level up, and the volume must be owned by the ``ahriman`` user.

#.
   Stop all containers using the repository volume and create a backup.

#.
   Run a one-off container which mounts the existing volume. Replace ``VOLUME`` with the named volume or bind mount used by the installation:

   .. code-block:: shell

      docker run --rm --user root --entrypoint bash \
          --volume VOLUME:/var/lib/ahriman \
          arcan1s/ahriman:latest \
          -c 'find /var/lib/ahriman/ahriman -mindepth 1 -maxdepth 1 -exec mv -t /var/lib/ahriman -- {} + && rmdir /var/lib/ahriman/ahriman && chown ahriman:ahriman /var/lib/ahriman'

#.
   Update custom configuration and container arguments which refer to ``/var/lib/ahriman/ahriman``. The new path is ``/var/lib/ahriman``.

#.
   Start the containers again.

Please note, that some environment variables - ``AHRIMAN_FORCE_ROOT`` and ``AHRIMAN_REPOSITORY_ROOT`` - have been also removed and not supported anymore. ``AHRIMAN_POSTSETUP_COMMAND`` and ``AHRIMAN_PRESETUP_COMMAND`` are now executed as non-root user.
