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 2.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| rbx_cp-2.3.3.tar.gz | 4.7 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rbx_cp-2.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.3 MB
Release files / rbx_cp-2.3.3.tar.gz
| Download URL | rbx_cp-2.3.3.tar.gz |
|---|---|
| Size | 4.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fca1aa7e88707fa00f846c4fa150ab546e66a03aaa2af35fe368abe332a92882
|
|
BLAKE2b-256 checksum How to use checksums |
dcabf319d205a0f2987cfd59ef6684f0b616d3f9434fac538e867fab0fafd9bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.14
|
Release files / rbx_cp-2.3.3-py3-none-any.whl
| Download URL | rbx_cp-2.3.3-py3-none-any.whl |
|---|---|
| Size | 2.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
630f573fa97b5911f9217a43f92a33768c623e1a71c8a20e601c1d12013f49fa
|
|
BLAKE2b-256 checksum How to use checksums |
138a2922fa60e1a83b4dcdcc32b5476ceaa4382b7283b2b1c385f7e2624f500e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.14
|
Security for rbx-cp 2.3.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.