commit | c2131be7aa1b27bf81525d33174e09d67bf814c0 | [log] [tgz] |
---|---|---|
author | Oliver Newman <olivernewman@google.com> | Fri Sep 01 19:34:42 2023 +0000 |
committer | CQ Bot <fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Sep 01 19:34:42 2023 +0000 |
tree | dab1d841ca61e8122b39bd3b0669bc82b1f89159 | |
parent | d0d19316744de00ced7e4f58d203cb4311ee77a4 [diff] |
[engine] Allow diamond dependencies Previously, this dependency graph was incorrectly considered a cycle and was not allowed, because `common_dependency.star` is imported twice during the loading of `shac.star`: shac.star | | V | dep.star | | | V V common_dependency.star However, there isn't actually a cycle here; it's still a DAG and all DAGs should be considered valid dependency graphs. Change-Id: Ic3bd5969eeb74ce0b9ee238bc9902b4c7e363836 Reviewed-on: https://fuchsia-review.googlesource.com/c/shac-project/shac/+/911234 Reviewed-by: Danielle Kay <danikay@google.com> Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com> Fuchsia-Auto-Submit: Oliver Newman <olivernewman@google.com>
Shac (Scalable Hermetic Analysis and Checks) is a unified and ergonomic tool and framework for writing and running static analysis checks.
Shac checks are written in Starlark.
go install go.fuchsia.dev/shac-project/shac@latest shac check shac doc shac.star | less
Planned features/changes, in descending order by priority:
shac.textproto
shac.star
files.shac
cache directory that checks can write toctx.scm
glob
arguments to ctx.scm.{all,affected}_files()
functions for easier filtering⚠ The source of truth is at https://fuchsia.googlesource.com/shac-project/shac.git and uses Gerrit for code review.
See CONTRIBUTING.md to submit changes.