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.6.2
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.6.2.tar.gz | 3.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rbx_cp-1.6.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 5.4 MB
Release files / rbx_cp-1.6.2.tar.gz
| Download URL | rbx_cp-1.6.2.tar.gz |
|---|---|
| Size | 3.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
270337cfd1c09f1e47a7abb68fbe2b6829e02fbea2de56eb3eaaba2efef194cf
|
|
BLAKE2b-256 checksum How to use checksums |
995216796ab61b9f4293121388ef71b404f662ccf40f3a95a808022205334679
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.14
|
Release files / rbx_cp-1.6.2-py3-none-any.whl
| Download URL | rbx_cp-1.6.2-py3-none-any.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3b2c8f6332ea27c7629f8a5be9adddb0042eb08459658fa590a9027eb44bb4cd
|
|
BLAKE2b-256 checksum How to use checksums |
c2520e3e855fe4d1b08bf741fb8ad0ef4f46cd49c1900a04a70d848590c4a90a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.14
|