Skip to content

Update nodeenv to 1.12.0 - #825

Open
pyup-bot wants to merge 1 commit into
masterfrom
pyup-update-nodeenv-1.8.0-to-1.12.0
Open

pyup-bot wants to merge 1 commit into
masterfrom
pyup-update-nodeenv-1.8.0-to-1.12.0

Conversation

@pyup-bot

Copy link
Copy Markdown
Collaborator

This PR updates nodeenv from 1.8.0 to 1.12.0.

Changelog

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>`_

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>`_

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>`_

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>`_

1.9.1

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

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>`_
Links

@codecov

codecov Bot commented Oct 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (5f02dc7) to head (def7df0).

Additional details and impacted files
@@            Coverage Diff            @@
##            master      #825   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           12        12           
  Lines          126       126           
=========================================
  Hits           126       126           
Flag Coverage Δ
?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant