- The extractor for Ruby is now included. CodeQL analysis for Ruby is currently in beta. During the beta, analysis of Ruby will not be as comprehensive as CodeQL analysis of other languages. The source code of the extractor and the queries can be found in the
github/codeqlrepository. - The bundled extractors are updated to match the versions currently used on LGTM.com. These are newer than the last release (1.28) of LGTM Enterprise. If you plan to upload databases to an LGTM Enterprise 1.28 instance, you need to create them with release 2.5.9.
Bugs fixed
- Fixed a bug where indirect tracing would sometimes not manage to observe build processes if certain environment variables were unset during the build.
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.
- The bundled extractors are updated to match the versions currently used on LGTM.com. These are newer than the last release (1.28) of LGTM Enterprise. If you plan to upload databases to an LGTM Enterprise 1.28 instance, you need to create them with release 2.5.9.
Potentially breaking changes
- The option
--compiler-specaccepted by some subcommands ofcodeql databaseis deprecated. It will be removed in a later version (earliest 2.7.0). If you need this option, please file a public issue in https://github.com/github/codeql-cli-binaries, or open a private ticket with GitHub support and request an escalation to engineering. - By default, databases created using the CodeQL CLI will now have their underlying datasets finalized, meaning that no further data can be subsequently imported into them. This change should not affect most users.
- The
codeql resolve qlrefcommand will now throw an error when the target is ambiguous. The qlref resolution rules are now as follows: 1. If the target of a qlref is in the same qlpack, then that target is always returned. 2. If multiple targets of the qlref are found in dependent packs, this is an error. Previously, the command would have arbitrarily chosen one of the targets and ignored any ambiguities.
Bugs fixed
- Linux/MacOS: When tracing a build that involves an
execvp/execvpe(Linux-only)/posix_spawnpsyscall wherePATHwas not set in the environment, CodeQL sometimes would break the build. Now, CodeQL uses the correct, platform-specific fallback forPATHinstead. - Linux/MacOS: When tracing a build that involves an
execvpe(Linux-only)/posix_spawnpsyscall, thePATHlookup of the executable wrongly took place in the environment provided viaenvp, instead of the environment of the process callingexecvpe/posix_spawnp. Now, the correct environment is used for thePATHlookup. - A bug where query compilation would sometimes fail with a
StackOverflowErrorwhen compiling a query that usesinstanceofhas now been fixed.
New features
- The
codeql query compilecommand now accepts a--keep-goingor-koption, which indicates that the compiler should continue compiling queries even if one of the queries has a compile error in it. - CLI commands now run default queries if none are specified. If no queries are specified, the
codeql database analyze,codeql database run-queries, andcodeql database interpret-resultscommands will now run the default suite for the language being analyzed. codeql pack publishnow copies the published package to the loc