Releases: github/codeql-cli-binaries
v2.5.1
The bundled extractors are updated to match the versions currently used on LGTM.com. These are newer than the last release (1.27) of LGTM Enterprise. If you plan to upload databases to an LGTM Enterprise 1.27 instance, you need to create them with release 2.4.6.
Potentially breaking changes
- The QL compiler will now reject queries where the query metadata (if present) at the top of the
.qlfile is inconsistent with the output format of the query. This check can be disabled by giving the--no-metadata-verificationflag.
Bugs fixed
-
Environment variables required for Java extraction are now propagated by the tracer. This may resolve issues with tracing and extraction in the context of certain build systems such as Bazel.
-
A number of
--check-CONDITIONoptions tocodeql database finalizeandcodeql dataset importdesigned to look for consistency errors in the intermediate "TRAP" output from extractors erroneously did nothing. They will now actually print warnings if errors are found.
Features added
-
codeql resolve qlrefis a new command that takes in a.qlreffile for a CodeQL test case and returns the path of the.qlfile it references. -
codeql database analyzeandcodeql database interpret-resultshave a new--sarif-group-rules-by-packoption which will place the SARIF rule object for each query underneath its corresponding query pack inruns[].tool.extensions. -
codeql database finalizeandcodeql dataset importhave a new--fail-on-trap-errorsoption that will make database creation fail if extractors produce ill-formatted "TRAP" data for inclusion into a database. -
codeql database finalizeandcodeql dataset importhave a new--check-undefined-labelsoption that enables stricter consistency checks on the "TRAP" output from extractors.
QL language improvements
supermay now be used unqualified, e.g.super.predicateName(), when the declaring class has multiple super types, as long as the call itself is unambiguous.
For more information about the changes included in this release, see the CodeQL CLI changelog.
You can download either the codeql-PLATFORM.zip for your platform, or the generic codeql.zip which contains binaries for all supported platforms. Please ignore the additional "source code" downloads below the .zip artifacts.
v2.5.0
The bundled extractors are updated to match the versions currently used on LGTM.com. These are newer than the last release (1.27) of LGTM Enterprise. If you plan to upload databases to an LGTM Enterprise 1.27 instance, you need to create them with release 2.4.6.
Potentially breaking change
- By default,
codeql testnow performs additional compiler checks when extracting test code written in Java. Existing Java tests that previously passed may therefore fail due to this change, if they do not compile using thejavaccompiler. To allow time to migrate existing tests, the new behavior can be disabled by setting the environment variableCODEQL_EXTRACTOR_JAVA_FLOW_CHECKS=false.
Features added
- Log files that contain output from build processes will now prefix it with
[build-stdout]and[build-stderr]instead of[build]and[build-err]. In particular the latter sometimes caused confusion.
QL language improvements
- The QL language now recognizes new
pragma[only_bind_into](...)andpragma[only_bind_out](...)annotations on expressions. Advanced users may use these annotations to provide hints to the compiler to influence binding behavior and thus indirectly performance.
For more information about the changes included in this release, see the CodeQL CLI changelog.
You can download either the codeql-PLATFORM.zip for your platform, or the generic codeql.zip which contains binaries for all supported platforms. Please ignore the additional "source code" downloads below the .zip artifacts.
v2.4.6
This release corresponds to release 1.27.x of LGTM Enterprise, and should be used when creating databases that will be uploaded to it. Future CLI releases (numbered 2.5.x) may produce databases that are not backwards compatible with this version of LGTM Enterprise.
-
Fixed a bug in
codeql test runthat causes tests to fail messily if the freshly-extracted test database needed to be upgraded in order to be compatible with the QL source under test. -
codeql github upload-resultsshould now work correctly against GitHub Enterprise Server instances that are configured with a path prefix.
For more information about the changes included in this release, see the CodeQL CLI changelog.
You can download either the codeql-PLATFORM.zip for your platform, or the generic codeql.zip which contains binaries for all supported platforms. Please ignore the additional "source code" downloads below the .zip artifacts.
v2.4.5
-
The bundled extractors are updated to match the versions currently used on LGTM.com. These are newer than the last release (1.26) of LGTM Enterprise. If you plan to upload databases to an LGTM Enterprise 1.26 instance, you need to create them with release 2.3.4.
-
The C/C++ extractor can now parse more Microsoft language extensions when in C++14 and C++17 mode.
-
codeql database analyzenow reports the name and version of each QL pack used by the analysis in the SARIF output. -
codeql github upload-resultsis a new command that uploads a SARIF file generated by CodeQL to GitHub's Code Scanning.
For more information about the changes included in this release, see the CodeQL CLI changelog.
You can download either the codeql-PLATFORM.zip for your platform, or the generic codeql.zip which contains binaries for all supported platforms. Please ignore the additional "source code" downloads below the .zip artifacts.
Beware: Some (but not all) unzipper programs on Windows have problems with the zips in this release, and will ask your permission to overwrite codeql/codeql.exe by codeql/codeql. You should answer no to that.
v2.4.4
The bundled extractors are updated to match the versions currently used on LGTM.com. These are newer than the last release (1.26) of LGTM Enterprise. If you plan to upload databases to an LGTM Enterprise 1.26 instance, you need to create them with release 2.3.4.
Potentially breaking changes
- The
nameproperty inqlpack.ymlmust now meet the following requirements:- Only lowercase ASCII letters, ASCII digits, and hyphens (
-) are allowed. - A hyphen is not allowed as the first or last character of the name.
- The name must be at least one character long, and no longer than 128 characters.
- Only lowercase ASCII letters, ASCII digits, and hyphens (
New features
- Alert and path queries can now give a score to each alert they produce. You can incorporate alert scores in an alert or path query by first adding the
@scoredproperty to the query metadata. You can then introduce a new numeric column at the end of theselectstatement structure to represent the score of each alert. Alert scores are exposed in the SARIF output of commands likecodeql database analyzeas thescoreproperty in the property bags of result objects.
Bugs fixed
- The default value of the
--working-diroptions for theindex-filesandtrace-commandsubcommands ofcodeql databasehas been fixed to match the documentation; previously, it would erroneously use the process' current working directory rather than the database source root. codeql test runwill not crash if database extraction in a test directory fails. Instead only the tests in that directory will be marked as failing, d tests in other directories will continue executing.
You can download either the codeql-PLATFORM.zip for your platform, or the generic codeql.zip which contains binaries for all supported platforms. Please ignore the additional "source code" downloads below the .zip artifacts.
v2.4.3
This release fixes several bugs relating to searching for QL packs on disk which were introduced in release 2.4.2. It is otherwise identical to release 2.4.2.
For more information about the changes included in this release, see the CodeQL CLI changelog.
You can download either the codeql-PLATFORM.zip for your platform, or the generic codeql.zip which contains binaries for all supported platforms. Please ignore the additional "source code" downloads below the .zip artifacts.
v2.4.2
The bundled extractors are updated to match the versions currently used on LGTM.com. These are newer than the last release (1.26) of LGTM Enterprise. If you plan to upload databases to an LGTM Enterprise 1.26 instance, you need to create them with release 2.3.4.
You can download either the codeql-PLATFORM.zip for your platform, or the generic codeql.zip which contains binaries for all supported platforms. Please ignore the additional "source code" downloads below the .zip artifacts.
v2.4.1
The bundled extractors are updated to match the versions currently used on LGTM.com. These are newer than the last release (1.26) of LGTM Enterprise. If you plan to upload databases to an LGTM Enterprise 1.26 instance, you need to create them with release 2.3.4.
-
codeql query formatnow checks all files rather than stopping after the first failure when the--check-onlyoption is given. -
codeql resolve databasewill produce alanguageskey giving the language the database was created for. This can be useful in IDEs to help describe the database and suggest default actions or queries. For databases created by earlier versions, the result will be a best-effort guess. -
codeql database interpret-resultscan now produce Graphviz.dotfiles from queries with@kind graph.
For more information about the changes included in this release, see the CodeQL CLI changelog.
You can download either the codeql-PLATFORM.zip for your platform, or the generic codeql.zip which contains binaries for all supported platforms. Please ignore the additional "source code" downloads below the .zip artifacts.
v2.3.4
This release corresponds to release 1.26.x of LGTM Enterprise, and should be used when creating databases that will be uploaded to it. Later releases (numbered 2.4.x and following) may produce databases that are not backwards compatible with this version of LGTM Enterprise.
For all purposes other than creating databases for LGTM Enterprise we recommend that you upgrade to CLI releases numbered 2.4.x or later.
You can download either the codeql-PLATFORM.zip for your platform, or the generic codeql.zip which contains binaries for all supported platforms. Please ignore the additional "source code" downloads below the .zip artifacts.
v2.4.0
-
The bundled extractors are updated to match the versions currently used on LGTM.com. These are newer than the last release (1.25) of LGTM Enterprise. If you plan to upload databases to an LGTM Enterprise 1.25 instance, you need to create them with release 2.2.6.
-
Much of the work done by
codeql database upgradenow happens implicitly (and reversibly) as part of ordinary query evaluation. This should make it much rarer to need to runcodeql database upgradeexplicitly, though there are still some corner cases that will require it, particularly for very old databases. -
codeql test runwith a--threadsargument will now compile test queries in parallel even if they belong to the same single test directory. This can speed up localized testing considerably.
For more information about the changes included in this release, see the CodeQL CLI changelog.
You can download either the codeql-PLATFORM.zip for your platform, or the generic codeql.zip which contains binaries for all supported platforms. Please ignore the additional "source code" downloads below the .zip artifacts.