Skip to main content

Python-based Node Version Manager

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

README

pipeline coverage report

pnvm (sometimes PNVM), is a small, FOSS utility for managing Node.js versions.
It is written in Python, and more specifically Python >= 3.13, and focuses on security.

Important Note

This project is still in alpha and under active development, and as such not ready to be used.

Installing

You may install this utility via pip, kinda like this:

# NOTE: Don't install inside a `venv` unless you know what you are doing.
$ python3 -m pip install --upgrade pnvm

# If pnvm hasn't been added to $PATH, do the following:
# NOTE: replace `.bashrc` with whatever equivalent if you're using a shell which isn't bash.
$ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
# Source the RC file again.
$ . ~/.bashrc

License

pnvm is free software licensed under the GNU GPLv3, or, if available, any later version.

Examples

Installing Node.js version 18.20.8 via pnvm:

# NOTE: You may also write "--install".
$ pnvm -i v18.20.8
...
# Show list of versions:
$ pnvm -l
v18.20.8
# Switch to the newly installed version:
$ pnvm -c v18.20.8

$ node
Welcome to Node.js v18.20.8.
...

Security

If there are any issues regarding security, please contact me via the email
connected to git, or, preferrably, open an issue on GitLab.

It is rather important to do so since this project is decently focused on security.

Contact

Please open an issue on GitLab before contacting me.
If you want to email me, you may do so via the email connected to git.

Extra Notes

I've never ever published a project to PyPI and I'm gonna be honest and admit that I'm a
beginner to it. Feel free to help me out if you're more experienced.

Development

After cloning, run uv sync in the project folder.

Project maintenance with UV

Type checking:

uv run mypy

Test/Coverage:

uv run pytest --cov-report term-missing --cov ./src

If you need detailed reports:

uv run pytest --cov-report html:.coverage-html --cov ./src

Linting

uv run ruff check  ./src

Checking formatting:

uv run ruff format --check ./src

Applying formatting:

uv run ruff format ./src

Upgrade packages:

uv sync --upgrade

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pnvm-0.0a1.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pnvm-0.0a1-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

Details for the file pnvm-0.0a1.tar.gz.

File metadata

  • Download URL: pnvm-0.0a1.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pnvm-0.0a1.tar.gz
Algorithm Hash digest
SHA256 3f5348fa7bb7d26f59783a858cd30259fbaef41bdad1616fefb3c861a1ece8e6
MD5 d4d9c47839d57c088a07b6a2eb35af61
BLAKE2b-256 06ff425300230606b7480458131edc885b1e077bed481ed53210c47a30068339

See more details on using hashes here.

File details

Details for the file pnvm-0.0a1-py3-none-any.whl.

File metadata

  • Download URL: pnvm-0.0a1-py3-none-any.whl
  • Upload date:
  • Size: 29.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pnvm-0.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 cb752db3f823c999845b77910d4cad5e877faee55a8018f2b1d2c6e81d26ede2
MD5 9c5449866bca682d468fd5a183c8c013
BLAKE2b-256 14a5d90e9eb63ce7c99571ae48d8991c559f3fa4d73d194e86e8383de9f8b757

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page