diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index a5776e19806..00000000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.162.0/containers/rust/.devcontainer/base.Dockerfile - -FROM mcr.microsoft.com/vscode/devcontainers/rust:0-1 - -RUN apt-key --keyring /usr/share/keyrings/githubcli-archive-keyring.gpg adv \ - --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0 && \ - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages $(lsb_release -cs) main" \ - | tee /etc/apt/sources.list.d/github-cli2.list > /dev/null - - -RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ - && apt-get -y install --no-install-recommends gh - -COPY post_create.sh /bin/post_create.sh -COPY post_attach.sh /bin/post_attach.sh diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index b7824f45cfe..00000000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,39 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: -// https://github.com/microsoft/vscode-dev-containers/tree/v0.162.0/containers/rust -{ - "name": "Rust", - "build": { - "dockerfile": "Dockerfile" - }, - "runArgs": [ - "--cap-add=SYS_PTRACE", - "--security-opt", - "seccomp=unconfined" - ], - // Set *default* container specific settings.json values on container create. - "settings": { - "terminal.integrated.shell.linux": "/bin/bash", - "lldb.executable": "/usr/bin/lldb", - // VS Code don't watch files under ./target - "files.watcherExclude": { - "**/target/**": true - } - }, - // Add the IDs of extensions you want installed when the container is created. - "extensions": [ - "rust-lang.rust", - "bungcip.better-toml", - "vadimcn.vscode-lldb", - "mutantdino.resourcemonitor", - "ms-azuretools.vscode-docker", - "github.vscode-codeql" - ], - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - // Use 'postCreateCommand' to run commands after the container is created. - // "postCreateCommand": "rustc --version", - // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. - "remoteUser": "vscode", - "postCreateCommand": [ "/bin/post_create.sh" ], - "postAttachCommand": [ "flock", "-E", "0", "-n", "/var/lock/post_attach.lock", "/bin/post_attach.sh" ] -} \ No newline at end of file diff --git a/.devcontainer/post_attach.sh b/.devcontainer/post_attach.sh deleted file mode 100755 index 8b923e31ad0..00000000000 --- a/.devcontainer/post_attach.sh +++ /dev/null @@ -1,37 +0,0 @@ -#! /bin/bash -set -xe - -echo "Check installed CodeQL version" -CURRENT_CODEQL_BIN=$(readlink -e /usr/local/bin/codeql || echo "") -LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | grep -v beta | sort --version-sort | tail -1) - -BASE_DIR=/home/vscode/codeql-binaries -mkdir -p "${BASE_DIR}" -LATEST_CODEQL_DIR="${BASE_DIR}/codeql-${LATEST}" -LATEST_CODEQL_BIN="${LATEST_CODEQL_DIR}/codeql/codeql" - -if [ "${CURRENT_CODEQL_BIN}" != "${LATEST_CODEQL_BIN}" ]; then - echo "Installing CodeQL ${LATEST}" - TMPDIR=$(mktemp -d -p "$(dirname ${LATEST_CODEQL_DIR})") - gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-linux64.zip -D "${TMPDIR}" "$LATEST" - unzip -oq "${TMPDIR}/codeql-linux64.zip" -d "${TMPDIR}" - rm -f "${TMPDIR}/codeql-linux64.zip" - mv "${TMPDIR}" "${LATEST_CODEQL_DIR}" - test -x "${LATEST_CODEQL_BIN}" && sudo ln -sf "${LATEST_CODEQL_BIN}" /usr/local/bin/codeql - if [[ "${CURRENT_CODEQL_BIN}" =~ .*/codeql/codeql ]]; then - rm -rf "$(dirname $(dirname ${CURRENT_CODEQL_BIN}))" - fi -fi - -echo "Build the Ruby extractor" - -# clone the git dependencies using "git clone" because cargo's builtin git support is rather slow -REPO_DIR="${CARGO_HOME:-/home/vscode/.cargo}/git/db" -REPO_DIR_ERB="${REPO_DIR}/tree-sitter-embedded-template-4c796e3340c233b6" -REPO_DIR_RUBY="${REPO_DIR}/tree-sitter-ruby-666a40ce046f8e7a" - -mkdir -p "${REPO_DIR}" -test -e "${REPO_DIR_ERB}" || git clone -q --bare https://github.com/tree-sitter/tree-sitter-embedded-template "${REPO_DIR_ERB}" -test -e "${REPO_DIR_RUBY}" || git clone -q --bare https://github.com/tree-sitter/tree-sitter-ruby.git "${REPO_DIR_RUBY}" - -scripts/create-extractor-pack.sh diff --git a/.devcontainer/post_create.sh b/.devcontainer/post_create.sh deleted file mode 100755 index a1af653024b..00000000000 --- a/.devcontainer/post_create.sh +++ /dev/null @@ -1,4 +0,0 @@ -#! /bin/bash - -mkdir -p /home/vscode/.config/codeql -echo '--search-path /workspaces/codeql-ruby' >> /home/vscode/.config/codeql/config diff --git a/.github/actions/fetch-codeql/action.yml b/.github/actions/fetch-codeql/action.yml index d6cca840241..de6d50dc12f 100644 --- a/.github/actions/fetch-codeql/action.yml +++ b/.github/actions/fetch-codeql/action.yml @@ -9,5 +9,6 @@ runs: LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | grep -v beta | sort --version-sort | tail -1) gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-linux64.zip "$LATEST" unzip -q codeql-linux64.zip + echo "${{ github.workspace }}/codeql" >> $GITHUB_PATH env: GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 7d08545a991..613f9287146 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,18 +1,18 @@ version: 2 updates: - package-ecosystem: "cargo" - directory: "/node-types" + directory: "ruby/node-types" schedule: interval: "daily" - package-ecosystem: "cargo" - directory: "/generator" + directory: "ruby/generator" schedule: interval: "daily" - package-ecosystem: "cargo" - directory: "/extractor" + directory: "ruby/extractor" schedule: interval: "daily" - package-ecosystem: "cargo" - directory: "/autobuilder" + directory: "ruby/autobuilder" schedule: interval: "daily" diff --git a/.github/workflows/qhelp.yml b/.github/workflows/qhelp-pr-preview.yml similarity index 92% rename from .github/workflows/qhelp.yml rename to .github/workflows/qhelp-pr-preview.yml index ddf9938317b..7e2ea6a10f8 100644 --- a/.github/workflows/qhelp.yml +++ b/.github/workflows/qhelp-pr-preview.yml @@ -6,7 +6,7 @@ on: - main - 'rc/*' paths: - - "**/*.qhelp" + - "ruby/**/*.qhelp" jobs: qhelp: @@ -32,7 +32,7 @@ jobs: for path in ${{ steps.changes.outputs.qhelp_files }} ; do echo "
${path}" echo - codeql/codeql generate query-help --format=markdown ${path} + codeql generate query-help --format=markdown ${path} echo "
" done) | gh pr comment "${{ github.event.pull_request.number }}" -F - env: diff --git a/.github/workflows/qltest.yml b/.github/workflows/qltest.yml deleted file mode 100644 index d251f3bbca5..00000000000 --- a/.github/workflows/qltest.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Run QL Tests - -on: - push: - branches: - - main - - 'rc/*' - pull_request: - branches: - - main - - 'rc/*' - -env: - CARGO_TERM_COLOR: always - -jobs: - qltest: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: ./.github/actions/fetch-codeql - - uses: ./.github/actions/create-extractor-pack - - name: Run QL tests - run: | - codeql/codeql pack install ql/test - codeql/codeql test run --check-databases --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --search-path "${{ github.workspace }}" --additional-packs "${HOME}/.codeql/packages/codeql/suite-helpers/0.0.1" --consistency-queries ql/consistency-queries ql/test - env: - GITHUB_TOKEN: ${{ github.token }} - - name: Check QL formatting - run: find ql "(" -name "*.ql" -or -name "*.qll" ")" -print0 | xargs -0 codeql/codeql query format --check-only - - name: Check QL compilation - run: | - codeql/codeql pack install ql/src - codeql/codeql query compile --check-only --threads=4 --warnings=error --search-path "${{ github.workspace }}" "ql/src" "ql/examples" - env: - GITHUB_TOKEN: ${{ github.token }} - - name: Check DB upgrade scripts - run: | - echo >empty.trap - codeql/codeql dataset import -S ql/lib/upgrades/initial/ruby.dbscheme testdb empty.trap - codeql/codeql dataset upgrade testdb --additional-packs ql/lib/upgrades - diff -q testdb/ruby.dbscheme ql/lib/ruby.dbscheme diff --git a/.github/workflows/build.yml b/.github/workflows/ruby-build.yml similarity index 89% rename from .github/workflows/build.yml rename to .github/workflows/ruby-build.yml index 60d3f4eae56..4361ce5a1cc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/ruby-build.yml @@ -1,11 +1,15 @@ -name: Build / Release +name: "Ruby: Build" on: push: + paths: + - 'ruby/**' branches: - main - 'rc/*' pull_request: + paths: + - 'ruby/**' branches: - main - 'rc/*' @@ -18,6 +22,10 @@ on: env: CARGO_TERM_COLOR: always +defaults: + run: + working-directory: ruby + jobs: build: strategy: @@ -39,7 +47,7 @@ jobs: path: | ~/.cargo/registry ~/.cargo/git - target + ruby/target key: ${{ runner.os }}-rust-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Check formatting run: cargo fmt --all -- --check @@ -56,20 +64,20 @@ jobs: if: ${{ matrix.os == 'ubuntu-latest' }} with: name: ruby.dbscheme - path: ql/lib/ruby.dbscheme + path: ruby/ql/lib/ruby.dbscheme - uses: actions/upload-artifact@v2 if: ${{ matrix.os == 'ubuntu-latest' }} with: name: TreeSitter.qll - path: ql/lib/codeql/ruby/ast/internal/TreeSitter.qll + path: ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll - uses: actions/upload-artifact@v2 with: name: extractor-${{ matrix.os }} path: | - target/release/ruby-autobuilder - target/release/ruby-autobuilder.exe - target/release/ruby-extractor - target/release/ruby-extractor.exe + ruby/target/release/ruby-autobuilder + ruby/target/release/ruby-autobuilder.exe + ruby/target/release/ruby-extractor + ruby/target/release/ruby-extractor.exe retention-days: 1 compile-queries: runs-on: ubuntu-latest @@ -106,7 +114,7 @@ jobs: with: name: codeql-ruby-queries path: | - target/packs/* + ruby/target/packs/* retention-days: 1 package: @@ -117,19 +125,19 @@ jobs: - uses: actions/download-artifact@v2 with: name: ruby.dbscheme - path: ruby + path: ruby/ruby - uses: actions/download-artifact@v2 with: name: extractor-ubuntu-latest - path: linux64 + path: ruby/linux64 - uses: actions/download-artifact@v2 with: name: extractor-windows-latest - path: win64 + path: ruby/win64 - uses: actions/download-artifact@v2 with: name: extractor-macos-latest - path: osx64 + path: ruby/osx64 - run: | mkdir -p ruby cp -r codeql-extractor.yml tools ql/lib/ruby.dbscheme.stats ruby/ @@ -145,12 +153,12 @@ jobs: - uses: actions/upload-artifact@v2 with: name: codeql-ruby-pack - path: codeql-ruby.zip + path: ruby/codeql-ruby.zip retention-days: 1 - uses: actions/download-artifact@v2 with: name: codeql-ruby-queries - path: qlpacks + path: ruby/qlpacks - run: | echo '{ "provide": [ @@ -162,18 +170,13 @@ jobs: - uses: actions/upload-artifact@v2 with: name: codeql-ruby-bundle - path: codeql-ruby-bundle.zip + path: ruby/codeql-ruby-bundle.zip retention-days: 1 - - if: ${{ github.event.inputs.tag }} - run: | - gh release create --prerelease \ - --title "CodeQL Ruby (${{ github.event.inputs.tag }})" \ - --target "${{ github.sha }}" \ - "${{ github.event.inputs.tag }}" \ - codeql-ruby-bundle.zip - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + test: + defaults: + run: + working-directory: ${{ github.workspace }} strategy: fail-fast: false matrix: diff --git a/.github/workflows/dataset_measure.yml b/.github/workflows/ruby-dataset-measure.yml similarity index 71% rename from .github/workflows/dataset_measure.yml rename to .github/workflows/ruby-dataset-measure.yml index c252c22f9c8..39e5a8486d6 100644 --- a/.github/workflows/dataset_measure.yml +++ b/.github/workflows/ruby-dataset-measure.yml @@ -1,4 +1,4 @@ -name: Collect database stats +name: "Ruby: Collect database stats" on: push: @@ -6,13 +6,13 @@ on: - main - 'rc/*' paths: - - ql/lib/ruby.dbscheme + - ruby/ql/lib/ruby.dbscheme pull_request: branches: - main - 'rc/*' paths: - - ql/lib/ruby.dbscheme + - ruby/ql/lib/ruby.dbscheme workflow_dispatch: jobs: @@ -29,7 +29,7 @@ jobs: - uses: ./.github/actions/fetch-codeql - - uses: ./.github/actions/create-extractor-pack + - uses: ./ruby/actions/create-extractor-pack - name: Checkout ${{ matrix.repo }} uses: actions/checkout@v2 @@ -38,15 +38,15 @@ jobs: path: ${{ github.workspace }}/repo - name: Create database run: | - codeql/codeql database create \ - --search-path "${{ github.workspace }}" \ + codeql database create \ + --search-path "${{ github.workspace }}/ruby" \ --threads 4 \ --language ruby --source-root "${{ github.workspace }}/repo" \ "${{ runner.temp }}/database" - name: Measure database run: | mkdir -p "stats/${{ matrix.repo }}" - codeql/codeql dataset measure --threads 4 --output "stats/${{ matrix.repo }}/stats.xml" "${{ runner.temp }}/database/db-ruby" + codeql dataset measure --threads 4 --output "stats/${{ matrix.repo }}/stats.xml" "${{ runner.temp }}/database/db-ruby" - uses: actions/upload-artifact@v2 with: name: measurements @@ -64,8 +64,8 @@ jobs: path: stats - run: | python -m pip install --user lxml - find stats -name 'stats.xml' | sort | xargs python scripts/merge_stats.py --output ql/lib/ruby.dbscheme.stats --normalise ruby_tokeninfo + find stats -name 'stats.xml' | sort | xargs python ruby/scripts/merge_stats.py --output ruby/ql/lib/ruby.dbscheme.stats --normalise ruby_tokeninfo - uses: actions/upload-artifact@v2 with: name: ruby.dbscheme.stats - path: ql/lib/ruby.dbscheme.stats + path: ruby/ql/lib/ruby.dbscheme.stats diff --git a/.github/workflows/ruby-qltest.yml b/.github/workflows/ruby-qltest.yml new file mode 100644 index 00000000000..ece2286ad34 --- /dev/null +++ b/.github/workflows/ruby-qltest.yml @@ -0,0 +1,50 @@ +name: "Ruby: Run QL Tests" + +on: + push: + paths: + - 'ruby/**' + branches: + - main + - 'rc/*' + pull_request: + paths: + - 'ruby/**' + branches: + - main + - 'rc/*' + +env: + CARGO_TERM_COLOR: always + +defaults: + run: + working-directory: ruby + +jobs: + qltest: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - uses: ./.github/actions/fetch-codeql + - uses: ./ruby/actions/create-extractor-pack + - name: Run QL tests + run: | + codeql test run --check-databases --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --search-path "${{ github.workspace }}/ruby" --additional-packs "${{ github.workspace }}/ruby/codeql" --consistency-queries ql/consistency-queries ql/test + env: + GITHUB_TOKEN: ${{ github.token }} + - name: Check QL formatting + run: find ql "(" -name "*.ql" -or -name "*.qll" ")" -print0 | xargs -0 codeql query format --check-only + - name: Check QL compilation + run: | + codeql query compile --check-only --threads=4 --warnings=error --search-path "${{ github.workspace }}/ruby" --additional-packs "${{ github.workspace }}/ruby/codeql" "ql/src" "ql/examples" + env: + GITHUB_TOKEN: ${{ github.token }} + - name: Check DB upgrade scripts + run: | + echo >empty.trap + codeql dataset import -S ql/lib/upgrades/initial/ruby.dbscheme testdb empty.trap + codeql dataset upgrade testdb --additional-packs ql/lib/upgrades + diff -q testdb/ruby.dbscheme ql/lib/ruby.dbscheme diff --git a/.github/workflows/sync_files.yml b/.github/workflows/sync-files.yml similarity index 86% rename from .github/workflows/sync_files.yml rename to .github/workflows/sync-files.yml index 6207b0e3c6e..21ccdbcc313 100644 --- a/.github/workflows/sync_files.yml +++ b/.github/workflows/sync-files.yml @@ -18,4 +18,4 @@ jobs: with: submodules: true - name: Check synchronized files - run: scripts/sync-identical-files.py + run: ruby/scripts/sync-identical-files.py diff --git a/.gitmodules b/.gitmodules index b9b6762c49b..1372e928c4e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "codeql"] - path = codeql + path = ruby/codeql url = https://github.com/github/codeql.git diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 3a64696bc25..00000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to make participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies within all project spaces, and it also applies when -an individual is representing the project or its community in public spaces. -Examples of representing a project or community include using an official -project e-mail address, posting via an official social media account, or acting -as an appointed representative at an online or offline event. Representation of -a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at opensource@github.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/LICENSE b/LICENSE deleted file mode 100644 index eeaa7263358..00000000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020-2021 GitHub - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.codeqlmanifest.json b/ruby/.codeqlmanifest.json similarity index 100% rename from .codeqlmanifest.json rename to ruby/.codeqlmanifest.json diff --git a/.gitattributes b/ruby/.gitattributes similarity index 100% rename from .gitattributes rename to ruby/.gitattributes diff --git a/.gitignore b/ruby/.gitignore similarity index 100% rename from .gitignore rename to ruby/.gitignore diff --git a/.vscode/tasks.json b/ruby/.vscode/tasks.json similarity index 100% rename from .vscode/tasks.json rename to ruby/.vscode/tasks.json diff --git a/CONTRIBUTING.md b/ruby/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to ruby/CONTRIBUTING.md diff --git a/Cargo.lock b/ruby/Cargo.lock similarity index 100% rename from Cargo.lock rename to ruby/Cargo.lock diff --git a/Cargo.toml b/ruby/Cargo.toml similarity index 100% rename from Cargo.toml rename to ruby/Cargo.toml diff --git a/Makefile b/ruby/Makefile similarity index 100% rename from Makefile rename to ruby/Makefile diff --git a/README.md b/ruby/README.md similarity index 100% rename from README.md rename to ruby/README.md diff --git a/.github/actions/create-extractor-pack/action.yml b/ruby/actions/create-extractor-pack/action.yml similarity index 58% rename from .github/actions/create-extractor-pack/action.yml rename to ruby/actions/create-extractor-pack/action.yml index b15565cffa5..75faf327c13 100644 --- a/.github/actions/create-extractor-pack/action.yml +++ b/ruby/actions/create-extractor-pack/action.yml @@ -8,8 +8,9 @@ runs: path: | ~/.cargo/registry ~/.cargo/git - target - key: ${{ runner.os }}-qltest-cargo-${{ hashFiles('**/Cargo.lock') }} + ruby/target + key: ${{ runner.os }}-qltest-cargo-${{ hashFiles('ruby/**/Cargo.lock') }} - name: Build Extractor shell: bash - run: env "PATH=$PATH:${{ github.workspace }}/codeql" scripts/create-extractor-pack.sh + run: scripts/create-extractor-pack.sh + working-directory: ruby diff --git a/autobuilder/Cargo.toml b/ruby/autobuilder/Cargo.toml similarity index 100% rename from autobuilder/Cargo.toml rename to ruby/autobuilder/Cargo.toml diff --git a/autobuilder/src/main.rs b/ruby/autobuilder/src/main.rs similarity index 100% rename from autobuilder/src/main.rs rename to ruby/autobuilder/src/main.rs diff --git a/ruby/change-notes/2021-10-14-codeql-ruby-beta.md b/ruby/change-notes/2021-10-14-codeql-ruby-beta.md new file mode 100644 index 00000000000..83c9a96980f --- /dev/null +++ b/ruby/change-notes/2021-10-14-codeql-ruby-beta.md @@ -0,0 +1,2 @@ +codescanning +* Open-sourcing the Ruby extractor and CodeQL queries as part of the [public beta](https://github.com/github/roadmap/issues/136) release. diff --git a/codeql b/ruby/codeql similarity index 100% rename from codeql rename to ruby/codeql diff --git a/codeql-extractor.yml b/ruby/codeql-extractor.yml similarity index 100% rename from codeql-extractor.yml rename to ruby/codeql-extractor.yml diff --git a/codeql-ruby.code-workspace b/ruby/codeql-ruby.code-workspace similarity index 100% rename from codeql-ruby.code-workspace rename to ruby/codeql-ruby.code-workspace diff --git a/doc/HOWTO.md b/ruby/doc/HOWTO.md similarity index 100% rename from doc/HOWTO.md rename to ruby/doc/HOWTO.md diff --git a/doc/prepare-db-upgrade.md b/ruby/doc/prepare-db-upgrade.md similarity index 100% rename from doc/prepare-db-upgrade.md rename to ruby/doc/prepare-db-upgrade.md diff --git a/extractor/Cargo.toml b/ruby/extractor/Cargo.toml similarity index 100% rename from extractor/Cargo.toml rename to ruby/extractor/Cargo.toml diff --git a/extractor/src/extractor.rs b/ruby/extractor/src/extractor.rs similarity index 100% rename from extractor/src/extractor.rs rename to ruby/extractor/src/extractor.rs diff --git a/extractor/src/main.rs b/ruby/extractor/src/main.rs similarity index 100% rename from extractor/src/main.rs rename to ruby/extractor/src/main.rs diff --git a/generator/Cargo.toml b/ruby/generator/Cargo.toml similarity index 100% rename from generator/Cargo.toml rename to ruby/generator/Cargo.toml diff --git a/generator/src/dbscheme.rs b/ruby/generator/src/dbscheme.rs similarity index 100% rename from generator/src/dbscheme.rs rename to ruby/generator/src/dbscheme.rs diff --git a/generator/src/language.rs b/ruby/generator/src/language.rs similarity index 100% rename from generator/src/language.rs rename to ruby/generator/src/language.rs diff --git a/generator/src/main.rs b/ruby/generator/src/main.rs similarity index 100% rename from generator/src/main.rs rename to ruby/generator/src/main.rs diff --git a/generator/src/ql.rs b/ruby/generator/src/ql.rs similarity index 100% rename from generator/src/ql.rs rename to ruby/generator/src/ql.rs diff --git a/generator/src/ql_gen.rs b/ruby/generator/src/ql_gen.rs similarity index 100% rename from generator/src/ql_gen.rs rename to ruby/generator/src/ql_gen.rs diff --git a/node-types/Cargo.toml b/ruby/node-types/Cargo.toml similarity index 100% rename from node-types/Cargo.toml rename to ruby/node-types/Cargo.toml diff --git a/node-types/src/lib.rs b/ruby/node-types/src/lib.rs similarity index 100% rename from node-types/src/lib.rs rename to ruby/node-types/src/lib.rs diff --git a/ql/consistency-queries/AstConsistency.ql b/ruby/ql/consistency-queries/AstConsistency.ql similarity index 100% rename from ql/consistency-queries/AstConsistency.ql rename to ruby/ql/consistency-queries/AstConsistency.ql diff --git a/ql/consistency-queries/CfgConsistency.ql b/ruby/ql/consistency-queries/CfgConsistency.ql similarity index 100% rename from ql/consistency-queries/CfgConsistency.ql rename to ruby/ql/consistency-queries/CfgConsistency.ql diff --git a/ql/consistency-queries/DataFlowConsistency.ql b/ruby/ql/consistency-queries/DataFlowConsistency.ql similarity index 100% rename from ql/consistency-queries/DataFlowConsistency.ql rename to ruby/ql/consistency-queries/DataFlowConsistency.ql diff --git a/ql/consistency-queries/SsaConsistency.ql b/ruby/ql/consistency-queries/SsaConsistency.ql similarity index 100% rename from ql/consistency-queries/SsaConsistency.ql rename to ruby/ql/consistency-queries/SsaConsistency.ql diff --git a/ql/consistency-queries/VariablesConsistency.ql b/ruby/ql/consistency-queries/VariablesConsistency.ql similarity index 100% rename from ql/consistency-queries/VariablesConsistency.ql rename to ruby/ql/consistency-queries/VariablesConsistency.ql diff --git a/ql/consistency-queries/qlpack.yml b/ruby/ql/consistency-queries/qlpack.yml similarity index 100% rename from ql/consistency-queries/qlpack.yml rename to ruby/ql/consistency-queries/qlpack.yml diff --git a/ql/docs/experimental.md b/ruby/ql/docs/experimental.md similarity index 100% rename from ql/docs/experimental.md rename to ruby/ql/docs/experimental.md diff --git a/ql/examples/qlpack.lock.yml b/ruby/ql/examples/qlpack.lock.yml similarity index 100% rename from ql/examples/qlpack.lock.yml rename to ruby/ql/examples/qlpack.lock.yml diff --git a/ql/examples/qlpack.yml b/ruby/ql/examples/qlpack.yml similarity index 100% rename from ql/examples/qlpack.yml rename to ruby/ql/examples/qlpack.yml diff --git a/ql/examples/queries.xml b/ruby/ql/examples/queries.xml similarity index 100% rename from ql/examples/queries.xml rename to ruby/ql/examples/queries.xml diff --git a/ql/examples/snippets/emptythen.ql b/ruby/ql/examples/snippets/emptythen.ql similarity index 100% rename from ql/examples/snippets/emptythen.ql rename to ruby/ql/examples/snippets/emptythen.ql diff --git a/ql/lib/codeql/IDEContextual.qll b/ruby/ql/lib/codeql/IDEContextual.qll similarity index 100% rename from ql/lib/codeql/IDEContextual.qll rename to ruby/ql/lib/codeql/IDEContextual.qll diff --git a/ql/lib/codeql/Locations.qll b/ruby/ql/lib/codeql/Locations.qll similarity index 100% rename from ql/lib/codeql/Locations.qll rename to ruby/ql/lib/codeql/Locations.qll diff --git a/ql/lib/codeql/files/FileSystem.qll b/ruby/ql/lib/codeql/files/FileSystem.qll similarity index 100% rename from ql/lib/codeql/files/FileSystem.qll rename to ruby/ql/lib/codeql/files/FileSystem.qll diff --git a/ql/lib/codeql/ruby/AST.qll b/ruby/ql/lib/codeql/ruby/AST.qll similarity index 100% rename from ql/lib/codeql/ruby/AST.qll rename to ruby/ql/lib/codeql/ruby/AST.qll diff --git a/ql/lib/codeql/ruby/ApiGraphs.qll b/ruby/ql/lib/codeql/ruby/ApiGraphs.qll similarity index 100% rename from ql/lib/codeql/ruby/ApiGraphs.qll rename to ruby/ql/lib/codeql/ruby/ApiGraphs.qll diff --git a/ql/lib/codeql/ruby/CFG.qll b/ruby/ql/lib/codeql/ruby/CFG.qll similarity index 100% rename from ql/lib/codeql/ruby/CFG.qll rename to ruby/ql/lib/codeql/ruby/CFG.qll diff --git a/ql/lib/codeql/ruby/Concepts.qll b/ruby/ql/lib/codeql/ruby/Concepts.qll similarity index 100% rename from ql/lib/codeql/ruby/Concepts.qll rename to ruby/ql/lib/codeql/ruby/Concepts.qll diff --git a/ql/lib/codeql/ruby/DataFlow.qll b/ruby/ql/lib/codeql/ruby/DataFlow.qll similarity index 100% rename from ql/lib/codeql/ruby/DataFlow.qll rename to ruby/ql/lib/codeql/ruby/DataFlow.qll diff --git a/ql/lib/codeql/ruby/DataFlow2.qll b/ruby/ql/lib/codeql/ruby/DataFlow2.qll similarity index 100% rename from ql/lib/codeql/ruby/DataFlow2.qll rename to ruby/ql/lib/codeql/ruby/DataFlow2.qll diff --git a/ql/lib/codeql/ruby/Diagnostics.qll b/ruby/ql/lib/codeql/ruby/Diagnostics.qll similarity index 100% rename from ql/lib/codeql/ruby/Diagnostics.qll rename to ruby/ql/lib/codeql/ruby/Diagnostics.qll diff --git a/ql/lib/codeql/ruby/Frameworks.qll b/ruby/ql/lib/codeql/ruby/Frameworks.qll similarity index 100% rename from ql/lib/codeql/ruby/Frameworks.qll rename to ruby/ql/lib/codeql/ruby/Frameworks.qll diff --git a/ql/lib/codeql/ruby/TaintTracking.qll b/ruby/ql/lib/codeql/ruby/TaintTracking.qll similarity index 100% rename from ql/lib/codeql/ruby/TaintTracking.qll rename to ruby/ql/lib/codeql/ruby/TaintTracking.qll diff --git a/ql/lib/codeql/ruby/ast/Call.qll b/ruby/ql/lib/codeql/ruby/ast/Call.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Call.qll rename to ruby/ql/lib/codeql/ruby/ast/Call.qll diff --git a/ql/lib/codeql/ruby/ast/Constant.qll b/ruby/ql/lib/codeql/ruby/ast/Constant.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Constant.qll rename to ruby/ql/lib/codeql/ruby/ast/Constant.qll diff --git a/ql/lib/codeql/ruby/ast/Control.qll b/ruby/ql/lib/codeql/ruby/ast/Control.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Control.qll rename to ruby/ql/lib/codeql/ruby/ast/Control.qll diff --git a/ql/lib/codeql/ruby/ast/Erb.qll b/ruby/ql/lib/codeql/ruby/ast/Erb.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Erb.qll rename to ruby/ql/lib/codeql/ruby/ast/Erb.qll diff --git a/ql/lib/codeql/ruby/ast/Expr.qll b/ruby/ql/lib/codeql/ruby/ast/Expr.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Expr.qll rename to ruby/ql/lib/codeql/ruby/ast/Expr.qll diff --git a/ql/lib/codeql/ruby/ast/Literal.qll b/ruby/ql/lib/codeql/ruby/ast/Literal.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Literal.qll rename to ruby/ql/lib/codeql/ruby/ast/Literal.qll diff --git a/ql/lib/codeql/ruby/ast/Method.qll b/ruby/ql/lib/codeql/ruby/ast/Method.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Method.qll rename to ruby/ql/lib/codeql/ruby/ast/Method.qll diff --git a/ql/lib/codeql/ruby/ast/Module.qll b/ruby/ql/lib/codeql/ruby/ast/Module.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Module.qll rename to ruby/ql/lib/codeql/ruby/ast/Module.qll diff --git a/ql/lib/codeql/ruby/ast/Operation.qll b/ruby/ql/lib/codeql/ruby/ast/Operation.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Operation.qll rename to ruby/ql/lib/codeql/ruby/ast/Operation.qll diff --git a/ql/lib/codeql/ruby/ast/Parameter.qll b/ruby/ql/lib/codeql/ruby/ast/Parameter.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Parameter.qll rename to ruby/ql/lib/codeql/ruby/ast/Parameter.qll diff --git a/ql/lib/codeql/ruby/ast/Pattern.qll b/ruby/ql/lib/codeql/ruby/ast/Pattern.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Pattern.qll rename to ruby/ql/lib/codeql/ruby/ast/Pattern.qll diff --git a/ql/lib/codeql/ruby/ast/Scope.qll b/ruby/ql/lib/codeql/ruby/ast/Scope.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Scope.qll rename to ruby/ql/lib/codeql/ruby/ast/Scope.qll diff --git a/ql/lib/codeql/ruby/ast/Statement.qll b/ruby/ql/lib/codeql/ruby/ast/Statement.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Statement.qll rename to ruby/ql/lib/codeql/ruby/ast/Statement.qll diff --git a/ql/lib/codeql/ruby/ast/Variable.qll b/ruby/ql/lib/codeql/ruby/ast/Variable.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/Variable.qll rename to ruby/ql/lib/codeql/ruby/ast/Variable.qll diff --git a/ql/lib/codeql/ruby/ast/internal/AST.qll b/ruby/ql/lib/codeql/ruby/ast/internal/AST.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/AST.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/AST.qll diff --git a/ql/lib/codeql/ruby/ast/internal/Call.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Call.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/Call.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/Call.qll diff --git a/ql/lib/codeql/ruby/ast/internal/Erb.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Erb.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/Erb.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/Erb.qll diff --git a/ql/lib/codeql/ruby/ast/internal/Module.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Module.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/Module.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/Module.qll diff --git a/ql/lib/codeql/ruby/ast/internal/Operation.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Operation.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/Operation.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/Operation.qll diff --git a/ql/lib/codeql/ruby/ast/internal/Parameter.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Parameter.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/Parameter.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/Parameter.qll diff --git a/ql/lib/codeql/ruby/ast/internal/Pattern.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Pattern.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/Pattern.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/Pattern.qll diff --git a/ql/lib/codeql/ruby/ast/internal/Scope.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Scope.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/Scope.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/Scope.qll diff --git a/ql/lib/codeql/ruby/ast/internal/Synthesis.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Synthesis.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/Synthesis.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/Synthesis.qll diff --git a/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll b/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/TreeSitter.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll diff --git a/ql/lib/codeql/ruby/ast/internal/Variable.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Variable.qll similarity index 100% rename from ql/lib/codeql/ruby/ast/internal/Variable.qll rename to ruby/ql/lib/codeql/ruby/ast/internal/Variable.qll diff --git a/ql/lib/codeql/ruby/controlflow/BasicBlocks.qll b/ruby/ql/lib/codeql/ruby/controlflow/BasicBlocks.qll similarity index 100% rename from ql/lib/codeql/ruby/controlflow/BasicBlocks.qll rename to ruby/ql/lib/codeql/ruby/controlflow/BasicBlocks.qll diff --git a/ql/lib/codeql/ruby/controlflow/CfgNodes.qll b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll similarity index 100% rename from ql/lib/codeql/ruby/controlflow/CfgNodes.qll rename to ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll diff --git a/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll b/ruby/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll similarity index 100% rename from ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll rename to ruby/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll diff --git a/ql/lib/codeql/ruby/controlflow/internal/Completion.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/Completion.qll similarity index 100% rename from ql/lib/codeql/ruby/controlflow/internal/Completion.qll rename to ruby/ql/lib/codeql/ruby/controlflow/internal/Completion.qll diff --git a/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll similarity index 100% rename from ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll rename to ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll diff --git a/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll similarity index 100% rename from ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll rename to ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll diff --git a/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplSpecific.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplSpecific.qll similarity index 100% rename from ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplSpecific.qll rename to ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplSpecific.qll diff --git a/ql/lib/codeql/ruby/controlflow/internal/NonReturning.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/NonReturning.qll similarity index 100% rename from ql/lib/codeql/ruby/controlflow/internal/NonReturning.qll rename to ruby/ql/lib/codeql/ruby/controlflow/internal/NonReturning.qll diff --git a/ql/lib/codeql/ruby/controlflow/internal/Splitting.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/Splitting.qll similarity index 100% rename from ql/lib/codeql/ruby/controlflow/internal/Splitting.qll rename to ruby/ql/lib/codeql/ruby/controlflow/internal/Splitting.qll diff --git a/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/BarrierGuards.qll rename to ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll diff --git a/ql/lib/codeql/ruby/dataflow/FlowSummary.qll b/ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/FlowSummary.qll rename to ruby/ql/lib/codeql/ruby/dataflow/FlowSummary.qll diff --git a/ql/lib/codeql/ruby/dataflow/RemoteFlowSources.qll b/ruby/ql/lib/codeql/ruby/dataflow/RemoteFlowSources.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/RemoteFlowSources.qll rename to ruby/ql/lib/codeql/ruby/dataflow/RemoteFlowSources.qll diff --git a/ql/lib/codeql/ruby/dataflow/SSA.qll b/ruby/ql/lib/codeql/ruby/dataflow/SSA.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/SSA.qll rename to ruby/ql/lib/codeql/ruby/dataflow/SSA.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplCommon.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplCommon.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/DataFlowImplCommon.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplCommon.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplConsistency.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplConsistency.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/DataFlowImplConsistency.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplConsistency.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImplSpecific.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/SsaImplCommon.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImplCommon.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/SsaImplCommon.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImplCommon.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/SsaImplSpecific.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImplSpecific.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/SsaImplSpecific.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImplSpecific.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPublic.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPublic.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPublic.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingImpl.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingImpl.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingImpl.qll diff --git a/ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingParameter.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingParameter.qll similarity index 100% rename from ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingParameter.qll rename to ruby/ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingParameter.qll diff --git a/ql/lib/codeql/ruby/filters/GeneratedCode.qll b/ruby/ql/lib/codeql/ruby/filters/GeneratedCode.qll similarity index 100% rename from ql/lib/codeql/ruby/filters/GeneratedCode.qll rename to ruby/ql/lib/codeql/ruby/filters/GeneratedCode.qll diff --git a/ql/lib/codeql/ruby/frameworks/ActionController.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/ActionController.qll rename to ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll diff --git a/ql/lib/codeql/ruby/frameworks/ActionView.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionView.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/ActionView.qll rename to ruby/ql/lib/codeql/ruby/frameworks/ActionView.qll diff --git a/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/ActiveRecord.qll rename to ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll diff --git a/ql/lib/codeql/ruby/frameworks/Files.qll b/ruby/ql/lib/codeql/ruby/frameworks/Files.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/Files.qll rename to ruby/ql/lib/codeql/ruby/frameworks/Files.qll diff --git a/ql/lib/codeql/ruby/frameworks/HttpClients.qll b/ruby/ql/lib/codeql/ruby/frameworks/HttpClients.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/HttpClients.qll rename to ruby/ql/lib/codeql/ruby/frameworks/HttpClients.qll diff --git a/ql/lib/codeql/ruby/frameworks/StandardLibrary.qll b/ruby/ql/lib/codeql/ruby/frameworks/StandardLibrary.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/StandardLibrary.qll rename to ruby/ql/lib/codeql/ruby/frameworks/StandardLibrary.qll diff --git a/ql/lib/codeql/ruby/frameworks/XmlParsing.qll b/ruby/ql/lib/codeql/ruby/frameworks/XmlParsing.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/XmlParsing.qll rename to ruby/ql/lib/codeql/ruby/frameworks/XmlParsing.qll diff --git a/ql/lib/codeql/ruby/frameworks/http_clients/Excon.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Excon.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/http_clients/Excon.qll rename to ruby/ql/lib/codeql/ruby/frameworks/http_clients/Excon.qll diff --git a/ql/lib/codeql/ruby/frameworks/http_clients/Faraday.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Faraday.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/http_clients/Faraday.qll rename to ruby/ql/lib/codeql/ruby/frameworks/http_clients/Faraday.qll diff --git a/ql/lib/codeql/ruby/frameworks/http_clients/HttpClient.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/HttpClient.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/http_clients/HttpClient.qll rename to ruby/ql/lib/codeql/ruby/frameworks/http_clients/HttpClient.qll diff --git a/ql/lib/codeql/ruby/frameworks/http_clients/Httparty.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Httparty.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/http_clients/Httparty.qll rename to ruby/ql/lib/codeql/ruby/frameworks/http_clients/Httparty.qll diff --git a/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll rename to ruby/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll diff --git a/ql/lib/codeql/ruby/frameworks/http_clients/OpenURI.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/OpenURI.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/http_clients/OpenURI.qll rename to ruby/ql/lib/codeql/ruby/frameworks/http_clients/OpenURI.qll diff --git a/ql/lib/codeql/ruby/frameworks/http_clients/RestClient.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/RestClient.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/http_clients/RestClient.qll rename to ruby/ql/lib/codeql/ruby/frameworks/http_clients/RestClient.qll diff --git a/ql/lib/codeql/ruby/frameworks/http_clients/Typhoeus.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/Typhoeus.qll similarity index 100% rename from ql/lib/codeql/ruby/frameworks/http_clients/Typhoeus.qll rename to ruby/ql/lib/codeql/ruby/frameworks/http_clients/Typhoeus.qll diff --git a/ql/lib/codeql/ruby/printAst.qll b/ruby/ql/lib/codeql/ruby/printAst.qll similarity index 100% rename from ql/lib/codeql/ruby/printAst.qll rename to ruby/ql/lib/codeql/ruby/printAst.qll diff --git a/ql/lib/codeql/ruby/regexp/ExponentialBackTracking.qll b/ruby/ql/lib/codeql/ruby/regexp/ExponentialBackTracking.qll similarity index 100% rename from ql/lib/codeql/ruby/regexp/ExponentialBackTracking.qll rename to ruby/ql/lib/codeql/ruby/regexp/ExponentialBackTracking.qll diff --git a/ql/lib/codeql/ruby/regexp/ParseRegExp.qll b/ruby/ql/lib/codeql/ruby/regexp/ParseRegExp.qll similarity index 100% rename from ql/lib/codeql/ruby/regexp/ParseRegExp.qll rename to ruby/ql/lib/codeql/ruby/regexp/ParseRegExp.qll diff --git a/ql/lib/codeql/ruby/regexp/PolynomialReDoSCustomizations.qll b/ruby/ql/lib/codeql/ruby/regexp/PolynomialReDoSCustomizations.qll similarity index 100% rename from ql/lib/codeql/ruby/regexp/PolynomialReDoSCustomizations.qll rename to ruby/ql/lib/codeql/ruby/regexp/PolynomialReDoSCustomizations.qll diff --git a/ql/lib/codeql/ruby/regexp/PolynomialReDoSQuery.qll b/ruby/ql/lib/codeql/ruby/regexp/PolynomialReDoSQuery.qll similarity index 100% rename from ql/lib/codeql/ruby/regexp/PolynomialReDoSQuery.qll rename to ruby/ql/lib/codeql/ruby/regexp/PolynomialReDoSQuery.qll diff --git a/ql/lib/codeql/ruby/regexp/ReDoSUtil.qll b/ruby/ql/lib/codeql/ruby/regexp/ReDoSUtil.qll similarity index 100% rename from ql/lib/codeql/ruby/regexp/ReDoSUtil.qll rename to ruby/ql/lib/codeql/ruby/regexp/ReDoSUtil.qll diff --git a/ql/lib/codeql/ruby/regexp/RegExpTreeView.qll b/ruby/ql/lib/codeql/ruby/regexp/RegExpTreeView.qll similarity index 100% rename from ql/lib/codeql/ruby/regexp/RegExpTreeView.qll rename to ruby/ql/lib/codeql/ruby/regexp/RegExpTreeView.qll diff --git a/ql/lib/codeql/ruby/regexp/SuperlinearBackTracking.qll b/ruby/ql/lib/codeql/ruby/regexp/SuperlinearBackTracking.qll similarity index 100% rename from ql/lib/codeql/ruby/regexp/SuperlinearBackTracking.qll rename to ruby/ql/lib/codeql/ruby/regexp/SuperlinearBackTracking.qll diff --git a/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll similarity index 100% rename from ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll rename to ruby/ql/lib/codeql/ruby/security/CodeInjectionCustomizations.qll diff --git a/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll similarity index 100% rename from ql/lib/codeql/ruby/security/CodeInjectionQuery.qll rename to ruby/ql/lib/codeql/ruby/security/CodeInjectionQuery.qll diff --git a/ql/lib/codeql/ruby/security/CommandInjectionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/CommandInjectionCustomizations.qll similarity index 100% rename from ql/lib/codeql/ruby/security/CommandInjectionCustomizations.qll rename to ruby/ql/lib/codeql/ruby/security/CommandInjectionCustomizations.qll diff --git a/ql/lib/codeql/ruby/security/CommandInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/CommandInjectionQuery.qll similarity index 100% rename from ql/lib/codeql/ruby/security/CommandInjectionQuery.qll rename to ruby/ql/lib/codeql/ruby/security/CommandInjectionQuery.qll diff --git a/ql/lib/codeql/ruby/security/ReflectedXSSQuery.qll b/ruby/ql/lib/codeql/ruby/security/ReflectedXSSQuery.qll similarity index 100% rename from ql/lib/codeql/ruby/security/ReflectedXSSQuery.qll rename to ruby/ql/lib/codeql/ruby/security/ReflectedXSSQuery.qll diff --git a/ql/lib/codeql/ruby/security/StoredXSSQuery.qll b/ruby/ql/lib/codeql/ruby/security/StoredXSSQuery.qll similarity index 100% rename from ql/lib/codeql/ruby/security/StoredXSSQuery.qll rename to ruby/ql/lib/codeql/ruby/security/StoredXSSQuery.qll diff --git a/ql/lib/codeql/ruby/security/UnsafeDeserializationCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeDeserializationCustomizations.qll similarity index 100% rename from ql/lib/codeql/ruby/security/UnsafeDeserializationCustomizations.qll rename to ruby/ql/lib/codeql/ruby/security/UnsafeDeserializationCustomizations.qll diff --git a/ql/lib/codeql/ruby/security/UnsafeDeserializationQuery.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeDeserializationQuery.qll similarity index 100% rename from ql/lib/codeql/ruby/security/UnsafeDeserializationQuery.qll rename to ruby/ql/lib/codeql/ruby/security/UnsafeDeserializationQuery.qll diff --git a/ql/lib/codeql/ruby/security/UrlRedirectCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/UrlRedirectCustomizations.qll similarity index 100% rename from ql/lib/codeql/ruby/security/UrlRedirectCustomizations.qll rename to ruby/ql/lib/codeql/ruby/security/UrlRedirectCustomizations.qll diff --git a/ql/lib/codeql/ruby/security/UrlRedirectQuery.qll b/ruby/ql/lib/codeql/ruby/security/UrlRedirectQuery.qll similarity index 100% rename from ql/lib/codeql/ruby/security/UrlRedirectQuery.qll rename to ruby/ql/lib/codeql/ruby/security/UrlRedirectQuery.qll diff --git a/ql/lib/codeql/ruby/security/XSS.qll b/ruby/ql/lib/codeql/ruby/security/XSS.qll similarity index 100% rename from ql/lib/codeql/ruby/security/XSS.qll rename to ruby/ql/lib/codeql/ruby/security/XSS.qll diff --git a/ql/lib/codeql/ruby/typetracking/TypeTracker.qll b/ruby/ql/lib/codeql/ruby/typetracking/TypeTracker.qll similarity index 100% rename from ql/lib/codeql/ruby/typetracking/TypeTracker.qll rename to ruby/ql/lib/codeql/ruby/typetracking/TypeTracker.qll diff --git a/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll similarity index 100% rename from ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll rename to ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll diff --git a/ql/lib/qlpack.lock.yml b/ruby/ql/lib/qlpack.lock.yml similarity index 100% rename from ql/lib/qlpack.lock.yml rename to ruby/ql/lib/qlpack.lock.yml diff --git a/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml similarity index 100% rename from ql/lib/qlpack.yml rename to ruby/ql/lib/qlpack.yml diff --git a/ql/lib/ruby.dbscheme b/ruby/ql/lib/ruby.dbscheme similarity index 100% rename from ql/lib/ruby.dbscheme rename to ruby/ql/lib/ruby.dbscheme diff --git a/ql/lib/ruby.dbscheme.stats b/ruby/ql/lib/ruby.dbscheme.stats similarity index 100% rename from ql/lib/ruby.dbscheme.stats rename to ruby/ql/lib/ruby.dbscheme.stats diff --git a/ql/lib/ruby.qll b/ruby/ql/lib/ruby.qll similarity index 100% rename from ql/lib/ruby.qll rename to ruby/ql/lib/ruby.qll diff --git a/ql/lib/tutorial.qll b/ruby/ql/lib/tutorial.qll similarity index 100% rename from ql/lib/tutorial.qll rename to ruby/ql/lib/tutorial.qll diff --git a/ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/old.dbscheme b/ruby/ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/old.dbscheme similarity index 100% rename from ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/old.dbscheme rename to ruby/ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/old.dbscheme diff --git a/ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/ruby.dbscheme b/ruby/ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/ruby.dbscheme similarity index 100% rename from ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/ruby.dbscheme rename to ruby/ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/ruby.dbscheme diff --git a/ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/upgrade.properties b/ruby/ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/upgrade.properties similarity index 100% rename from ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/upgrade.properties rename to ruby/ql/lib/upgrades/09a494ce67d8141f28d6411f89b9ff7bdad440f3/upgrade.properties diff --git a/ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/old.dbscheme b/ruby/ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/old.dbscheme similarity index 100% rename from ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/old.dbscheme rename to ruby/ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/old.dbscheme diff --git a/ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/ruby.dbscheme b/ruby/ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/ruby.dbscheme similarity index 100% rename from ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/ruby.dbscheme rename to ruby/ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/ruby.dbscheme diff --git a/ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/upgrade.properties b/ruby/ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/upgrade.properties similarity index 100% rename from ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/upgrade.properties rename to ruby/ql/lib/upgrades/30e1075bbdc9ce935dbe28dc7175489fe8e69a4c/upgrade.properties diff --git a/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/old.dbscheme b/ruby/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/old.dbscheme similarity index 100% rename from ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/old.dbscheme rename to ruby/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/old.dbscheme diff --git a/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/ruby.dbscheme b/ruby/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/ruby.dbscheme similarity index 100% rename from ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/ruby.dbscheme rename to ruby/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/ruby.dbscheme diff --git a/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/ruby_tokeninfo.ql b/ruby/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/ruby_tokeninfo.ql similarity index 100% rename from ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/ruby_tokeninfo.ql rename to ruby/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/ruby_tokeninfo.ql diff --git a/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/upgrade.properties b/ruby/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/upgrade.properties similarity index 100% rename from ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/upgrade.properties rename to ruby/ql/lib/upgrades/31a238d080f3dd563d7225fc0458254617d1e5ba/upgrade.properties diff --git a/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/old.dbscheme b/ruby/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/old.dbscheme similarity index 100% rename from ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/old.dbscheme rename to ruby/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/old.dbscheme diff --git a/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/ruby.dbscheme b/ruby/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/ruby.dbscheme similarity index 100% rename from ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/ruby.dbscheme rename to ruby/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/ruby.dbscheme diff --git a/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/ruby.dbscheme.stats b/ruby/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/ruby.dbscheme.stats similarity index 100% rename from ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/ruby.dbscheme.stats rename to ruby/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/ruby.dbscheme.stats diff --git a/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/upgrade.properties b/ruby/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/upgrade.properties similarity index 100% rename from ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/upgrade.properties rename to ruby/ql/lib/upgrades/40be81bc2086eb0368f33c770e0a84817bb340c3/upgrade.properties diff --git a/ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/old.dbscheme b/ruby/ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/old.dbscheme similarity index 100% rename from ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/old.dbscheme rename to ruby/ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/old.dbscheme diff --git a/ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/ruby.dbscheme b/ruby/ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/ruby.dbscheme similarity index 100% rename from ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/ruby.dbscheme rename to ruby/ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/ruby.dbscheme diff --git a/ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/upgrade.properties b/ruby/ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/upgrade.properties similarity index 100% rename from ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/upgrade.properties rename to ruby/ql/lib/upgrades/8725deeb2fa6627c45235f18b7c121c35498dac7/upgrade.properties diff --git a/ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/old.dbscheme b/ruby/ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/old.dbscheme similarity index 100% rename from ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/old.dbscheme rename to ruby/ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/old.dbscheme diff --git a/ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/ruby.dbscheme b/ruby/ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/ruby.dbscheme similarity index 100% rename from ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/ruby.dbscheme rename to ruby/ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/ruby.dbscheme diff --git a/ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/upgrade.properties b/ruby/ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/upgrade.properties similarity index 100% rename from ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/upgrade.properties rename to ruby/ql/lib/upgrades/b5aef9c93ae64f848017d2dcb760eed916ab0cdd/upgrade.properties diff --git a/ql/lib/upgrades/initial/ruby.dbscheme b/ruby/ql/lib/upgrades/initial/ruby.dbscheme similarity index 100% rename from ql/lib/upgrades/initial/ruby.dbscheme rename to ruby/ql/lib/upgrades/initial/ruby.dbscheme diff --git a/ql/src/AlertSuppression.ql b/ruby/ql/src/AlertSuppression.ql similarity index 100% rename from ql/src/AlertSuppression.ql rename to ruby/ql/src/AlertSuppression.ql diff --git a/ql/src/codeql-suites/ruby-code-scanning.qls b/ruby/ql/src/codeql-suites/ruby-code-scanning.qls similarity index 100% rename from ql/src/codeql-suites/ruby-code-scanning.qls rename to ruby/ql/src/codeql-suites/ruby-code-scanning.qls diff --git a/ql/src/codeql-suites/ruby-lgtm-full.qls b/ruby/ql/src/codeql-suites/ruby-lgtm-full.qls similarity index 100% rename from ql/src/codeql-suites/ruby-lgtm-full.qls rename to ruby/ql/src/codeql-suites/ruby-lgtm-full.qls diff --git a/ql/src/codeql-suites/ruby-lgtm.qls b/ruby/ql/src/codeql-suites/ruby-lgtm.qls similarity index 100% rename from ql/src/codeql-suites/ruby-lgtm.qls rename to ruby/ql/src/codeql-suites/ruby-lgtm.qls diff --git a/ql/src/codeql-suites/ruby-security-and-quality.qls b/ruby/ql/src/codeql-suites/ruby-security-and-quality.qls similarity index 100% rename from ql/src/codeql-suites/ruby-security-and-quality.qls rename to ruby/ql/src/codeql-suites/ruby-security-and-quality.qls diff --git a/ql/src/codeql-suites/ruby-security-extended.qls b/ruby/ql/src/codeql-suites/ruby-security-extended.qls similarity index 100% rename from ql/src/codeql-suites/ruby-security-extended.qls rename to ruby/ql/src/codeql-suites/ruby-security-extended.qls diff --git a/ql/src/experimental/README.md b/ruby/ql/src/experimental/README.md similarity index 100% rename from ql/src/experimental/README.md rename to ruby/ql/src/experimental/README.md diff --git a/ql/src/experimental/performance/UseDetect.ql b/ruby/ql/src/experimental/performance/UseDetect.ql similarity index 100% rename from ql/src/experimental/performance/UseDetect.ql rename to ruby/ql/src/experimental/performance/UseDetect.ql diff --git a/ql/src/filters/ClassifyFiles.ql b/ruby/ql/src/filters/ClassifyFiles.ql similarity index 100% rename from ql/src/filters/ClassifyFiles.ql rename to ruby/ql/src/filters/ClassifyFiles.ql diff --git a/ql/src/ide-contextual-queries/localDefinitions.ql b/ruby/ql/src/ide-contextual-queries/localDefinitions.ql similarity index 100% rename from ql/src/ide-contextual-queries/localDefinitions.ql rename to ruby/ql/src/ide-contextual-queries/localDefinitions.ql diff --git a/ql/src/ide-contextual-queries/localReferences.ql b/ruby/ql/src/ide-contextual-queries/localReferences.ql similarity index 100% rename from ql/src/ide-contextual-queries/localReferences.ql rename to ruby/ql/src/ide-contextual-queries/localReferences.ql diff --git a/ql/src/ide-contextual-queries/printAst.ql b/ruby/ql/src/ide-contextual-queries/printAst.ql similarity index 100% rename from ql/src/ide-contextual-queries/printAst.ql rename to ruby/ql/src/ide-contextual-queries/printAst.ql diff --git a/ql/src/qlpack.lock.yml b/ruby/ql/src/qlpack.lock.yml similarity index 100% rename from ql/src/qlpack.lock.yml rename to ruby/ql/src/qlpack.lock.yml diff --git a/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml similarity index 100% rename from ql/src/qlpack.yml rename to ruby/ql/src/qlpack.yml diff --git a/ql/src/queries/analysis/Definitions.ql b/ruby/ql/src/queries/analysis/Definitions.ql similarity index 100% rename from ql/src/queries/analysis/Definitions.ql rename to ruby/ql/src/queries/analysis/Definitions.ql diff --git a/ql/src/queries/diagnostics/ExtractionErrors.ql b/ruby/ql/src/queries/diagnostics/ExtractionErrors.ql similarity index 100% rename from ql/src/queries/diagnostics/ExtractionErrors.ql rename to ruby/ql/src/queries/diagnostics/ExtractionErrors.ql diff --git a/ql/src/queries/diagnostics/SuccessfullyExtractedFiles.ql b/ruby/ql/src/queries/diagnostics/SuccessfullyExtractedFiles.ql similarity index 100% rename from ql/src/queries/diagnostics/SuccessfullyExtractedFiles.ql rename to ruby/ql/src/queries/diagnostics/SuccessfullyExtractedFiles.ql diff --git a/ql/src/queries/metrics/FLines.ql b/ruby/ql/src/queries/metrics/FLines.ql similarity index 100% rename from ql/src/queries/metrics/FLines.ql rename to ruby/ql/src/queries/metrics/FLines.ql diff --git a/ql/src/queries/metrics/FLinesOfCode.ql b/ruby/ql/src/queries/metrics/FLinesOfCode.ql similarity index 100% rename from ql/src/queries/metrics/FLinesOfCode.ql rename to ruby/ql/src/queries/metrics/FLinesOfCode.ql diff --git a/ql/src/queries/metrics/FLinesOfComments.ql b/ruby/ql/src/queries/metrics/FLinesOfComments.ql similarity index 100% rename from ql/src/queries/metrics/FLinesOfComments.ql rename to ruby/ql/src/queries/metrics/FLinesOfComments.ql diff --git a/ql/src/queries/security/cwe-078/CommandInjection.qhelp b/ruby/ql/src/queries/security/cwe-078/CommandInjection.qhelp similarity index 100% rename from ql/src/queries/security/cwe-078/CommandInjection.qhelp rename to ruby/ql/src/queries/security/cwe-078/CommandInjection.qhelp diff --git a/ql/src/queries/security/cwe-078/CommandInjection.ql b/ruby/ql/src/queries/security/cwe-078/CommandInjection.ql similarity index 100% rename from ql/src/queries/security/cwe-078/CommandInjection.ql rename to ruby/ql/src/queries/security/cwe-078/CommandInjection.ql diff --git a/ql/src/queries/security/cwe-078/KernelOpen.qhelp b/ruby/ql/src/queries/security/cwe-078/KernelOpen.qhelp similarity index 100% rename from ql/src/queries/security/cwe-078/KernelOpen.qhelp rename to ruby/ql/src/queries/security/cwe-078/KernelOpen.qhelp diff --git a/ql/src/queries/security/cwe-078/KernelOpen.ql b/ruby/ql/src/queries/security/cwe-078/KernelOpen.ql similarity index 100% rename from ql/src/queries/security/cwe-078/KernelOpen.ql rename to ruby/ql/src/queries/security/cwe-078/KernelOpen.ql diff --git a/ql/src/queries/security/cwe-078/examples/command_injection.rb b/ruby/ql/src/queries/security/cwe-078/examples/command_injection.rb similarity index 100% rename from ql/src/queries/security/cwe-078/examples/command_injection.rb rename to ruby/ql/src/queries/security/cwe-078/examples/command_injection.rb diff --git a/ql/src/queries/security/cwe-078/examples/file_open.rb b/ruby/ql/src/queries/security/cwe-078/examples/file_open.rb similarity index 100% rename from ql/src/queries/security/cwe-078/examples/file_open.rb rename to ruby/ql/src/queries/security/cwe-078/examples/file_open.rb diff --git a/ql/src/queries/security/cwe-078/examples/kernel_open.rb b/ruby/ql/src/queries/security/cwe-078/examples/kernel_open.rb similarity index 100% rename from ql/src/queries/security/cwe-078/examples/kernel_open.rb rename to ruby/ql/src/queries/security/cwe-078/examples/kernel_open.rb diff --git a/ql/src/queries/security/cwe-079/ReflectedXSS.qhelp b/ruby/ql/src/queries/security/cwe-079/ReflectedXSS.qhelp similarity index 100% rename from ql/src/queries/security/cwe-079/ReflectedXSS.qhelp rename to ruby/ql/src/queries/security/cwe-079/ReflectedXSS.qhelp diff --git a/ql/src/queries/security/cwe-079/ReflectedXSS.ql b/ruby/ql/src/queries/security/cwe-079/ReflectedXSS.ql similarity index 100% rename from ql/src/queries/security/cwe-079/ReflectedXSS.ql rename to ruby/ql/src/queries/security/cwe-079/ReflectedXSS.ql diff --git a/ql/src/queries/security/cwe-079/StoredXSS.qhelp b/ruby/ql/src/queries/security/cwe-079/StoredXSS.qhelp similarity index 100% rename from ql/src/queries/security/cwe-079/StoredXSS.qhelp rename to ruby/ql/src/queries/security/cwe-079/StoredXSS.qhelp diff --git a/ql/src/queries/security/cwe-079/StoredXSS.ql b/ruby/ql/src/queries/security/cwe-079/StoredXSS.ql similarity index 100% rename from ql/src/queries/security/cwe-079/StoredXSS.ql rename to ruby/ql/src/queries/security/cwe-079/StoredXSS.ql diff --git a/ql/src/queries/security/cwe-079/examples/reflected_xss_safe.html.erb b/ruby/ql/src/queries/security/cwe-079/examples/reflected_xss_safe.html.erb similarity index 100% rename from ql/src/queries/security/cwe-079/examples/reflected_xss_safe.html.erb rename to ruby/ql/src/queries/security/cwe-079/examples/reflected_xss_safe.html.erb diff --git a/ql/src/queries/security/cwe-079/examples/reflected_xss_unsafe.html.erb b/ruby/ql/src/queries/security/cwe-079/examples/reflected_xss_unsafe.html.erb similarity index 100% rename from ql/src/queries/security/cwe-079/examples/reflected_xss_unsafe.html.erb rename to ruby/ql/src/queries/security/cwe-079/examples/reflected_xss_unsafe.html.erb diff --git a/ql/src/queries/security/cwe-079/examples/stored_xss_file_unsafe.html.erb b/ruby/ql/src/queries/security/cwe-079/examples/stored_xss_file_unsafe.html.erb similarity index 100% rename from ql/src/queries/security/cwe-079/examples/stored_xss_file_unsafe.html.erb rename to ruby/ql/src/queries/security/cwe-079/examples/stored_xss_file_unsafe.html.erb diff --git a/ql/src/queries/security/cwe-079/examples/stored_xss_rails_safe.html.erb b/ruby/ql/src/queries/security/cwe-079/examples/stored_xss_rails_safe.html.erb similarity index 100% rename from ql/src/queries/security/cwe-079/examples/stored_xss_rails_safe.html.erb rename to ruby/ql/src/queries/security/cwe-079/examples/stored_xss_rails_safe.html.erb diff --git a/ql/src/queries/security/cwe-079/examples/stored_xss_rails_unsafe.html.erb b/ruby/ql/src/queries/security/cwe-079/examples/stored_xss_rails_unsafe.html.erb similarity index 100% rename from ql/src/queries/security/cwe-079/examples/stored_xss_rails_unsafe.html.erb rename to ruby/ql/src/queries/security/cwe-079/examples/stored_xss_rails_unsafe.html.erb diff --git a/ql/src/queries/security/cwe-089/SqlInjection.qhelp b/ruby/ql/src/queries/security/cwe-089/SqlInjection.qhelp similarity index 100% rename from ql/src/queries/security/cwe-089/SqlInjection.qhelp rename to ruby/ql/src/queries/security/cwe-089/SqlInjection.qhelp diff --git a/ql/src/queries/security/cwe-089/SqlInjection.ql b/ruby/ql/src/queries/security/cwe-089/SqlInjection.ql similarity index 100% rename from ql/src/queries/security/cwe-089/SqlInjection.ql rename to ruby/ql/src/queries/security/cwe-089/SqlInjection.ql diff --git a/ql/src/queries/security/cwe-089/examples/SqlInjection.rb b/ruby/ql/src/queries/security/cwe-089/examples/SqlInjection.rb similarity index 100% rename from ql/src/queries/security/cwe-089/examples/SqlInjection.rb rename to ruby/ql/src/queries/security/cwe-089/examples/SqlInjection.rb diff --git a/ql/src/queries/security/cwe-094/CodeInjection.qhelp b/ruby/ql/src/queries/security/cwe-094/CodeInjection.qhelp similarity index 100% rename from ql/src/queries/security/cwe-094/CodeInjection.qhelp rename to ruby/ql/src/queries/security/cwe-094/CodeInjection.qhelp diff --git a/ql/src/queries/security/cwe-094/CodeInjection.ql b/ruby/ql/src/queries/security/cwe-094/CodeInjection.ql similarity index 100% rename from ql/src/queries/security/cwe-094/CodeInjection.ql rename to ruby/ql/src/queries/security/cwe-094/CodeInjection.ql diff --git a/ql/src/queries/security/cwe-094/examples/code_injection.rb b/ruby/ql/src/queries/security/cwe-094/examples/code_injection.rb similarity index 100% rename from ql/src/queries/security/cwe-094/examples/code_injection.rb rename to ruby/ql/src/queries/security/cwe-094/examples/code_injection.rb diff --git a/ql/src/queries/security/cwe-1333/PolynomialReDoS.qhelp b/ruby/ql/src/queries/security/cwe-1333/PolynomialReDoS.qhelp similarity index 100% rename from ql/src/queries/security/cwe-1333/PolynomialReDoS.qhelp rename to ruby/ql/src/queries/security/cwe-1333/PolynomialReDoS.qhelp diff --git a/ql/src/queries/security/cwe-1333/PolynomialReDoS.ql b/ruby/ql/src/queries/security/cwe-1333/PolynomialReDoS.ql similarity index 100% rename from ql/src/queries/security/cwe-1333/PolynomialReDoS.ql rename to ruby/ql/src/queries/security/cwe-1333/PolynomialReDoS.ql diff --git a/ql/src/queries/security/cwe-1333/ReDoS.qhelp b/ruby/ql/src/queries/security/cwe-1333/ReDoS.qhelp similarity index 100% rename from ql/src/queries/security/cwe-1333/ReDoS.qhelp rename to ruby/ql/src/queries/security/cwe-1333/ReDoS.qhelp diff --git a/ql/src/queries/security/cwe-1333/ReDoS.ql b/ruby/ql/src/queries/security/cwe-1333/ReDoS.ql similarity index 100% rename from ql/src/queries/security/cwe-1333/ReDoS.ql rename to ruby/ql/src/queries/security/cwe-1333/ReDoS.ql diff --git a/ql/src/queries/security/cwe-1333/ReDoSIntroduction.inc.qhelp b/ruby/ql/src/queries/security/cwe-1333/ReDoSIntroduction.inc.qhelp similarity index 100% rename from ql/src/queries/security/cwe-1333/ReDoSIntroduction.inc.qhelp rename to ruby/ql/src/queries/security/cwe-1333/ReDoSIntroduction.inc.qhelp diff --git a/ql/src/queries/security/cwe-1333/ReDoSReferences.inc.qhelp b/ruby/ql/src/queries/security/cwe-1333/ReDoSReferences.inc.qhelp similarity index 100% rename from ql/src/queries/security/cwe-1333/ReDoSReferences.inc.qhelp rename to ruby/ql/src/queries/security/cwe-1333/ReDoSReferences.inc.qhelp diff --git a/ql/src/queries/security/cwe-295/RequestWithoutValidation.qhelp b/ruby/ql/src/queries/security/cwe-295/RequestWithoutValidation.qhelp similarity index 100% rename from ql/src/queries/security/cwe-295/RequestWithoutValidation.qhelp rename to ruby/ql/src/queries/security/cwe-295/RequestWithoutValidation.qhelp diff --git a/ql/src/queries/security/cwe-295/RequestWithoutValidation.ql b/ruby/ql/src/queries/security/cwe-295/RequestWithoutValidation.ql similarity index 100% rename from ql/src/queries/security/cwe-295/RequestWithoutValidation.ql rename to ruby/ql/src/queries/security/cwe-295/RequestWithoutValidation.ql diff --git a/ql/src/queries/security/cwe-295/examples/RequestWithoutValidation.rb b/ruby/ql/src/queries/security/cwe-295/examples/RequestWithoutValidation.rb similarity index 100% rename from ql/src/queries/security/cwe-295/examples/RequestWithoutValidation.rb rename to ruby/ql/src/queries/security/cwe-295/examples/RequestWithoutValidation.rb diff --git a/ql/src/queries/security/cwe-502/UnsafeDeserialization.qhelp b/ruby/ql/src/queries/security/cwe-502/UnsafeDeserialization.qhelp similarity index 100% rename from ql/src/queries/security/cwe-502/UnsafeDeserialization.qhelp rename to ruby/ql/src/queries/security/cwe-502/UnsafeDeserialization.qhelp diff --git a/ql/src/queries/security/cwe-502/UnsafeDeserialization.ql b/ruby/ql/src/queries/security/cwe-502/UnsafeDeserialization.ql similarity index 100% rename from ql/src/queries/security/cwe-502/UnsafeDeserialization.ql rename to ruby/ql/src/queries/security/cwe-502/UnsafeDeserialization.ql diff --git a/ql/src/queries/security/cwe-502/examples/UnsafeDeserializationBad.rb b/ruby/ql/src/queries/security/cwe-502/examples/UnsafeDeserializationBad.rb similarity index 100% rename from ql/src/queries/security/cwe-502/examples/UnsafeDeserializationBad.rb rename to ruby/ql/src/queries/security/cwe-502/examples/UnsafeDeserializationBad.rb diff --git a/ql/src/queries/security/cwe-502/examples/UnsafeDeserializationGood.rb b/ruby/ql/src/queries/security/cwe-502/examples/UnsafeDeserializationGood.rb similarity index 100% rename from ql/src/queries/security/cwe-502/examples/UnsafeDeserializationGood.rb rename to ruby/ql/src/queries/security/cwe-502/examples/UnsafeDeserializationGood.rb diff --git a/ql/src/queries/security/cwe-601/UrlRedirect.qhelp b/ruby/ql/src/queries/security/cwe-601/UrlRedirect.qhelp similarity index 100% rename from ql/src/queries/security/cwe-601/UrlRedirect.qhelp rename to ruby/ql/src/queries/security/cwe-601/UrlRedirect.qhelp diff --git a/ql/src/queries/security/cwe-601/UrlRedirect.ql b/ruby/ql/src/queries/security/cwe-601/UrlRedirect.ql similarity index 100% rename from ql/src/queries/security/cwe-601/UrlRedirect.ql rename to ruby/ql/src/queries/security/cwe-601/UrlRedirect.ql diff --git a/ql/src/queries/security/cwe-601/examples/redirect_bad.rb b/ruby/ql/src/queries/security/cwe-601/examples/redirect_bad.rb similarity index 100% rename from ql/src/queries/security/cwe-601/examples/redirect_bad.rb rename to ruby/ql/src/queries/security/cwe-601/examples/redirect_bad.rb diff --git a/ql/src/queries/security/cwe-601/examples/redirect_good.rb b/ruby/ql/src/queries/security/cwe-601/examples/redirect_good.rb similarity index 100% rename from ql/src/queries/security/cwe-601/examples/redirect_good.rb rename to ruby/ql/src/queries/security/cwe-601/examples/redirect_good.rb diff --git a/ql/src/queries/security/cwe-611/Xxe.qhelp b/ruby/ql/src/queries/security/cwe-611/Xxe.qhelp similarity index 100% rename from ql/src/queries/security/cwe-611/Xxe.qhelp rename to ruby/ql/src/queries/security/cwe-611/Xxe.qhelp diff --git a/ql/src/queries/security/cwe-611/Xxe.ql b/ruby/ql/src/queries/security/cwe-611/Xxe.ql similarity index 100% rename from ql/src/queries/security/cwe-611/Xxe.ql rename to ruby/ql/src/queries/security/cwe-611/Xxe.ql diff --git a/ql/src/queries/security/cwe-611/examples/Xxe.rb b/ruby/ql/src/queries/security/cwe-611/examples/Xxe.rb similarity index 100% rename from ql/src/queries/security/cwe-611/examples/Xxe.rb rename to ruby/ql/src/queries/security/cwe-611/examples/Xxe.rb diff --git a/ql/src/queries/security/cwe-611/examples/XxeGood.rb b/ruby/ql/src/queries/security/cwe-611/examples/XxeGood.rb similarity index 100% rename from ql/src/queries/security/cwe-611/examples/XxeGood.rb rename to ruby/ql/src/queries/security/cwe-611/examples/XxeGood.rb diff --git a/ql/src/queries/security/cwe-732/WeakFilePermissions.qhelp b/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.qhelp similarity index 100% rename from ql/src/queries/security/cwe-732/WeakFilePermissions.qhelp rename to ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.qhelp diff --git a/ql/src/queries/security/cwe-732/WeakFilePermissions.ql b/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql similarity index 100% rename from ql/src/queries/security/cwe-732/WeakFilePermissions.ql rename to ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql diff --git a/ql/src/queries/security/cwe-798/HardcodedCredentials.qhelp b/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.qhelp similarity index 100% rename from ql/src/queries/security/cwe-798/HardcodedCredentials.qhelp rename to ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.qhelp diff --git a/ql/src/queries/security/cwe-798/HardcodedCredentials.ql b/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql similarity index 100% rename from ql/src/queries/security/cwe-798/HardcodedCredentials.ql rename to ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql diff --git a/ql/src/queries/security/cwe-798/HardcodedCredentials.rb b/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.rb similarity index 100% rename from ql/src/queries/security/cwe-798/HardcodedCredentials.rb rename to ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.rb diff --git a/ql/src/queries/summary/LinesOfCode.ql b/ruby/ql/src/queries/summary/LinesOfCode.ql similarity index 100% rename from ql/src/queries/summary/LinesOfCode.ql rename to ruby/ql/src/queries/summary/LinesOfCode.ql diff --git a/ql/src/queries/summary/LinesOfUserCode.ql b/ruby/ql/src/queries/summary/LinesOfUserCode.ql similarity index 100% rename from ql/src/queries/summary/LinesOfUserCode.ql rename to ruby/ql/src/queries/summary/LinesOfUserCode.ql diff --git a/ql/src/queries/summary/NumberOfFilesExtractedWithErrors.ql b/ruby/ql/src/queries/summary/NumberOfFilesExtractedWithErrors.ql similarity index 100% rename from ql/src/queries/summary/NumberOfFilesExtractedWithErrors.ql rename to ruby/ql/src/queries/summary/NumberOfFilesExtractedWithErrors.ql diff --git a/ql/src/queries/summary/NumberOfSuccessfullyExtractedFiles.ql b/ruby/ql/src/queries/summary/NumberOfSuccessfullyExtractedFiles.ql similarity index 100% rename from ql/src/queries/summary/NumberOfSuccessfullyExtractedFiles.ql rename to ruby/ql/src/queries/summary/NumberOfSuccessfullyExtractedFiles.ql diff --git a/ql/src/queries/variables/DeadStoreOfLocal.ql b/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql similarity index 100% rename from ql/src/queries/variables/DeadStoreOfLocal.ql rename to ruby/ql/src/queries/variables/DeadStoreOfLocal.ql diff --git a/ql/src/queries/variables/UninitializedLocal.ql b/ruby/ql/src/queries/variables/UninitializedLocal.ql similarity index 100% rename from ql/src/queries/variables/UninitializedLocal.ql rename to ruby/ql/src/queries/variables/UninitializedLocal.ql diff --git a/ql/src/queries/variables/UnusedParameter.ql b/ruby/ql/src/queries/variables/UnusedParameter.ql similarity index 100% rename from ql/src/queries/variables/UnusedParameter.ql rename to ruby/ql/src/queries/variables/UnusedParameter.ql diff --git a/ql/test/TestUtilities/InlineExpectationsTest.qll b/ruby/ql/test/TestUtilities/InlineExpectationsTest.qll similarity index 100% rename from ql/test/TestUtilities/InlineExpectationsTest.qll rename to ruby/ql/test/TestUtilities/InlineExpectationsTest.qll diff --git a/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll b/ruby/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll similarity index 100% rename from ql/test/TestUtilities/InlineExpectationsTestPrivate.qll rename to ruby/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll diff --git a/ql/test/library-tests/ast/Ast.expected b/ruby/ql/test/library-tests/ast/Ast.expected similarity index 100% rename from ql/test/library-tests/ast/Ast.expected rename to ruby/ql/test/library-tests/ast/Ast.expected diff --git a/ql/test/library-tests/ast/Ast.ql b/ruby/ql/test/library-tests/ast/Ast.ql similarity index 100% rename from ql/test/library-tests/ast/Ast.ql rename to ruby/ql/test/library-tests/ast/Ast.ql diff --git a/ql/test/library-tests/ast/AstDesugar.expected b/ruby/ql/test/library-tests/ast/AstDesugar.expected similarity index 100% rename from ql/test/library-tests/ast/AstDesugar.expected rename to ruby/ql/test/library-tests/ast/AstDesugar.expected diff --git a/ql/test/library-tests/ast/AstDesugar.ql b/ruby/ql/test/library-tests/ast/AstDesugar.ql similarity index 100% rename from ql/test/library-tests/ast/AstDesugar.ql rename to ruby/ql/test/library-tests/ast/AstDesugar.ql diff --git a/ql/test/library-tests/ast/ValueText.expected b/ruby/ql/test/library-tests/ast/ValueText.expected similarity index 100% rename from ql/test/library-tests/ast/ValueText.expected rename to ruby/ql/test/library-tests/ast/ValueText.expected diff --git a/ql/test/library-tests/ast/ValueText.ql b/ruby/ql/test/library-tests/ast/ValueText.ql similarity index 100% rename from ql/test/library-tests/ast/ValueText.ql rename to ruby/ql/test/library-tests/ast/ValueText.ql diff --git a/ql/test/library-tests/ast/calls/arguments.expected b/ruby/ql/test/library-tests/ast/calls/arguments.expected similarity index 100% rename from ql/test/library-tests/ast/calls/arguments.expected rename to ruby/ql/test/library-tests/ast/calls/arguments.expected diff --git a/ql/test/library-tests/ast/calls/arguments.ql b/ruby/ql/test/library-tests/ast/calls/arguments.ql similarity index 100% rename from ql/test/library-tests/ast/calls/arguments.ql rename to ruby/ql/test/library-tests/ast/calls/arguments.ql diff --git a/ql/test/library-tests/ast/calls/calls.expected b/ruby/ql/test/library-tests/ast/calls/calls.expected similarity index 100% rename from ql/test/library-tests/ast/calls/calls.expected rename to ruby/ql/test/library-tests/ast/calls/calls.expected diff --git a/ql/test/library-tests/ast/calls/calls.ql b/ruby/ql/test/library-tests/ast/calls/calls.ql similarity index 100% rename from ql/test/library-tests/ast/calls/calls.ql rename to ruby/ql/test/library-tests/ast/calls/calls.ql diff --git a/ql/test/library-tests/ast/calls/calls.rb b/ruby/ql/test/library-tests/ast/calls/calls.rb similarity index 100% rename from ql/test/library-tests/ast/calls/calls.rb rename to ruby/ql/test/library-tests/ast/calls/calls.rb diff --git a/ql/test/library-tests/ast/constants/constants.expected b/ruby/ql/test/library-tests/ast/constants/constants.expected similarity index 100% rename from ql/test/library-tests/ast/constants/constants.expected rename to ruby/ql/test/library-tests/ast/constants/constants.expected diff --git a/ql/test/library-tests/ast/constants/constants.ql b/ruby/ql/test/library-tests/ast/constants/constants.ql similarity index 100% rename from ql/test/library-tests/ast/constants/constants.ql rename to ruby/ql/test/library-tests/ast/constants/constants.ql diff --git a/ql/test/library-tests/ast/constants/constants.rb b/ruby/ql/test/library-tests/ast/constants/constants.rb similarity index 100% rename from ql/test/library-tests/ast/constants/constants.rb rename to ruby/ql/test/library-tests/ast/constants/constants.rb diff --git a/ql/test/library-tests/ast/control/CaseExpr.expected b/ruby/ql/test/library-tests/ast/control/CaseExpr.expected similarity index 100% rename from ql/test/library-tests/ast/control/CaseExpr.expected rename to ruby/ql/test/library-tests/ast/control/CaseExpr.expected diff --git a/ql/test/library-tests/ast/control/CaseExpr.ql b/ruby/ql/test/library-tests/ast/control/CaseExpr.ql similarity index 100% rename from ql/test/library-tests/ast/control/CaseExpr.ql rename to ruby/ql/test/library-tests/ast/control/CaseExpr.ql diff --git a/ql/test/library-tests/ast/control/ConditionalExpr.expected b/ruby/ql/test/library-tests/ast/control/ConditionalExpr.expected similarity index 100% rename from ql/test/library-tests/ast/control/ConditionalExpr.expected rename to ruby/ql/test/library-tests/ast/control/ConditionalExpr.expected diff --git a/ql/test/library-tests/ast/control/ConditionalExpr.ql b/ruby/ql/test/library-tests/ast/control/ConditionalExpr.ql similarity index 100% rename from ql/test/library-tests/ast/control/ConditionalExpr.ql rename to ruby/ql/test/library-tests/ast/control/ConditionalExpr.ql diff --git a/ql/test/library-tests/ast/control/ControlExpr.expected b/ruby/ql/test/library-tests/ast/control/ControlExpr.expected similarity index 100% rename from ql/test/library-tests/ast/control/ControlExpr.expected rename to ruby/ql/test/library-tests/ast/control/ControlExpr.expected diff --git a/ql/test/library-tests/ast/control/ControlExpr.ql b/ruby/ql/test/library-tests/ast/control/ControlExpr.ql similarity index 100% rename from ql/test/library-tests/ast/control/ControlExpr.ql rename to ruby/ql/test/library-tests/ast/control/ControlExpr.ql diff --git a/ql/test/library-tests/ast/control/Loop.expected b/ruby/ql/test/library-tests/ast/control/Loop.expected similarity index 100% rename from ql/test/library-tests/ast/control/Loop.expected rename to ruby/ql/test/library-tests/ast/control/Loop.expected diff --git a/ql/test/library-tests/ast/control/Loop.ql b/ruby/ql/test/library-tests/ast/control/Loop.ql similarity index 100% rename from ql/test/library-tests/ast/control/Loop.ql rename to ruby/ql/test/library-tests/ast/control/Loop.ql diff --git a/ql/test/library-tests/ast/control/cases.rb b/ruby/ql/test/library-tests/ast/control/cases.rb similarity index 100% rename from ql/test/library-tests/ast/control/cases.rb rename to ruby/ql/test/library-tests/ast/control/cases.rb diff --git a/ql/test/library-tests/ast/control/conditionals.rb b/ruby/ql/test/library-tests/ast/control/conditionals.rb similarity index 100% rename from ql/test/library-tests/ast/control/conditionals.rb rename to ruby/ql/test/library-tests/ast/control/conditionals.rb diff --git a/ql/test/library-tests/ast/control/loops.rb b/ruby/ql/test/library-tests/ast/control/loops.rb similarity index 100% rename from ql/test/library-tests/ast/control/loops.rb rename to ruby/ql/test/library-tests/ast/control/loops.rb diff --git a/ql/test/library-tests/ast/erb/Erb.expected b/ruby/ql/test/library-tests/ast/erb/Erb.expected similarity index 100% rename from ql/test/library-tests/ast/erb/Erb.expected rename to ruby/ql/test/library-tests/ast/erb/Erb.expected diff --git a/ql/test/library-tests/ast/erb/Erb.ql b/ruby/ql/test/library-tests/ast/erb/Erb.ql similarity index 100% rename from ql/test/library-tests/ast/erb/Erb.ql rename to ruby/ql/test/library-tests/ast/erb/Erb.ql diff --git a/ql/test/library-tests/ast/erb/template.html.erb b/ruby/ql/test/library-tests/ast/erb/template.html.erb similarity index 100% rename from ql/test/library-tests/ast/erb/template.html.erb rename to ruby/ql/test/library-tests/ast/erb/template.html.erb diff --git a/ql/test/library-tests/ast/gems/Gemfile b/ruby/ql/test/library-tests/ast/gems/Gemfile similarity index 100% rename from ql/test/library-tests/ast/gems/Gemfile rename to ruby/ql/test/library-tests/ast/gems/Gemfile diff --git a/ql/test/library-tests/ast/gems/lib/test.rb b/ruby/ql/test/library-tests/ast/gems/lib/test.rb similarity index 100% rename from ql/test/library-tests/ast/gems/lib/test.rb rename to ruby/ql/test/library-tests/ast/gems/lib/test.rb diff --git a/ql/test/library-tests/ast/gems/test.expected b/ruby/ql/test/library-tests/ast/gems/test.expected similarity index 100% rename from ql/test/library-tests/ast/gems/test.expected rename to ruby/ql/test/library-tests/ast/gems/test.expected diff --git a/ql/test/library-tests/ast/gems/test.gemspec b/ruby/ql/test/library-tests/ast/gems/test.gemspec similarity index 100% rename from ql/test/library-tests/ast/gems/test.gemspec rename to ruby/ql/test/library-tests/ast/gems/test.gemspec diff --git a/ql/test/library-tests/ast/gems/test.ql b/ruby/ql/test/library-tests/ast/gems/test.ql similarity index 100% rename from ql/test/library-tests/ast/gems/test.ql rename to ruby/ql/test/library-tests/ast/gems/test.ql diff --git a/ql/test/library-tests/ast/literals/literals.expected b/ruby/ql/test/library-tests/ast/literals/literals.expected similarity index 100% rename from ql/test/library-tests/ast/literals/literals.expected rename to ruby/ql/test/library-tests/ast/literals/literals.expected diff --git a/ql/test/library-tests/ast/literals/literals.ql b/ruby/ql/test/library-tests/ast/literals/literals.ql similarity index 100% rename from ql/test/library-tests/ast/literals/literals.ql rename to ruby/ql/test/library-tests/ast/literals/literals.ql diff --git a/ql/test/library-tests/ast/literals/literals.rb b/ruby/ql/test/library-tests/ast/literals/literals.rb similarity index 100% rename from ql/test/library-tests/ast/literals/literals.rb rename to ruby/ql/test/library-tests/ast/literals/literals.rb diff --git a/ql/test/library-tests/ast/misc/misc.erb b/ruby/ql/test/library-tests/ast/misc/misc.erb similarity index 100% rename from ql/test/library-tests/ast/misc/misc.erb rename to ruby/ql/test/library-tests/ast/misc/misc.erb diff --git a/ql/test/library-tests/ast/misc/misc.expected b/ruby/ql/test/library-tests/ast/misc/misc.expected similarity index 100% rename from ql/test/library-tests/ast/misc/misc.expected rename to ruby/ql/test/library-tests/ast/misc/misc.expected diff --git a/ql/test/library-tests/ast/misc/misc.ql b/ruby/ql/test/library-tests/ast/misc/misc.ql similarity index 100% rename from ql/test/library-tests/ast/misc/misc.ql rename to ruby/ql/test/library-tests/ast/misc/misc.ql diff --git a/ql/test/library-tests/ast/misc/misc.rb b/ruby/ql/test/library-tests/ast/misc/misc.rb similarity index 100% rename from ql/test/library-tests/ast/misc/misc.rb rename to ruby/ql/test/library-tests/ast/misc/misc.rb diff --git a/ql/test/library-tests/ast/modules/classes.expected b/ruby/ql/test/library-tests/ast/modules/classes.expected similarity index 100% rename from ql/test/library-tests/ast/modules/classes.expected rename to ruby/ql/test/library-tests/ast/modules/classes.expected diff --git a/ql/test/library-tests/ast/modules/classes.ql b/ruby/ql/test/library-tests/ast/modules/classes.ql similarity index 100% rename from ql/test/library-tests/ast/modules/classes.ql rename to ruby/ql/test/library-tests/ast/modules/classes.ql diff --git a/ql/test/library-tests/ast/modules/classes.rb b/ruby/ql/test/library-tests/ast/modules/classes.rb similarity index 100% rename from ql/test/library-tests/ast/modules/classes.rb rename to ruby/ql/test/library-tests/ast/modules/classes.rb diff --git a/ql/test/library-tests/ast/modules/module_base.expected b/ruby/ql/test/library-tests/ast/modules/module_base.expected similarity index 100% rename from ql/test/library-tests/ast/modules/module_base.expected rename to ruby/ql/test/library-tests/ast/modules/module_base.expected diff --git a/ql/test/library-tests/ast/modules/module_base.ql b/ruby/ql/test/library-tests/ast/modules/module_base.ql similarity index 100% rename from ql/test/library-tests/ast/modules/module_base.ql rename to ruby/ql/test/library-tests/ast/modules/module_base.ql diff --git a/ql/test/library-tests/ast/modules/modules.expected b/ruby/ql/test/library-tests/ast/modules/modules.expected similarity index 100% rename from ql/test/library-tests/ast/modules/modules.expected rename to ruby/ql/test/library-tests/ast/modules/modules.expected diff --git a/ql/test/library-tests/ast/modules/modules.ql b/ruby/ql/test/library-tests/ast/modules/modules.ql similarity index 100% rename from ql/test/library-tests/ast/modules/modules.ql rename to ruby/ql/test/library-tests/ast/modules/modules.ql diff --git a/ql/test/library-tests/ast/modules/modules.rb b/ruby/ql/test/library-tests/ast/modules/modules.rb similarity index 100% rename from ql/test/library-tests/ast/modules/modules.rb rename to ruby/ql/test/library-tests/ast/modules/modules.rb diff --git a/ql/test/library-tests/ast/modules/singleton_classes.expected b/ruby/ql/test/library-tests/ast/modules/singleton_classes.expected similarity index 100% rename from ql/test/library-tests/ast/modules/singleton_classes.expected rename to ruby/ql/test/library-tests/ast/modules/singleton_classes.expected diff --git a/ql/test/library-tests/ast/modules/singleton_classes.ql b/ruby/ql/test/library-tests/ast/modules/singleton_classes.ql similarity index 100% rename from ql/test/library-tests/ast/modules/singleton_classes.ql rename to ruby/ql/test/library-tests/ast/modules/singleton_classes.ql diff --git a/ql/test/library-tests/ast/modules/toplevel.expected b/ruby/ql/test/library-tests/ast/modules/toplevel.expected similarity index 100% rename from ql/test/library-tests/ast/modules/toplevel.expected rename to ruby/ql/test/library-tests/ast/modules/toplevel.expected diff --git a/ql/test/library-tests/ast/modules/toplevel.ql b/ruby/ql/test/library-tests/ast/modules/toplevel.ql similarity index 100% rename from ql/test/library-tests/ast/modules/toplevel.ql rename to ruby/ql/test/library-tests/ast/modules/toplevel.ql diff --git a/ql/test/library-tests/ast/modules/toplevel.rb b/ruby/ql/test/library-tests/ast/modules/toplevel.rb similarity index 100% rename from ql/test/library-tests/ast/modules/toplevel.rb rename to ruby/ql/test/library-tests/ast/modules/toplevel.rb diff --git a/ql/test/library-tests/ast/operations/assignment.expected b/ruby/ql/test/library-tests/ast/operations/assignment.expected similarity index 100% rename from ql/test/library-tests/ast/operations/assignment.expected rename to ruby/ql/test/library-tests/ast/operations/assignment.expected diff --git a/ql/test/library-tests/ast/operations/assignment.ql b/ruby/ql/test/library-tests/ast/operations/assignment.ql similarity index 100% rename from ql/test/library-tests/ast/operations/assignment.ql rename to ruby/ql/test/library-tests/ast/operations/assignment.ql diff --git a/ql/test/library-tests/ast/operations/binary.expected b/ruby/ql/test/library-tests/ast/operations/binary.expected similarity index 100% rename from ql/test/library-tests/ast/operations/binary.expected rename to ruby/ql/test/library-tests/ast/operations/binary.expected diff --git a/ql/test/library-tests/ast/operations/binary.ql b/ruby/ql/test/library-tests/ast/operations/binary.ql similarity index 100% rename from ql/test/library-tests/ast/operations/binary.ql rename to ruby/ql/test/library-tests/ast/operations/binary.ql diff --git a/ql/test/library-tests/ast/operations/operation.expected b/ruby/ql/test/library-tests/ast/operations/operation.expected similarity index 100% rename from ql/test/library-tests/ast/operations/operation.expected rename to ruby/ql/test/library-tests/ast/operations/operation.expected diff --git a/ql/test/library-tests/ast/operations/operation.ql b/ruby/ql/test/library-tests/ast/operations/operation.ql similarity index 100% rename from ql/test/library-tests/ast/operations/operation.ql rename to ruby/ql/test/library-tests/ast/operations/operation.ql diff --git a/ql/test/library-tests/ast/operations/operations.rb b/ruby/ql/test/library-tests/ast/operations/operations.rb similarity index 100% rename from ql/test/library-tests/ast/operations/operations.rb rename to ruby/ql/test/library-tests/ast/operations/operations.rb diff --git a/ql/test/library-tests/ast/operations/unary.expected b/ruby/ql/test/library-tests/ast/operations/unary.expected similarity index 100% rename from ql/test/library-tests/ast/operations/unary.expected rename to ruby/ql/test/library-tests/ast/operations/unary.expected diff --git a/ql/test/library-tests/ast/operations/unary.ql b/ruby/ql/test/library-tests/ast/operations/unary.ql similarity index 100% rename from ql/test/library-tests/ast/operations/unary.ql rename to ruby/ql/test/library-tests/ast/operations/unary.ql diff --git a/ql/test/library-tests/ast/params/params.expected b/ruby/ql/test/library-tests/ast/params/params.expected similarity index 100% rename from ql/test/library-tests/ast/params/params.expected rename to ruby/ql/test/library-tests/ast/params/params.expected diff --git a/ql/test/library-tests/ast/params/params.ql b/ruby/ql/test/library-tests/ast/params/params.ql similarity index 100% rename from ql/test/library-tests/ast/params/params.ql rename to ruby/ql/test/library-tests/ast/params/params.ql diff --git a/ql/test/library-tests/ast/params/params.rb b/ruby/ql/test/library-tests/ast/params/params.rb similarity index 100% rename from ql/test/library-tests/ast/params/params.rb rename to ruby/ql/test/library-tests/ast/params/params.rb diff --git a/ql/test/library-tests/controlflow/graph/Cfg.expected b/ruby/ql/test/library-tests/controlflow/graph/Cfg.expected similarity index 100% rename from ql/test/library-tests/controlflow/graph/Cfg.expected rename to ruby/ql/test/library-tests/controlflow/graph/Cfg.expected diff --git a/ql/test/library-tests/controlflow/graph/Cfg.ql b/ruby/ql/test/library-tests/controlflow/graph/Cfg.ql similarity index 100% rename from ql/test/library-tests/controlflow/graph/Cfg.ql rename to ruby/ql/test/library-tests/controlflow/graph/Cfg.ql diff --git a/ql/test/library-tests/controlflow/graph/break_ensure.rb b/ruby/ql/test/library-tests/controlflow/graph/break_ensure.rb similarity index 100% rename from ql/test/library-tests/controlflow/graph/break_ensure.rb rename to ruby/ql/test/library-tests/controlflow/graph/break_ensure.rb diff --git a/ql/test/library-tests/controlflow/graph/case.rb b/ruby/ql/test/library-tests/controlflow/graph/case.rb similarity index 100% rename from ql/test/library-tests/controlflow/graph/case.rb rename to ruby/ql/test/library-tests/controlflow/graph/case.rb diff --git a/ql/test/library-tests/controlflow/graph/cfg.html.erb b/ruby/ql/test/library-tests/controlflow/graph/cfg.html.erb similarity index 100% rename from ql/test/library-tests/controlflow/graph/cfg.html.erb rename to ruby/ql/test/library-tests/controlflow/graph/cfg.html.erb diff --git a/ql/test/library-tests/controlflow/graph/cfg.rb b/ruby/ql/test/library-tests/controlflow/graph/cfg.rb similarity index 100% rename from ql/test/library-tests/controlflow/graph/cfg.rb rename to ruby/ql/test/library-tests/controlflow/graph/cfg.rb diff --git a/ql/test/library-tests/controlflow/graph/desugar.rb b/ruby/ql/test/library-tests/controlflow/graph/desugar.rb similarity index 100% rename from ql/test/library-tests/controlflow/graph/desugar.rb rename to ruby/ql/test/library-tests/controlflow/graph/desugar.rb diff --git a/ql/test/library-tests/controlflow/graph/exit.rb b/ruby/ql/test/library-tests/controlflow/graph/exit.rb similarity index 100% rename from ql/test/library-tests/controlflow/graph/exit.rb rename to ruby/ql/test/library-tests/controlflow/graph/exit.rb diff --git a/ql/test/library-tests/controlflow/graph/heredoc.rb b/ruby/ql/test/library-tests/controlflow/graph/heredoc.rb similarity index 100% rename from ql/test/library-tests/controlflow/graph/heredoc.rb rename to ruby/ql/test/library-tests/controlflow/graph/heredoc.rb diff --git a/ql/test/library-tests/controlflow/graph/ifs.rb b/ruby/ql/test/library-tests/controlflow/graph/ifs.rb similarity index 100% rename from ql/test/library-tests/controlflow/graph/ifs.rb rename to ruby/ql/test/library-tests/controlflow/graph/ifs.rb diff --git a/ql/test/library-tests/controlflow/graph/loops.rb b/ruby/ql/test/library-tests/controlflow/graph/loops.rb similarity index 100% rename from ql/test/library-tests/controlflow/graph/loops.rb rename to ruby/ql/test/library-tests/controlflow/graph/loops.rb diff --git a/ql/test/library-tests/controlflow/graph/raise.rb b/ruby/ql/test/library-tests/controlflow/graph/raise.rb similarity index 100% rename from ql/test/library-tests/controlflow/graph/raise.rb rename to ruby/ql/test/library-tests/controlflow/graph/raise.rb diff --git a/ql/test/library-tests/dataflow/api-graphs/test1.rb b/ruby/ql/test/library-tests/dataflow/api-graphs/test1.rb similarity index 100% rename from ql/test/library-tests/dataflow/api-graphs/test1.rb rename to ruby/ql/test/library-tests/dataflow/api-graphs/test1.rb diff --git a/ql/test/library-tests/dataflow/api-graphs/use.expected b/ruby/ql/test/library-tests/dataflow/api-graphs/use.expected similarity index 100% rename from ql/test/library-tests/dataflow/api-graphs/use.expected rename to ruby/ql/test/library-tests/dataflow/api-graphs/use.expected diff --git a/ql/test/library-tests/dataflow/api-graphs/use.ql b/ruby/ql/test/library-tests/dataflow/api-graphs/use.ql similarity index 100% rename from ql/test/library-tests/dataflow/api-graphs/use.ql rename to ruby/ql/test/library-tests/dataflow/api-graphs/use.ql diff --git a/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.expected b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.expected similarity index 100% rename from ql/test/library-tests/dataflow/barrier-guards/barrier-guards.expected rename to ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.expected diff --git a/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql similarity index 100% rename from ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql rename to ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql diff --git a/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb similarity index 100% rename from ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb rename to ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb diff --git a/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected similarity index 100% rename from ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected rename to ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected diff --git a/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.ql b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.ql similarity index 100% rename from ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.ql rename to ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.ql diff --git a/ql/test/library-tests/dataflow/call-sensitivity/call_sensitivity.rb b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call_sensitivity.rb similarity index 100% rename from ql/test/library-tests/dataflow/call-sensitivity/call_sensitivity.rb rename to ruby/ql/test/library-tests/dataflow/call-sensitivity/call_sensitivity.rb diff --git a/ql/test/library-tests/dataflow/local/DataflowStep.expected b/ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected similarity index 100% rename from ql/test/library-tests/dataflow/local/DataflowStep.expected rename to ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected diff --git a/ql/test/library-tests/dataflow/local/DataflowStep.ql b/ruby/ql/test/library-tests/dataflow/local/DataflowStep.ql similarity index 100% rename from ql/test/library-tests/dataflow/local/DataflowStep.ql rename to ruby/ql/test/library-tests/dataflow/local/DataflowStep.ql diff --git a/ql/test/library-tests/dataflow/local/ReturnNodes.expected b/ruby/ql/test/library-tests/dataflow/local/ReturnNodes.expected similarity index 100% rename from ql/test/library-tests/dataflow/local/ReturnNodes.expected rename to ruby/ql/test/library-tests/dataflow/local/ReturnNodes.expected diff --git a/ql/test/library-tests/dataflow/local/ReturnNodes.ql b/ruby/ql/test/library-tests/dataflow/local/ReturnNodes.ql similarity index 100% rename from ql/test/library-tests/dataflow/local/ReturnNodes.ql rename to ruby/ql/test/library-tests/dataflow/local/ReturnNodes.ql diff --git a/ql/test/library-tests/dataflow/local/local_dataflow.rb b/ruby/ql/test/library-tests/dataflow/local/local_dataflow.rb similarity index 100% rename from ql/test/library-tests/dataflow/local/local_dataflow.rb rename to ruby/ql/test/library-tests/dataflow/local/local_dataflow.rb diff --git a/ql/test/library-tests/dataflow/summaries/Summaries.expected b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected similarity index 100% rename from ql/test/library-tests/dataflow/summaries/Summaries.expected rename to ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected diff --git a/ql/test/library-tests/dataflow/summaries/Summaries.ql b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.ql similarity index 100% rename from ql/test/library-tests/dataflow/summaries/Summaries.ql rename to ruby/ql/test/library-tests/dataflow/summaries/Summaries.ql diff --git a/ql/test/library-tests/dataflow/summaries/summaries.rb b/ruby/ql/test/library-tests/dataflow/summaries/summaries.rb similarity index 100% rename from ql/test/library-tests/dataflow/summaries/summaries.rb rename to ruby/ql/test/library-tests/dataflow/summaries/summaries.rb diff --git a/ql/test/library-tests/frameworks/ActionController.expected b/ruby/ql/test/library-tests/frameworks/ActionController.expected similarity index 100% rename from ql/test/library-tests/frameworks/ActionController.expected rename to ruby/ql/test/library-tests/frameworks/ActionController.expected diff --git a/ql/test/library-tests/frameworks/ActionController.ql b/ruby/ql/test/library-tests/frameworks/ActionController.ql similarity index 100% rename from ql/test/library-tests/frameworks/ActionController.ql rename to ruby/ql/test/library-tests/frameworks/ActionController.ql diff --git a/ql/test/library-tests/frameworks/ActionView.expected b/ruby/ql/test/library-tests/frameworks/ActionView.expected similarity index 100% rename from ql/test/library-tests/frameworks/ActionView.expected rename to ruby/ql/test/library-tests/frameworks/ActionView.expected diff --git a/ql/test/library-tests/frameworks/ActionView.ql b/ruby/ql/test/library-tests/frameworks/ActionView.ql similarity index 100% rename from ql/test/library-tests/frameworks/ActionView.ql rename to ruby/ql/test/library-tests/frameworks/ActionView.ql diff --git a/ql/test/library-tests/frameworks/ActiveRecord.expected b/ruby/ql/test/library-tests/frameworks/ActiveRecord.expected similarity index 100% rename from ql/test/library-tests/frameworks/ActiveRecord.expected rename to ruby/ql/test/library-tests/frameworks/ActiveRecord.expected diff --git a/ql/test/library-tests/frameworks/ActiveRecord.ql b/ruby/ql/test/library-tests/frameworks/ActiveRecord.ql similarity index 100% rename from ql/test/library-tests/frameworks/ActiveRecord.ql rename to ruby/ql/test/library-tests/frameworks/ActiveRecord.ql diff --git a/ql/test/library-tests/frameworks/ActiveRecordInjection.rb b/ruby/ql/test/library-tests/frameworks/ActiveRecordInjection.rb similarity index 100% rename from ql/test/library-tests/frameworks/ActiveRecordInjection.rb rename to ruby/ql/test/library-tests/frameworks/ActiveRecordInjection.rb diff --git a/ql/test/library-tests/frameworks/CommandExecution.rb b/ruby/ql/test/library-tests/frameworks/CommandExecution.rb similarity index 100% rename from ql/test/library-tests/frameworks/CommandExecution.rb rename to ruby/ql/test/library-tests/frameworks/CommandExecution.rb diff --git a/ql/test/library-tests/frameworks/Eval.rb b/ruby/ql/test/library-tests/frameworks/Eval.rb similarity index 100% rename from ql/test/library-tests/frameworks/Eval.rb rename to ruby/ql/test/library-tests/frameworks/Eval.rb diff --git a/ql/test/library-tests/frameworks/StandardLibrary.expected b/ruby/ql/test/library-tests/frameworks/StandardLibrary.expected similarity index 100% rename from ql/test/library-tests/frameworks/StandardLibrary.expected rename to ruby/ql/test/library-tests/frameworks/StandardLibrary.expected diff --git a/ql/test/library-tests/frameworks/StandardLibrary.ql b/ruby/ql/test/library-tests/frameworks/StandardLibrary.ql similarity index 100% rename from ql/test/library-tests/frameworks/StandardLibrary.ql rename to ruby/ql/test/library-tests/frameworks/StandardLibrary.ql diff --git a/ql/test/library-tests/frameworks/app/components/DummyComponent.rb b/ruby/ql/test/library-tests/frameworks/app/components/DummyComponent.rb similarity index 100% rename from ql/test/library-tests/frameworks/app/components/DummyComponent.rb rename to ruby/ql/test/library-tests/frameworks/app/components/DummyComponent.rb diff --git a/ql/test/library-tests/frameworks/app/controllers/foo/bars_controller.rb b/ruby/ql/test/library-tests/frameworks/app/controllers/foo/bars_controller.rb similarity index 100% rename from ql/test/library-tests/frameworks/app/controllers/foo/bars_controller.rb rename to ruby/ql/test/library-tests/frameworks/app/controllers/foo/bars_controller.rb diff --git a/ql/test/library-tests/frameworks/app/views/foo/bars/_widget.html.erb b/ruby/ql/test/library-tests/frameworks/app/views/foo/bars/_widget.html.erb similarity index 100% rename from ql/test/library-tests/frameworks/app/views/foo/bars/_widget.html.erb rename to ruby/ql/test/library-tests/frameworks/app/views/foo/bars/_widget.html.erb diff --git a/ql/test/library-tests/frameworks/app/views/foo/bars/show.html.erb b/ruby/ql/test/library-tests/frameworks/app/views/foo/bars/show.html.erb similarity index 100% rename from ql/test/library-tests/frameworks/app/views/foo/bars/show.html.erb rename to ruby/ql/test/library-tests/frameworks/app/views/foo/bars/show.html.erb diff --git a/ql/test/library-tests/frameworks/files/Files.expected b/ruby/ql/test/library-tests/frameworks/files/Files.expected similarity index 100% rename from ql/test/library-tests/frameworks/files/Files.expected rename to ruby/ql/test/library-tests/frameworks/files/Files.expected diff --git a/ql/test/library-tests/frameworks/files/Files.ql b/ruby/ql/test/library-tests/frameworks/files/Files.ql similarity index 100% rename from ql/test/library-tests/frameworks/files/Files.ql rename to ruby/ql/test/library-tests/frameworks/files/Files.ql diff --git a/ql/test/library-tests/frameworks/files/Files.rb b/ruby/ql/test/library-tests/frameworks/files/Files.rb similarity index 100% rename from ql/test/library-tests/frameworks/files/Files.rb rename to ruby/ql/test/library-tests/frameworks/files/Files.rb diff --git a/ql/test/library-tests/frameworks/http_clients/Excon.expected b/ruby/ql/test/library-tests/frameworks/http_clients/Excon.expected similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Excon.expected rename to ruby/ql/test/library-tests/frameworks/http_clients/Excon.expected diff --git a/ql/test/library-tests/frameworks/http_clients/Excon.ql b/ruby/ql/test/library-tests/frameworks/http_clients/Excon.ql similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Excon.ql rename to ruby/ql/test/library-tests/frameworks/http_clients/Excon.ql diff --git a/ql/test/library-tests/frameworks/http_clients/Excon.rb b/ruby/ql/test/library-tests/frameworks/http_clients/Excon.rb similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Excon.rb rename to ruby/ql/test/library-tests/frameworks/http_clients/Excon.rb diff --git a/ql/test/library-tests/frameworks/http_clients/Faraday.expected b/ruby/ql/test/library-tests/frameworks/http_clients/Faraday.expected similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Faraday.expected rename to ruby/ql/test/library-tests/frameworks/http_clients/Faraday.expected diff --git a/ql/test/library-tests/frameworks/http_clients/Faraday.ql b/ruby/ql/test/library-tests/frameworks/http_clients/Faraday.ql similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Faraday.ql rename to ruby/ql/test/library-tests/frameworks/http_clients/Faraday.ql diff --git a/ql/test/library-tests/frameworks/http_clients/Faraday.rb b/ruby/ql/test/library-tests/frameworks/http_clients/Faraday.rb similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Faraday.rb rename to ruby/ql/test/library-tests/frameworks/http_clients/Faraday.rb diff --git a/ql/test/library-tests/frameworks/http_clients/HttpClient.expected b/ruby/ql/test/library-tests/frameworks/http_clients/HttpClient.expected similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/HttpClient.expected rename to ruby/ql/test/library-tests/frameworks/http_clients/HttpClient.expected diff --git a/ql/test/library-tests/frameworks/http_clients/HttpClient.ql b/ruby/ql/test/library-tests/frameworks/http_clients/HttpClient.ql similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/HttpClient.ql rename to ruby/ql/test/library-tests/frameworks/http_clients/HttpClient.ql diff --git a/ql/test/library-tests/frameworks/http_clients/HttpClient.rb b/ruby/ql/test/library-tests/frameworks/http_clients/HttpClient.rb similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/HttpClient.rb rename to ruby/ql/test/library-tests/frameworks/http_clients/HttpClient.rb diff --git a/ql/test/library-tests/frameworks/http_clients/Httparty.expected b/ruby/ql/test/library-tests/frameworks/http_clients/Httparty.expected similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Httparty.expected rename to ruby/ql/test/library-tests/frameworks/http_clients/Httparty.expected diff --git a/ql/test/library-tests/frameworks/http_clients/Httparty.ql b/ruby/ql/test/library-tests/frameworks/http_clients/Httparty.ql similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Httparty.ql rename to ruby/ql/test/library-tests/frameworks/http_clients/Httparty.ql diff --git a/ql/test/library-tests/frameworks/http_clients/Httparty.rb b/ruby/ql/test/library-tests/frameworks/http_clients/Httparty.rb similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Httparty.rb rename to ruby/ql/test/library-tests/frameworks/http_clients/Httparty.rb diff --git a/ql/test/library-tests/frameworks/http_clients/NetHttp.expected b/ruby/ql/test/library-tests/frameworks/http_clients/NetHttp.expected similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/NetHttp.expected rename to ruby/ql/test/library-tests/frameworks/http_clients/NetHttp.expected diff --git a/ql/test/library-tests/frameworks/http_clients/NetHttp.ql b/ruby/ql/test/library-tests/frameworks/http_clients/NetHttp.ql similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/NetHttp.ql rename to ruby/ql/test/library-tests/frameworks/http_clients/NetHttp.ql diff --git a/ql/test/library-tests/frameworks/http_clients/NetHttp.rb b/ruby/ql/test/library-tests/frameworks/http_clients/NetHttp.rb similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/NetHttp.rb rename to ruby/ql/test/library-tests/frameworks/http_clients/NetHttp.rb diff --git a/ql/test/library-tests/frameworks/http_clients/OpenURI.expected b/ruby/ql/test/library-tests/frameworks/http_clients/OpenURI.expected similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/OpenURI.expected rename to ruby/ql/test/library-tests/frameworks/http_clients/OpenURI.expected diff --git a/ql/test/library-tests/frameworks/http_clients/OpenURI.ql b/ruby/ql/test/library-tests/frameworks/http_clients/OpenURI.ql similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/OpenURI.ql rename to ruby/ql/test/library-tests/frameworks/http_clients/OpenURI.ql diff --git a/ql/test/library-tests/frameworks/http_clients/OpenURI.rb b/ruby/ql/test/library-tests/frameworks/http_clients/OpenURI.rb similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/OpenURI.rb rename to ruby/ql/test/library-tests/frameworks/http_clients/OpenURI.rb diff --git a/ql/test/library-tests/frameworks/http_clients/RestClient.expected b/ruby/ql/test/library-tests/frameworks/http_clients/RestClient.expected similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/RestClient.expected rename to ruby/ql/test/library-tests/frameworks/http_clients/RestClient.expected diff --git a/ql/test/library-tests/frameworks/http_clients/RestClient.ql b/ruby/ql/test/library-tests/frameworks/http_clients/RestClient.ql similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/RestClient.ql rename to ruby/ql/test/library-tests/frameworks/http_clients/RestClient.ql diff --git a/ql/test/library-tests/frameworks/http_clients/RestClient.rb b/ruby/ql/test/library-tests/frameworks/http_clients/RestClient.rb similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/RestClient.rb rename to ruby/ql/test/library-tests/frameworks/http_clients/RestClient.rb diff --git a/ql/test/library-tests/frameworks/http_clients/Typhoeus.expected b/ruby/ql/test/library-tests/frameworks/http_clients/Typhoeus.expected similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Typhoeus.expected rename to ruby/ql/test/library-tests/frameworks/http_clients/Typhoeus.expected diff --git a/ql/test/library-tests/frameworks/http_clients/Typhoeus.ql b/ruby/ql/test/library-tests/frameworks/http_clients/Typhoeus.ql similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Typhoeus.ql rename to ruby/ql/test/library-tests/frameworks/http_clients/Typhoeus.ql diff --git a/ql/test/library-tests/frameworks/http_clients/Typhoeus.rb b/ruby/ql/test/library-tests/frameworks/http_clients/Typhoeus.rb similarity index 100% rename from ql/test/library-tests/frameworks/http_clients/Typhoeus.rb rename to ruby/ql/test/library-tests/frameworks/http_clients/Typhoeus.rb diff --git a/ql/test/library-tests/modules/ancestors.expected b/ruby/ql/test/library-tests/modules/ancestors.expected similarity index 100% rename from ql/test/library-tests/modules/ancestors.expected rename to ruby/ql/test/library-tests/modules/ancestors.expected diff --git a/ql/test/library-tests/modules/ancestors.ql b/ruby/ql/test/library-tests/modules/ancestors.ql similarity index 100% rename from ql/test/library-tests/modules/ancestors.ql rename to ruby/ql/test/library-tests/modules/ancestors.ql diff --git a/ql/test/library-tests/modules/callgraph.expected b/ruby/ql/test/library-tests/modules/callgraph.expected similarity index 100% rename from ql/test/library-tests/modules/callgraph.expected rename to ruby/ql/test/library-tests/modules/callgraph.expected diff --git a/ql/test/library-tests/modules/callgraph.ql b/ruby/ql/test/library-tests/modules/callgraph.ql similarity index 100% rename from ql/test/library-tests/modules/callgraph.ql rename to ruby/ql/test/library-tests/modules/callgraph.ql diff --git a/ql/test/library-tests/modules/calls.rb b/ruby/ql/test/library-tests/modules/calls.rb similarity index 100% rename from ql/test/library-tests/modules/calls.rb rename to ruby/ql/test/library-tests/modules/calls.rb diff --git a/ql/test/library-tests/modules/hello.rb b/ruby/ql/test/library-tests/modules/hello.rb similarity index 100% rename from ql/test/library-tests/modules/hello.rb rename to ruby/ql/test/library-tests/modules/hello.rb diff --git a/ql/test/library-tests/modules/methods.expected b/ruby/ql/test/library-tests/modules/methods.expected similarity index 100% rename from ql/test/library-tests/modules/methods.expected rename to ruby/ql/test/library-tests/modules/methods.expected diff --git a/ql/test/library-tests/modules/methods.ql b/ruby/ql/test/library-tests/modules/methods.ql similarity index 100% rename from ql/test/library-tests/modules/methods.ql rename to ruby/ql/test/library-tests/modules/methods.ql diff --git a/ql/test/library-tests/modules/modules.expected b/ruby/ql/test/library-tests/modules/modules.expected similarity index 100% rename from ql/test/library-tests/modules/modules.expected rename to ruby/ql/test/library-tests/modules/modules.expected diff --git a/ql/test/library-tests/modules/modules.ql b/ruby/ql/test/library-tests/modules/modules.ql similarity index 100% rename from ql/test/library-tests/modules/modules.ql rename to ruby/ql/test/library-tests/modules/modules.ql diff --git a/ql/test/library-tests/modules/modules.rb b/ruby/ql/test/library-tests/modules/modules.rb similarity index 100% rename from ql/test/library-tests/modules/modules.rb rename to ruby/ql/test/library-tests/modules/modules.rb diff --git a/ql/test/library-tests/modules/private.rb b/ruby/ql/test/library-tests/modules/private.rb similarity index 100% rename from ql/test/library-tests/modules/private.rb rename to ruby/ql/test/library-tests/modules/private.rb diff --git a/ql/test/library-tests/modules/superclasses.expected b/ruby/ql/test/library-tests/modules/superclasses.expected similarity index 100% rename from ql/test/library-tests/modules/superclasses.expected rename to ruby/ql/test/library-tests/modules/superclasses.expected diff --git a/ql/test/library-tests/modules/superclasses.ql b/ruby/ql/test/library-tests/modules/superclasses.ql similarity index 100% rename from ql/test/library-tests/modules/superclasses.ql rename to ruby/ql/test/library-tests/modules/superclasses.ql diff --git a/ql/test/library-tests/regexp/parse.expected b/ruby/ql/test/library-tests/regexp/parse.expected similarity index 100% rename from ql/test/library-tests/regexp/parse.expected rename to ruby/ql/test/library-tests/regexp/parse.expected diff --git a/ql/test/library-tests/regexp/parse.ql b/ruby/ql/test/library-tests/regexp/parse.ql similarity index 100% rename from ql/test/library-tests/regexp/parse.ql rename to ruby/ql/test/library-tests/regexp/parse.ql diff --git a/ql/test/library-tests/regexp/regexp.rb b/ruby/ql/test/library-tests/regexp/regexp.rb similarity index 100% rename from ql/test/library-tests/regexp/regexp.rb rename to ruby/ql/test/library-tests/regexp/regexp.rb diff --git a/ql/test/library-tests/variables/class_variables.rb b/ruby/ql/test/library-tests/variables/class_variables.rb similarity index 100% rename from ql/test/library-tests/variables/class_variables.rb rename to ruby/ql/test/library-tests/variables/class_variables.rb diff --git a/ql/test/library-tests/variables/instance_variables.rb b/ruby/ql/test/library-tests/variables/instance_variables.rb similarity index 100% rename from ql/test/library-tests/variables/instance_variables.rb rename to ruby/ql/test/library-tests/variables/instance_variables.rb diff --git a/ql/test/library-tests/variables/nested_scopes.rb b/ruby/ql/test/library-tests/variables/nested_scopes.rb similarity index 100% rename from ql/test/library-tests/variables/nested_scopes.rb rename to ruby/ql/test/library-tests/variables/nested_scopes.rb diff --git a/ql/test/library-tests/variables/parameter.expected b/ruby/ql/test/library-tests/variables/parameter.expected similarity index 100% rename from ql/test/library-tests/variables/parameter.expected rename to ruby/ql/test/library-tests/variables/parameter.expected diff --git a/ql/test/library-tests/variables/parameter.ql b/ruby/ql/test/library-tests/variables/parameter.ql similarity index 100% rename from ql/test/library-tests/variables/parameter.ql rename to ruby/ql/test/library-tests/variables/parameter.ql diff --git a/ql/test/library-tests/variables/parameters.rb b/ruby/ql/test/library-tests/variables/parameters.rb similarity index 100% rename from ql/test/library-tests/variables/parameters.rb rename to ruby/ql/test/library-tests/variables/parameters.rb diff --git a/ql/test/library-tests/variables/scopes.rb b/ruby/ql/test/library-tests/variables/scopes.rb similarity index 100% rename from ql/test/library-tests/variables/scopes.rb rename to ruby/ql/test/library-tests/variables/scopes.rb diff --git a/ql/test/library-tests/variables/ssa.expected b/ruby/ql/test/library-tests/variables/ssa.expected similarity index 100% rename from ql/test/library-tests/variables/ssa.expected rename to ruby/ql/test/library-tests/variables/ssa.expected diff --git a/ql/test/library-tests/variables/ssa.ql b/ruby/ql/test/library-tests/variables/ssa.ql similarity index 100% rename from ql/test/library-tests/variables/ssa.ql rename to ruby/ql/test/library-tests/variables/ssa.ql diff --git a/ql/test/library-tests/variables/ssa.rb b/ruby/ql/test/library-tests/variables/ssa.rb similarity index 100% rename from ql/test/library-tests/variables/ssa.rb rename to ruby/ql/test/library-tests/variables/ssa.rb diff --git a/ql/test/library-tests/variables/varaccess.expected b/ruby/ql/test/library-tests/variables/varaccess.expected similarity index 100% rename from ql/test/library-tests/variables/varaccess.expected rename to ruby/ql/test/library-tests/variables/varaccess.expected diff --git a/ql/test/library-tests/variables/varaccess.ql b/ruby/ql/test/library-tests/variables/varaccess.ql similarity index 100% rename from ql/test/library-tests/variables/varaccess.ql rename to ruby/ql/test/library-tests/variables/varaccess.ql diff --git a/ql/test/library-tests/variables/variable.expected b/ruby/ql/test/library-tests/variables/variable.expected similarity index 100% rename from ql/test/library-tests/variables/variable.expected rename to ruby/ql/test/library-tests/variables/variable.expected diff --git a/ql/test/library-tests/variables/variable.ql b/ruby/ql/test/library-tests/variables/variable.ql similarity index 100% rename from ql/test/library-tests/variables/variable.ql rename to ruby/ql/test/library-tests/variables/variable.ql diff --git a/ql/test/library-tests/variables/varscopes.expected b/ruby/ql/test/library-tests/variables/varscopes.expected similarity index 100% rename from ql/test/library-tests/variables/varscopes.expected rename to ruby/ql/test/library-tests/variables/varscopes.expected diff --git a/ql/test/library-tests/variables/varscopes.ql b/ruby/ql/test/library-tests/variables/varscopes.ql similarity index 100% rename from ql/test/library-tests/variables/varscopes.ql rename to ruby/ql/test/library-tests/variables/varscopes.ql diff --git a/ql/test/qlpack.lock.yml b/ruby/ql/test/qlpack.lock.yml similarity index 100% rename from ql/test/qlpack.lock.yml rename to ruby/ql/test/qlpack.lock.yml diff --git a/ql/test/qlpack.yml b/ruby/ql/test/qlpack.yml similarity index 100% rename from ql/test/qlpack.yml rename to ruby/ql/test/qlpack.yml diff --git a/ql/test/query-tests/AlertSuppression/.gitattributes b/ruby/ql/test/query-tests/AlertSuppression/.gitattributes similarity index 100% rename from ql/test/query-tests/AlertSuppression/.gitattributes rename to ruby/ql/test/query-tests/AlertSuppression/.gitattributes diff --git a/ql/test/query-tests/AlertSuppression/AlertSuppression.expected b/ruby/ql/test/query-tests/AlertSuppression/AlertSuppression.expected similarity index 100% rename from ql/test/query-tests/AlertSuppression/AlertSuppression.expected rename to ruby/ql/test/query-tests/AlertSuppression/AlertSuppression.expected diff --git a/ql/test/query-tests/AlertSuppression/AlertSuppression.qlref b/ruby/ql/test/query-tests/AlertSuppression/AlertSuppression.qlref similarity index 100% rename from ql/test/query-tests/AlertSuppression/AlertSuppression.qlref rename to ruby/ql/test/query-tests/AlertSuppression/AlertSuppression.qlref diff --git a/ql/test/query-tests/AlertSuppression/Test.rb b/ruby/ql/test/query-tests/AlertSuppression/Test.rb similarity index 100% rename from ql/test/query-tests/AlertSuppression/Test.rb rename to ruby/ql/test/query-tests/AlertSuppression/Test.rb diff --git a/ql/test/query-tests/AlertSuppression/TestWindows.rb b/ruby/ql/test/query-tests/AlertSuppression/TestWindows.rb similarity index 100% rename from ql/test/query-tests/AlertSuppression/TestWindows.rb rename to ruby/ql/test/query-tests/AlertSuppression/TestWindows.rb diff --git a/ql/test/query-tests/analysis/Definitions.expected b/ruby/ql/test/query-tests/analysis/Definitions.expected similarity index 100% rename from ql/test/query-tests/analysis/Definitions.expected rename to ruby/ql/test/query-tests/analysis/Definitions.expected diff --git a/ql/test/query-tests/analysis/Definitions.qlref b/ruby/ql/test/query-tests/analysis/Definitions.qlref similarity index 100% rename from ql/test/query-tests/analysis/Definitions.qlref rename to ruby/ql/test/query-tests/analysis/Definitions.qlref diff --git a/ql/test/query-tests/analysis/Definitions.rb b/ruby/ql/test/query-tests/analysis/Definitions.rb similarity index 100% rename from ql/test/query-tests/analysis/Definitions.rb rename to ruby/ql/test/query-tests/analysis/Definitions.rb diff --git a/ql/test/query-tests/diagnostics/ExtractionErrors.expected b/ruby/ql/test/query-tests/diagnostics/ExtractionErrors.expected similarity index 100% rename from ql/test/query-tests/diagnostics/ExtractionErrors.expected rename to ruby/ql/test/query-tests/diagnostics/ExtractionErrors.expected diff --git a/ql/test/query-tests/diagnostics/ExtractionErrors.qlref b/ruby/ql/test/query-tests/diagnostics/ExtractionErrors.qlref similarity index 100% rename from ql/test/query-tests/diagnostics/ExtractionErrors.qlref rename to ruby/ql/test/query-tests/diagnostics/ExtractionErrors.qlref diff --git a/ql/test/query-tests/diagnostics/NumberOfFilesExtractedWithErrors.expected b/ruby/ql/test/query-tests/diagnostics/NumberOfFilesExtractedWithErrors.expected similarity index 100% rename from ql/test/query-tests/diagnostics/NumberOfFilesExtractedWithErrors.expected rename to ruby/ql/test/query-tests/diagnostics/NumberOfFilesExtractedWithErrors.expected diff --git a/ql/test/query-tests/diagnostics/NumberOfFilesExtractedWithErrors.qlref b/ruby/ql/test/query-tests/diagnostics/NumberOfFilesExtractedWithErrors.qlref similarity index 100% rename from ql/test/query-tests/diagnostics/NumberOfFilesExtractedWithErrors.qlref rename to ruby/ql/test/query-tests/diagnostics/NumberOfFilesExtractedWithErrors.qlref diff --git a/ql/test/query-tests/diagnostics/NumberOfSuccessfullyExtractedFiles.expected b/ruby/ql/test/query-tests/diagnostics/NumberOfSuccessfullyExtractedFiles.expected similarity index 100% rename from ql/test/query-tests/diagnostics/NumberOfSuccessfullyExtractedFiles.expected rename to ruby/ql/test/query-tests/diagnostics/NumberOfSuccessfullyExtractedFiles.expected diff --git a/ql/test/query-tests/diagnostics/NumberOfSuccessfullyExtractedFiles.qlref b/ruby/ql/test/query-tests/diagnostics/NumberOfSuccessfullyExtractedFiles.qlref similarity index 100% rename from ql/test/query-tests/diagnostics/NumberOfSuccessfullyExtractedFiles.qlref rename to ruby/ql/test/query-tests/diagnostics/NumberOfSuccessfullyExtractedFiles.qlref diff --git a/ql/test/query-tests/diagnostics/SuccessfullyExtractedFiles.expected b/ruby/ql/test/query-tests/diagnostics/SuccessfullyExtractedFiles.expected similarity index 100% rename from ql/test/query-tests/diagnostics/SuccessfullyExtractedFiles.expected rename to ruby/ql/test/query-tests/diagnostics/SuccessfullyExtractedFiles.expected diff --git a/ql/test/query-tests/diagnostics/SuccessfullyExtractedFiles.qlref b/ruby/ql/test/query-tests/diagnostics/SuccessfullyExtractedFiles.qlref similarity index 100% rename from ql/test/query-tests/diagnostics/SuccessfullyExtractedFiles.qlref rename to ruby/ql/test/query-tests/diagnostics/SuccessfullyExtractedFiles.qlref diff --git a/ql/test/query-tests/diagnostics/src/bar.erb b/ruby/ql/test/query-tests/diagnostics/src/bar.erb similarity index 100% rename from ql/test/query-tests/diagnostics/src/bar.erb rename to ruby/ql/test/query-tests/diagnostics/src/bar.erb diff --git a/ql/test/query-tests/diagnostics/src/foo.rb b/ruby/ql/test/query-tests/diagnostics/src/foo.rb similarity index 100% rename from ql/test/query-tests/diagnostics/src/foo.rb rename to ruby/ql/test/query-tests/diagnostics/src/foo.rb diff --git a/ql/test/query-tests/diagnostics/src/not_ruby.rb b/ruby/ql/test/query-tests/diagnostics/src/not_ruby.rb similarity index 100% rename from ql/test/query-tests/diagnostics/src/not_ruby.rb rename to ruby/ql/test/query-tests/diagnostics/src/not_ruby.rb diff --git a/ql/test/query-tests/diagnostics/src/unsupported_feature.rb b/ruby/ql/test/query-tests/diagnostics/src/unsupported_feature.rb similarity index 100% rename from ql/test/query-tests/diagnostics/src/unsupported_feature.rb rename to ruby/ql/test/query-tests/diagnostics/src/unsupported_feature.rb diff --git a/ql/test/query-tests/diagnostics/src/vendor/cache/lib.rb b/ruby/ql/test/query-tests/diagnostics/src/vendor/cache/lib.rb similarity index 100% rename from ql/test/query-tests/diagnostics/src/vendor/cache/lib.rb rename to ruby/ql/test/query-tests/diagnostics/src/vendor/cache/lib.rb diff --git a/ql/test/query-tests/metrics/FLines/Empty.rb b/ruby/ql/test/query-tests/metrics/FLines/Empty.rb similarity index 100% rename from ql/test/query-tests/metrics/FLines/Empty.rb rename to ruby/ql/test/query-tests/metrics/FLines/Empty.rb diff --git a/ql/test/query-tests/metrics/FLines/FLines.expected b/ruby/ql/test/query-tests/metrics/FLines/FLines.expected similarity index 100% rename from ql/test/query-tests/metrics/FLines/FLines.expected rename to ruby/ql/test/query-tests/metrics/FLines/FLines.expected diff --git a/ql/test/query-tests/metrics/FLines/FLines.qlref b/ruby/ql/test/query-tests/metrics/FLines/FLines.qlref similarity index 100% rename from ql/test/query-tests/metrics/FLines/FLines.qlref rename to ruby/ql/test/query-tests/metrics/FLines/FLines.qlref diff --git a/ql/test/query-tests/metrics/FLines/FLines.rb b/ruby/ql/test/query-tests/metrics/FLines/FLines.rb similarity index 100% rename from ql/test/query-tests/metrics/FLines/FLines.rb rename to ruby/ql/test/query-tests/metrics/FLines/FLines.rb diff --git a/ql/test/query-tests/metrics/FLines/FLinesOfCode.expected b/ruby/ql/test/query-tests/metrics/FLines/FLinesOfCode.expected similarity index 100% rename from ql/test/query-tests/metrics/FLines/FLinesOfCode.expected rename to ruby/ql/test/query-tests/metrics/FLines/FLinesOfCode.expected diff --git a/ql/test/query-tests/metrics/FLines/FLinesOfCode.qlref b/ruby/ql/test/query-tests/metrics/FLines/FLinesOfCode.qlref similarity index 100% rename from ql/test/query-tests/metrics/FLines/FLinesOfCode.qlref rename to ruby/ql/test/query-tests/metrics/FLines/FLinesOfCode.qlref diff --git a/ql/test/query-tests/metrics/FLines/FLinesOfComments.expected b/ruby/ql/test/query-tests/metrics/FLines/FLinesOfComments.expected similarity index 100% rename from ql/test/query-tests/metrics/FLines/FLinesOfComments.expected rename to ruby/ql/test/query-tests/metrics/FLines/FLinesOfComments.expected diff --git a/ql/test/query-tests/metrics/FLines/FLinesOfComments.qlref b/ruby/ql/test/query-tests/metrics/FLines/FLinesOfComments.qlref similarity index 100% rename from ql/test/query-tests/metrics/FLines/FLinesOfComments.qlref rename to ruby/ql/test/query-tests/metrics/FLines/FLinesOfComments.qlref diff --git a/ql/test/query-tests/performance/UseDetect/UseDetect.expected b/ruby/ql/test/query-tests/performance/UseDetect/UseDetect.expected similarity index 100% rename from ql/test/query-tests/performance/UseDetect/UseDetect.expected rename to ruby/ql/test/query-tests/performance/UseDetect/UseDetect.expected diff --git a/ql/test/query-tests/performance/UseDetect/UseDetect.qlref b/ruby/ql/test/query-tests/performance/UseDetect/UseDetect.qlref similarity index 100% rename from ql/test/query-tests/performance/UseDetect/UseDetect.qlref rename to ruby/ql/test/query-tests/performance/UseDetect/UseDetect.qlref diff --git a/ql/test/query-tests/performance/UseDetect/UseDetect.rb b/ruby/ql/test/query-tests/performance/UseDetect/UseDetect.rb similarity index 100% rename from ql/test/query-tests/performance/UseDetect/UseDetect.rb rename to ruby/ql/test/query-tests/performance/UseDetect/UseDetect.rb diff --git a/ql/test/query-tests/security/cwe-078/CommandInjection.expected b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection.expected similarity index 100% rename from ql/test/query-tests/security/cwe-078/CommandInjection.expected rename to ruby/ql/test/query-tests/security/cwe-078/CommandInjection.expected diff --git a/ql/test/query-tests/security/cwe-078/CommandInjection.qlref b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-078/CommandInjection.qlref rename to ruby/ql/test/query-tests/security/cwe-078/CommandInjection.qlref diff --git a/ql/test/query-tests/security/cwe-078/CommandInjection.rb b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection.rb similarity index 100% rename from ql/test/query-tests/security/cwe-078/CommandInjection.rb rename to ruby/ql/test/query-tests/security/cwe-078/CommandInjection.rb diff --git a/ql/test/query-tests/security/cwe-078/KernelOpen.expected b/ruby/ql/test/query-tests/security/cwe-078/KernelOpen.expected similarity index 100% rename from ql/test/query-tests/security/cwe-078/KernelOpen.expected rename to ruby/ql/test/query-tests/security/cwe-078/KernelOpen.expected diff --git a/ql/test/query-tests/security/cwe-078/KernelOpen.qlref b/ruby/ql/test/query-tests/security/cwe-078/KernelOpen.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-078/KernelOpen.qlref rename to ruby/ql/test/query-tests/security/cwe-078/KernelOpen.qlref diff --git a/ql/test/query-tests/security/cwe-078/KernelOpen.rb b/ruby/ql/test/query-tests/security/cwe-078/KernelOpen.rb similarity index 100% rename from ql/test/query-tests/security/cwe-078/KernelOpen.rb rename to ruby/ql/test/query-tests/security/cwe-078/KernelOpen.rb diff --git a/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected b/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected similarity index 100% rename from ql/test/query-tests/security/cwe-079/ReflectedXSS.expected rename to ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected diff --git a/ql/test/query-tests/security/cwe-079/ReflectedXSS.qlref b/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-079/ReflectedXSS.qlref rename to ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.qlref diff --git a/ql/test/query-tests/security/cwe-079/StoredXSS.expected b/ruby/ql/test/query-tests/security/cwe-079/StoredXSS.expected similarity index 100% rename from ql/test/query-tests/security/cwe-079/StoredXSS.expected rename to ruby/ql/test/query-tests/security/cwe-079/StoredXSS.expected diff --git a/ql/test/query-tests/security/cwe-079/StoredXSS.qlref b/ruby/ql/test/query-tests/security/cwe-079/StoredXSS.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-079/StoredXSS.qlref rename to ruby/ql/test/query-tests/security/cwe-079/StoredXSS.qlref diff --git a/ql/test/query-tests/security/cwe-079/app/controllers/foo/bars_controller.rb b/ruby/ql/test/query-tests/security/cwe-079/app/controllers/foo/bars_controller.rb similarity index 100% rename from ql/test/query-tests/security/cwe-079/app/controllers/foo/bars_controller.rb rename to ruby/ql/test/query-tests/security/cwe-079/app/controllers/foo/bars_controller.rb diff --git a/ql/test/query-tests/security/cwe-079/app/controllers/foo/stores_controller.rb b/ruby/ql/test/query-tests/security/cwe-079/app/controllers/foo/stores_controller.rb similarity index 100% rename from ql/test/query-tests/security/cwe-079/app/controllers/foo/stores_controller.rb rename to ruby/ql/test/query-tests/security/cwe-079/app/controllers/foo/stores_controller.rb diff --git a/ql/test/query-tests/security/cwe-079/app/models/user.rb b/ruby/ql/test/query-tests/security/cwe-079/app/models/user.rb similarity index 100% rename from ql/test/query-tests/security/cwe-079/app/models/user.rb rename to ruby/ql/test/query-tests/security/cwe-079/app/models/user.rb diff --git a/ql/test/query-tests/security/cwe-079/app/views/foo/bars/_widget.html.erb b/ruby/ql/test/query-tests/security/cwe-079/app/views/foo/bars/_widget.html.erb similarity index 100% rename from ql/test/query-tests/security/cwe-079/app/views/foo/bars/_widget.html.erb rename to ruby/ql/test/query-tests/security/cwe-079/app/views/foo/bars/_widget.html.erb diff --git a/ql/test/query-tests/security/cwe-079/app/views/foo/bars/show.html.erb b/ruby/ql/test/query-tests/security/cwe-079/app/views/foo/bars/show.html.erb similarity index 100% rename from ql/test/query-tests/security/cwe-079/app/views/foo/bars/show.html.erb rename to ruby/ql/test/query-tests/security/cwe-079/app/views/foo/bars/show.html.erb diff --git a/ql/test/query-tests/security/cwe-079/app/views/foo/bars/show_unused.html.erb b/ruby/ql/test/query-tests/security/cwe-079/app/views/foo/bars/show_unused.html.erb similarity index 100% rename from ql/test/query-tests/security/cwe-079/app/views/foo/bars/show_unused.html.erb rename to ruby/ql/test/query-tests/security/cwe-079/app/views/foo/bars/show_unused.html.erb diff --git a/ql/test/query-tests/security/cwe-079/app/views/foo/stores/show.html.erb b/ruby/ql/test/query-tests/security/cwe-079/app/views/foo/stores/show.html.erb similarity index 100% rename from ql/test/query-tests/security/cwe-079/app/views/foo/stores/show.html.erb rename to ruby/ql/test/query-tests/security/cwe-079/app/views/foo/stores/show.html.erb diff --git a/ql/test/query-tests/security/cwe-079/app/views/foo/stores/show_unused.html.erb b/ruby/ql/test/query-tests/security/cwe-079/app/views/foo/stores/show_unused.html.erb similarity index 100% rename from ql/test/query-tests/security/cwe-079/app/views/foo/stores/show_unused.html.erb rename to ruby/ql/test/query-tests/security/cwe-079/app/views/foo/stores/show_unused.html.erb diff --git a/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb b/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb similarity index 100% rename from ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb rename to ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb diff --git a/ql/test/query-tests/security/cwe-089/SqlInjection.expected b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected similarity index 100% rename from ql/test/query-tests/security/cwe-089/SqlInjection.expected rename to ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected diff --git a/ql/test/query-tests/security/cwe-089/SqlInjection.qlref b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-089/SqlInjection.qlref rename to ruby/ql/test/query-tests/security/cwe-089/SqlInjection.qlref diff --git a/ql/test/query-tests/security/cwe-094/CodeInjection.expected b/ruby/ql/test/query-tests/security/cwe-094/CodeInjection.expected similarity index 100% rename from ql/test/query-tests/security/cwe-094/CodeInjection.expected rename to ruby/ql/test/query-tests/security/cwe-094/CodeInjection.expected diff --git a/ql/test/query-tests/security/cwe-094/CodeInjection.qlref b/ruby/ql/test/query-tests/security/cwe-094/CodeInjection.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-094/CodeInjection.qlref rename to ruby/ql/test/query-tests/security/cwe-094/CodeInjection.qlref diff --git a/ql/test/query-tests/security/cwe-094/CodeInjection.rb b/ruby/ql/test/query-tests/security/cwe-094/CodeInjection.rb similarity index 100% rename from ql/test/query-tests/security/cwe-094/CodeInjection.rb rename to ruby/ql/test/query-tests/security/cwe-094/CodeInjection.rb diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/ANodeBlog-LICENSE b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/ANodeBlog-LICENSE similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/ANodeBlog-LICENSE rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/ANodeBlog-LICENSE diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/CodeMirror-LICENSE b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/CodeMirror-LICENSE similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/CodeMirror-LICENSE rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/CodeMirror-LICENSE diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/Prism-LICENSE b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/Prism-LICENSE similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/Prism-LICENSE rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/Prism-LICENSE diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/Prototype.js-LICENSE b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/Prototype.js-LICENSE similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/Prototype.js-LICENSE rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/Prototype.js-LICENSE diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/ReDoS.expected b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/ReDoS.expected similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/ReDoS.expected rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/ReDoS.expected diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/ReDoS.qlref b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/ReDoS.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/ReDoS.qlref rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/ReDoS.qlref diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/brace-expansion-LICENSE b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/brace-expansion-LICENSE similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/brace-expansion-LICENSE rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/brace-expansion-LICENSE diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/jest-LICENSE b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/jest-LICENSE similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/jest-LICENSE rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/jest-LICENSE diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/knockout-LICENSE b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/knockout-LICENSE similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/knockout-LICENSE rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/knockout-LICENSE diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/marked-LICENSE b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/marked-LICENSE similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/marked-LICENSE rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/marked-LICENSE diff --git a/ql/test/query-tests/security/cwe-1333-exponential-redos/tst.rb b/ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/tst.rb similarity index 100% rename from ql/test/query-tests/security/cwe-1333-exponential-redos/tst.rb rename to ruby/ql/test/query-tests/security/cwe-1333-exponential-redos/tst.rb diff --git a/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.expected b/ruby/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.expected similarity index 100% rename from ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.expected rename to ruby/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.expected diff --git a/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.qlref b/ruby/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.qlref rename to ruby/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.qlref diff --git a/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.rb b/ruby/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.rb similarity index 100% rename from ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.rb rename to ruby/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.rb diff --git a/ql/test/query-tests/security/cwe-295/Excon.rb b/ruby/ql/test/query-tests/security/cwe-295/Excon.rb similarity index 100% rename from ql/test/query-tests/security/cwe-295/Excon.rb rename to ruby/ql/test/query-tests/security/cwe-295/Excon.rb diff --git a/ql/test/query-tests/security/cwe-295/Faraday.rb b/ruby/ql/test/query-tests/security/cwe-295/Faraday.rb similarity index 100% rename from ql/test/query-tests/security/cwe-295/Faraday.rb rename to ruby/ql/test/query-tests/security/cwe-295/Faraday.rb diff --git a/ql/test/query-tests/security/cwe-295/HttpClient.rb b/ruby/ql/test/query-tests/security/cwe-295/HttpClient.rb similarity index 100% rename from ql/test/query-tests/security/cwe-295/HttpClient.rb rename to ruby/ql/test/query-tests/security/cwe-295/HttpClient.rb diff --git a/ql/test/query-tests/security/cwe-295/Httparty.rb b/ruby/ql/test/query-tests/security/cwe-295/Httparty.rb similarity index 100% rename from ql/test/query-tests/security/cwe-295/Httparty.rb rename to ruby/ql/test/query-tests/security/cwe-295/Httparty.rb diff --git a/ql/test/query-tests/security/cwe-295/NetHttp.rb b/ruby/ql/test/query-tests/security/cwe-295/NetHttp.rb similarity index 100% rename from ql/test/query-tests/security/cwe-295/NetHttp.rb rename to ruby/ql/test/query-tests/security/cwe-295/NetHttp.rb diff --git a/ql/test/query-tests/security/cwe-295/OpenURI.rb b/ruby/ql/test/query-tests/security/cwe-295/OpenURI.rb similarity index 100% rename from ql/test/query-tests/security/cwe-295/OpenURI.rb rename to ruby/ql/test/query-tests/security/cwe-295/OpenURI.rb diff --git a/ql/test/query-tests/security/cwe-295/RequestWithoutValidation.expected b/ruby/ql/test/query-tests/security/cwe-295/RequestWithoutValidation.expected similarity index 100% rename from ql/test/query-tests/security/cwe-295/RequestWithoutValidation.expected rename to ruby/ql/test/query-tests/security/cwe-295/RequestWithoutValidation.expected diff --git a/ql/test/query-tests/security/cwe-295/RequestWithoutValidation.qlref b/ruby/ql/test/query-tests/security/cwe-295/RequestWithoutValidation.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-295/RequestWithoutValidation.qlref rename to ruby/ql/test/query-tests/security/cwe-295/RequestWithoutValidation.qlref diff --git a/ql/test/query-tests/security/cwe-295/RestClient.rb b/ruby/ql/test/query-tests/security/cwe-295/RestClient.rb similarity index 100% rename from ql/test/query-tests/security/cwe-295/RestClient.rb rename to ruby/ql/test/query-tests/security/cwe-295/RestClient.rb diff --git a/ql/test/query-tests/security/cwe-295/Typhoeus.rb b/ruby/ql/test/query-tests/security/cwe-295/Typhoeus.rb similarity index 100% rename from ql/test/query-tests/security/cwe-295/Typhoeus.rb rename to ruby/ql/test/query-tests/security/cwe-295/Typhoeus.rb diff --git a/ql/test/query-tests/security/cwe-502/oj-global-options/OjGlobalOptions.rb b/ruby/ql/test/query-tests/security/cwe-502/oj-global-options/OjGlobalOptions.rb similarity index 100% rename from ql/test/query-tests/security/cwe-502/oj-global-options/OjGlobalOptions.rb rename to ruby/ql/test/query-tests/security/cwe-502/oj-global-options/OjGlobalOptions.rb diff --git a/ql/test/query-tests/security/cwe-502/oj-global-options/Startup.rb b/ruby/ql/test/query-tests/security/cwe-502/oj-global-options/Startup.rb similarity index 100% rename from ql/test/query-tests/security/cwe-502/oj-global-options/Startup.rb rename to ruby/ql/test/query-tests/security/cwe-502/oj-global-options/Startup.rb diff --git a/ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.expected b/ruby/ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.expected similarity index 100% rename from ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.expected rename to ruby/ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.expected diff --git a/ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.qlref b/ruby/ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.qlref rename to ruby/ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.qlref diff --git a/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.expected b/ruby/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.expected similarity index 100% rename from ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.expected rename to ruby/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.expected diff --git a/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.qlref b/ruby/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.qlref rename to ruby/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.qlref diff --git a/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.rb b/ruby/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.rb similarity index 100% rename from ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.rb rename to ruby/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.rb diff --git a/ql/test/query-tests/security/cwe-601/UrlRedirect.expected b/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.expected similarity index 100% rename from ql/test/query-tests/security/cwe-601/UrlRedirect.expected rename to ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.expected diff --git a/ql/test/query-tests/security/cwe-601/UrlRedirect.qlref b/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-601/UrlRedirect.qlref rename to ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.qlref diff --git a/ql/test/query-tests/security/cwe-601/UrlRedirect.rb b/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.rb similarity index 100% rename from ql/test/query-tests/security/cwe-601/UrlRedirect.rb rename to ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.rb diff --git a/ql/test/query-tests/security/cwe-611/LibXmlRuby.rb b/ruby/ql/test/query-tests/security/cwe-611/LibXmlRuby.rb similarity index 100% rename from ql/test/query-tests/security/cwe-611/LibXmlRuby.rb rename to ruby/ql/test/query-tests/security/cwe-611/LibXmlRuby.rb diff --git a/ql/test/query-tests/security/cwe-611/Nokogiri.rb b/ruby/ql/test/query-tests/security/cwe-611/Nokogiri.rb similarity index 100% rename from ql/test/query-tests/security/cwe-611/Nokogiri.rb rename to ruby/ql/test/query-tests/security/cwe-611/Nokogiri.rb diff --git a/ql/test/query-tests/security/cwe-611/Xxe.expected b/ruby/ql/test/query-tests/security/cwe-611/Xxe.expected similarity index 100% rename from ql/test/query-tests/security/cwe-611/Xxe.expected rename to ruby/ql/test/query-tests/security/cwe-611/Xxe.expected diff --git a/ql/test/query-tests/security/cwe-611/Xxe.qlref b/ruby/ql/test/query-tests/security/cwe-611/Xxe.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-611/Xxe.qlref rename to ruby/ql/test/query-tests/security/cwe-611/Xxe.qlref diff --git a/ql/test/query-tests/security/cwe-732/FilePermissions.rb b/ruby/ql/test/query-tests/security/cwe-732/FilePermissions.rb similarity index 100% rename from ql/test/query-tests/security/cwe-732/FilePermissions.rb rename to ruby/ql/test/query-tests/security/cwe-732/FilePermissions.rb diff --git a/ql/test/query-tests/security/cwe-732/WeakFilePermissions.expected b/ruby/ql/test/query-tests/security/cwe-732/WeakFilePermissions.expected similarity index 100% rename from ql/test/query-tests/security/cwe-732/WeakFilePermissions.expected rename to ruby/ql/test/query-tests/security/cwe-732/WeakFilePermissions.expected diff --git a/ql/test/query-tests/security/cwe-732/WeakFilePermissions.qlref b/ruby/ql/test/query-tests/security/cwe-732/WeakFilePermissions.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-732/WeakFilePermissions.qlref rename to ruby/ql/test/query-tests/security/cwe-732/WeakFilePermissions.qlref diff --git a/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected b/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected similarity index 100% rename from ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected rename to ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected diff --git a/ql/test/query-tests/security/cwe-798/HardcodedCredentials.qlref b/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.qlref similarity index 100% rename from ql/test/query-tests/security/cwe-798/HardcodedCredentials.qlref rename to ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.qlref diff --git a/ql/test/query-tests/security/cwe-798/HardcodedCredentials.rb b/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.rb similarity index 100% rename from ql/test/query-tests/security/cwe-798/HardcodedCredentials.rb rename to ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.rb diff --git a/ql/test/query-tests/summary/LinesOfCode.expected b/ruby/ql/test/query-tests/summary/LinesOfCode.expected similarity index 100% rename from ql/test/query-tests/summary/LinesOfCode.expected rename to ruby/ql/test/query-tests/summary/LinesOfCode.expected diff --git a/ql/test/query-tests/summary/LinesOfCode.qlref b/ruby/ql/test/query-tests/summary/LinesOfCode.qlref similarity index 100% rename from ql/test/query-tests/summary/LinesOfCode.qlref rename to ruby/ql/test/query-tests/summary/LinesOfCode.qlref diff --git a/ql/test/query-tests/summary/LinesOfUserCode.expected b/ruby/ql/test/query-tests/summary/LinesOfUserCode.expected similarity index 100% rename from ql/test/query-tests/summary/LinesOfUserCode.expected rename to ruby/ql/test/query-tests/summary/LinesOfUserCode.expected diff --git a/ql/test/query-tests/summary/LinesOfUserCode.qlref b/ruby/ql/test/query-tests/summary/LinesOfUserCode.qlref similarity index 100% rename from ql/test/query-tests/summary/LinesOfUserCode.qlref rename to ruby/ql/test/query-tests/summary/LinesOfUserCode.qlref diff --git a/ql/test/query-tests/summary/src/foo.rb b/ruby/ql/test/query-tests/summary/src/foo.rb similarity index 100% rename from ql/test/query-tests/summary/src/foo.rb rename to ruby/ql/test/query-tests/summary/src/foo.rb diff --git a/ql/test/query-tests/summary/src/vendor/cache/lib.rb b/ruby/ql/test/query-tests/summary/src/vendor/cache/lib.rb similarity index 100% rename from ql/test/query-tests/summary/src/vendor/cache/lib.rb rename to ruby/ql/test/query-tests/summary/src/vendor/cache/lib.rb diff --git a/scripts/create-extractor-pack.ps1 b/ruby/scripts/create-extractor-pack.ps1 similarity index 100% rename from scripts/create-extractor-pack.ps1 rename to ruby/scripts/create-extractor-pack.ps1 diff --git a/scripts/create-extractor-pack.sh b/ruby/scripts/create-extractor-pack.sh similarity index 100% rename from scripts/create-extractor-pack.sh rename to ruby/scripts/create-extractor-pack.sh diff --git a/scripts/identical-files.json b/ruby/scripts/identical-files.json similarity index 100% rename from scripts/identical-files.json rename to ruby/scripts/identical-files.json diff --git a/scripts/merge_stats.py b/ruby/scripts/merge_stats.py similarity index 100% rename from scripts/merge_stats.py rename to ruby/scripts/merge_stats.py diff --git a/scripts/prepare-db-upgrade.sh b/ruby/scripts/prepare-db-upgrade.sh similarity index 100% rename from scripts/prepare-db-upgrade.sh rename to ruby/scripts/prepare-db-upgrade.sh diff --git a/scripts/sync-identical-files.py b/ruby/scripts/sync-identical-files.py similarity index 100% rename from scripts/sync-identical-files.py rename to ruby/scripts/sync-identical-files.py diff --git a/tools/autobuild.cmd b/ruby/tools/autobuild.cmd similarity index 100% rename from tools/autobuild.cmd rename to ruby/tools/autobuild.cmd diff --git a/tools/autobuild.sh b/ruby/tools/autobuild.sh similarity index 100% rename from tools/autobuild.sh rename to ruby/tools/autobuild.sh diff --git a/tools/index-files.cmd b/ruby/tools/index-files.cmd similarity index 100% rename from tools/index-files.cmd rename to ruby/tools/index-files.cmd diff --git a/tools/index-files.sh b/ruby/tools/index-files.sh similarity index 100% rename from tools/index-files.sh rename to ruby/tools/index-files.sh diff --git a/tools/qltest.cmd b/ruby/tools/qltest.cmd similarity index 100% rename from tools/qltest.cmd rename to ruby/tools/qltest.cmd diff --git a/tools/qltest.sh b/ruby/tools/qltest.sh similarity index 100% rename from tools/qltest.sh rename to ruby/tools/qltest.sh