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.3.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.3.0.tar.gz | 3.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rbx_cp-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.8 MB
Release files / rbx_cp-1.3.0.tar.gz
| Download URL | rbx_cp-1.3.0.tar.gz |
|---|---|
| Size | 3.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
99a9aafb90222b075d1ab931d32ca8e6bd775b1d5a629b9b93be96f8dab360fa
|
|
BLAKE2b-256 checksum How to use checksums |
dd6255472dfac24a1b2c7785a9f7ec5d6da393e27d7ff55639aaeeb7b8f4442b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.14
|
Release files / rbx_cp-1.3.0-py3-none-any.whl
| Download URL | rbx_cp-1.3.0-py3-none-any.whl |
|---|---|
| Size | 1.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
161c982e39cc10124c1ecf55025b25ef1873e6f6150a379827eb545227f3c5eb
|
|
BLAKE2b-256 checksum How to use checksums |
097fde4ed6efde61afc8ed9235ee544a547140d68321611510cf36dba18a33c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.14
|