Commit Graph

956 Commits

Author SHA1 Message Date
Arthur Baars
c08d98d159 Rust: add to querylist and shared code metrics scripts 2025-07-01 12:16:42 +02:00
Michael Nebel
233b54c7fa Merge pull request #19891 from michaelnebel/michaelnebel/freezemoresuites
Go/Ruby/Python: Freeze quality queries in `security-and-quality`.
2025-07-01 09:04:19 +02:00
Michael Nebel
143a91efc4 Re-use the security-extended selector in the security-and-frozen-quality selector. 2025-06-27 11:08:08 +02:00
Michael Nebel
3efbed56b0 Shared: Modify the frozen selector to only include security queries. 2025-06-26 14:09:43 +02:00
Michael Nebel
1fbf3a39fb Shared: Add a copy of the security-and-quality selector. 2025-06-26 14:05:46 +02:00
Paolo Tranquilli
de72e68d2c Merge branch 'main' into redsun82/codegen-new-parent-child 2025-06-26 12:14:53 +02:00
Paolo Tranquilli
9a8ef3acf7 Merge branch 'main' into redsun82/codegen-new-parent-child 2025-06-26 09:30:41 +02:00
Paolo Tranquilli
ab2e7082f3 Merge branch 'main' into redsun82/codegen-use-one-test-file 2025-06-25 14:31:17 +02:00
Paolo Tranquilli
355fd85c23 Codegen: remove unneeded has|getNumberOf in instance tests 2025-06-25 12:02:13 +02:00
Nick Rolfe
c6ff07ad5a Merge branch 'main' into nickrolfe/ruby-overlay-extraction 2025-06-25 05:46:26 -04:00
Paolo Tranquilli
6bbf1e3bc1 Codegen: use one generated test file per directory
This collapses all generated test QL sources into a single one per
directory, using query predicates to run the different tests.

This should improve the time required to run generated tests.
2025-06-25 11:44:54 +02:00
Paolo Tranquilli
1dcd60527c Codegen: improve implementation of generated parent/child relationship
This improves the implementation of the generated parent/child
relationship by adding a new `all_children` field to `ql.Class` which
lists all children (both direct and inherited) of a class, carefully
avoiding duplicating children in case of diamond inheritance. This:
* simplifies the generated code,
* avoid children ambiguities in case of diamond inheritance.

This only comes with some changes in the order of children in the
generated tests (we were previously sorting bases alphabetically there).
For the rest this should be a non-functional change.
2025-06-24 17:26:24 +02:00
github-actions[bot]
6972c7a872 Post-release preparation for codeql-cli-2.22.1 2025-06-24 12:55:14 +00:00
github-actions[bot]
3e074b2425 Release preparation for version 2.22.1 2025-06-24 08:55:31 +00:00
Paolo Tranquilli
377fb00dea Merge branch 'main' into redsun82/cargo-upgrade-3 2025-06-23 12:26:15 +02:00
Paolo Tranquilli
23c449f21f Merge pull request #19824 from github/redsun82/rust-derive-macro-expansion
Rust: expand derive macros
2025-06-23 09:42:49 +02:00
Paolo Tranquilli
492b0cd2e8 Bazel: regenerate cargo vendored files 2025-06-20 17:37:58 +02:00
Paolo Tranquilli
0d292b785c Rust: remove reduntant Item superclass from Adt subclasses 2025-06-20 15:45:18 +02:00
Paolo Tranquilli
e935bd6faf Rust: expand derive macros 2025-06-20 11:19:06 +02:00
Nick Rolfe
c4ccc5502d Ruby: add support for extracting overlays 2025-06-19 16:34:14 +01:00
Paolo Tranquilli
261c129555 MaD generator: add single file mode 2025-06-19 12:57:05 +02:00
Paolo Tranquilli
2818e6ee17 MaD generator: switch to snake_case fields 2025-06-19 11:59:28 +02:00
Paolo Tranquilli
24cfc840a6 Merge branch 'main' into redsun82/mad-generator 2025-06-18 16:53:43 +02:00
Tamas Vajk
40274dcd69 Add code-quality-extended query suites 2025-06-18 13:10:34 +02:00
Paolo Tranquilli
299fe2eb3f Rust: add proc-macro capabilities to QL tests
This adds the possibility to add a special `proc_macro.rs` source file
to QL tests, which will be generated into a `proc_macro` crate the
usual `lib` crate depends on.

This allow to define procedural macros in QL tests, and is here used to
move the `macro-expansion` integration test to be a language test
instead.

As the generated manifests involved were starting to get a bit complex,
they are now generated from a `mustache` template.
2025-06-17 16:58:33 +02:00
Paolo Tranquilli
fe1e562f8d CI: fix python version
Turns out this is important for the black formatting tool to work
correctly. The formatting won't generally change between python versions
(it only depends on `black`'s version), but the formatted code needs to
be parseable by the system python version. One script uses
```python
def foo[T](x: T) -> T:
```
syntax, which is only supported in Python 3.12 and later.

Running `pre-commit` will now require a python 3.12 installation (which
is already what we mandate for internal developer environment setup).
The error in case of absence of such a version is pretty clear though.
2025-06-13 18:19:30 +02:00
Paolo Tranquilli
5df292c286 MaD generator: apply black formatting to all sources 2025-06-13 08:47:07 +02:00
Paolo Tranquilli
1a36374718 MaD generator: really fix ordering problem 2025-06-13 08:45:55 +02:00
Paolo Tranquilli
f7266c973b Merge branch 'main' into redsun82/mad-generator 2025-06-13 08:42:06 +02:00
Paolo Tranquilli
55eb9fb838 Merge pull request #19712 from github/redsun82/python-black
Add `black` pre-commit hook
2025-06-12 20:49:56 +02:00
Paolo Tranquilli
22c490ce4e Merge pull request #19667 from github/redsun82/rust-mad
Rust: Use QL computed canonical paths in MaD `Field` tokens
2025-06-12 20:48:41 +02:00
Paolo Tranquilli
ae3bbb0a9b MaD generator: run black formatter` 2025-06-12 16:52:29 +02:00
Paolo Tranquilli
39a3623b18 MaD generator: change default thread and ram
The standalone MaD generator now uses `0` for threads and throttles the
RAM to use 2GB per thread by default.

Also, replaced the hand-written argument parsing with `argparse`.
2025-06-12 16:52:14 +02:00
Paolo Tranquilli
7db31b06d1 MaD generator: tweak the scripts
* fix a bug where the order of model generation was determined by the
  order in the `download.json` file of the experiment rather than the
  order in the config file
* allow configuring `--ram` and `--threads` in the MaD generator scripts
* use no `--ram` and `--threads=0` by default in the bulk generator
  (single generator defaults are left unchanged)
* allow to pass `--dca` multiple times, taking DBs from experiments
  listed last. This allows to run a subset of the sources in a "fixup"
  experiment and use it to "patch" a previous run without rerunning
  everything.
2025-06-12 16:23:07 +02:00
Paolo Tranquilli
ad7fb9c061 Merge branch 'main' into redsun82/rust-has-implementation 2025-06-12 15:25:59 +02:00
Paolo Tranquilli
c6c52edbee MaD generator: tweak the scripts
* fix a bug where the order of model generation was determined by the
  order in the `download.json` file of the experiment rather than the
  order in the config file
* allow configuring `--ram` and `--threads` in the MaD generator scripts
* use no `--ram` and `--threads=0` by default in the bulk generator
  (single generator defaults are left unchanged)
* allow to pass `--dca` multiple times, taking DBs from experiments
  listed last. This allows to run a subset of the sources in a "fixup"
  experiment and use it to "patch" a previous run without rerunning
  everything.
2025-06-11 16:42:00 +02:00
Paolo Tranquilli
051704e59d Merge branch 'main' into redsun82/rust-mad 2025-06-11 16:39:10 +02:00
Paolo Tranquilli
14d48e9d58 Add black pre-commit hook
This switched `codegen` from the `autopep8` formatting to the `black`
one, and applies it to `bulk_mad_generator.py` as well. We can enroll
more python scripts to it in the future.
2025-06-10 12:25:39 +02:00
Paolo Tranquilli
ca99add7d6 MaD generator: address review 2025-06-10 12:14:39 +02:00
Paolo Tranquilli
ecc35e5a07 MaD generator: run formatter 2025-06-10 12:11:00 +02:00
Paolo Tranquilli
bcfc009228 Merge branch 'main' into redsun82/mad 2025-06-10 10:53:52 +02:00
github-actions[bot]
21463a9653 Post-release preparation for codeql-cli-2.22.0 2025-06-09 18:50:20 +00:00
github-actions[bot]
88ba02edf8 Release preparation for version 2.22.0 2025-06-09 18:14:51 +00:00
Chuan-kai Lin
631502e129 Merge branch 'main' into cklin/rc-3.18-mergeback 2025-06-09 07:19:40 -07:00
Paolo Tranquilli
d6d13b9164 MaD generator: use decompress terminology instead of extract 2025-06-06 17:36:05 +02:00
Paolo Tranquilli
e1eb1f6345 Rust: address review
Also fix some minor things in `bulk_generate_mad.py`.
2025-06-05 16:03:40 +02:00
Paolo Tranquilli
530b990dd5 MaD generator: some final minor tweaks 2025-06-05 10:08:01 +02:00
Paolo Tranquilli
ee7eb86a1d MaD: make bulk generator cleanup downloaded DBs 2025-06-05 09:31:24 +02:00
Paolo Tranquilli
4f47ee2e72 MaD: make bulk generator DCA strategy download DBs in parallel 2025-06-05 09:30:02 +02:00
Paolo Tranquilli
31954fa794 MaD generator: make bulk generator executable 2025-06-05 08:49:15 +02:00