The install and tarfile targets were moved to //packaging/ to isolate
@rules_pkg loads from downstream consumers, but this broke the
user-facing //:install and //:tarfile targets. Add alias() rules at
the top level to restore the public API while keeping the implementation
in the packaging/ subdirectory.
Update documentation to use //:install and //:tarfile. Also fix
docs/user/Bazel.md which incorrectly listed rules_shell as a
dev_dependency (it is loaded in the root BUILD.bazel).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Add project-specific AI agent guidance files that work across
Claude Code, Codex, and Gemini CLI. Includes 5 critical rules
(sta/ protection, clang-format exclusions, DCO compliance,
submodule hygiene, upstream bug tracing) and 4 sub-guides
for build, testing, CI, and coding patterns.
Relocate triage-issue skill to .agents/skills/ (cross-tool)
with .claude/skills symlink for backwards compatibility.
Add .gemini/commands/triage-issue.toml for Gemini CLI support.
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
Remove leading underscore from synth and use comma separators
for the list of ORFS stages, as suggested in PR #10011 review.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
bazel-orfs replaced per-stage _deps targets with a single //:deps
wrapper using --output_groups=deps. Update documentation to reflect
the new syntax while keeping tmp/ directory paths unchanged.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Remove Debian 11 from the supported OS table and LTO workaround
since it is no longer supported in CI. Add Debian 13 and Ubuntu 26.04
as newly supported platforms.
Signed-off-by: Joao Luis Sombrio <sombrio@sombrasoft.dev>
Address PR #9827 review feedback:
- Group all dev_dependency bazel_dep entries into a separate section
in MODULE.bazel for easier reasoning (hzeller)
- Combine two register_toolchains calls into one (gemini-code-assist)
- Split downstream MODULE.bazel docs into required and suggested
sections, making toolchains_llvm optional (hzeller)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
- context: `checker:skip` was added as invisble md markers to avoid odb functions being detected in `man_tcl_check`
- adding `skip_markers` enable all Tcl blocks enclosed in md_roff eligible functions to be detected.
Signed-off-by: Jack Luar <39641663+luarss@users.noreply.github.com>
- add readme.md override mechanism (checker:skip) which is invisible in markdown.
- add missing tcl `define_cmd_args`
- fix typos
Signed-off-by: Jack Luar <39641663+luarss@users.noreply.github.com>
The only Posix compatible way to call bash is via `/usr/bin/env`
as bash might be installed in different locations on the system.
`/bin/bash` is not a Posix-required location for that binary
(only `/bin/sh` is).
Use `set -o noglob` instead of `bash -f` for improved readability.
Signed-off-by: Henner Zeller <h.zeller@acm.org>
Add SVG railroad diagrams generated directly from lef.y and def.y,
a Python script to regenerate them, Markdown documentation that
embeds the diagrams, and a GitHub Actions workflow that opens a PR
whenever a grammar file changes.
Files added:
- src/odb/doc/generate_railroad_diagrams.py — converts .y → EBNF →
individual SVG files using ebnf-convert and rr (downloaded from
Maven Central on first use; not committed).
- src/odb/doc/images/lef/ — 246 SVGs generated from lef.y
- src/odb/doc/images/def/ — 276 SVGs generated from def.y
- src/odb/doc/LEF_Grammar.md — documentation with embedded diagrams
- src/odb/doc/DEF_Grammar.md — documentation with embedded diagrams
- src/odb/doc/.gitignore — excludes tools/ and intermediate files
- .github/workflows/github-actions-update-grammar-railroad-diagrams.yml
— auto-regenerates and opens a PR on grammar changes
Resolves#2488
Signed-off-by: Sparsh Karna <sparsh2005karna@gmail.com>
fix_lint was an alias for tidy_tcl (tclfmt only), so developers
who ran it before pushing were still surprised by tclint CI
failures like line-length.
Replace the alias with a script that delegates to tcl_tidy.sh
and tcl_lint_test.sh (DRY), shows git status, and exits with
a clear error if lint violations remain unfixed.
Update docs with POLA rationale and naming convention for
umbrella and per-language targets.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Some modules document commands from other modules in their README
(e.g., ppl documents odb pin constraint commands). Change the test
from assertEqual(p, r) to assertLessEqual(h, r), which still catches
undocumented commands but allows README to have extra cross-module
documentation. Revert README changes that broke readme_msgs_check.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
The help/proc counting used = instead of +=, so modules with
multiple .tcl files (rcx, dbSta) only kept the last file's counts.
Fixes rcx mismatch (h=4 vs r=17 → h=17, p=17, r=17).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Add unittest coverage for the extract_utils parsing functions to
prevent regressions in the define_cmd_args matching logic:
- basic command, multiline args, nested braces, empty args
- checker off filtering (various spacing)
- proc_redirect counted, does not consume next command
- orphan define_cmd_args without proc not counted
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
The old regex (.*?)proc\s spanned across multiple define_cmd_args
blocks when sta::proc_redirect was used between commands, causing
mismatched counts. Match each define_cmd_args by tracking brace
depth and verify a matching proc/proc_redirect exists.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Convert man_tcl_check scripts from ad-hoc print-and-diff-against-.ok
to proper unittest.TestCase with assertEqual. Use Bazel py_test
instead of doc_check_test so the test exit code propagates directly.
- Add py_library for extract_utils in docs/src/scripts/BUILD
- Derive module name from __file__ instead of os.getcwd()
- Fix odb include path in all scripts (swig/tcl/odb.tcl)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
The man_tcl_check tests printed "Command counts do not match" but
exited 0, allowing .ok files to bake in mismatches as expected output.
Replace the if/else with an assert so count mismatches are real
failures. Remove .ok files since assertions are the test now.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Remove the centralized DOC_TEST_MODULES list and doc_test test_suite
from root BUILD.bazel. Each doc_check_test already adds the
"doc_check" tag, so use --test_tag_filters=doc_check //src/... instead.
This avoids the list getting out of sync when modules are added.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Add a section to Bazel.md covering the public API surface
(//:openroad and //:openroad_py), the minimal MODULE.bazel
boilerplate downstream consumers need (qt-bazel git_override,
toolchains_llvm configuration), and which deps are dev_dependency.
Signed-off-by: Claude Code <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
The settings are already visible in tclint.toml itself (DRY),
and the listed exclusions were already stale.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Update documentation to reflect the new filegroup + messages_txt macro
approach and the automatic doc_check tag for test discovery.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>