0.3.1 Aug 23:
  o Replace wizard images with the rainbow mask. Closes #3425.
  o Update leap.common minimum version needed.
  o Set the standalone flag before it's being used. Fixes #3426.
  o Stop the twisted reactor adding the stop call to the call chain
    instead of stopping it directly. Fixes #3406.
  o Allow soledad initialization to retry if it times out. Closes:
    #3413
  o Activate window when setting it visible. Also display Hide/Show
    message in the tray icon taking into account the window
    activation. Fixes #3433.
  o Do not start IMAP daemon if mail was not selected among the
    services. Fixes #3435.
  o Reword RECONNECTING state of openvpn. Fixes #3429.
  o Improve OpenVPN detection by searching for a specific leap-only
    string in the command line. This makes it possible to run other
    VPN instances while also using EIP. Fixes #3268 and #3364.
  o OSX: Check for the tun.kext existence in /Library/Extensions
    instead of /System/Library/Extensions. Fixes #3271.
  o Use DELETE /1/logout to properly logout. Fixes #3510.
  o Make the poll interval bigger to improve openvpn's internal
    behavior. If it gets queried too many times per second, it's
    behavior won't be good. Fixes #3430.
  o Transforms usernames to lower case before they are used in the
    registration and authentication. Closes #3541.
  o Add filter option to the logger window. Closes #3407.
  o Add a preference panel that lets you change your password. Closes
    #3500 #2798 #3533.
  o Move all client code into its own namespace
    (leap.bitmask). Closes: #2959
  o Make mail fetch interval in imap service configurable via
    environment variable. Closes: #3409
  o Update to new soledad package scheme (common, client and
    server). Closes #3487.
  o Fetch incoming mail when mail client logs in. Closes: #3525
  o Add first draft of the UI for Encrypted Mail. Closes #3499.

0.3.0 Aug 9:
  o Add missing scripts does not stop if a command fails, also warns
    the user if there was an error. Closes #3294.
  o Replace 'Sign Out' with 'Log Out' and 'User' with
    'Username'. Closes #3319.
  o Verify cacert existence before using it. Closes bug #3362.
  o Properly handle login failures. Closes bug #3401.
  o Bugfix, avoid getting negative rates. Closes #3274.
  o Raise window when setting it as visible. Fixes #3374
  o Fail gracefully when the events port 8090 is in use by something
    else. Fixes #3276.
  o Validate the username in the login form against the same regexp as
    the wizard registration form. Fixes #3214.
  o Update text from the tray menu based on the visibility of the
    window. Fixes #3400.
  o Add check for outdated polkit file. Closes #3209.
  o Add support for multiple schemas so we can support multiples api
    versions. Closes #3310.
  o Rebrand the client to be named Bitmask. Feature #3313.
  o Add cancel button to login. Closes #3318.
  o Add multiple schema support for SMTP. Closes #3403.
  o Add multiple schema support for Soledad. Closes #3404.
  o Update Transifex project name and translators'
    documentation. Closes #3418.
  o Add check for tuntap kext before launching openvpn. Closes: #2906
  o Accept flag for changing openvpn verbosity in logs. Closes: #3305
  o Add imap service to the client. Closes: #2579
  o Add pyside-uic support inside the virtualenv. This way it won't
    fail to 'make' if the virtualenv is activated. Closes #3411.
  o Reintegrate SMTP relay module. Closes #3375
  o Reintegrate Soledad into the client. Closes #3307.
  o Support bundled gpg. Related to #3397.
  o Set the default port for SMTP to be 2013.
  o Display a more generic error message in the main window, and leave
    the detailed one for the log. Closes #3373.

0.2.4 Jul 26:
  o Use the provider CA cert for every request once we have it
    bootstrapped (TOFU). Closes #3227.
  o Make calls to leap.common.events asynchronous. Closes #2937.
  o Always logout when closing the app if the user previously signed
    in. Fixes #3245.
  o Make sure the domain field in provider.json is escaped to avoid
    potential problems. Fixes #3244.
  o Fix incorrect handling of locks in Windows so that stalled locks
    do not avoid raising the first instance of the app. Closes: #2910
  o Use traffic rates instead of totals. Closes #2913
  o Allow to alternate between rates and total throughput for the
    virtual interface. Closes: #3232
  o Reset rates/totals when terminating connection. Closes #3249
  o Fix a bug in the displayed magnitude for the up/down traffic rates
    and totals.
  o Force Cleanlooks style if we are running in a KDE environment, so
    that it doesn't load potentially incompatible Qt libs. Fixes
    #3194.
  o Wrap long login status messages to 40 characters. Fixes #3124
  o Workaround a segmentation fault when emitting a signal with its
    last parameter being None. Fixes #3083.
  o Added IS_RELEASE_VERSION flag that allows us to use code only in
    develop versions. Closes #3224.
  o Try to terminate already running openvpn instances. Closes #2916
  o Linux: Dynamically generate policy file for polkit. Closes #3208
  o Workaround some OpenVPN problems with priviledge dropping and
    routing. Fixes #3178 #3135 #3207 #3203

0.2.3 Jul 12:
  o Adapt code to Soledad 0.2.1 api.
  o Fix Main Window briefly display before the wizard on first
    start. Closes Bug #2954.
  o Bugfix: Remember should not be automatically set to
    checked. Closes #2955.
  o Bugfix: reload config if switching to a different provider. Closes
    #3067.
  o Bugfix: logger window's toggle button reflects window
    state. Closes #3152.
  o Set timeout for requests to 10 seconds globally, configurable from
    leap.util.constants. Fixes #2878.
  o Bugfix: display error message on registration problem. Closes
    #3039.
  o Make wizard use the main event loop, ensuring clean termination.
  o Use cocoasudo for installing missing updown scripts.
  o Bugfix: Systray Turn ON action fails because is not correctly
    enabled/disabled. Closes #3125.
  o Bugfix: wrong systray icon on startup. Closes #3147.
  o Bugfix: parse line return in the logger window. Closes #3151.
  o Do not log user data on registration. Fixes #3168.
  o Add --log-append eip.log to windows EIP launcher options to save
    the logs in case of any problems. Fixes #2054.
  o OSX: Make the install_path relative to the launcher path instead
    of absolute.
  o OSX: Fix icon display in cocoasudo.
  o OSX: Raise window when showing if running on OSX.
  o Bugfix: EIP status button moved to status panel.
  o Check if there is no gateway to use and display correct
    message. Close #2921.
  o Reorder tray icons according new design. Closes #2919.
  o Redirect stdout/stderr and twisted log to the logger. Closes
    #3134.
  o Improve LoggerWindow colors for easier debugging.
  o Move the key manager to its own repository/package.

0.2.2 Jun 28:
  o Add support for the kde polkit daemon
  o Handle 'Incorrect Password' exception (keyring)
  o Select the configured domain in the providers combo box. Closes
    #2693.
  o Remember provider along with the username and password. Closes
    #2755.
  o Close the app on rejected wizard. Closes bug #2905.
  o Only use the Keyring when it's using a known good backend. Closes
    #2960
  o Update implementation and semantics of the supported and available
    services by a provider. Closes bug #3032.
  o Only show the question mark for a check being done if the previous
    one passed. Fixes #2569.
  o Fix main client window not restoring after minimized into
    systray. Closes #2574
  o Set EIP different status icons depending on OS. Closes #2643.
  o Reimplement openvpn invocation to use twisted ProcessProtocol
  o Add runtime requirements checker, verifies that the requirements
    are installed and in its correct versions. Closes #2563
  o Add centraliced logging facility, log history in a window. Closes
    #2566
  o Improve wizard, hide registration widgets (labels, inputs, button)
    and only display a message. Closes #2694
  o Clarify labels through the app (use of EIP)
  o Check if the provider api version is supported. Closes feature
    #2774.
  o Autoselect VPN gateway based on timezone. Closes #2790.
  o Disable vpn disconnect on logout. Closes #2795.
  o Improve gateway selector based on timezone. It allows to use
    multiple gateways in openvpn for redundancy. Closes #2894.
  o Use cocoasudo in place of osascript for osx privilege escalation
    during openvpn launch.
  o Clicking in the tray icon will always show the context menu
    instead of activating the window under certain
    circumstances. Closes #2788
  o Autostart EIP whenever possible. Closes #2815
  o Update test suite, run_scripts and requirements to run smoothly
    with buildbot.
  o Add a copy of the processed requirements to util/
  o Display the default provider configured in the systray menu. Close
    #2813
  o Make the login steps be a chain of defers in order to be able to
    have more cancel points for the whole procedure. Closes #2571
  o Linux: check for up/down scripts and policy files and ask user for
    permission to install them in a root-writeable location. Used from
    within bundle or for broken installations.
  o Integrate SMTP-Relay into the client.
  o Integrate Soledad and KeyManager.
  o Move the KeyManager from leap.common to leap-client.
  o Only use one systray icon, repesenting the status for EIP. Closes
    #2762
  o Properly set the binary manifest to the windows openvpn
    binary. Closes #203
  o OSX: Add dialog with suggestion to install up/down scripts if
    these not found. Closes: #1264, #2759, #2249
  o Workaround for PySide breaking with multiple inheritance. Closes
    #2827
  o Refactor login to its own widget and remove Utils menu. Closes
    #2789
  o Refactor the status bits out of the MainWindow to its own
    StatusPanelWidget. Closes #2792
  o Save the default provider to be used for autostart EIP as
    DefaultProvider in leap.conf. Closes #2793
  o Cleanly terminate openvpn process, sending SIGTERM and SIGKILL
    after a while. Closes #2753
  o Use twisted's deferToThread and Deferreds to handle parallel tasks
  o Use a qt4 reactor for twisted, for launching leap twisted
    services.

0.2.1 May 15:
  o Rewrite most of the client based on the insight gained so far.
  o Deselecting the remember checkbox makes the app not populate
    user/password values on the login widget. Closes #2059
  o Rewording of setup steps in wizard, to make them more meaningful
    to the non-technical user. Closes #2061
  o Fix typo in wizard.
  o Fix multiple drawing of services if going back.
  o Make registration errors show in red.
  o Add a warning if EIP service needs admin password. Addresses part
    of #2062
  o Make traffic indicators display fixed precision. Closes #2114
  o Do not hide the application if the user right clicked the system
    tray icon.
  o Sanitize network-fetched content that is used to build openvpn
    command.
  o Avoids multiple instances of leap-client. Each new one just raises
    the existing instance and quits.
  o Use dark eip icons os osx. Closes #2130
  o Moves BaseConfig to leap.common.config. Closes #2164
  o Add handling for ASSIGN_IP state from OpenVPN in the mainwindow.
  o Emit events notifying of the session_id and uid after
    authentication so other services can make use of it. Closes #1957
  o Working packaging workflow with rewritten client, using
    pyinstaller and platypus.
  o Remove network checks temporarily until we find a good way of
    doing it, and a good way to deal with them.
  o Saves the token to allow token authenticated queries.
  o Turn "leap" into namespace package, move common files to
    leap_common package that can be shared by other LEAP projects.
  o Support standalone configurations for distribution in thumbdrives
    and the like.
  o Add support for requests < 1.0.0
  o Tests infrastructure, and tests for crypto/srpauth and crypto/srpregister.
  o Documentation updated for 0.2.1 release.
  o Docstrings style changed to fit sphinx autodoc format.
  o Add a simple UI to notify of pending updates.
  o Add Windows support.
  o Try to install TAP driver on Windows if no tap device is preset.