Skip to main content

triage-issue

Triage an OpenROAD GitHub issue by reproducing the bug and minimizing the test case with whittle.py. Use when an issue has an attached tarball artifact (.tar.gz) from `make *_issue`.

Ir a la instalación

Datos de origen

Repositorio
The-OpenROAD-Project/OpenROAD
Última actividad en el origen
1 de abril de 2026 a las 14:33
Idioma detectado de SKILL.md
inglés
Estrellas
3105
Forks
1011

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
triage-issue
description
Triage an OpenROAD GitHub issue by reproducing the bug and minimizing the test case with whittle.py. Use when an issue has an attached tarball artifact (.tar.gz) from `make *_issue`.
argument-hint
<issue-number>
# Triage OpenROAD Issue You are triaging OpenROAD issue **$ARGUMENTS**. ## 1. Fetch issue details ```bash gh issue view $ARGUMENTS --repo The-OpenROAD-Project/OpenROAD \ --json title,body,labels,state,comments ``` Look for: - Error string (e.g. `GPL-0305`, `GPL-0307`, `DRT-XXXX`) - Attached tarball URL (from `make *_issue`) - OpenROAD version the bug was reported against ## 2. Download and extract artifact Download any `.tar.gz` attached to the issue body or comments. Extract into a working directory: ```bash mkdir -p /tmp/triage-$ARGUMENTS cd /tmp/triage-$ARGUMENTS tar xzf <downloaded-tarball> cd <extracted-dir> ``` ## 3. Fix the run script The `run-me-*.sh` scripts from `make *_issue` often need two fixes: ```bash # Add set -e to exit on error sed -i '2i set -e' run-me-*.sh # Add -exit so openroad exits after the tcl script sed -i 's/openroad -no_init/openroad -exit -no_init/g' run-me-*.sh sed -i 's/openroad -no_splash/openroad -exit -no_splash/g' run-me-*.sh ``` ## 4. Build OpenROAD Build from the OpenROAD source tree: ```bash cd <path-to>/OpenROAD bazelisk build :openroad ``` The binary is at `bazel-bin/openroad`. Export it: ```bash export OPENROAD_EXE=$(pwd)/bazel-bin/openroad ``` ## 5. Reproduce the bug Run the step command and confirm the error string appears: ```bash cd /tmp/triage-$ARGUMENTS/<extracted-dir> ./run-me-*.sh 2>&1 | tee reproduce.log grep -c "<error-string>" reproduce.log ``` If the bug does NOT reproduce with the latest OpenROAD, report this on the issue -- the bug may have been fixed. ## 6. Run whittle.py ```bash python3 <path-to>/OpenROAD/etc/whittle.py \ --error_string "<error-string>" \ --base_db_path <path-to>.odb \ --use_stdout --exit_early_on_error \ --step "./run-me-*.sh" \ --persistence 3 --multiplier 2 ``` ### Monitoring progress Watch the `[whittle]` lines. Key things to check: - **ETA growing?** The design may be too large for the current persistence level. Try `--persistence 1` for a coarse first pass. - **.odb size not shrinking?** The error may depend on most of the design. Try increasing `--multiplier`. - **Step timeout too long?** Use `--timeout 300` to cap each step at 5 minutes. - **After 5 minutes** of a step, whittle.py shows the tail of the step's log so you can see what it is doing. ### When to abort - If after 20+ steps the .odb size has not changed, abort and try different parameters. - If the step itself takes >10 minutes, consider whether the error string is specific enough (avoid generic strings like "ERROR"). ## 7. Upload results Create a new tarball with the whittled .odb: ```bash cp whittle_base_result_*.odb <original-odb-path> tar czf whittled-$ARGUMENTS.tar.gz <extracted-dir>/ ``` Comment on the issue with before/after stats: ```bash gh issue comment $ARGUMENTS --repo The-OpenROAD-Project/OpenROAD \ --body "Whittled test case: original NNN insts -> MMM insts, \ .odb size: XXX MB -> YYY MB. Attached whittled tarball." ``` Upload the tarball to the issue comment via the GitHub web UI (gh CLI does not support file attachments on comments).
Ver en GitHub