Skip to content

Commit 5dd7e13

Browse files
authored
Merge branch 'main' into mbg/go/semver-type
2 parents 81297aa + 44a56c4 commit 5dd7e13

File tree

1,461 files changed

+69448
-53287
lines changed

Some content is hidden

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

1,461 files changed

+69448
-53287
lines changed

.bazelrc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,19 @@ common --override_module=semmle_code=%workspace%/misc/bazel/semmle_code_stub
1010

1111
build --repo_env=CC=clang --repo_env=CXX=clang++
1212

13-
build:linux --cxxopt=-std=c++20
14-
build:macos --cxxopt=-std=c++20 --cpu=darwin_x86_64
15-
build:windows --cxxopt=/std:c++20 --cxxopt=/Zc:preprocessor
13+
# we use transitions that break builds of `...`, so for `test` to work with that we need the following
14+
test --build_tests_only
1615

1716
# this requires developer mode, but is required to have pack installer functioning
1817
startup --windows_enable_symlinks
1918
common --enable_runfiles
2019

20+
# with the above, we can avoid building python zips which is the default on windows as that's expensive
21+
build --nobuild_python_zip
22+
2123
common --registry=file:///%workspace%/misc/bazel/registry
2224
common --registry=https://bcr.bazel.build
2325

26+
common --@rules_dotnet//dotnet/settings:strict_deps=false
27+
2428
try-import %workspace%/local.bazelrc

.bazelrc.internal

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,9 @@
22

33
common --registry=file:///%workspace%/ql/misc/bazel/registry
44
common --registry=https://bcr.bazel.build
5+
6+
# See bazelbuild/rules_dotnet#413: strict_deps in C# also appliy to 3rd-party deps, and when we pull
7+
# in (for example) the xunit package, there's no code in this at all, it just depends transitively on
8+
# its implementation packages without providing any code itself.
9+
# We either can depend on internal implementation details, or turn of strict deps.
10+
common --@rules_dotnet//dotnet/settings:strict_deps=false

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7.1.0
1+
7.1.2

.gitattributes

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,26 +50,40 @@
5050
*.dll -text
5151
*.pdb -text
5252

53-
java/ql/test/stubs/**/*.java linguist-generated=true
54-
java/ql/test/experimental/stubs/**/*.java linguist-generated=true
53+
/java/ql/test/stubs/**/*.java linguist-generated=true
54+
/java/ql/test/experimental/stubs/**/*.java linguist-generated=true
55+
/java/kotlin-extractor/deps/*.jar filter=lfs diff=lfs merge=lfs -text
5556

5657
# Force git not to modify line endings for go or html files under the go/ql directory
57-
go/ql/**/*.go -text
58-
go/ql/**/*.html -text
58+
/go/ql/**/*.go -text
59+
/go/ql/**/*.html -text
5960
# Force git not to modify line endings for go dbschemes
60-
go/*.dbscheme -text
61+
/go/*.dbscheme -text
6162
# Preserve unusual line ending from codeql-go merge
62-
go/extractor/opencsv/CSVReader.java -text
63+
/go/extractor/opencsv/CSVReader.java -text
6364

6465
# For some languages, upgrade script testing references really old dbscheme
6566
# files from legacy upgrades that have CRLF line endings. Since upgrade
6667
# resolution relies on object hashes, we must suppress line ending conversion
6768
# for those testing dbscheme files.
68-
*/ql/lib/upgrades/initial/*.dbscheme -text
69+
/*/ql/lib/upgrades/initial/*.dbscheme -text
6970

7071
# Auto-generated modeling for Python
71-
python/ql/lib/semmle/python/frameworks/data/internal/subclass-capture/*.yml linguist-generated=true
72+
/python/ql/lib/semmle/python/frameworks/data/internal/subclass-capture/*.yml linguist-generated=true
7273

7374
# auto-generated bazel lock file
74-
ruby/extractor/cargo-bazel-lock.json linguist-generated=true
75-
ruby/extractor/cargo-bazel-lock.json -merge
75+
/ruby/extractor/cargo-bazel-lock.json linguist-generated=true
76+
/ruby/extractor/cargo-bazel-lock.json -merge
77+
78+
# auto-generated files for the C# build
79+
/csharp/paket.lock linguist-generated=true
80+
# needs eol=crlf, as `paket` touches this file and saves it as crlf
81+
/csharp/.paket/Paket.Restore.targets linguist-generated=true eol=crlf
82+
/csharp/paket.main.bzl linguist-generated=true
83+
/csharp/paket.main_extension.bzl linguist-generated=true
84+
85+
# ripunzip tool
86+
/misc/bazel/internal/ripunzip/ripunzip-* filter=lfs diff=lfs merge=lfs -text
87+
88+
# swift prebuilt resources
89+
/swift/third_party/resource-dir/*.zip filter=lfs diff=lfs merge=lfs -text

.github/workflows/build-ripunzip.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Build runzip
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
ripunzip-version:
7+
description: "what reference to checktout from google/runzip"
8+
required: false
9+
default: v1.2.1
10+
openssl-version:
11+
description: "what reference to checkout from openssl/openssl for Linux"
12+
required: false
13+
default: openssl-3.3.0
14+
15+
jobs:
16+
build:
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
os: [ubuntu-20.04, macos-12, windows-2019]
21+
runs-on: ${{ matrix.os }}
22+
steps:
23+
- uses: actions/checkout@v4
24+
with:
25+
repository: google/ripunzip
26+
ref: ${{ inputs.ripunzip-version }}
27+
# we need to avoid ripunzip dynamically linking into libssl
28+
# see https://github.com/sfackler/rust-openssl/issues/183
29+
- if: runner.os == 'Linux'
30+
name: checkout openssl
31+
uses: actions/checkout@v4
32+
with:
33+
repository: openssl/openssl
34+
path: openssl
35+
ref: ${{ inputs.openssl-version }}
36+
- if: runner.os == 'Linux'
37+
name: build and install openssl with fPIC
38+
shell: bash
39+
working-directory: openssl
40+
run: |
41+
./config -fPIC --prefix=$HOME/.local --openssldir=$HOME/.local/ssl
42+
make -j $(nproc)
43+
make install_sw -j $(nproc)
44+
- if: runner.os == 'Linux'
45+
name: build (linux)
46+
shell: bash
47+
run: |
48+
env OPENSSL_LIB_DIR=$HOME/.local/lib64 OPENSSL_INCLUDE_DIR=$HOME/.local/include OPENSSL_STATIC=yes cargo build --release
49+
mv target/release/ripunzip ripunzip-linux
50+
- if: runner.os == 'Windows'
51+
name: build (windows)
52+
shell: bash
53+
run: |
54+
cargo build --release
55+
mv target/release/ripunzip ripunzip-windows
56+
- name: build (macOS)
57+
if: runner.os == 'macOS'
58+
shell: bash
59+
run: |
60+
rustup target install x86_64-apple-darwin
61+
rustup target install aarch64-apple-darwin
62+
cargo build --target x86_64-apple-darwin --release
63+
cargo build --target aarch64-apple-darwin --release
64+
lipo -create -output ripunzip-macos \
65+
-arch x86_64 target/x86_64-apple-darwin/release/ripunzip \
66+
-arch arm64 target/aarch64-apple-darwin/release/ripunzip
67+
- uses: actions/upload-artifact@v4
68+
with:
69+
name: ripunzip-${{ runner.os }}
70+
path: ripunzip-*
71+
- name: Check built binary
72+
shell: bash
73+
run: |
74+
./ripunzip-* --version

.github/workflows/codeql-analysis.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ jobs:
5656
# uses a compiled language
5757

5858
- run: |
59-
dotnet build csharp
59+
cd csharp
60+
dotnet tool restore
61+
dotnet build .
6062
6163
- name: Perform CodeQL Analysis
6264
uses: github/codeql-action/analyze@main

.github/workflows/csharp-qltest.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
key: csharp-qltest-${{ matrix.slice }}
6666
- name: Run QL tests
6767
run: |
68-
codeql test run --threads=0 --ram 50000 --slice ${{ matrix.slice }} --search-path extractor-pack --check-databases --check-undefined-labels --check-repeated-labels --check-redefined-labels --consistency-queries ql/consistency-queries ql/test --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}"
68+
codeql test run --threads=0 --ram 50000 --slice ${{ matrix.slice }} --search-path "${{ github.workspace }}" --check-databases --check-undefined-labels --check-repeated-labels --check-redefined-labels --consistency-queries ql/consistency-queries ql/test --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}"
6969
env:
7070
GITHUB_TOKEN: ${{ github.token }}
7171
unit-tests:
@@ -81,10 +81,11 @@ jobs:
8181
dotnet-version: 8.0.101
8282
- name: Extractor unit tests
8383
run: |
84+
dotnet tool restore
8485
dotnet test -p:RuntimeFrameworkVersion=8.0.1 extractor/Semmle.Util.Tests
8586
dotnet test -p:RuntimeFrameworkVersion=8.0.1 extractor/Semmle.Extraction.Tests
8687
dotnet test -p:RuntimeFrameworkVersion=8.0.1 autobuilder/Semmle.Autobuild.CSharp.Tests
87-
dotnet test -p:RuntimeFrameworkVersion=8.0.1 "${{ github.workspace }}/cpp/autobuilder/Semmle.Autobuild.Cpp.Tests"
88+
dotnet test -p:RuntimeFrameworkVersion=8.0.1 autobuilder/Semmle.Autobuild.Cpp.Tests
8889
shell: bash
8990
stubgentest:
9091
runs-on: ubuntu-latest
@@ -100,6 +101,6 @@ jobs:
100101
# Update existing stubs in the repo with the freshly generated ones
101102
mv "$STUBS_PATH/output/stubs/_frameworks" ql/test/resources/stubs/
102103
git status
103-
codeql test run --threads=0 --search-path extractor-pack --check-databases --check-undefined-labels --check-repeated-labels --check-redefined-labels --consistency-queries ql/consistency-queries -- ql/test/library-tests/dataflow/flowsources/aspremote
104+
codeql test run --threads=0 --search-path "${{ github.workspace }}" --check-databases --check-undefined-labels --check-repeated-labels --check-redefined-labels --consistency-queries ql/consistency-queries -- ql/test/library-tests/dataflow/flowsources/aspremote
104105
env:
105106
GITHUB_TOKEN: ${{ github.token }}

.github/workflows/go-tests-other-os.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ on:
77
- .github/workflows/go-tests-other-os.yml
88
- .github/actions/**
99
- codeql-workspace.yml
10+
- MODULE.bazel
11+
- .bazelrc
12+
- misc/bazel/**
1013

1114
permissions:
1215
contents: read

.github/workflows/go-tests.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ on:
1515
- .github/workflows/go-tests.yml
1616
- .github/actions/**
1717
- codeql-workspace.yml
18+
- MODULE.bazel
19+
- .bazelrc
20+
- misc/bazel/**
1821

1922
permissions:
2023
contents: read

.github/workflows/kotlin-build.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: "Kotlin Build"
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- "java/kotlin-extractor/**"
7+
- "misc/bazel/**"
8+
- "misc/codegen/**"
9+
- "*.bazel*"
10+
- .github/workflows/kotlin-build.yml
11+
branches:
12+
- main
13+
- rc/*
14+
- codeql-cli-*
15+
16+
permissions:
17+
contents: read
18+
19+
jobs:
20+
build:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- uses: actions/checkout@v4
24+
- run: |
25+
bazel query //java/kotlin-extractor/...
26+
# only build the default version as a quick check that we can build from `codeql`
27+
# the full official build will be checked by QLucie
28+
bazel build //java/kotlin-extractor

.github/workflows/ql-for-ql-build.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,20 +49,20 @@ jobs:
4949
key: ${{ runner.os }}-${{ steps.os_version.outputs.version }}-rust-cargo-${{ hashFiles('ql/**/Cargo.lock') }}
5050
- name: Release build
5151
if: steps.cache-extractor.outputs.cache-hit != 'true'
52-
run: cd ql; ./scripts/create-extractor-pack.sh
52+
run: cd ql; ./scripts/create-extractor-pack.sh
5353
env:
54-
GH_TOKEN: ${{ github.token }}
54+
GH_TOKEN: ${{ github.token }}
5555
- name: Cache compilation cache
5656
id: query-cache
5757
uses: ./.github/actions/cache-query-compilation
58-
with:
58+
with:
5959
key: run-ql-for-ql
6060
- name: Make database and analyze
6161
run: |
6262
./ql/target/release/buramu | tee deprecated.blame # Add a blame file for the extractor to parse.
63-
${CODEQL} database create -l=ql --search-path ql/extractor-pack ${DB}
63+
${CODEQL} database create -l=ql ${DB} --search-path "${{ github.workspace }}"
6464
${CODEQL} database analyze -j0 --format=sarif-latest --output=ql-for-ql.sarif ${DB} ql/ql/src/codeql-suites/ql-code-scanning.qls --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}"
65-
env:
65+
env:
6666
CODEQL: ${{ steps.find-codeql.outputs.codeql-path }}
6767
DB: ${{ runner.temp }}/DB
6868
LGTM_INDEX_FILTERS: |

.github/workflows/ql-for-ql-dataset_measure.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ jobs:
5353
- name: Create database
5454
run: |
5555
"${CODEQL}" database create \
56-
--search-path "ql/extractor-pack" \
57-
--threads 4 \
56+
--search-path "${{ github.workspace }}"
57+
--threads 4 \
5858
--language ql --source-root "${{ github.workspace }}/repo" \
5959
"${{ runner.temp }}/database"
6060
env:

.github/workflows/ql-for-ql-tests.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,23 +49,23 @@ jobs:
4949
- name: Cache compilation cache
5050
id: query-cache
5151
uses: ./.github/actions/cache-query-compilation
52-
with:
52+
with:
5353
key: ql-for-ql-tests
5454
- name: Run QL tests
5555
run: |
56-
"${CODEQL}" test run --check-databases --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --search-path "${{ github.workspace }}/ql/extractor-pack" --consistency-queries ql/ql/consistency-queries --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" ql/ql/test
56+
"${CODEQL}" test run --check-databases --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --search-path "${{ github.workspace }}" --consistency-queries ql/ql/consistency-queries --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" ql/ql/test
5757
env:
5858
CODEQL: ${{ steps.find-codeql.outputs.codeql-path }}
5959

60-
other-os:
60+
other-os:
6161
strategy:
6262
matrix:
6363
os: [macos-latest, windows-latest]
6464
needs: [qltest]
6565
runs-on: ${{ matrix.os }}
6666
steps:
6767
- uses: actions/checkout@v4
68-
- name: Install GNU tar
68+
- name: Install GNU tar
6969
if: runner.os == 'macOS'
7070
run: |
7171
brew install gnu-tar
@@ -100,13 +100,12 @@ jobs:
100100
- name: Run a single QL tests - Unix
101101
if: runner.os != 'Windows'
102102
run: |
103-
"${CODEQL}" test run --check-databases --search-path "${{ github.workspace }}/ql/extractor-pack" ql/ql/test/queries/style/DeadCode/DeadCode.qlref
103+
"${CODEQL}" test run --check-databases --search-path "${{ github.workspace }}" ql/ql/test/queries/style/DeadCode/DeadCode.qlref
104104
env:
105105
CODEQL: ${{ steps.find-codeql.outputs.codeql-path }}
106106
- name: Run a single QL tests - Windows
107107
if: runner.os == 'Windows'
108108
shell: pwsh
109109
run: |
110110
$Env:PATH += ";$(dirname ${{ steps.find-codeql.outputs.codeql-path }})"
111-
codeql test run --check-databases --search-path "${{ github.workspace }}/ql/extractor-pack" ql/ql/test/queries/style/DeadCode/DeadCode.qlref
112-
111+
codeql test run --check-databases --search-path "${{ github.workspace }}" ql/ql/test/queries/style/DeadCode/DeadCode.qlref

.github/workflows/ruby-dataset-measure.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
- name: Create database
4545
run: |
4646
codeql database create \
47-
--search-path "${{ github.workspace }}/ruby/extractor-pack" \
47+
--search-path "${{ github.workspace }}" \
4848
--threads 4 \
4949
--language ruby --source-root "${{ github.workspace }}/repo" \
5050
"${{ runner.temp }}/database"

.github/workflows/ruby-qltest.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ jobs:
6464
- name: Cache compilation cache
6565
id: query-cache
6666
uses: ./.github/actions/cache-query-compilation
67-
with:
67+
with:
6868
key: ruby-qltest
6969
- name: Run QL tests
7070
run: |
71-
codeql test run --threads=0 --ram 50000 --search-path "${{ github.workspace }}/ruby/extractor-pack" --check-databases --check-undefined-labels --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --consistency-queries ql/consistency-queries ql/test --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}"
71+
codeql test run --threads=0 --ram 50000 --search-path "${{ github.workspace }}" --check-databases --check-undefined-labels --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --consistency-queries ql/consistency-queries ql/test --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}"
7272
env:
7373
GITHUB_TOKEN: ${{ github.token }}

.github/workflows/swift.yml

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,6 @@ jobs:
6868
steps:
6969
- uses: actions/checkout@v4
7070
- uses: ./swift/actions/run-ql-tests
71-
integration-tests-linux:
72-
if: github.repository_owner == 'github'
73-
needs: build-and-test-linux
74-
runs-on: ubuntu-latest-xl
75-
steps:
76-
- uses: actions/checkout@v4
77-
- uses: ./swift/actions/run-integration-tests
78-
integration-tests-macos:
79-
if: ${{ github.repository_owner == 'github' && github.event_name == 'pull_request' }}
80-
needs: build-and-test-macos
81-
runs-on: macos-12-xl
82-
timeout-minutes: 60
83-
steps:
84-
- uses: actions/checkout@v4
85-
- uses: ./swift/actions/run-integration-tests
8671
clang-format:
8772
if : ${{ github.event_name == 'pull_request' }}
8873
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)