Changelog for PyInstaller 3.0 – 3.2.1
*************************************


3.2.1 (2017-01-15)
==================

* New, updated and fixed hooks: botocore (#2094), gi (#2347), jira
  (#2222), PyQt5.QtWebEngineWidgets (#2269), skimage (#2195, 2225),
  sphinx (#2323,) xsge_gui (#2251).

Fixed the following issues:

* Don't fail if working directory already exists (#1994)

* Avoid encoding errors in main script (#1976)

* Fix hasher digest bytes not str (#2229, #2230)

* (Windows) Fix additional dependency on the msvcrt10.dll (#1974)

* (Windows) Correctly decode a bytes object produced by pefile (#1981)

* (Windows) Package "pefile" with pyinstaller.  This partially undoes
  some changes in 3.2 in which the packaged pefiles were removed to
  use the pypi version instead.  The pypi version was considerably
  slower in some applications, and still has a couple of small issues
  on PY3. (#1920)

* (OS X) PyQt5 packaging issues on MacOS (#1874)

* (OS X) Replace run-time search path keyword (#1965)

* (OS X) (Re-) add argv emulation for OSX, 64-bit (#2219)

* (OS X) use decode("utf-8") to convert bytes in getImports_macholib()
  (#1973)

* (Bootloader) fix segfaults (#2176)

* (setup.py) pass option --no-lsb on GNU/Linux only (#1975)

* Updates and fixes in documentation, manuals, et al. (#1986, 2002,
  #2153, #2227, #2231)


3.2 (2016-05-03)
================

* Even the "main" script is now byte-compiled (#1847, #1856)

* The manual is on readthedocs.io now (#1578)

* On installation try to compile the bootloader if there is none for
  the current plattform (#1377)

* (Unix) Use "objcopy" to create a valid ELF file (#1812, #1831)

* (Linux): Compile with "_FORTIFY_SOURCE" (#1820)

* New, updated and fixed hooks: CherryPy (#1860), Cryptography (#1425,
  #1861), enchant (1562), gi.repository.GdkPixbuf (#1843), gst
  (#1963), Lib2to3 (#1768), PyQt4, PyQt5, PySide (#1783, #1897,
  #1887), SciPy (#1908, #1909), sphinx (#1911, #1912), sqlalchemy
  (#1951), traitlets wx.lib.pubsub (#1837, #1838),

* For windowed mode add "isatty()" for our dummy NullWriter (#1883)

* Suppress "Failed to execute script" in case of SystemExit (#1869)

* Do not apply Upx compressor for bootloader files (#1863)

* Fix absolute path for lib used via ctypes (#1934)

* (OSX) Fix binary cache on NFS (#1573, #1849)

* (Windows) Fix message in grab_version (#1923)

* (Windows) Fix wrong icon paramter in Windows example (#1764)

* (Windows) Fix win32 unicode handling (#1878)

* (Windows) Fix unnecessary rebuilds caused by rebuilding winmanifest
  (#1933)

* (Cygwin) Fix finding the Python library for Cygwin 64-bit (#1307,
  #1810, #1811)

* (OSX) Fix compilation issue (#1882)

* (Windows) No longer bundle "pefile", use package from pypi for
  windows (#1357)

* (Windows) Provide a more robust means of executing a Python script

* AIX fixes.

* Update waf to version 1.8.20 (#1868)

* Fix excludedimports, more predictable order how hooks are applied
  #1651

* Internal impovements and code clean-up (#1754, #1760, #1794, #1858,
  #1862, #1887, #1907, #1913)

* Clean-ups fixes and improvements for the test suite

**Known Issues**

* Apps built with Windows 10 and Python 3.5 may not run on Windows
  versions earlier than 10 (#1566).

* The multipackage (MERGE) feature (#1527) is currently broken.

* (OSX) Support for OpenDocument events (#1309) is broken.


3.1.1 (2016-01-31)
==================

Fixed the following issues:

* Fix problems with setuptools 19.4 (#1772, #1773, #1790, #1791)

* 3.1 does not collect certain direct imports (#1780)

* Git reports wrong version even if on unchanged release (#1778)

* Don't resolve symlinks in modulegraph.py (#1750, #1755)

* ShortFileName not returned in win32 util (#1799)


3.1 (2016-01-09)
================

* Support reproducible builds (#490, #1434, #1582, #1590).

* Strip leading parts of paths in compiled code objects (#1059, #1302,
  #1724).

* With "--log-level=DEBUG", a dependency graph-file is emitted in the
  build-directory.

* Allow running pyinstaller as user *root*. By popular demand, see
  e.g. #1564, #1459, #1081.

* New Hooks: botocore, boto3, distorm3, GObject, GI (G Introspection),
  GStreamer, GEvent, kivy, lxml.isoschematron, pubsub.core,
  PyQt5.QtMultimedia, scipy.linalg, shelve.

* Fixed or Updated Hooks: astroid, django, jsonschema logilab, PyQt4,
  PyQt5, skimage, sklearn.

* Add option "--hiddenimport" as an alias for "--hidden-import".

* (OSX): Fix issues with "st_flags" (#1650).

* (OSX) Remove warning message about 32bit compatibility (#1586).

* (Linux) The cache is now stored in "$XDG_CACHE_HOME/pyinstaller"
  instead of "$XDG_DATA_HOME" - the cache is moved automatically
  (#1118).

* Documentation updates, e.g. about reproducible builds

* Put back full text of GPL license into COPYING.txt.

* Fix crashes when looking for ctypes DLLs (#1608, #1609, #1620).

* Fix: Imports in byte-code not found if code contains a function
  (#1581).

* Fix recursion into bytes-code when scanning for ctypes (#1620).

* Fix PyCrypto modules to work with crypto feature ("--key" option)
  (#1663).

* Fix problems with "excludedimports" in some hook excluding the named
  modules even if used elswhere (#1584, #1600).

* Fix freezing of pip 7.1.2 (#1699).

* FreeBSD and Solaris fixes.

* Search for "ldconfig" in $PATH first (#1659)

* Deny processing outdated package "_xmlplus".

* Improvements to the test-suite, testing infrastructure and
  continuous integration.

* For non-release builds, the exact git revision is not used.

* Internal code refactoring.

* Enhancements and clean-ups to the hooks API - only relevant for hook
  authors. See the manual for details. E.g:

  * Removed "attrs" in hooks - they were not used anymore anyway.

  * Change "add/del_import()" to accept arbitrary number of module
    names.

  * New hook utility function "copy_metadata()".

**Known Issues**

* Apps built with Windows 10 and Python 3.5 may not run on Windows
  versions earlier than 10 (#1566).

* The multipackage (MERGE) feature (#1527) is currently broken.

* (OSX) Support for OpenDocument events (#1309) is broken.


3.0 (2015-10-04)
================

* Python 3 support (3.3 / 3.4 / 3.5).

* Remove support for Python 2.6 and lower.

* Full unicode support in the bootloader (#824, #1224, #1323, #1340,
  #1396)

  * (Windows) Python 2.7 apps can now run from paths with non-ASCII
    characters

  * (Windows) Python 2.7 onefile apps can now run for users whose
    usernames contain non-ASCII characters

  * Fix "sys.getfilesystemencoding()" to return correct values (#446,
    #885).

* (OSX) Executables built with PyInstaller under OS X can now be
  digitally signed.

* (OSX) 32bit precompiled bootloader no longer distributed, only
  64bit.

* (Windows) for 32bit bootloader enable flag LARGEADDRESSAWARE that
  allows to use 4GB of RAM.

* New hooks: amazon-product-api, appy, certifi, countrycode,
  cryptography, gi, httplib2, jsonschema, keyring, lensfunpy,
  mpl_toolkits.basemap, ncclient, netCDF4, OpenCV, osgeo, patsy,
  PsychoPy, pycountry, pycparser, PyExcelerate, PyGobject, pymssql,
  PyNaCl, PySiDe.QtCore, PySide.QtGui, rawpy, requests, scapy, scipy,
  six, SpeechRecognition, u1db, weasyprint, Xlib.

* Hook fixes: babel, ctypes, django, IPython, pint, PyEnchant,
  Pygments, PyQt5, PySide, pyusb, sphinx, sqlalchemy, tkinter,
  wxPython.

* Add support for automatically including data files from eggs.

* Add support for directory eggs support.

* Add support for all kind of namespace packages e.g.
  "zope.interface", PEP302 (#502, #615, #665, #1346).

* Add support for "pkgutil.extend_path()".

* New option "--key" to obfuscate the Python bytecode.

* New option "--exclude-module" to ignore a specific module or
  package.

* (Windows) New option "--uac-admin" to request admin permissions
  before starting the app.

* (Windows) New option "--uac-uiaccess" allows an elevated application
  to work with Remote Desktop.

* (Windows) New options for Side-by-side Assembly searching:

  * "--win-private-assemblies" bundled Shared Assemblies into the
    application will be changed into Private Assemblies

  * "--win-no-prefer-redirects" while searching for Assemblies
    PyInstaller will prefer not to follow policies that redirect to
    newer versions.

* (OSX) New option "--osx-bundle-identifier" to set .app bundle
  identifier.

* (Windows) Remove old COM server support.

* Allow override PyInstaller default config directory by environment
  variable "PYINSTALLER_CONFIG_DIR".

* Add FreeBSD support.

* AIX fixes.

* Solaris fixes.

* Use library modulegraph for module dependency analysis.

* Bootloader debug messages "LOADER: ..." printed to stderr.

* PyInstaller no longer extends "sys.path" and bundled 3rd-party
  libraries do not interfere with their other versions.

* Enhancemants to "Analysis()":

  * New arguments "excludedimports" to exclude Python modules in
    import hooks.

  * New argument "binaries" to bundle dynamic libraries in *.spec*
    file and in import hooks.

  * New argument "datas" to bundle additional data files in *.spec*
    file and in import hooks.

* A lot of internal code refactoring.

* Test suite migrated to pytest framework.

* Improved testing infrastructure with continuous integration (Travis
  - Linux, Appveyor - Windows)

* Wiki and bug tracker migrated to github.

**Known Issues**

* Apps built with Windows 10 and Python 3.5 may not run on Windows
  versions earlier than 10 (#1566).

* The multipackage (MERGE) feature (#1527) is currenty broken.

* (OSX) Support for OpenDocument events (#1309) is broken.
