📊 Latest Build Reports:
🎯 Primary Objective: Assess the readiness of Conan packages for RISC-V architecture by performing native compilation builds and tracking success/failure rates across the ecosystem.
This system helps the RISC-V ecosystem by:
- 🔍 Identifying Compatible Packages: Discovering which packages already work on RISC-V
- 📊 Tracking Progress: Monitoring RISC-V adoption across the Conan ecosystem
- 🐛 Finding Issues: Highlighting packages that need RISC-V-specific fixes
- Clean Compilation with Docker: Uses Docker containers for isolated compilation
- Persistent Storage: SQLite database and detailed logs with resume capability
- Parallel Execution: Configurable multi-threaded builds for efficiency
- Multiplatform Support: Configurable target platforms (RISC-V, ARM64, x86_64, etc.)
- Optional QEMU Emulation: Enables cross-compilation in a native-like environment
- Linux/macOS host (Windows not tested)
- Python 3.8+
- Docker with buildx support
- Git (for cloning conan-center-index)
- QEMU emulation (for non-RISC-V hosts)
# Create virtual environment and install dependencies
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Clone the Conan Center Index (if not already present)
git clone https://github.com/conan-io/conan-center-index.git conan-center-index
# Create dirs for conan cache and logs
mkdir conan_cache
mkdir logs
# For non-risc-v hosts:
# Register QEMU emulator for RISC-V (required for x86/ARM hosts)
docker run --privileged --rm tonistiigi/binfmt --install riscv64# Dump top 10 packages (by commit count) to file.
python3 main.py --dump-top-k-to top.txt --top-k 100
# Build Docker image: Ubuntu with build tools.
python3 main.py --build-image
# Build packages with 3 concurrent containers.
# (The same command is used for resume the builds)
python3 main.py --package-file top.txt --max-workers 3
# Check results and identify failures
python3 analyze_results.py# Build specific packages by name
python3 main.py --packages popl zlib boost nlohmann_json
# Build docker image and packages for arm64
python3 main.py --build-image --platform linux/arm64
python3 main.py --package-file top.txt --platform linux/arm64 --profile conan_profiles/arm64-linux-gcc
# Force rebuild top10 packages
python3 main.py --top-k 10 --force-rebuild
# Rebuild only packages that failed previously
python3 main.py --rebuild-failedDuring execution, an SQLite database will be created to store results.
| Option | Default | Description |
|---|---|---|
--repo-path |
conan-center-index |
Path to conan-center-index repository |
--logs-path |
logs |
Directory for build log files |
--cache-path |
conan_cache |
Conan cache directory |
--db-path |
build_results.sqlite |
SQLite database file path |
--profile |
conan_profiles/riscv64-linux-gcc |
Conan build profile |
--image |
conan-builder |
Docker image name |
--platform |
linux/riscv64 |
Target platform for Docker builds |
--max-workers |
5 |
Maximum number of parallel build workers |
--top-k |
None | Limit packages to process (for both dumping and building) |
--packages |
None | Build specific packages by name |
--package-file |
None | Build packages listed in file (one per line) |
--build-image |
False | Build Docker image before starting |
--rebuild-failed |
False | Rebuild only packages that previously failed |
--dump-top-k-to |
None | Dump top-k packages to file and exit |
--force-rebuild |
False | Force rebuild even if already completed |