===============================
 pyutilib.virtualenv CHANGELOG
===============================

-------------------------------------------------------------------------------
 4.6
-------------------------------------------------------------------------------

- Under development.

-------------------------------------------------------------------------------
 4.5.1
-------------------------------------------------------------------------------

- Bug fix to ensure that the proper branch is checked out.

-------------------------------------------------------------------------------
 4.5
-------------------------------------------------------------------------------

- Adding support for references to github repositories.  For example:
  root=https://github.com/PyUtilib/pyutilib.git#pyomo references the PyUtilib
  github repository with branch 'pyomo'.

-------------------------------------------------------------------------------
 4.4
-------------------------------------------------------------------------------

- Upgrading to virtualenv 1.11.6

- Updating the update command so that it first tries to run lbin and
  lpython to find pip and python before falling back on the system path.

- Updating 'update' script to pass named arguments to rebuild.py

-------------------------------------------------------------------------------
 4.3.4
-------------------------------------------------------------------------------

- Added a guard to prevent users from running vpy_create using an old
  version of virtualenv.

- Recreating vpy_install with virtualenv 1.11.4

- Patch to fix problem where vpy_install failed due to syntax error
  when running in offline mode.

- Cleaning up deprecated functions.

-------------------------------------------------------------------------------
 4.3
-------------------------------------------------------------------------------

- A rework of the vpy_install logic to work with virtualenv 1.11.
  This change bundles wheel files for pip, setuptools and virtualenv.
  These are stored in a zip file, which is included in the
  vpy_install.py file.

-------------------------------------------------------------------------------
 4.2
-------------------------------------------------------------------------------

- Fixed bugs when extra_env is None

- Fixes for preventing distribute from patching setuptools

- Setting upper limit on virtualenv for pyutilib.virtualenv

-------------------------------------------------------------------------------
 4.1
-------------------------------------------------------------------------------

- Hard-coding version of virtualenv used in the installer.

-------------------------------------------------------------------------------
 4.0.2
-------------------------------------------------------------------------------

- Removing the explicit installation of distribute.

-------------------------------------------------------------------------------
 4.0.1
-------------------------------------------------------------------------------

- Forcing the installation of distribute instead of setuptools

-------------------------------------------------------------------------------
 4.0
-------------------------------------------------------------------------------

- Fixing virtualenv so that it once again picks up the system site
  packages by default. This was accidentally broken when we upgraded
  the underlying virtualenv version to >1.6.4.

- Removing the —update and —offline options.

- Changing the package management to detect offline/online mode.

- Removed the use of monkey patching for pip/setuptools installation.

- Changed the order so setuptools or distribute come before pip.

- Deferring resolution of virtualenv binaries (python, easy_install,
  pip) until they are positively found (coopr —with-extras was
  failing because the binaries were not installed the first time
  the installer looked, and it was defaulting to the Windows binary
  naming).

- Adding a fallback from easy_install to pip.

-------------------------------------------------------------------------------
 3.3
-------------------------------------------------------------------------------

- Letting PIP fall back on easy_install (if PIP fails, e.g., for packages
  that only distribute eggs)

-  Overhaul to filenaming conventions within the source code:
    renaming installer.py → vpy_create.py
    updating vpy_create() to embed useful comments at the beginning of the generated installer.
    scripts/vpy_install now points to the main pyutilib/virtualenv/vpy_install.py
    updating vpy_create so that it can run without having to install pyutilib.virtualenv

- When pre-installing, force pip to ignore already-installed packages

- Switching vpy_install to use PIP instead of easy_install

- Adding the --pypi-url option to redirect the virtual environment
  setup process to a PyPI mirror

-------------------------------------------------------------------------------
 3.2
-------------------------------------------------------------------------------

- Disabling setuptools for Python 3.x

- Updating installer with new version of virtualenv.

- Adding logic to manage the installation of distribute.

-------------------------------------------------------------------------------
 3.1.1
-------------------------------------------------------------------------------

- Update to a new version of virtualenv.

- Forcing the inclusion of odict.py, to ensure that this script
  works for both python2 and python3.

-------------------------------------------------------------------------------
 3.1 
-------------------------------------------------------------------------------

- Various updates to the create_setup script
  . Removed logic for per-package MSI installers
  . Bug fix in directory specification
- Updated autodist script for the WST distribution
- Update virtualenv version

-------------------------------------------------------------------------------
 3.0
-------------------------------------------------------------------------------

- Many changes to support vpy_install under Python 3.x
  . Changed print commands to be functions
  . Changed exception handling to use sys.exc_info
  . Used urllib instead of urllib2
  . Import StringIO from io instead of StringIO
  . Used collections.OrderedDict? by default, if it is available
  . Translated output of urllib.open and subprocess.Popen

- Bug fix: use utf-8 as the encoding if sys.stdout.encoding is None.

- Explicitly converting parsed options into str() — as unicode strings
  can cause errors in some versions of Python (notably, 2.6.1 and 2.6.2)

-------------------------------------------------------------------------------
 2.9
-------------------------------------------------------------------------------

- Adding logic to allow an exit option.

- Adding message when installer aborts.

- Adding additional output when not aborting.

- Added the autodist.py utility.

- Added fixes to the autodist script for Windows compatibility.

-------------------------------------------------------------------------------
 2.8
-------------------------------------------------------------------------------

- Updating vpy_install to make sure the user doesn't try to install the
  virtualenv on top of the Python interpreter they are curring running.

- Adding debugging flag for vpy_install execution.

-------------------------------------------------------------------------------
 2.7
-------------------------------------------------------------------------------

- Updating the installer logic to be 'future proof'. Now, if we add
  new configuration attributes, they will be ignored. This allows
  us to create releases, update *.ini files, and not worry about
  whether the old installers still work…

- Defer the reading of config files until after ZIP files are opened up.

- Allow the —release option to be used with —preinstall.

-------------------------------------------------------------------------------
 2.6
-------------------------------------------------------------------------------

- Updates to get vpy_install closer to being compatible with Python 3.x.

- Update to the create-setup command to properly install to a python directory
  instead of the root C:

- Adding another function to control the process of getting packages.

- Changes to add a 'branch' option to configurations. When used with —trunk,
  this checks out the specified branch in the 'branches' directory.

- Adding a 'version' component to configurations, which can be used to
  specify a string that is evaluated to verify the Python version that
  is used.  For example:

    version=sys.version ≥ (2,5)

-------------------------------------------------------------------------------
 2.5
-------------------------------------------------------------------------------

- Adding create_setup script to create a Windows installer

- Updates due to a new version os virtualenv

- Adding the ability to define config files that reference other config files.

- The --without-externals flag ignores the external links.

- Reformatting with reindent.

- Disabled the use of subversion to guess revision numbers on windows.

- Allow 'distribute' and 'pip' to be included in the distribution.  This
  facilitates the installation on windows.

-------------------------------------------------------------------------------
 2.4.1
-------------------------------------------------------------------------------

- Adding some diagnostic output for the Python executable used
  to create the virtual Python environment.

-------------------------------------------------------------------------------
 2.4
-------------------------------------------------------------------------------

- Disabling the use of pythonw. This doesn't reliably work ... perhaps
  because of antivirus software. It appears that pythonw.exe is a known
  target for viruses.

- Disabling the filtering of TODO lines while generating the bootstrap script.
  This has the unfortunate feature that it can muck with the uuencoded data that
  the bootstrap script includes. 

- Adding support for a 'platform' option, which is a regular
  expression that controls package installation.

- Updates to allow the -v option to create verbose output
  from easy_install, and to flush debugging output
  before subprocesses are executed.

- Setting the directory in which easy_installed is executed ... to
  fix a problem installing a package in a directory with the same name.

-------------------------------------------------------------------------------
 2.3
-------------------------------------------------------------------------------

- Reworking the localization logic to (a) print warnings when the
  files are missing and (b) localize files in the Scripts directory if it
  exists.

- Adding the --always-copy flag to easy_install

- Adding an option to force the checkout during preinstall, regardless of the
  current installation.

- Adding the --exclude-scripts option to easy_install to avoid a 
  conflict with the fact that we're already using easy_install when we
  download setuptools.

- Force the use of pythonw on MS Windows.

-------------------------------------------------------------------------------
 2.2
-------------------------------------------------------------------------------

- Added the --add-package option, which is used to specify a source package
  that is installed during the setup of the virtual Python environment.

- Removing unnecessary files from the preinstall ZIP file.

-------------------------------------------------------------------------------
 2.1
-------------------------------------------------------------------------------

- Changes to disable version guessing in offline installation.

-------------------------------------------------------------------------------
 2.0.1
-------------------------------------------------------------------------------

- Forcing the creation of the bin directory on MS Windows. 

-------------------------------------------------------------------------------
 2.0
-------------------------------------------------------------------------------

- Perform error checking to confirm that the subversion command
  can be executed.

- Add error check when subversion is not available but it is necessary to
  install a package.

- Adding logic to handle installation errors gracefully. Errors result in
  immediate termination of the installation logic, and they return a
  nonzero error code.

- Adding the easy_install '--no-deps' option for offline installation.

- Add logic to gracefully terminate when a user does not have
  permissions needed to create the target directory.

- Adding the --release option to specify subversion checkouts of
  release branches. Changed default checkout to use a pypi.ini
  configuration file.

- Adding a --source option to vpy_install, which allows the specification of a
  source directory.

- Disabling PYTHONHOME if it is defined.

-------------------------------------------------------------------------------
 1.5.1
-------------------------------------------------------------------------------

- Fix to recognize stable directories that do not contain versioned
  trunk branches.

-------------------------------------------------------------------------------
 1.5
-------------------------------------------------------------------------------

- Adding timing information for checkouts and installation.

- Reorganizing the configuration for offline installation. Now, the
  config file generated during installation is used, and this config
  file is setup without executing the logic in guess_versions (which
  isn't needed, really).

- Disabling the '-p' option. This option is a shortcut to
  '.python', so it isn't strictly necessary. Further, typing '-preinstall'
  confuses the user into thinking that the 'reinstall' command cannot
  be found.

- Rework of virtualenv bootstrap script. This looks like it resolves
  an outstanding issue with vpy_install: when the preinstall option was
  used, this script needed to bootstrap the installation of setuptools.

-------------------------------------------------------------------------------
 1.4.3
-------------------------------------------------------------------------------

- Update to package README files to point to the new PyUtilib? mailing lists.

-------------------------------------------------------------------------------
 1.4.2
-------------------------------------------------------------------------------

- Rework of how the easy_install command is configured. When this is installed
as an executable, then we can't call it with python.

- Attempting to fix portability issue where easy_install has a *.exe extension
that needs to be explicitly used.

-------------------------------------------------------------------------------
 1.4.1
-------------------------------------------------------------------------------

- Changed the Python path used to execute easy_install. This was
  needed to install with Jython.

- Adding a Python version check to verify that we can
  use the 'timeout' option for urlopen().

-------------------------------------------------------------------------------
 1.4
-------------------------------------------------------------------------------

- Changing the semantics of the --config option. By default, this
  clears the initial configuration information. The --keep-config option
  can be used to retain this config information.

- Using subversion for listing subversion web directories. This
  eliminates various problems accessing ssl authenticated sites from
  behind a proxy.

  NOTE: there remains an issue getting to https config files from behind
  a proxy, but that will only impact developers. Thus, we'll worry about
  that issue when we really need to.

- Changing the behavior of guess_version. Now, we verify that the
  branch directories exist before get information on them.

  Changed the semantics of the --config option. Now, if a INI file is
  specified, but not available, then the application config_file will
  be used to search for this file.

-------------------------------------------------------------------------------
 1.3.1
-------------------------------------------------------------------------------

- Restructuring repository access to delay the processing of
  repository versions until the last possible moment.

-------------------------------------------------------------------------------
 1.3
-------------------------------------------------------------------------------

- For offline installation, explicitly add setuptools and pip

- Extension to allow repositories to have a specified revision

- Extension to specify repositories that are not installed within 
  virtual Python;  these are used to define a repository with auxilliary
  directories.

- Reworked the installer logic to find the package root as a separate
  step from the installation process.

- Changed the syntax for specifying auxdirs; this should avoid conflicts
  with software package names that contain '_' characters.

- Added support for a user-specified config file, which may be a URL that
  is loaded.

- Removed support for the '--forum' options, which are Coopr-specific.

- Updates to work with virtualenv 1.4.2, which includes a new install_pip
  function

-------------------------------------------------------------------------------
 1.2
-------------------------------------------------------------------------------

- Bug fix for guess_release() when no release revision is available.

- Renamized the 'dos_cmd' section to 'localize'.

- Update to use /tmp instead of '.' for the temporary directory (on non-windows 
  platforms).

-------------------------------------------------------------------------------
 1.1
-------------------------------------------------------------------------------

- Reworked the main() function to catch exceptions in a graceful manner.

- Allow the configuration data to be processed with string templates, and
  template variables are filled using environment variables.

- Write out a config file when installing, which is then used to simplify
  the update process.

- Reworked the rmtree() function to enable more robust file deletions on
  MS Windows.

- Added a 'tests' directory, with a README.txt that describes tests that
  need to be manually applied.

-------------------------------------------------------------------------------
 1.0
-------------------------------------------------------------------------------

- Initial release of PyUtilib package to support customization of 
  VirtualEnv installers.

