Skip to content

Commit 6d7c85d

Browse files
bumahkib7claude
andcommitted
chore: release v0.18.0 — 16 new languages, clippy clean, version bump
Add deep analysis (semantics, callgraph, taint, callbacks, test detection) for PHP, C#, Kotlin, Scala, Swift, Bash, Elixir, Solidity, OCaml. Bundle 858 semgrep rules for 16 new languages. Add CodeQL Models-as-Data knowledge for Ruby and Swift. Fix all clippy warnings and format with cargo fmt. Co-Authored-By: Claude Opus 4.6 <[email protected]>
1 parent 240bf3b commit 6d7c85d

File tree

3,134 files changed

+189960
-324
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,134 files changed

+189960
-324
lines changed

.gitmodules

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[submodule "external/codeql"]
2+
path = external/codeql
3+
url = https://github.com/github/codeql.git
4+
[submodule "external/pysa-models"]
5+
path = external/pysa-models
6+
url = https://github.com/facebook/pyre-check.git

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.18.0] - 2026-02-06
11+
12+
### Added
13+
- Deep analysis (semantics, callgraph, taint tracking, callbacks, test detection) for PHP, C#, Kotlin, Scala, Swift, Bash, Elixir, Solidity, OCaml
14+
- 858 semgrep rules for 16 new languages
15+
- CodeQL Models-as-Data knowledge for Ruby and Swift
16+
- CLI `--languages` flag support for all 20 languages
17+
18+
### Fixed
19+
- CLI `parse_language()` silently dropping unknown language names
20+
1021
## [0.17.0] - 2026-02-03
1122

1223
### Added

Cargo.lock

Lines changed: 22 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ members = [
1111
"crates/plugins",
1212
"crates/lsp",
1313
"crates/ai",
14+
"crates/knowledge-gen",
1415
]
1516

1617
[workspace.package]
17-
version = "0.17.0"
18+
version = "0.18.0"
1819
edition = "2024"
1920
authors = ["Rust Monorepo Analyzer Team"]
2021
license = "MIT OR Apache-2.0"

crates/ai/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ edition.workspace = true
66
license.workspace = true
77

88
[dependencies]
9-
rma-common = { version = "0.17.0", path = "../common" }
10-
rma-parser = { version = "0.17.0", path = "../parser" }
9+
rma-common = { version = "0.18.0", path = "../common" }
10+
rma-parser = { version = "0.18.0", path = "../parser" }
1111
anyhow.workspace = true
1212
thiserror.workspace = true
1313
tracing.workspace = true

crates/ai/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ impl AiFinding {
149149
fix: None,
150150
confidence,
151151
category,
152+
source: rma_common::FindingSource::Ai,
152153
fingerprint: None,
153154
properties: None,
154155
occurrence_count: None,

crates/analyzer/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ oxc = [
1818
]
1919

2020
[dependencies]
21-
rma-common = { version = "0.17.0", path = "../common" }
22-
rma-parser = { version = "0.17.0", path = "../parser" }
23-
rma-rules = { version = "0.17.0", path = "../rules" }
21+
rma-common = { version = "0.18.0", path = "../common" }
22+
rma-parser = { version = "0.18.0", path = "../parser" }
23+
rma-rules = { version = "0.18.0", path = "../rules" }
2424
anyhow.workspace = true
2525
thiserror.workspace = true
2626
tracing.workspace = true

crates/analyzer/src/cache.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,7 @@ mod tests {
428428
fix: None,
429429
confidence: rma_common::Confidence::default(),
430430
category: rma_common::FindingCategory::default(),
431+
source: Default::default(),
431432
fingerprint: None,
432433
properties: None,
433434
occurrence_count: None,

crates/analyzer/src/callgraph/classifier.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,22 @@ fn is_http_handler_name(name: &str, language: Language) -> bool {
654654
|| lower == "destroy"
655655
}
656656
Language::Php => lower.ends_with("action") || lower.ends_with("controller"),
657+
Language::CSharp => {
658+
lower.ends_with("action") || lower.ends_with("controller") || lower.starts_with("on")
659+
}
660+
Language::Kotlin => lower.ends_with("handler") || lower.starts_with("handle"),
661+
Language::Scala => lower.ends_with("action") || lower.ends_with("handler"),
662+
Language::Swift => lower.ends_with("handler") || lower.starts_with("handle"),
663+
Language::Elixir => {
664+
lower == "index"
665+
|| lower == "show"
666+
|| lower == "create"
667+
|| lower == "update"
668+
|| lower == "delete"
669+
|| lower == "new"
670+
|| lower == "edit"
671+
}
672+
Language::Solidity | Language::Bash => false,
657673
_ => lower.ends_with("handler") || (lower.contains("handle") && lower.contains("request")),
658674
}
659675
}

0 commit comments

Comments
 (0)