Nodeenv changelog
=================

Version 1.12.0
--------------
- `--print-completion SHELL` prints a completion script for bash, zsh or
  fish. It needs shtab, installed with `pip install "nodeenv[completion]"`
  `#351 <https://github.com/ekalinin/nodeenv/issues/351>`_
- `--prebuilt` installs no longer fail when the environment path or the
  node.js version contains `[`, `*` or `?`
  `#441 <https://github.com/ekalinin/nodeenv/issues/441>`_
- On Windows, Cygwin and MSYS the node.js zip archive is extracted 32 files
  at a time instead of one by one, so a security scanner that checks every
  new file no longer makes the install wait for each file in turn.
  `--no-parallel-extract`, or `parallel_extract = False` in `~/.nodeenvrc`,
  extracts it one file at a time again
  `#366 <https://github.com/ekalinin/nodeenv/issues/366>`_
- `--prebuilt` installs no longer mistake a cached source tree for a
  prebuilt archive, or fail when both trees remain in `src/`
  `#443 <https://github.com/ekalinin/nodeenv/issues/443>`_
- `activate.fish` restores the caller's `NODE_PATH` and npm configuration
  on deactivation, including empty values and when `NODE_VIRTUAL_ENV` has
  been removed. Existing environments keep their old `activate.fish`;
  recreate them with the same options to get the fix. With `-p`, remove the
  old nodeenv part from the virtualenv's `activate.fish` first
  `#399 <https://github.com/ekalinin/nodeenv/issues/399>`_
- A ``%`` in a ``[nodeenv]`` config value, such as a percent-encoded
  mirror login, no longer crashes nodeenv: a value that can't be
  interpolated and has no ``%(name)s`` reference is read as written.
  ``%%`` still gives ``%``, which ``setup.cfg`` needs, as setuptools
  reads that file too
  `#440 <https://github.com/ekalinin/nodeenv/issues/440>`_
- `nodeenv -p` no longer puts the python venv's `bin` directory on `PATH`
  a second time: the venv's own `activate` and `activate.fish` put it there
  already. Envs without those scripts, such as conda envs, and the git-bash
  `activate` on Windows keep it, and running `nodeenv -p` again fixes an
  existing venv
  `#332 <https://github.com/ekalinin/nodeenv/issues/332>`_
- Require Python 3.10 or later, matching the minimum version tested in CI.
  Update package classifiers and wheel tags, and remove the unused Python 2
  compatibility paths. Old Node.js source builds still require Python 2.7
  as their build interpreter
  `#436 <https://github.com/ekalinin/nodeenv/issues/436>`_
- `--source` builds of node.js 13 and later no longer need a `python2`
  command; 8.8 to 12.x still need one but point `python` at it on their
  own, so the `python` to python2 link in `PATH` is only set up for older
  versions, and versions before 13 still fail early with a clear error
  when `python2` is missing
  `#419 <https://github.com/ekalinin/nodeenv/issues/419>`_
- The node.js archive download also retries when the connection is reset or
  times out in the middle of the body, pauses between the attempts and ends
  with an error message instead of a traceback when all of them fail; a
  server that stops answering is given up on after 60 seconds instead of
  hanging nodeenv
  `#324 <https://github.com/ekalinin/nodeenv/issues/324>`_
- `activate.fish` no longer puts a literal `^/dev/null` on `PATH`: fish 3.1+
  defaults to `stderr-nocaret`, so the old caret redirect was one more path
  entry; existing environments keep the old `activate.fish` until recreated
  with `--force`
  `#400 <https://github.com/ekalinin/nodeenv/issues/400>`_
- `activate.bat` and `Activate.ps1` now set `npm_config_prefix` to the
  environment and restore it on deactivate: `npx` exports the outer prefix,
  and `npm.cmd` runs the npm it finds there instead of its own
  `#309 <https://github.com/ekalinin/nodeenv/issues/309>`_
- `--with-npm` on Windows and Cygwin installs npm from the registry tarball
  instead of the GitHub source archive, whose workspace symlinks unpacked as
  text files (npm 8) and whose workspaces are missing (npm >= 9); the default
  `--npm=latest` no longer ends in a 404 there
  `#310 <https://github.com/ekalinin/nodeenv/issues/310>`_
- Quoted values in the config file, as the README shows them, are read
  without the quotes, and `user:password@` in the `--mirror` URL is sent to
  the mirror with HTTP Basic authentication instead of being taken for a part
  of the host; the password stays out of error messages and redirects
  `#321 <https://github.com/ekalinin/nodeenv/issues/321>`_

Version 1.11.1
--------------
- `latest`, the default, and semver ranges such as `--node=26` no longer
  pick pre-releases: once nodejs.org listed `27.0.0-alpha.0.0.0`, both
  stopped with a traceback. An exact pre-release, such as
  `--node=27.0.0-alpha.0.0.0`, installs instead of crashing as well
  `#453 <https://github.com/ekalinin/nodeenv/issues/453>`_

Version 1.11.0
--------------
- Fixed zsh `source bin/activate` aborting on the direct-call guard `#398 <https://github.com/ekalinin/nodeenv/issues/398>`_
- Added check for how `activate` is called
  `#384 <https://github.com/ekalinin/nodeenv/pull/384>`_
- Addressed the ``tarfile.extractall`` deprecation on Python >= 3.12 by
  setting ``filter='data'``, which also prevents writing files via ".." or
  absolute paths `#380 <https://github.com/ekalinin/nodeenv/pull/380>`_
- Added support for Solaris/illumos
  `#360 <https://github.com/ekalinin/nodeenv/issues/360>`_
- Added `predeactivate` hooks for Windows
- Added error handling and tests for the node installation
  `#336 <https://github.com/ekalinin/nodeenv/issues/336>`_
- Removed the leftover debug `print` that leaked a dict to stdout on every
  version detection `#390 <https://github.com/ekalinin/nodeenv/issues/390>`_
- Added `--with-certifi` to download packages with the certifi certificate
  bundle `#388 <https://github.com/ekalinin/nodeenv/pull/388>`_
- `--node` accepts npm-style semver ranges
  `#393 <https://github.com/ekalinin/nodeenv/pull/393>`_
- Added `--prefer-system` to use system-wide node.js when available and
  install one otherwise `#153 <https://github.com/ekalinin/nodeenv/issues/153>`_
- Added `--isolate-npm` to keep npm cache, userconfig and init-module inside
  the environment `#154 <https://github.com/ekalinin/nodeenv/issues/154>`_
- Added tests that run the activation scripts in sh, dash, bash, zsh and fish.
- `-p` no longer reinstalls node when the requested version is already in the
  virtualenv `#159 <https://github.com/ekalinin/nodeenv/issues/159>`_
- Repeated `-p` runs no longer duplicate the `predeactivate` hook
  `#159 <https://github.com/ekalinin/nodeenv/issues/159>`_
- `-p` accepts an optional virtualenv directory and prefers the activated
  `VIRTUAL_ENV` over the virtualenv nodeenv itself is installed in
  `#156 <https://github.com/ekalinin/nodeenv/issues/156>`_
- `-r/--requirements` may now be given more than once, and the new
  `--local-requirements` installs the packages of a file locally, into
  "node_modules" of the current directory, which is what `freeze -l` writes.
  Under npm < 1.0.0, which has no `-g`, a local file is still installed the
  old way `#206 <https://github.com/ekalinin/nodeenv/issues/206>`_
- The "src" directory is now removed after installation by default, which
  halves the size of an environment. Added `--no-clean-src` to keep it: with
  `--source` that is what lets a repeated `--force` build reuse the
  downloaded source tree
  `#205 <https://github.com/ekalinin/nodeenv/issues/205>`_
- Documented that `--mirror` takes a `file://` URL, so a local directory can
  serve as the download source
  `#193 <https://github.com/ekalinin/nodeenv/issues/193>`_
- The posix `activate` is now written on Windows too, into "Scripts", so
  git-bash and the other posix shells there can activate an environment
  `#226 <https://github.com/ekalinin/nodeenv/issues/226>`_
- A download that reaches nothing at all, which a broken `http_proxy` or
  `https_proxy` usually causes, now reports the url and the proxy settings
  instead of a traceback
  `#229 <https://github.com/ekalinin/nodeenv/issues/229>`_
- On Windows `-p` extends "activate.bat", "deactivate.bat" and
  "Activate.ps1" of the python virtualenv instead of overwriting them, so
  `VIRTUAL_ENV` and the virtualenv's own deactivation survive
  `#243 <https://github.com/ekalinin/nodeenv/issues/243>`_
- A missing node.js archive now reports the urls that were tried and points
  at `--list` and `--source` instead of a traceback
  `#250 <https://github.com/ekalinin/nodeenv/issues/250>`_
- `freeze` now reads `npm ls --parseable` instead of the drawn tree: scoped
  packages keep their scope, a package whose name contains "npm" is no longer
  dropped, and `npm` and `corepack`, which come with node.js itself, are left
  out of the list. The fish version, which printed nothing at all under
  npm >= 1, now writes the same file as the posix one
  `#287 <https://github.com/ekalinin/nodeenv/issues/287>`_
- musl is now detected whatever the vendor field of the host triplet says,
  so Alpine's own python3 (``x86_64-alpine-linux-musl``) gets the musl build
  of node.js instead of the glibc one
  `#290 <https://github.com/ekalinin/nodeenv/issues/290>`_
- On Windows "nodejs.exe" is linked with ``os.symlink``, falling back to a
  hard link, instead of ``mklink``, which broke on paths with forward slashes
  or spaces and needs elevation or Developer Mode. If both fail, only a
  warning is logged `#303 <https://github.com/ekalinin/nodeenv/issues/303>`_

Version 1.10.0
--------------
- Added support for Python 3.13 `#367 <https://github.com/ekalinin/nodeenv/pull/367>`_
- Added support for UV virtual environments
  `#386 <https://github.com/ekalinin/nodeenv/pull/386>`_
- Used `sh` instead of `bash` `#389 <https://github.com/ekalinin/nodeenv/pull/389>`_
- Replaced the remaining `which(1)` calls with `shutil.which()`
  `#355 <https://github.com/ekalinin/nodeenv/pull/355>`_
- Supported a leading `v` in `.node-version`
  `#359 <https://github.com/ekalinin/nodeenv/pull/359>`_
- Checked the host platform when finding the `node` version
  `#363 <https://github.com/ekalinin/nodeenv/pull/363>`_
- Fixed `archmap` lookup to be lowercase
  `#382 <https://github.com/ekalinin/nodeenv/pull/382>`_

Version 1.9.1
-------------
- Fixed version discovery `#358 <https://github.com/ekalinin/nodeenv/pull/358>`_
  `#356 <https://github.com/ekalinin/nodeenv/issues/356>`_

Version 1.9.0
-------------
- Switched to `packaging` for version comparison
  `#338 <https://github.com/ekalinin/nodeenv/pull/338>`_ and then dropped the
  dependency in favor of a simple version-parsing function
  `#352 <https://github.com/ekalinin/nodeenv/pull/352>`_
- Fixed GitHub Actions `#347 <https://github.com/ekalinin/nodeenv/pull/347>`_
- Added Python 3.11 and 3.12 test coverage
  `#348 <https://github.com/ekalinin/nodeenv/pull/348>`_
- Added support for shells with "set -u"
  `#345 <https://github.com/ekalinin/nodeenv/pull/345>`_
- Replaced `pipes.quote` with `shlex.quote` on Python 3.3+
  `#342 <https://github.com/ekalinin/nodeenv/pull/342>`_
- Removed usage of the non-portable `which`
  `#346 <https://github.com/ekalinin/nodeenv/pull/346>`_

Version 1.8.0
-------------
- Fixed the function name in `fish_prompt`
  `#312 <https://github.com/ekalinin/nodeenv/pull/312>`_
- Added support for riscv64 `#313 <https://github.com/ekalinin/nodeenv/pull/313>`_
- Upgraded GitHub Actions `#317 <https://github.com/ekalinin/nodeenv/pull/317>`_
- Made the `mock` dependency optional
  `#320 <https://github.com/ekalinin/nodeenv/pull/320>`_
- GitHub Actions: `fail-fast: false`
  `#327 <https://github.com/ekalinin/nodeenv/pull/327>`_
- Made multiple attempts to download the node.js archive (IncompleteRead error)
  `#329 <https://github.com/ekalinin/nodeenv/pull/329>`_
- Logged the URL on download failures
  `#330 <https://github.com/ekalinin/nodeenv/pull/330>`_

Version 1.7.0
-------------
- Dropped python3.4, python3.5 and python3.6
- Supported python releases before 3.7 in tests
  `#272 <https://github.com/ekalinin/nodeenv/pull/272>`_
- Required setuptools in setup.py
  `#289 <https://github.com/ekalinin/nodeenv/pull/289>`_
- Used the version specified in `.node-version` if it exists
  `#288 <https://github.com/ekalinin/nodeenv/pull/288>`_
- Fixed the problem when used with fish and virtualenv
  `#294 <https://github.com/ekalinin/nodeenv/pull/294>`_
- Replaced optparse with argparse
  `#295 <https://github.com/ekalinin/nodeenv/pull/295>`_
- Set the SSL protocol when ssl certs are ignored
  `#296 <https://github.com/ekalinin/nodeenv/issues/296>`_
- Fixed tests, tested Python 3.10 and moved tests to GitHub Actions
  `#298 <https://github.com/ekalinin/nodeenv/pull/298>`_
- Patched node installation for M1
  `#299 <https://github.com/ekalinin/nodeenv/pull/299>`_
- Added ability to configure the mirror through the settings file
  `#307 <https://github.com/ekalinin/nodeenv/pull/307>`_
- Added `--with-npm` to README `#308 <https://github.com/ekalinin/nodeenv/pull/308>`_

Version 1.6.0
-------------
- Tested for `nodejs` or `node` in tests
  `#270 <https://github.com/ekalinin/nodeenv/pull/270>`_
- Removed the main node.js mirror in tests if musl
  `#271 <https://github.com/ekalinin/nodeenv/pull/271>`_
- Fixed the nodeenv prompt when using Fish
  `#273 <https://github.com/ekalinin/nodeenv/pull/273>`_
- Used `node` instead of `nodejs` `#275 <https://github.com/ekalinin/nodeenv/pull/275>`_
- Fixed typo, remaning -> remaining
  `#276 <https://github.com/ekalinin/nodeenv/pull/276>`_
- Resolved the venv dir for Fish
  `#277 <https://github.com/ekalinin/nodeenv/pull/277>`_
- Added support for installing the latest LTS release
  `#281 <https://github.com/ekalinin/nodeenv/pull/281>`_
- Created a broad mapping for M1
  `#282 <https://github.com/ekalinin/nodeenv/pull/282>`_

Version 1.5.0
-------------
- Improved quoting of variables in the node shim for `-n system`
  `#259 <https://github.com/ekalinin/nodeenv/pull/259>`_
- Added `--ignore_ssl_certs` to ignore SSL certs for MITM/firewalls
  `#256 <https://github.com/ekalinin/nodeenv/pull/256>`_
- Added support for MSYS2 `#263 <https://github.com/ekalinin/nodeenv/pull/263>`_
- Added missing arch's (ppc64le, armv8l, s390x)
  `#268 <https://github.com/ekalinin/nodeenv/pull/268>`_

Version 1.4.0
-------------
- Switched to `/download/release/index.json` to discover versions
- Dropped io.js support
- Worked around IncompleteRead when downloading src
  `#258 <https://github.com/ekalinin/nodeenv/pull/258>`_
- Fixed erasing of NODE_VIRTUAL_ENV while `deactivate_node` in fish
  `#255 <https://github.com/ekalinin/nodeenv/pull/255>`_
- Accepted a URL as well as a domain name for the `--mirror` argument
  `#252 <https://github.com/ekalinin/nodeenv/pull/252>`_
- Downloaded musl-compatible node from unofficial-builds
  `#247 <https://github.com/ekalinin/nodeenv/pull/247>`_

Version 1.3.5
-------------
- Fixed error 183 ("already exists") on Windows when installing prebuilt node
  `#249 <https://github.com/ekalinin/nodeenv/issues/249>`_

Version 1.3.4
-------------
- Used the prebuilt windows zip which contains npm
  `#230 <https://github.com/ekalinin/nodeenv/pull/230>`_
- Fixed url in the CHANGES file
  `#231 <https://github.com/ekalinin/nodeenv/pull/231>`_
- Fixed escape sequences `#232 <https://github.com/ekalinin/nodeenv/pull/232>`_
- Fixed `npm_url` in `install_npm_win`
  `#233 <https://github.com/ekalinin/nodeenv/pull/233>`_
- Changed the URL for downloading npm in Cygwin
  `#234 <https://github.com/ekalinin/nodeenv/pull/234>`_
- Fixed nodeenv in case python4 is ever a thing
  `#241 <https://github.com/ekalinin/nodeenv/pull/241>`_
- Produced py2.py3 wheels, nodeenv is a pure python package
  `#242 <https://github.com/ekalinin/nodeenv/pull/242>`_
- Printed a blank line when `install_node` fails
  `#236 <https://github.com/ekalinin/nodeenv/pull/236>`_
- Added an option to set your own mirror
  `#208 <https://github.com/ekalinin/nodeenv/pull/208>`_
- Fixed CI (flake8 errors) `#245 <https://github.com/ekalinin/nodeenv/pull/245>`_
- Fixed call to `logger.info(...)`
  `#246 <https://github.com/ekalinin/nodeenv/pull/246>`_

Version 1.3.3
-------------
- Installed a certain npm version via `npm install`
  `#225 <https://github.com/ekalinin/nodeenv/issues/225>`_

Version 1.3.2
-------------
- Updated node/node -> node/cli `#222 <https://github.com/ekalinin/nodeenv/pull/222>`_
- Fixed arch detection on FreeBSD, which returns amd64
  `#216 <https://github.com/ekalinin/nodeenv/pull/216>`_
- Added a space before the normal $PS1
  `#213 <https://github.com/ekalinin/nodeenv/pull/213>`_
- Dropped py33 support

Version 1.3.1
-------------
- Windows related fix `#207 <https://github.com/ekalinin/nodeenv/pull/207>`_
- Fixed url for arm64 `#210 <https://github.com/ekalinin/nodeenv/pull/210>`_
- Fixed fish support `#212 <https://github.com/ekalinin/nodeenv/pull/212>`_


Version 1.3.0
-------------
- Fixed symlink creation `#189 <https://github.com/ekalinin/nodeenv/issues/189>`_
- Python3.6 support `#200 <https://github.com/ekalinin/nodeenv/pull/200>`_
- Added `activate` for fish `#201 <https://github.com/ekalinin/nodeenv/pull/201>`_
- Fixed cp866 `#202 <https://github.com/ekalinin/nodeenv/pull/202>`_
- Added Conda support `#203 <https://github.com/ekalinin/nodeenv/pull/203>`_


Version 1.2.0
-------------
- Support for Cygwin `#194 <https://github.com/ekalinin/nodeenv/pull/194>`_ `#195
  <https://github.com/ekalinin/nodeenv/pull/195>`_
- tox.ini as default configuration file `#197
  <https://github.com/ekalinin/nodeenv/pull/197>`_

Version 1.1.4
-------------
- Fixed directory copy `#188 <https://github.com/ekalinin/nodeenv/issues/188>`_

Version 1.1.3
-------------
- Fixed spaces in paths `#187 <https://github.com/ekalinin/nodeenv/issues/187>`_

Version 1.1.2
-------------
- Fixed MANIFEST.in `#184 <https://github.com/ekalinin/nodeenv/issues/184>`_

Version 1.1.1
-------------
- Improve Windows support. See `#181
  <https://github.com/ekalinin/nodeenv/pull/181>`_
- Fix bug when downgrading using `--force`. See `#183
  <https://github.com/ekalinin/nodeenv/pull/183>`_
- Environment creation fails with non-ASCII chars in path. See `#49
  <https://github.com/ekalinin/nodeenv/issues/49>`_

Version 1.1.0
-------------
- Windows support

Version 1.0.0
-------------
- `--prebuilt` is default. See `# 161`_
- Added `--source` option
- Added support for the `ARM`. See `# 171`_
- Fixed issue with `$PATH`. See `# 86`_

.. _# 171: https://github.com/ekalinin/nodeenv/issues/171
.. _# 161: https://github.com/ekalinin/nodeenv/issues/161
.. _# 86: https://github.com/ekalinin/nodeenv/issues/86

Version 0.13.6
--------------
- Use https for nodejs.org. See `# 129`_

.. _# 129: https://github.com/ekalinin/nodeenv/issues/129

Version 0.13.5
--------------
- Improved user-agent identification

Version 0.13.4
--------------
- Custom ``user-agent``. See `# 125`_, `# 127`_

.. _# 125: https://github.com/ekalinin/nodeenv/issues/125
.. _# 127: https://github.com/ekalinin/nodeenv/issues/127


Version 0.13.3
--------------
- Fixed env creation with non-ASCII chars in path. See `# 49`_
- Fixed logging with unicode chars. See `# 96`_
- Skip new lines at the end of requirements.txt. See `# 122`_ 
- Fixed UnicodeDecodeError at build on non UTF-8 environment. See `# 124`_

.. _# 49: https://github.com/ekalinin/nodeenv/issues/49
.. _# 96: https://github.com/ekalinin/nodeenv/issues/96
.. _# 122: https://github.com/ekalinin/nodeenv/issues/122
.. _# 124: https://github.com/ekalinin/nodeenv/pull/124

Version 0.13.2
--------------
- Fixed ``freeze`` command. See `# 121`_

.. _# 121: https://github.com/ekalinin/nodeenv/issues/121

Version 0.13.1
--------------
- Fixed bug: ``nodeenv --list is raising TypeError``. See `# 117`_, `# 118`_

.. _# 117: https://github.com/ekalinin/nodeenv/issues/117
.. _# 118: https://github.com/ekalinin/nodeenv/pull/118

Version 0.13.0
--------------
- Removed deps from ``sort``, ``egrep``, ``curl``, ``tar``.
  See `# 114`_, `# 116`_.

.. _# 114: https://github.com/ekalinin/nodeenv/pull/114
.. _# 116: https://github.com/ekalinin/nodeenv/pull/116

Version 0.12.3
--------------
- Fixed check for installed curl/tar/etc for py3.

Version 0.12.2
--------------
- Added check for installed curl/egrep/sort/tar. See `# 110`_, `# 61`_

.. _# 110: https://github.com/ekalinin/nodeenv/issues/110
.. _# 61: https://github.com/ekalinin/nodeenv/issues/61

Version 0.12.1
--------------
- Removed dep for lxml in favor of stdlib HTMLParser. See `# 109`_
- Added integration with travis-ci. See `# 109`_
- Added some tests. See `# 109`_

.. _# 109: https://github.com/ekalinin/nodeenv/pull/109

Version 0.12.0
--------------
- Added support for io.js (new option ``--iojs``)
- Fixed ``get_last_stable_node_version`` for python3

Version 0.11.1
--------------
- Disallow prefix overridden by .npmrc. See `# 98`_, `# 100`_, `# 103`_

.. _# 98: https://github.com/ekalinin/nodeenv/issue/98
.. _# 100: https://github.com/ekalinin/nodeenv/pull/100
.. _# 103: https://github.com/ekalinin/nodeenv/pull/103

Version 0.11.0
--------------
- Improved dpkg rules. See `# 90`_
- Added --config-file option. See `# 91`_
- Read "./setup.cfg" in addition to "~/.nodeenvrc" by default. See `# 91`_
- Python3 compatibility. See `# 92`_, `# 93`_

.. _# 90: https://github.com/ekalinin/nodeenv/pull/90
.. _# 91: https://github.com/ekalinin/nodeenv/pull/91
.. _# 92: https://github.com/ekalinin/nodeenv/pull/92
.. _# 93: https://github.com/ekalinin/nodeenv/pull/93

Version 0.10.0
--------------
- Added support for config file. See `# 85`_
- Using of virtualenv detected via python not env variable. See `# 87`_
- Fixed ``freeze`` for zsh. See `# 88`_
- Added ``nodejs`` symlink creation. See `# 84`_

.. _# 85: https://github.com/ekalinin/nodeenv/pull/85
.. _# 87: https://github.com/ekalinin/nodeenv/pull/87
.. _# 88: https://github.com/ekalinin/nodeenv/pull/88

Version 0.9.6
-------------
- Removed ``os.symlink`` added in `# 76`_. See `# 84`_

.. _# 84: https://github.com/ekalinin/nodeenv/issues/84

Version 0.9.5
-------------
- Fixed a few spelling typos in README. See `# 74`_
- Fixed example of using --update option in README. See `# 74`_
- Improved args passing into shim script. See `# 75`_
- Try to find ``nodejs`` if used system-wide node as well. See `# 76`_
- Added ``assert`` if used system-wide node and it wasnt found. See `# 76`_
- Added ``-l`` option into ``freeze`` command. See `# 71`_

.. _# 71: https://github.com/ekalinin/nodeenv/issues/71
.. _# 74: https://github.com/ekalinin/nodeenv/issues/74
.. _# 75: https://github.com/ekalinin/nodeenv/pull/75
.. _# 76: https://github.com/ekalinin/nodeenv/pull/76

Version 0.9.4
-------------
- Fixed support for python2.6. See `# 70`_

.. _# 70: https://github.com/ekalinin/nodeenv/issues/70

Version 0.9.3
-------------
- Fixed npm when using prebuilt binaries on Mac OS X. See `# 68`_
- Fixed using ``system`` node under python3.4. See `# 43`_
- If used ``system`` node script ``bin/node`` always overwritten

.. _# 68: https://github.com/ekalinin/nodeenv/issues/68
.. _# 43: https://github.com/ekalinin/nodeenv/issues/43

Version 0.9.2
-------------
- Fixed infinite loop when system-wide node used. See `# 67`_

.. _# 67: https://github.com/ekalinin/nodeenv/issues/67

Version 0.9.1
-------------
- Fixed 'shim' script if used system-wide node
- Fixed shebang in the 'shim'
- Added shim with name 'node' in case of using system-wide node

Version 0.9.0
-------------
- Added `shim` script. See `# 59`_

.. _# 59: https://github.com/ekalinin/nodeenv/issues/59

Version 0.8.2
-------------
- Fixed prebuilt installation:
    - cp more choosy. See `# 64`_
    - exclude top-level files in prebuilt tar. See `# 63`_

.. _# 63: https://github.com/ekalinin/nodeenv/issues/63
.. _# 64: https://github.com/ekalinin/nodeenv/issues/64

Version 0.8.1
-------------
- Fixed system's node usage. See `# 62`_

.. _# 62: https://github.com/ekalinin/nodeenv/pull/62

Version 0.8.0
-------------
- Added support for prebuilt packages. See `# 56`_
- Added support for python3. See `# 42`_

.. _# 56: https://github.com/ekalinin/nodeenv/issues/56
.. _# 42: https://github.com/ekalinin/nodeenv/issues/42

Version 0.7.3
-------------
- Fixed npm.js redirect. See `# 52`_
- Added ``--update`` option. See `# 25`_

.. _# 52: https://github.com/ekalinin/nodeenv/pull/52
.. _# 25: https://github.com/ekalinin/nodeenv/issues/25

Version 0.7.2
-------------
- Bug fixing in ``freeze``. See `# 47`_

.. _# 47: https://github.com/ekalinin/nodeenv/issues/47

Version 0.7.1
-------------
- Added ``--make`` option

Version 0.7.0
-------------
- added ``--force``. See `# 37`_
- python3 support (first steps). See `# 38`_, `# 39`_
- escaping all directories used by subprocesses. See `# 40`_
- added an option to use system-wide node. See `# 41`_

.. _# 37: https://github.com/ekalinin/nodeenv/pull/37
.. _# 38: https://github.com/ekalinin/nodeenv/issues/38
.. _# 39: https://github.com/ekalinin/nodeenv/issues/39
.. _# 40: https://github.com/ekalinin/nodeenv/pull/40
.. _# 41: https://github.com/ekalinin/nodeenv/pull/41


Version 0.6.6
-------------
- Fixed incomplete package names using freeze. See `# 35`_
- Fixed packages installation type in README. See `# 33`_

.. _# 33: https://github.com/ekalinin/nodeenv/issues/33
.. _# 35: https://github.com/ekalinin/nodeenv/pull/35


Version 0.6.5
-------------
- Node's source not loaded if it already exists in FS.


Version 0.6.4
-------------
- Added python3 compatibility. See `# 32`_

.. _# 32: https://github.com/ekalinin/nodeenv/pull/32


Version 0.6.3
-------------
- Fixed ``nodeenv -p``. See `issue # 31`_

.. _issue # 31: https://github.com/ekalinin/nodeenv/issues/31


Version 0.6.2
-------------
- Skipped stand-alone npm installation by default. See `pull # 30`_
- ``--without-npm`` has been changed to ``--with-npm``. See `pull # 30`_
- Fixed options for running Make instances in parallel. See `pull # 30`_

.. _pull # 30: https://github.com/ekalinin/nodeenv/pull/30


Version 0.6.1
-------------
- Used pkg_resources.parse_version to compare versions. See `pull # 29`_
- Fixed doubling prompt inside a virtualenv. See `issues # 26`_

.. _pull # 29: https://github.com/ekalinin/nodeenv/pull/29
.. _issues # 26: https://github.com/ekalinin/nodeenv/issues/26


Version 0.6.0
-------------
- Fixed typo in deactive command. See `pull # 20`_
- Not used "--insecure" to download npm. See `pull # 21`_
- Removed "src" directory after installation. See `pull # 22`_
- Added option "--clean-src"
- Added integration with python's virtualenv. See `pull # 23`_

.. _pull # 20: https://github.com/ekalinin/nodeenv/pull/20
.. _pull # 21: https://github.com/ekalinin/nodeenv/pull/21
.. _pull # 22: https://github.com/ekalinin/nodeenv/pull/22
.. _pull # 23: https://github.com/ekalinin/nodeenv/pull/23

Version 0.5.3
-------------
- Bug fix. Used https, /dist/latest/. See `pull # 16`_

.. _pull # 16: https://github.com/ekalinin/nodeenv/pull/16

Version 0.5.2
-------------
- Improved installation logic for release candidate versions. See `pull # 10`_

.. _pull # 10: https://github.com/ekalinin/nodeenv/pull/10

Version 0.5.1
-------------
- Improved logic for the option '--without-npm'. See `issue # 14`_, `pull # 15`_

.. _issue # 14: https://github.com/ekalinin/nodeenv/issues/14
.. _pull # 15: https://github.com/ekalinin/nodeenv/pull/15

Version 0.5.0
-------------
- The virtual environment's path is no longer hardcoded into the
  activation script. See `pull # 13`_

.. _pull # 13: https://github.com/ekalinin/nodeenv/pull/13

Version 0.4.3
-------------
- Fixed metavar for ``--npm``
- ``npm install -g`` used for npm >=1.0, not noly for `latest`

Version 0.4.2
-------------
- Added README.ru.rst

Version 0.4.1
-------------
- Fixed bug in print_node_versions. See `pull # 11`_
- Added deps in README

.. _pull # 11: https://github.com/ekalinin/nodeenv/pull/11

Version 0.4.0
-------------
- Compatibility with virtualenv (renamed deactivate to deactivate_node).
  See `pull # 9`_, `issue # 6`_

.. _pull # 9: https://github.com/ekalinin/nodeenv/pull/9
.. _issue # 6: https://github.com/ekalinin/nodeenv/issues/6

Version 0.3.10
--------------
- Fixed bug in url detection for node.js download

Version 0.3.9
-------------
- Deleted notify method calls. See `pull # 7`_
- Updated tar url for node.js > 0.5.0. See `pull # 8`_

.. _pull # 7: https://github.com/ekalinin/nodeenv/pull/7
.. _pull # 8: https://github.com/ekalinin/nodeenv/pull/8

Version 0.3.8
-------------
- Added `NODE_PATH` variable export (for correct module
  search after installation via npm)

Version 0.3.7
-------------
- Shows command output when error occurs
- Excluded 'npm' from `freeze` list
- Fixed bug with 'not only letter' names in `freeze` list
- Added global installation for npm >= 1.0 (when install
  soft from requirement file)

Version 0.3.6
-------------
- Fixed ``freeze`` output command. See `request # 5`_
- Diagnostic message fixed. See `pull # 4`_

.. _request # 5 : https://github.com/ekalinin/nodeenv/issues/5
.. _pull # 4 : https://github.com/ekalinin/nodeenv/pull/4

Version 0.3.5
-------------
- Added option ``--npm`` to install certain npm.js version. Request_ .
- Fixed ``freeze`` command for npm >= 1.0.x.

.. _Request: https://github.com/ekalinin/nodeenv/issues/3

Version 0.3.4
-------------

- Fixed `problem #2`_ with new npm installation script. Added
  ``--no-npm-clean`` option. The default to the npm 0.x cleanup.

.. _problem #2: https://github.com/ekalinin/nodeenv/issues/2

Version 0.3.3
-------------

- Fixed `problem #1`_ with installation from PyPI via easy_install.
  Added ``MANIFEST.in`` file.

.. _problem #1: https://github.com/ekalinin/nodeenv/issues/1

Version 0.3.2
-------------

- Internal improvements
- Logging refactoring

Version 0.3.1
-------------

- Default environment promt is folder name

Version 0.3.0
--------------

- Renamed nve to nodeenv
