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`.

Aller à l'installation

Informations de source

Dépôt
The-OpenROAD-Project/OpenROAD
Dernière activité de la source
1 avril 2026 à 14:33
Langue détectée de SKILL.md
anglais
Étoiles
3 105
Forks
1 011

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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).
Voir sur GitHub