Skip to content

Latest commit

 

History

History
102 lines (77 loc) · 2.63 KB

README.md

File metadata and controls

102 lines (77 loc) · 2.63 KB

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 file. A deployment will happen automatically anytime a change is merged to the main branch. See the deploy.yaml GitHub Action for more details.

rvc is deployed at this endpoint: https://version.gpuci.io

Two different routes are exposed:

Examples:

$ RAPIDS_VER=$(curl -sL https://version.gpuci.io/ucx-py/0.22)
$ echo "${RAPIDS_VER}"
21.10
$ 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:

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:

$ rvc -rapids 21.12
0.23
$ 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.

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