https://github.com/rapidsai/rvc
https://github.com/rapidsai/rvc
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/rapidsai/rvc
- Owner: rapidsai
- Created: 2021-12-07T14:04:39.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-01-07T09:15:31.000Z (about 1 year ago)
- Last Synced: 2025-06-19T01:06:20.731Z (7 months ago)
- Language: HCL
- Size: 231 KB
- Stars: 5
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rvc
`rvc` (_RAPIDS version converter_) is a tool built with Golang that automatically
convert a `RAPIDS` version (CalVer) to a `ucx-py` version (SemVer) and vice versa.
## Motivation
In June 2021, RAPIDS moved from a SemVer versioning to a CalVer versioning.
As `ucx-py` is expected to be upstreamd to `ucx`, it is not possible to adopt
a CalVer versioning for it, as the versions would have been greater than the
current `ucx` version. `rvc` is designed to ease the conversion between both
versioning.
## Deliverables
`rvc` is published in two different ways:
- As an AWS Lambda instance
- As a CLI binary
### AWS Lambda instance
`rvc` is deployed as an AWS Lambda instance using the _Serverless_ framework.
The deployment configuration can be seen in the
[serverless.yaml](https://github.com/rapidsai/rvc/blob/main/serverless.yaml) file.
A deployment will happen automatically anytime a change is merged to the main branch.
See the [deploy.yaml](https://github.com/rapidsai/rvc/blob/main/.github/workflows/deploy.yaml)
GitHub Action for more details.
`rvc` is deployed at this endpoint: https://version.gpuci.io
Two different routes are exposed:
- https://version.gpuci.io/ucx-py/{version}: Converts a `ucx-py` version to a `RAPIDS` version
- https://version.gpuci.io/rapids/{version}: Converts a `RAPIDS` version to a `ucx-py` version
Examples:
```sh
$ RAPIDS_VER=$(curl -sL https://version.gpuci.io/ucx-py/0.22)
$ echo "${RAPIDS_VER}"
21.10
```
```sh
$ UCX_PY_VER=$(curl -sL https://version.gpuci.io/rapids/21.12)
$ echo "${UCX_PY_VER}"
0.23
```
### CLI binary
`rvc` is also available as a CLI binary.
#### Installation
Download the latest binary from GitHub and add it to one of your `PATH` directories:
```sh
wget https://github.com/rapidsai/rvc/releases/latest/download/rvc -O rvc
chmod +x rvc
sudo mv ./rvc /usr/local/bin
```
#### Usage
```
Usage of rvc:
-rapids string
Rapids version
-ucx-py string
ucx-py version
```
`-rapids` and `ucx-py` options are mutually exclusive.
Examples:
```sh
$ rvc -rapids 21.12
0.23
```
```sh
$ rvc -ucx-py 0.22
21.10
```
## Contributing
### Add a new version mapping
If you need to add a new version mapping, you only need to update this
[map](https://github.com/rapidsai/rvc/blob/main/pkg/rvc/rvc.go#L15).
### Improving `rvc`
Requirements:
- golang >= 1.17
- serverless
A Makefile with some useful rules is provided:
- `make build`: Run unit tests and build CLI and Serverless binaries
- `make test`: Run unit tests
- `make build_cli`: Build CLI binary
- `make build_serverless`: Build Serverless binary
- `make fmt`: Format code
- `make coverage`: Compute and display tests coverage