The go-to CLI tool for programming competitions setters.
Table of Contents
AI Disclaimer
This repo was written until 2026 (~1400 commits) without the use of AI. Thus, the meaty part of the tool was written by a human that (hopefully) know what they're doing. Using AI, though, was proved to be much more efficient and less error prone if a human was kept in the loop. All AI features developed in this tool pass through a PR review and are carefully reviewed by the owner. This helps the owner maintain the project with less time, and implement more useful features in an efficient way (UI features, nice-to-have features, etc).
The owner plans to NOT USE AI for the execution engine of the tool: running solutions, generating tests, etc. These are critical parts of the tool that don't need to change that much, and should be kept stable.
Overview
rbx is a CLI tool that empowers setters from the competitive programming community.
A flexible setting tool, as powerful as Polygon, right on your terminal.
Features
- 🧱 Structure: describe your problem or contest structure with the use of YAML configuration files.
- 🤖 Generation: provides a simple way to describe your whole testset, including both manually added and generated testcases.
- 🔨 Testing: provides commands for automatically running correct and incorrect solutions against the testcases of your problem, automatically judging whether the verdict was as expected or not.
- ✅ Verify: checks if your testcases and solutions are strictly conformant with the use of validators and unit tests.
- 📝 Statements: provides tooling for writing and building statements, also ensuring they're easily synchronized with your testset.
- 📤 Package: provides a single command for packaging your problems for use in your preferred judge system.
Documentation
You can read the docs here.
Contributing
Prerequisites
Getting Started
git clone https://github.com/rsalesc/rbx.git
cd rbx
mise run sync
pre-commit install
Common Tasks
All development commands are run through mise:
| Command | Description |
|---|---|
mise run sync |
Install/sync all dependencies |
mise run lock |
Regenerate uv.lock |
mise run lint |
Run linter |
mise run lint-fix |
Run linter with auto-fix |
mise run format |
Format code |
mise run format-check |
Check formatting without changes |
mise run check |
Run all checks (lint + format) |
mise run test |
Run tests (excludes e2e/slow/docker) |
mise run test-cov |
Run tests with coverage |
mise run test-e2e |
Run e2e tests |
mise run build |
Clean build the package |
Run mise tasks to see all available tasks.
Code Style
- Single quotes for strings
- Absolute imports only — no relative imports
- Conventional Commits — enforced by pre-commit hook
All style rules are enforced automatically by pre-commit hooks (ruff check, ruff format, commitizen).
Submitting Changes
- Create a branch from
main - Make your changes
- Run
mise run checkandmise run test - Commit using Conventional Commits format
- Open a pull request
License
This project is protected under the Apache License 2.0 License. For more details, refer to the LICENSE file.
Metadata
Release files for rbx-cp 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rbx_cp-1.4.0.tar.gz | 3.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rbx_cp-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 5.0 MB
Release files / rbx_cp-1.4.0.tar.gz
| Download URL | rbx_cp-1.4.0.tar.gz |
|---|---|
| Size | 3.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ea78b4ddf40ca41920204fcebf14160f98bc416e13d27038fe52d8967e8710bb
|
|
BLAKE2b-256 checksum How to use checksums |
b56cc2ff55e3283455d2856dffa1c240e6a8cb51e8325f7edd1db14dfc881d6b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.14
|
Release files / rbx_cp-1.4.0-py3-none-any.whl
| Download URL | rbx_cp-1.4.0-py3-none-any.whl |
|---|---|
| Size | 1.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
709d049f3d8be333c1419e322c3c6e120197bea3a4eb1c3132082cf9e49c7ddd
|
|
BLAKE2b-256 checksum How to use checksums |
1ac72c5544b4e2a95e8c453bfcd91382350d6bc43324a31bbb8cd40b07a696e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.14
|