.. index:: Release notes; 2.2

.. _releases-2.2:

===========================================
PortableApps.com Launcher 2.2 release notes
===========================================

This release improves the runtime state saving mechanism which was introduced
in version 2.1, to improve stability and decrease the probability of portable
apps getting stuck in a non-functional state which could occasionally happen.
Several other minor but significant alterations have been made, as described
below. To normal portable app developers, there will be no apparent changes,
except for the desire that all apps now be checked for support of UNC paths.
More significant changes are underway for 3.0 (the next planned non-maintenance
release).

Mutex-based starting/stopping checks
====================================

The starting/stopping checks introduced in 2.1 were switched from using the
RuntimeData INI file to using mutexes. This change allows system-wide blocking
of apps in those phases, where the current method works installation-wide,
i.e. it will not work if you run the same app from different directories.

:env:`PAL:PortableAppsBaseDir` and ``$PortableAppsBaseDirectory``
=================================================================

A new pair of directory environment variables,
:env:`PAL:LastPortableAppsBaseDirectory` and
:env:`PAL:PortableAppsBaseDirectory`, have been added. These allow developers
to replace the path to all the PortableApps.com-related directories in a single
pass. (The variables are available for use in custom code also.)

UNC paths supported
===================

Running the launcher from UNC paths (i.e. unmapped network shares, of the form
``\\server\share\etc``) is now supported; however, because there is risk of
data corruption if an app doesn't take care of such paths correctly, for now
running portable apps from UNC paths will trigger a warning. It's up for each
developer to determine if their portable app supports UNC paths correctly and
set :ini-key:`[Launch]:SupportsUNC` accordingly.

In view of this change, app developers should avoid using
:env:`PAL:DriveLetter` as its value is meaningless on a UNC path. If you have a
case where you wish to use it, please :ref:`contact the PAL developers <help>`
and explain the situation, as they wish to gain an understanding as to what is
needed here.

Running from Program Files is now forbidden
===========================================

In former times portable apps would not always complain if they were run from
the system's Program Files directory, leading to quite a few support requests
over time where people had installed their portable apps to Program Files, not
realising that this wasn't supported and didn't work properly, wondering why it
wasn't working properly. This situation has now been remedied, and the
PortableApps.com Launcher will now forbid execution from the Program Files
directory (in line with a change in the PortableApps.com Installer forbidding
installation into this directory).
