No description
Find a file
Marc Cataford d6bce67296
feat: better formatting for which/where printouts (#11)
* feat: better formatting for which/where printouts

* chore: update version to 0.0.6
2023-11-27 23:46:19 +00:00
.github/workflows test: partial coverage state (#9) 2023-11-08 00:23:44 -05:00
integration ci: add basic integration test, pipeline step (#7) 2023-11-05 11:47:24 -05:00
scripts test: partial coverage state (#9) 2023-11-08 00:23:44 -05:00
.gitignore feat: basic use,install,list,help,init functionality (#1) 2023-11-03 00:41:05 -04:00
cli.go feat: better formatting for which/where printouts (#11) 2023-11-27 23:46:19 +00:00
commands.go feat: better formatting for which/where printouts (#11) 2023-11-27 23:46:19 +00:00
go.mod test: partial coverage state (#9) 2023-11-08 00:23:44 -05:00
go.sum test: partial coverage state (#9) 2023-11-08 00:23:44 -05:00
install_python.go perf: use -j to build on multiple cores (#8) 2023-11-05 11:37:01 -05:00
LICENSE Initial commit 2023-10-30 23:30:00 -04:00
pythonversion.go feat: default to system python if no version specified (#10) 2023-11-27 23:16:57 +00:00
pythonversion_test.go feat: default to system python if no version specified (#10) 2023-11-27 23:16:57 +00:00
README.md feat: easier path setup through init --add-path (#6) 2023-11-05 10:41:43 -05:00
state.go refactor: url.JoinPath and state path.Join abstraction instead of fmt… (#5) 2023-11-05 10:19:53 -05:00
state_test.go test: partial coverage state (#9) 2023-11-08 00:23:44 -05:00
style.go feat: better formatting for which/where printouts (#11) 2023-11-27 23:46:19 +00:00
util.go feat: default to system python if no version specified (#10) 2023-11-27 23:16:57 +00:00
v.go feat: better formatting for which/where printouts (#11) 2023-11-27 23:46:19 +00:00

v

A version manager you might not want to use.

Overview

v is a simple version manager inspired from other tools like asdf, pyenv, n and 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, ...):

export PATH=<path-to-v-executable>:$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 install <version> to install new versions and v use <installed version> 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.