Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mcataford/v
A general purpose version manager.
https://github.com/mcataford/v
cli environment python tooling version-manager
Last synced: 26 days ago
JSON representation
A general purpose version manager.
- Host: GitHub
- URL: https://github.com/mcataford/v
- Owner: mcataford
- License: gpl-3.0
- Created: 2023-10-31T03:30:00.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-01T06:02:08.000Z (9 months ago)
- Last Synced: 2024-02-01T22:07:07.987Z (9 months ago)
- Topics: cli, environment, python, tooling, version-manager
- Language: Go
- Homepage:
- Size: 104 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# v
A version manager you might not want to use.> # ✈️ Moved away!
>
> This project has moved away from Github and is now hosted [elsewhere](https://forge.karnov.club/marc/v).## Overview
`v` is a simple version manager inspired from other tools like [asdf](https://github.com/asdf-vm/asdf), [pyenv](https://github.com/pyenv/pyenv), [n](https://github.com/tj/n) and [nvm](https://github.com/nvm-sh/nvm). At it's core, it's a reinvention of the wheel with some extras.
- First and foremost, while the first version is about Python version management, the plan is to expand to support a bunch more runtime (with an emphasis on simplifying adding more runtimes to manage);
- A lot of those tools are written as shellscript, which I find somewhat inscrutable. Go is a bit easier to read;
- ...? It's a reason to write some Go. :)## Roadmap
While the plan for the first release is to only support Python runtimes, expanding to others will be next so that `v` can just handle all/most version management needs.
## Usage
### Building your own and setting up
Pre-built binaries are not currently available. You can clone the repository and build your own via `. scripts/build`.
You should find a suitable place for the binary (`/usr/local/bin` is a good location) and if not already included, add its location to `$PATH`.
Finally, run `v init` to create directories to store artifacts and state (under `~/.v` unless override using the
`V_ROOT` environment variable). The following should also be added to your shell's configuration (i.e. `.zshrc`,
`.bashrc`, ...):```sh
export PATH=:$PATH
eval "$(v init --add-path)"
```This will handle adding shim paths to your shell without hassle.
### Usage
`v` will print a helpful list of available commands.
The most important things to know include `v python install ` to install new versions and `v python use ` to use a specific version of Python.
## Contributing
The project isn't currently accepting contributions because it's not yet set up to do so. Stay tuned.