Skip to content

Commit 64e650e

Browse files
Merge pull request #1 from DeusData/main
What does this PR do
2 parents 96c3f41 + 56700bd commit 64e650e

1,642 files changed

Lines changed: 1273167 additions & 511339 deletions

File tree

Some content is hidden

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

‎.codebase-memory.json‎

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
{
2+
"test_impact": {
3+
"version": 1,
4+
"tests": {
5+
"presets": {
6+
"c-cbm": true
7+
}
8+
},
9+
"rules": [
10+
{
11+
"id": "harness",
12+
"paths": ["tests/test_framework.h", "tests/test_helpers.*", "tests/test_main.c"],
13+
"action": "run_all"
14+
},
15+
{
16+
"id": "engine",
17+
"paths": [".codebase-memory.json", "src/mcp/test_impact*", "src/store/store_impact.*"],
18+
"action": "run_all"
19+
},
20+
{
21+
"id": "build",
22+
"paths": ["scripts/**", "test-infrastructure/**", "pkg/**"],
23+
"action": "run_all"
24+
},
25+
{
26+
"id": "grammars",
27+
"paths": ["internal/cbm/vendored/**"],
28+
"action": "run_all"
29+
},
30+
{
31+
"id": "fixtures",
32+
"paths": ["tests/fixtures/*/**"],
33+
"action": "referencing_tests",
34+
"key": "path_segment:2"
35+
},
36+
{
37+
"id": "contracts",
38+
"paths": ["tests/**/*.{sh,py,json,txt}"],
39+
"action": "ignore"
40+
},
41+
{
42+
"id": "notices",
43+
"paths": ["NOTICE*", "CHANGELOG*", "THIRD_PARTY*"],
44+
"action": "ignore"
45+
}
46+
],
47+
"unmapped_files": "run_all",
48+
"coverage": {
49+
"compatibility_paths": [
50+
"tests/test_framework.h",
51+
"tests/test_main.c",
52+
"tests/test_helpers.h",
53+
"Makefile.cbm",
54+
"scripts/test-impact/coverage-map.py",
55+
"scripts/test-impact/coverage-merge.py"
56+
]
57+
}
58+
}
59+
}

‎.gitattributes‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,10 @@ scripts/hooks/pre-commit text eol=lf
1515
# Chialisp grammar corpus: one case asserts CRLF comment termination, so this
1616
# file must keep its exact bytes on every platform (no eol conversion). (#919)
1717
tools/tree-sitter-chialisp/test/corpus/comments.txt -text
18+
19+
# llvm-profdata text captures: tests/test_profile_text_parser.py checks their
20+
# SHA-256, so they keep their exact bytes on every platform (no eol conversion).
21+
tests/fixtures/profile_text/*.proftext -text
22+
# Golden profile-map outputs: tests/test_profile_map_v2.py compares the
23+
# producer's LF bytes against them, so they keep their exact bytes too.
24+
tests/fixtures/profile_map_v2/*.tsv -text

‎.github/workflows/_lint.yml‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,19 @@
33
name: Lint & Security
44

55
on:
6-
workflow_call: {}
6+
workflow_call:
7+
inputs:
8+
lanes:
9+
description: 'PR lane selection (scripts/ci/select-lanes.sh JSON list); "all" = every job (dry run, release)'
10+
type: string
11+
default: all
712

813
permissions:
914
contents: read
1015

1116
jobs:
1217
lint:
18+
if: ${{ inputs.lanes == 'all' || contains(fromJSON(inputs.lanes), 'lint') }}
1319
# Pinned, not ubuntu-latest: the LLVM install below adds an
1420
# apt.llvm.org llvm-toolchain-NOBLE repo, which is 24.04 by name. When
1521
# GitHub moves ubuntu-latest to the next LTS this job breaks on a day
@@ -64,6 +70,7 @@ jobs:
6470
# provability (never suppressed — the NOLINT ban applies here too).
6571
# Vendored-tree diagnostics are path-filtered, mirroring .cppcheck.
6672
lint-mem:
73+
if: ${{ inputs.lanes == 'all' || contains(fromJSON(inputs.lanes), 'lint-mem') }}
6774
# Pinned for the same reason as `lint`: llvm-toolchain-noble-21 below.
6875
runs-on: ubuntu-24.04
6976
timeout-minutes: 60

‎.github/workflows/_security.yml‎

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@
44
name: Security Gate
55

66
on:
7-
workflow_call: {}
7+
workflow_call:
8+
inputs:
9+
lanes:
10+
description: 'PR lane selection (scripts/ci/select-lanes.sh JSON list); "all" = every job (dry run, release)'
11+
type: string
12+
default: all
813

914
permissions:
1015
contents: read
@@ -16,13 +21,18 @@ jobs:
1621
steps:
1722
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
1823
- name: "Layer 1: Static allow-list audit"
19-
run: scripts/security-audit.sh
24+
run: |
25+
bash tests/test_security_audit_subprocess_calls.sh
26+
scripts/security-audit.sh
2027
- name: "Layer 6: UI security audit"
21-
run: scripts/security-ui.sh
28+
run: |
29+
bash tests/test_security_ui_urls.sh
30+
scripts/security-ui.sh
2231
- name: "Layer 8: Vendored dependency integrity"
2332
run: scripts/security-vendored.sh
2433

2534
license-gate:
35+
if: ${{ inputs.lanes == 'all' || contains(fromJSON(inputs.lanes), 'license-gate') }}
2636
runs-on: ubuntu-latest
2737
timeout-minutes: 240
2838
steps:
@@ -39,6 +49,7 @@ jobs:
3949
run: scripts/audit-license-provenance.py
4050

4151
codeql-gate:
52+
if: ${{ inputs.lanes == 'all' || contains(fromJSON(inputs.lanes), 'codeql-gate') }}
4253
runs-on: ubuntu-latest
4354
timeout-minutes: 240
4455
# Without security-events:read this job inherits the workflow's

0 commit comments

Comments
 (0)