From b6c250cbff130de91cddea9bdaaf473bebd29725 Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Mon, 23 Aug 2021 17:02:32 -0400 Subject: [PATCH 01/13] Ignore `.codeql` directories --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index b8e85a8e113..4fc12cb6598 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,6 @@ tools/osx64 tools/win64 tools/tokenizer.jar main + +# QL pack output directories +.codeql \ No newline at end of file From 6d829cfdf3c016a9a9bdfc96044c81f3814479a9 Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Mon, 23 Aug 2021 19:59:59 -0400 Subject: [PATCH 02/13] Modernize Go pack definitions --- .codeqlmanifest.json | 1 + ql/examples/qlpack.lock.yml | 4 ++++ ql/examples/qlpack.yml | 7 ++++--- ql/lib/qlpack.lock.yml | 4 ++++ ql/lib/qlpack.yml | 7 +++++++ ql/src/qlpack.lock.yml | 6 ++++++ ql/src/qlpack.yml | 8 +++++--- upgrades/qlpack.lock.yml | 4 ++++ upgrades/qlpack.yml | 4 +++- 9 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 ql/examples/qlpack.lock.yml create mode 100644 ql/lib/qlpack.lock.yml create mode 100644 ql/lib/qlpack.yml create mode 100644 ql/src/qlpack.lock.yml create mode 100644 upgrades/qlpack.lock.yml diff --git a/.codeqlmanifest.json b/.codeqlmanifest.json index a426032e688..8011a679cf1 100644 --- a/.codeqlmanifest.json +++ b/.codeqlmanifest.json @@ -1,4 +1,5 @@ { "provide": [ "ql/src/qlpack.yml", + "ql/lib/qlpack.yml", "ql/examples/qlpack.yml", "ql/test/qlpack.yml", "upgrades/qlpack.yml", diff --git a/ql/examples/qlpack.lock.yml b/ql/examples/qlpack.lock.yml new file mode 100644 index 00000000000..06dd07fc7dc --- /dev/null +++ b/ql/examples/qlpack.lock.yml @@ -0,0 +1,4 @@ +--- +dependencies: {} +compiled: false +lockVersion: 1.0.0 diff --git a/ql/examples/qlpack.yml b/ql/examples/qlpack.yml index 0fb500ee37f..39eb537e673 100644 --- a/ql/examples/qlpack.yml +++ b/ql/examples/qlpack.yml @@ -1,3 +1,4 @@ -name: codeql-go-examples -version: 0.0.0 -libraryPathDependencies: codeql-go +name: codeql/go-examples +version: 0.0.2 +dependencies: + codeql/go-all: ^0.0.2 diff --git a/ql/lib/qlpack.lock.yml b/ql/lib/qlpack.lock.yml new file mode 100644 index 00000000000..06dd07fc7dc --- /dev/null +++ b/ql/lib/qlpack.lock.yml @@ -0,0 +1,4 @@ +--- +dependencies: {} +compiled: false +lockVersion: 1.0.0 diff --git a/ql/lib/qlpack.yml b/ql/lib/qlpack.yml new file mode 100644 index 00000000000..b61c85d98a9 --- /dev/null +++ b/ql/lib/qlpack.yml @@ -0,0 +1,7 @@ +name: codeql/go-all +version: 0.0.2 +dbscheme: go.dbscheme +extractor: go +library: true +dependencies: + codeql/go-upgrades: ^0.0.2 diff --git a/ql/src/qlpack.lock.yml b/ql/src/qlpack.lock.yml new file mode 100644 index 00000000000..0bef0f691a9 --- /dev/null +++ b/ql/src/qlpack.lock.yml @@ -0,0 +1,6 @@ +--- +dependencies: + codeql/suite-helpers: + version: 0.0.2 +compiled: false +lockVersion: 1.0.0 diff --git a/ql/src/qlpack.yml b/ql/src/qlpack.yml index 2973061efde..49dacd9e897 100644 --- a/ql/src/qlpack.yml +++ b/ql/src/qlpack.yml @@ -1,5 +1,7 @@ -name: codeql-go -version: 0.0.0 -dbscheme: go.dbscheme +name: codeql/go-queries +version: 0.0.2 suites: codeql-suites extractor: go +dependencies: + codeql/go-all: ^0.0.2 + codeql/suite-helpers: ^0.0.2 diff --git a/upgrades/qlpack.lock.yml b/upgrades/qlpack.lock.yml new file mode 100644 index 00000000000..06dd07fc7dc --- /dev/null +++ b/upgrades/qlpack.lock.yml @@ -0,0 +1,4 @@ +--- +dependencies: {} +compiled: false +lockVersion: 1.0.0 diff --git a/upgrades/qlpack.yml b/upgrades/qlpack.yml index c70c25708d7..fe2cbfcf322 100644 --- a/upgrades/qlpack.yml +++ b/upgrades/qlpack.yml @@ -1,2 +1,4 @@ -name: codeql-go-upgrades +name: codeql/go-upgrades +version: 0.0.2 upgrades: . +library: true From 1726a8b65f75f7210c8ba45d194bb86873983db9 Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Mon, 23 Aug 2021 20:00:53 -0400 Subject: [PATCH 03/13] Initial makefile changes for pack refactoring --- Makefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 7d22401e9b6..486d07c8b6f 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -all: extractor ql/src/go.dbscheme +all: extractor ql/lib/go.dbscheme ifeq ($(OS),Windows_NT) EXE = .exe @@ -74,11 +74,11 @@ $(addsuffix .exe,$(addprefix tools/win64/,$(BINARIES))): env GOOS=windows GOARCH=amd64 go build -mod=vendor -o $@ ./extractor/cli/$(basename $(@F)) .PHONY: extractor-common extractor extractor-full -extractor-common: codeql-extractor.yml LICENSE ql/src/go.dbscheme \ +extractor-common: codeql-extractor.yml LICENSE ql/lib/go.dbscheme \ tools/tokenizer.jar $(CODEQL_TOOLS) rm -rf $(EXTRACTOR_PACK_OUT) mkdir -p $(EXTRACTOR_PACK_OUT) - cp codeql-extractor.yml LICENSE ql/src/go.dbscheme ql/src/go.dbscheme.stats $(EXTRACTOR_PACK_OUT) + cp codeql-extractor.yml LICENSE ql/lib/go.dbscheme ql/lib/go.dbscheme.stats $(EXTRACTOR_PACK_OUT) mkdir $(EXTRACTOR_PACK_OUT)/tools cp -r tools/tokenizer.jar $(CODEQL_TOOLS) $(EXTRACTOR_PACK_OUT)/tools @@ -99,7 +99,7 @@ tools/net/sourceforge/pmd/cpd/GoLanguage.class: extractor/net/sourceforge/pmd/cp rm tools/net/sourceforge/pmd/cpd/TokenEntry.class rm tools/net/sourceforge/pmd/cpd/Tokenizer.class -ql/src/go.dbscheme: tools/$(CODEQL_PLATFORM)/go-gen-dbscheme$(EXE) +ql/lib/go.dbscheme: tools/$(CODEQL_PLATFORM)/go-gen-dbscheme$(EXE) $< $@ build/stats/src.stamp: @@ -108,7 +108,7 @@ build/stats/src.stamp: git -C $(@D)/src checkout 9b52d559c609 -q touch $@ -ql/src/go.dbscheme.stats: ql/src/go.dbscheme build/stats/src.stamp extractor +ql/lib/go.dbscheme.stats: ql/lib/go.dbscheme build/stats/src.stamp extractor rm -rf build/stats/database codeql database create -l go -s build/stats/src -j4 --search-path . build/stats/database codeql dataset measure -o $@ build/stats/database/db-go @@ -121,9 +121,9 @@ test: all build/testdb/check-upgrade-path bash extractor-smoke-test/test.sh || (echo "Extractor smoke test FAILED"; exit 1) .PHONY: build/testdb/check-upgrade-path -build/testdb/check-upgrade-path : build/testdb/go.dbscheme ql/src/go.dbscheme +build/testdb/check-upgrade-path : build/testdb/go.dbscheme ql/lib/go.dbscheme codeql dataset upgrade build/testdb --search-path upgrades - diff -q build/testdb/go.dbscheme ql/src/go.dbscheme + diff -q build/testdb/go.dbscheme ql/lib/go.dbscheme .PHONY: build/testdb/go.dbscheme build/testdb/go.dbscheme: upgrades/initial/go.dbscheme From 26fd45746c2e4208b22b189e791e812dc5bb741a Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Mon, 23 Aug 2021 20:03:39 -0400 Subject: [PATCH 04/13] Move Go QL library files into separate pack --- ql/{src => lib}/Customizations.qll | 0 ql/{src => lib}/definitions.ql | 0 ql/{src => lib}/go.dbscheme | 0 ql/{src => lib}/go.dbscheme.stats | 0 ql/{src => lib}/go.qll | 0 ql/{src => lib}/ideContextual.qll | 0 ql/{src => lib}/localDefinitions.ql | 0 ql/{src => lib}/localReferences.ql | 0 ql/{src => lib}/printAst.ql | 0 ql/{src => lib}/semmle/go/AST.qll | 0 ql/{src => lib}/semmle/go/Architectures.qll | 0 ql/{src => lib}/semmle/go/Comments.qll | 0 ql/{src => lib}/semmle/go/Concepts.qll | 0 ql/{src => lib}/semmle/go/Decls.qll | 0 ql/{src => lib}/semmle/go/Errors.qll | 0 ql/{src => lib}/semmle/go/Expr.qll | 0 ql/{src => lib}/semmle/go/Files.qll | 0 ql/{src => lib}/semmle/go/GoMod.qll | 0 ql/{src => lib}/semmle/go/HTML.qll | 0 ql/{src => lib}/semmle/go/Locations.qll | 0 ql/{src => lib}/semmle/go/Packages.qll | 0 ql/{src => lib}/semmle/go/PrintAst.ql | 0 ql/{src => lib}/semmle/go/PrintAst.qll | 0 ql/{src => lib}/semmle/go/Scopes.qll | 0 ql/{src => lib}/semmle/go/Stmt.qll | 0 ql/{src => lib}/semmle/go/StringOps.qll | 0 ql/{src => lib}/semmle/go/Types.qll | 0 ql/{src => lib}/semmle/go/Util.qll | 0 ql/{src => lib}/semmle/go/VariableWithFields.qll | 0 ql/{src => lib}/semmle/go/concepts/GeneratedFile.qll | 0 ql/{src => lib}/semmle/go/concepts/HTTP.qll | 0 ql/{src => lib}/semmle/go/controlflow/BasicBlocks.qll | 0 ql/{src => lib}/semmle/go/controlflow/ControlFlowGraph.qll | 0 ql/{src => lib}/semmle/go/controlflow/ControlFlowGraphImpl.qll | 0 ql/{src => lib}/semmle/go/controlflow/IR.qll | 0 ql/{src => lib}/semmle/go/dataflow/DataFlow.qll | 0 ql/{src => lib}/semmle/go/dataflow/DataFlow2.qll | 0 ql/{src => lib}/semmle/go/dataflow/FunctionInputsAndOutputs.qll | 0 ql/{src => lib}/semmle/go/dataflow/GlobalValueNumbering.qll | 0 ql/{src => lib}/semmle/go/dataflow/Properties.qll | 0 ql/{src => lib}/semmle/go/dataflow/SSA.qll | 0 ql/{src => lib}/semmle/go/dataflow/SsaImpl.qll | 0 ql/{src => lib}/semmle/go/dataflow/TaintTracking.qll | 0 ql/{src => lib}/semmle/go/dataflow/TaintTracking2.qll | 0 .../go/dataflow/barrierguardutil/RedirectCheckBarrierGuard.qll | 0 .../semmle/go/dataflow/barrierguardutil/RegexpCheck.qll | 0 ql/{src => lib}/semmle/go/dataflow/barrierguardutil/UrlCheck.qll | 0 ql/{src => lib}/semmle/go/dataflow/internal/DataFlowDispatch.qll | 0 ql/{src => lib}/semmle/go/dataflow/internal/DataFlowImpl.qll | 0 ql/{src => lib}/semmle/go/dataflow/internal/DataFlowImpl2.qll | 0 .../semmle/go/dataflow/internal/DataFlowImplCommon.qll | 0 .../semmle/go/dataflow/internal/DataFlowImplSpecific.qll | 0 ql/{src => lib}/semmle/go/dataflow/internal/DataFlowPrivate.qll | 0 ql/{src => lib}/semmle/go/dataflow/internal/DataFlowUtil.qll | 0 ql/{src => lib}/semmle/go/dataflow/internal/TaintTrackingUtil.qll | 0 .../go/dataflow/internal/tainttracking1/TaintTrackingImpl.qll | 0 .../dataflow/internal/tainttracking1/TaintTrackingParameter.qll | 0 .../go/dataflow/internal/tainttracking2/TaintTrackingImpl.qll | 0 .../dataflow/internal/tainttracking2/TaintTrackingParameter.qll | 0 ql/{src => lib}/semmle/go/dependencies/Dependencies.qll | 0 ql/{src => lib}/semmle/go/dependencies/SemVer.qll | 0 ql/{src => lib}/semmle/go/frameworks/Beego.qll | 0 ql/{src => lib}/semmle/go/frameworks/BeegoOrm.qll | 0 ql/{src => lib}/semmle/go/frameworks/Chi.qll | 0 ql/{src => lib}/semmle/go/frameworks/Couchbase.qll | 0 ql/{src => lib}/semmle/go/frameworks/Echo.qll | 0 ql/{src => lib}/semmle/go/frameworks/ElazarlGoproxy.qll | 0 ql/{src => lib}/semmle/go/frameworks/Email.qll | 0 ql/{src => lib}/semmle/go/frameworks/Encoding.qll | 0 ql/{src => lib}/semmle/go/frameworks/EvanphxJsonPatch.qll | 0 ql/{src => lib}/semmle/go/frameworks/Gin.qll | 0 ql/{src => lib}/semmle/go/frameworks/Glog.qll | 0 ql/{src => lib}/semmle/go/frameworks/GoKit.qll | 0 ql/{src => lib}/semmle/go/frameworks/GoRestfulHttp.qll | 0 ql/{src => lib}/semmle/go/frameworks/K8sIoApiCoreV1.qll | 0 .../semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll | 0 ql/{src => lib}/semmle/go/frameworks/K8sIoClientGo.qll | 0 ql/{src => lib}/semmle/go/frameworks/Logrus.qll | 0 ql/{src => lib}/semmle/go/frameworks/Macaron.qll | 0 ql/{src => lib}/semmle/go/frameworks/Mux.qll | 0 ql/{src => lib}/semmle/go/frameworks/NoSQL.qll | 0 ql/{src => lib}/semmle/go/frameworks/Protobuf.qll | 0 ql/{src => lib}/semmle/go/frameworks/Revel.qll | 0 ql/{src => lib}/semmle/go/frameworks/SQL.qll | 0 ql/{src => lib}/semmle/go/frameworks/Spew.qll | 0 ql/{src => lib}/semmle/go/frameworks/Stdlib.qll | 0 ql/{src => lib}/semmle/go/frameworks/SystemCommandExecutors.qll | 0 ql/{src => lib}/semmle/go/frameworks/Testing.qll | 0 ql/{src => lib}/semmle/go/frameworks/WebSocket.qll | 0 ql/{src => lib}/semmle/go/frameworks/XNetHtml.qll | 0 ql/{src => lib}/semmle/go/frameworks/XPath.qll | 0 ql/{src => lib}/semmle/go/frameworks/Yaml.qll | 0 ql/{src => lib}/semmle/go/frameworks/Zap.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/ArchiveTar.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/ArchiveZip.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Bufio.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Bytes.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/CompressBzip2.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/CompressFlate.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/CompressGzip.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/CompressLzw.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/CompressZlib.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/ContainerHeap.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/ContainerList.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/ContainerRing.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Context.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Crypto.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/CryptoCipher.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/CryptoRsa.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/CryptoTls.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/CryptoX509.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/DatabaseSql.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Encoding.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingAscii85.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingAsn1.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingBase32.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingBase64.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingBinary.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingCsv.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingGob.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingHex.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingJson.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingPem.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingXml.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Errors.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Expvar.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Fmt.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Html.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/HtmlTemplate.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Io.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/IoFs.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/IoIoutil.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Log.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Mime.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/MimeMultipart.qll | 0 .../semmle/go/frameworks/stdlib/MimeQuotedprintable.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Net.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/NetHttp.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/NetHttpHttputil.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/NetMail.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/NetTextproto.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Os.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Path.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/PathFilepath.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Reflect.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Regexp.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Sort.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Strconv.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Strings.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Sync.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/SyncAtomic.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/Syscall.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/TextScanner.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/TextTabwriter.qll | 0 ql/{src => lib}/semmle/go/frameworks/stdlib/TextTemplate.qll | 0 ql/{src => lib}/semmle/go/security/AllocationSizeOverflow.qll | 0 .../semmle/go/security/AllocationSizeOverflowCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/CleartextLogging.qll | 0 .../semmle/go/security/CleartextLoggingCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/CommandInjection.qll | 0 .../semmle/go/security/CommandInjectionCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/ExternalAPIs.qll | 0 ql/{src => lib}/semmle/go/security/FlowSources.qll | 0 ql/{src => lib}/semmle/go/security/InsecureFeatureFlag.qll | 0 ql/{src => lib}/semmle/go/security/InsecureRandomness.qll | 0 .../semmle/go/security/InsecureRandomnessCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/OpenUrlRedirect.qll | 0 .../semmle/go/security/OpenUrlRedirectCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/ReflectedXss.qll | 0 ql/{src => lib}/semmle/go/security/ReflectedXssCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/RequestForgery.qll | 0 .../semmle/go/security/RequestForgeryCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/SafeUrlFlow.qll | 0 ql/{src => lib}/semmle/go/security/SafeUrlFlowCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/SensitiveActions.qll | 0 ql/{src => lib}/semmle/go/security/SqlInjection.qll | 0 ql/{src => lib}/semmle/go/security/SqlInjectionCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/StoredCommand.qll | 0 ql/{src => lib}/semmle/go/security/StoredXss.qll | 0 ql/{src => lib}/semmle/go/security/StoredXssCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/StringBreak.qll | 0 ql/{src => lib}/semmle/go/security/StringBreakCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/TaintedPath.qll | 0 ql/{src => lib}/semmle/go/security/TaintedPathCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/UnsafeUnzipSymlink.qll | 0 .../semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/UrlConcatenation.qll | 0 ql/{src => lib}/semmle/go/security/XPathInjection.qll | 0 .../semmle/go/security/XPathInjectionCustomizations.qll | 0 ql/{src => lib}/semmle/go/security/Xss.qll | 0 ql/{src => lib}/semmle/go/security/ZipSlip.qll | 0 ql/{src => lib}/semmle/go/security/ZipSlipCustomizations.qll | 0 ql/{src => lib}/xml.dbscheme | 0 193 files changed, 0 insertions(+), 0 deletions(-) rename ql/{src => lib}/Customizations.qll (100%) rename ql/{src => lib}/definitions.ql (100%) rename ql/{src => lib}/go.dbscheme (100%) rename ql/{src => lib}/go.dbscheme.stats (100%) rename ql/{src => lib}/go.qll (100%) rename ql/{src => lib}/ideContextual.qll (100%) rename ql/{src => lib}/localDefinitions.ql (100%) rename ql/{src => lib}/localReferences.ql (100%) rename ql/{src => lib}/printAst.ql (100%) rename ql/{src => lib}/semmle/go/AST.qll (100%) rename ql/{src => lib}/semmle/go/Architectures.qll (100%) rename ql/{src => lib}/semmle/go/Comments.qll (100%) rename ql/{src => lib}/semmle/go/Concepts.qll (100%) rename ql/{src => lib}/semmle/go/Decls.qll (100%) rename ql/{src => lib}/semmle/go/Errors.qll (100%) rename ql/{src => lib}/semmle/go/Expr.qll (100%) rename ql/{src => lib}/semmle/go/Files.qll (100%) rename ql/{src => lib}/semmle/go/GoMod.qll (100%) rename ql/{src => lib}/semmle/go/HTML.qll (100%) rename ql/{src => lib}/semmle/go/Locations.qll (100%) rename ql/{src => lib}/semmle/go/Packages.qll (100%) rename ql/{src => lib}/semmle/go/PrintAst.ql (100%) rename ql/{src => lib}/semmle/go/PrintAst.qll (100%) rename ql/{src => lib}/semmle/go/Scopes.qll (100%) rename ql/{src => lib}/semmle/go/Stmt.qll (100%) rename ql/{src => lib}/semmle/go/StringOps.qll (100%) rename ql/{src => lib}/semmle/go/Types.qll (100%) rename ql/{src => lib}/semmle/go/Util.qll (100%) rename ql/{src => lib}/semmle/go/VariableWithFields.qll (100%) rename ql/{src => lib}/semmle/go/concepts/GeneratedFile.qll (100%) rename ql/{src => lib}/semmle/go/concepts/HTTP.qll (100%) rename ql/{src => lib}/semmle/go/controlflow/BasicBlocks.qll (100%) rename ql/{src => lib}/semmle/go/controlflow/ControlFlowGraph.qll (100%) rename ql/{src => lib}/semmle/go/controlflow/ControlFlowGraphImpl.qll (100%) rename ql/{src => lib}/semmle/go/controlflow/IR.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/DataFlow.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/DataFlow2.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/FunctionInputsAndOutputs.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/GlobalValueNumbering.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/Properties.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/SSA.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/SsaImpl.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/TaintTracking.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/TaintTracking2.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/barrierguardutil/RedirectCheckBarrierGuard.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/barrierguardutil/RegexpCheck.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/barrierguardutil/UrlCheck.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/DataFlowDispatch.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/DataFlowImpl.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/DataFlowImpl2.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/DataFlowImplCommon.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/DataFlowImplSpecific.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/DataFlowPrivate.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/DataFlowUtil.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/TaintTrackingUtil.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/tainttracking1/TaintTrackingImpl.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/tainttracking1/TaintTrackingParameter.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/tainttracking2/TaintTrackingImpl.qll (100%) rename ql/{src => lib}/semmle/go/dataflow/internal/tainttracking2/TaintTrackingParameter.qll (100%) rename ql/{src => lib}/semmle/go/dependencies/Dependencies.qll (100%) rename ql/{src => lib}/semmle/go/dependencies/SemVer.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Beego.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/BeegoOrm.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Chi.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Couchbase.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Echo.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/ElazarlGoproxy.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Email.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Encoding.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/EvanphxJsonPatch.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Gin.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Glog.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/GoKit.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/GoRestfulHttp.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/K8sIoApiCoreV1.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/K8sIoClientGo.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Logrus.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Macaron.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Mux.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/NoSQL.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Protobuf.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Revel.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/SQL.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Spew.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Stdlib.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/SystemCommandExecutors.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Testing.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/WebSocket.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/XNetHtml.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/XPath.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Yaml.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/Zap.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/ArchiveTar.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/ArchiveZip.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Bufio.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Bytes.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/CompressBzip2.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/CompressFlate.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/CompressGzip.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/CompressLzw.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/CompressZlib.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/ContainerHeap.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/ContainerList.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/ContainerRing.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Context.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Crypto.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/CryptoCipher.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/CryptoRsa.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/CryptoTls.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/CryptoX509.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/DatabaseSql.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Encoding.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingAscii85.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingAsn1.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingBase32.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingBase64.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingBinary.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingCsv.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingGob.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingHex.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingJson.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingPem.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/EncodingXml.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Errors.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Expvar.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Fmt.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Html.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/HtmlTemplate.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Io.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/IoFs.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/IoIoutil.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Log.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Mime.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/MimeMultipart.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/MimeQuotedprintable.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Net.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/NetHttp.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/NetHttpHttputil.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/NetMail.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/NetTextproto.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Os.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Path.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/PathFilepath.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Reflect.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Regexp.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Sort.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Strconv.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Strings.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Sync.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/SyncAtomic.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/Syscall.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/TextScanner.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/TextTabwriter.qll (100%) rename ql/{src => lib}/semmle/go/frameworks/stdlib/TextTemplate.qll (100%) rename ql/{src => lib}/semmle/go/security/AllocationSizeOverflow.qll (100%) rename ql/{src => lib}/semmle/go/security/AllocationSizeOverflowCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/CleartextLogging.qll (100%) rename ql/{src => lib}/semmle/go/security/CleartextLoggingCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/CommandInjection.qll (100%) rename ql/{src => lib}/semmle/go/security/CommandInjectionCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/ExternalAPIs.qll (100%) rename ql/{src => lib}/semmle/go/security/FlowSources.qll (100%) rename ql/{src => lib}/semmle/go/security/InsecureFeatureFlag.qll (100%) rename ql/{src => lib}/semmle/go/security/InsecureRandomness.qll (100%) rename ql/{src => lib}/semmle/go/security/InsecureRandomnessCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/OpenUrlRedirect.qll (100%) rename ql/{src => lib}/semmle/go/security/OpenUrlRedirectCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/ReflectedXss.qll (100%) rename ql/{src => lib}/semmle/go/security/ReflectedXssCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/RequestForgery.qll (100%) rename ql/{src => lib}/semmle/go/security/RequestForgeryCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/SafeUrlFlow.qll (100%) rename ql/{src => lib}/semmle/go/security/SafeUrlFlowCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/SensitiveActions.qll (100%) rename ql/{src => lib}/semmle/go/security/SqlInjection.qll (100%) rename ql/{src => lib}/semmle/go/security/SqlInjectionCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/StoredCommand.qll (100%) rename ql/{src => lib}/semmle/go/security/StoredXss.qll (100%) rename ql/{src => lib}/semmle/go/security/StoredXssCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/StringBreak.qll (100%) rename ql/{src => lib}/semmle/go/security/StringBreakCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/TaintedPath.qll (100%) rename ql/{src => lib}/semmle/go/security/TaintedPathCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/UnsafeUnzipSymlink.qll (100%) rename ql/{src => lib}/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/UrlConcatenation.qll (100%) rename ql/{src => lib}/semmle/go/security/XPathInjection.qll (100%) rename ql/{src => lib}/semmle/go/security/XPathInjectionCustomizations.qll (100%) rename ql/{src => lib}/semmle/go/security/Xss.qll (100%) rename ql/{src => lib}/semmle/go/security/ZipSlip.qll (100%) rename ql/{src => lib}/semmle/go/security/ZipSlipCustomizations.qll (100%) rename ql/{src => lib}/xml.dbscheme (100%) diff --git a/ql/src/Customizations.qll b/ql/lib/Customizations.qll similarity index 100% rename from ql/src/Customizations.qll rename to ql/lib/Customizations.qll diff --git a/ql/src/definitions.ql b/ql/lib/definitions.ql similarity index 100% rename from ql/src/definitions.ql rename to ql/lib/definitions.ql diff --git a/ql/src/go.dbscheme b/ql/lib/go.dbscheme similarity index 100% rename from ql/src/go.dbscheme rename to ql/lib/go.dbscheme diff --git a/ql/src/go.dbscheme.stats b/ql/lib/go.dbscheme.stats similarity index 100% rename from ql/src/go.dbscheme.stats rename to ql/lib/go.dbscheme.stats diff --git a/ql/src/go.qll b/ql/lib/go.qll similarity index 100% rename from ql/src/go.qll rename to ql/lib/go.qll diff --git a/ql/src/ideContextual.qll b/ql/lib/ideContextual.qll similarity index 100% rename from ql/src/ideContextual.qll rename to ql/lib/ideContextual.qll diff --git a/ql/src/localDefinitions.ql b/ql/lib/localDefinitions.ql similarity index 100% rename from ql/src/localDefinitions.ql rename to ql/lib/localDefinitions.ql diff --git a/ql/src/localReferences.ql b/ql/lib/localReferences.ql similarity index 100% rename from ql/src/localReferences.ql rename to ql/lib/localReferences.ql diff --git a/ql/src/printAst.ql b/ql/lib/printAst.ql similarity index 100% rename from ql/src/printAst.ql rename to ql/lib/printAst.ql diff --git a/ql/src/semmle/go/AST.qll b/ql/lib/semmle/go/AST.qll similarity index 100% rename from ql/src/semmle/go/AST.qll rename to ql/lib/semmle/go/AST.qll diff --git a/ql/src/semmle/go/Architectures.qll b/ql/lib/semmle/go/Architectures.qll similarity index 100% rename from ql/src/semmle/go/Architectures.qll rename to ql/lib/semmle/go/Architectures.qll diff --git a/ql/src/semmle/go/Comments.qll b/ql/lib/semmle/go/Comments.qll similarity index 100% rename from ql/src/semmle/go/Comments.qll rename to ql/lib/semmle/go/Comments.qll diff --git a/ql/src/semmle/go/Concepts.qll b/ql/lib/semmle/go/Concepts.qll similarity index 100% rename from ql/src/semmle/go/Concepts.qll rename to ql/lib/semmle/go/Concepts.qll diff --git a/ql/src/semmle/go/Decls.qll b/ql/lib/semmle/go/Decls.qll similarity index 100% rename from ql/src/semmle/go/Decls.qll rename to ql/lib/semmle/go/Decls.qll diff --git a/ql/src/semmle/go/Errors.qll b/ql/lib/semmle/go/Errors.qll similarity index 100% rename from ql/src/semmle/go/Errors.qll rename to ql/lib/semmle/go/Errors.qll diff --git a/ql/src/semmle/go/Expr.qll b/ql/lib/semmle/go/Expr.qll similarity index 100% rename from ql/src/semmle/go/Expr.qll rename to ql/lib/semmle/go/Expr.qll diff --git a/ql/src/semmle/go/Files.qll b/ql/lib/semmle/go/Files.qll similarity index 100% rename from ql/src/semmle/go/Files.qll rename to ql/lib/semmle/go/Files.qll diff --git a/ql/src/semmle/go/GoMod.qll b/ql/lib/semmle/go/GoMod.qll similarity index 100% rename from ql/src/semmle/go/GoMod.qll rename to ql/lib/semmle/go/GoMod.qll diff --git a/ql/src/semmle/go/HTML.qll b/ql/lib/semmle/go/HTML.qll similarity index 100% rename from ql/src/semmle/go/HTML.qll rename to ql/lib/semmle/go/HTML.qll diff --git a/ql/src/semmle/go/Locations.qll b/ql/lib/semmle/go/Locations.qll similarity index 100% rename from ql/src/semmle/go/Locations.qll rename to ql/lib/semmle/go/Locations.qll diff --git a/ql/src/semmle/go/Packages.qll b/ql/lib/semmle/go/Packages.qll similarity index 100% rename from ql/src/semmle/go/Packages.qll rename to ql/lib/semmle/go/Packages.qll diff --git a/ql/src/semmle/go/PrintAst.ql b/ql/lib/semmle/go/PrintAst.ql similarity index 100% rename from ql/src/semmle/go/PrintAst.ql rename to ql/lib/semmle/go/PrintAst.ql diff --git a/ql/src/semmle/go/PrintAst.qll b/ql/lib/semmle/go/PrintAst.qll similarity index 100% rename from ql/src/semmle/go/PrintAst.qll rename to ql/lib/semmle/go/PrintAst.qll diff --git a/ql/src/semmle/go/Scopes.qll b/ql/lib/semmle/go/Scopes.qll similarity index 100% rename from ql/src/semmle/go/Scopes.qll rename to ql/lib/semmle/go/Scopes.qll diff --git a/ql/src/semmle/go/Stmt.qll b/ql/lib/semmle/go/Stmt.qll similarity index 100% rename from ql/src/semmle/go/Stmt.qll rename to ql/lib/semmle/go/Stmt.qll diff --git a/ql/src/semmle/go/StringOps.qll b/ql/lib/semmle/go/StringOps.qll similarity index 100% rename from ql/src/semmle/go/StringOps.qll rename to ql/lib/semmle/go/StringOps.qll diff --git a/ql/src/semmle/go/Types.qll b/ql/lib/semmle/go/Types.qll similarity index 100% rename from ql/src/semmle/go/Types.qll rename to ql/lib/semmle/go/Types.qll diff --git a/ql/src/semmle/go/Util.qll b/ql/lib/semmle/go/Util.qll similarity index 100% rename from ql/src/semmle/go/Util.qll rename to ql/lib/semmle/go/Util.qll diff --git a/ql/src/semmle/go/VariableWithFields.qll b/ql/lib/semmle/go/VariableWithFields.qll similarity index 100% rename from ql/src/semmle/go/VariableWithFields.qll rename to ql/lib/semmle/go/VariableWithFields.qll diff --git a/ql/src/semmle/go/concepts/GeneratedFile.qll b/ql/lib/semmle/go/concepts/GeneratedFile.qll similarity index 100% rename from ql/src/semmle/go/concepts/GeneratedFile.qll rename to ql/lib/semmle/go/concepts/GeneratedFile.qll diff --git a/ql/src/semmle/go/concepts/HTTP.qll b/ql/lib/semmle/go/concepts/HTTP.qll similarity index 100% rename from ql/src/semmle/go/concepts/HTTP.qll rename to ql/lib/semmle/go/concepts/HTTP.qll diff --git a/ql/src/semmle/go/controlflow/BasicBlocks.qll b/ql/lib/semmle/go/controlflow/BasicBlocks.qll similarity index 100% rename from ql/src/semmle/go/controlflow/BasicBlocks.qll rename to ql/lib/semmle/go/controlflow/BasicBlocks.qll diff --git a/ql/src/semmle/go/controlflow/ControlFlowGraph.qll b/ql/lib/semmle/go/controlflow/ControlFlowGraph.qll similarity index 100% rename from ql/src/semmle/go/controlflow/ControlFlowGraph.qll rename to ql/lib/semmle/go/controlflow/ControlFlowGraph.qll diff --git a/ql/src/semmle/go/controlflow/ControlFlowGraphImpl.qll b/ql/lib/semmle/go/controlflow/ControlFlowGraphImpl.qll similarity index 100% rename from ql/src/semmle/go/controlflow/ControlFlowGraphImpl.qll rename to ql/lib/semmle/go/controlflow/ControlFlowGraphImpl.qll diff --git a/ql/src/semmle/go/controlflow/IR.qll b/ql/lib/semmle/go/controlflow/IR.qll similarity index 100% rename from ql/src/semmle/go/controlflow/IR.qll rename to ql/lib/semmle/go/controlflow/IR.qll diff --git a/ql/src/semmle/go/dataflow/DataFlow.qll b/ql/lib/semmle/go/dataflow/DataFlow.qll similarity index 100% rename from ql/src/semmle/go/dataflow/DataFlow.qll rename to ql/lib/semmle/go/dataflow/DataFlow.qll diff --git a/ql/src/semmle/go/dataflow/DataFlow2.qll b/ql/lib/semmle/go/dataflow/DataFlow2.qll similarity index 100% rename from ql/src/semmle/go/dataflow/DataFlow2.qll rename to ql/lib/semmle/go/dataflow/DataFlow2.qll diff --git a/ql/src/semmle/go/dataflow/FunctionInputsAndOutputs.qll b/ql/lib/semmle/go/dataflow/FunctionInputsAndOutputs.qll similarity index 100% rename from ql/src/semmle/go/dataflow/FunctionInputsAndOutputs.qll rename to ql/lib/semmle/go/dataflow/FunctionInputsAndOutputs.qll diff --git a/ql/src/semmle/go/dataflow/GlobalValueNumbering.qll b/ql/lib/semmle/go/dataflow/GlobalValueNumbering.qll similarity index 100% rename from ql/src/semmle/go/dataflow/GlobalValueNumbering.qll rename to ql/lib/semmle/go/dataflow/GlobalValueNumbering.qll diff --git a/ql/src/semmle/go/dataflow/Properties.qll b/ql/lib/semmle/go/dataflow/Properties.qll similarity index 100% rename from ql/src/semmle/go/dataflow/Properties.qll rename to ql/lib/semmle/go/dataflow/Properties.qll diff --git a/ql/src/semmle/go/dataflow/SSA.qll b/ql/lib/semmle/go/dataflow/SSA.qll similarity index 100% rename from ql/src/semmle/go/dataflow/SSA.qll rename to ql/lib/semmle/go/dataflow/SSA.qll diff --git a/ql/src/semmle/go/dataflow/SsaImpl.qll b/ql/lib/semmle/go/dataflow/SsaImpl.qll similarity index 100% rename from ql/src/semmle/go/dataflow/SsaImpl.qll rename to ql/lib/semmle/go/dataflow/SsaImpl.qll diff --git a/ql/src/semmle/go/dataflow/TaintTracking.qll b/ql/lib/semmle/go/dataflow/TaintTracking.qll similarity index 100% rename from ql/src/semmle/go/dataflow/TaintTracking.qll rename to ql/lib/semmle/go/dataflow/TaintTracking.qll diff --git a/ql/src/semmle/go/dataflow/TaintTracking2.qll b/ql/lib/semmle/go/dataflow/TaintTracking2.qll similarity index 100% rename from ql/src/semmle/go/dataflow/TaintTracking2.qll rename to ql/lib/semmle/go/dataflow/TaintTracking2.qll diff --git a/ql/src/semmle/go/dataflow/barrierguardutil/RedirectCheckBarrierGuard.qll b/ql/lib/semmle/go/dataflow/barrierguardutil/RedirectCheckBarrierGuard.qll similarity index 100% rename from ql/src/semmle/go/dataflow/barrierguardutil/RedirectCheckBarrierGuard.qll rename to ql/lib/semmle/go/dataflow/barrierguardutil/RedirectCheckBarrierGuard.qll diff --git a/ql/src/semmle/go/dataflow/barrierguardutil/RegexpCheck.qll b/ql/lib/semmle/go/dataflow/barrierguardutil/RegexpCheck.qll similarity index 100% rename from ql/src/semmle/go/dataflow/barrierguardutil/RegexpCheck.qll rename to ql/lib/semmle/go/dataflow/barrierguardutil/RegexpCheck.qll diff --git a/ql/src/semmle/go/dataflow/barrierguardutil/UrlCheck.qll b/ql/lib/semmle/go/dataflow/barrierguardutil/UrlCheck.qll similarity index 100% rename from ql/src/semmle/go/dataflow/barrierguardutil/UrlCheck.qll rename to ql/lib/semmle/go/dataflow/barrierguardutil/UrlCheck.qll diff --git a/ql/src/semmle/go/dataflow/internal/DataFlowDispatch.qll b/ql/lib/semmle/go/dataflow/internal/DataFlowDispatch.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/DataFlowDispatch.qll rename to ql/lib/semmle/go/dataflow/internal/DataFlowDispatch.qll diff --git a/ql/src/semmle/go/dataflow/internal/DataFlowImpl.qll b/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/DataFlowImpl.qll rename to ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll diff --git a/ql/src/semmle/go/dataflow/internal/DataFlowImpl2.qll b/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/DataFlowImpl2.qll rename to ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll diff --git a/ql/src/semmle/go/dataflow/internal/DataFlowImplCommon.qll b/ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/DataFlowImplCommon.qll rename to ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll diff --git a/ql/src/semmle/go/dataflow/internal/DataFlowImplSpecific.qll b/ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/DataFlowImplSpecific.qll rename to ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll diff --git a/ql/src/semmle/go/dataflow/internal/DataFlowPrivate.qll b/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/DataFlowPrivate.qll rename to ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll diff --git a/ql/src/semmle/go/dataflow/internal/DataFlowUtil.qll b/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/DataFlowUtil.qll rename to ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll diff --git a/ql/src/semmle/go/dataflow/internal/TaintTrackingUtil.qll b/ql/lib/semmle/go/dataflow/internal/TaintTrackingUtil.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/TaintTrackingUtil.qll rename to ql/lib/semmle/go/dataflow/internal/TaintTrackingUtil.qll diff --git a/ql/src/semmle/go/dataflow/internal/tainttracking1/TaintTrackingImpl.qll b/ql/lib/semmle/go/dataflow/internal/tainttracking1/TaintTrackingImpl.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/tainttracking1/TaintTrackingImpl.qll rename to ql/lib/semmle/go/dataflow/internal/tainttracking1/TaintTrackingImpl.qll diff --git a/ql/src/semmle/go/dataflow/internal/tainttracking1/TaintTrackingParameter.qll b/ql/lib/semmle/go/dataflow/internal/tainttracking1/TaintTrackingParameter.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/tainttracking1/TaintTrackingParameter.qll rename to ql/lib/semmle/go/dataflow/internal/tainttracking1/TaintTrackingParameter.qll diff --git a/ql/src/semmle/go/dataflow/internal/tainttracking2/TaintTrackingImpl.qll b/ql/lib/semmle/go/dataflow/internal/tainttracking2/TaintTrackingImpl.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/tainttracking2/TaintTrackingImpl.qll rename to ql/lib/semmle/go/dataflow/internal/tainttracking2/TaintTrackingImpl.qll diff --git a/ql/src/semmle/go/dataflow/internal/tainttracking2/TaintTrackingParameter.qll b/ql/lib/semmle/go/dataflow/internal/tainttracking2/TaintTrackingParameter.qll similarity index 100% rename from ql/src/semmle/go/dataflow/internal/tainttracking2/TaintTrackingParameter.qll rename to ql/lib/semmle/go/dataflow/internal/tainttracking2/TaintTrackingParameter.qll diff --git a/ql/src/semmle/go/dependencies/Dependencies.qll b/ql/lib/semmle/go/dependencies/Dependencies.qll similarity index 100% rename from ql/src/semmle/go/dependencies/Dependencies.qll rename to ql/lib/semmle/go/dependencies/Dependencies.qll diff --git a/ql/src/semmle/go/dependencies/SemVer.qll b/ql/lib/semmle/go/dependencies/SemVer.qll similarity index 100% rename from ql/src/semmle/go/dependencies/SemVer.qll rename to ql/lib/semmle/go/dependencies/SemVer.qll diff --git a/ql/src/semmle/go/frameworks/Beego.qll b/ql/lib/semmle/go/frameworks/Beego.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Beego.qll rename to ql/lib/semmle/go/frameworks/Beego.qll diff --git a/ql/src/semmle/go/frameworks/BeegoOrm.qll b/ql/lib/semmle/go/frameworks/BeegoOrm.qll similarity index 100% rename from ql/src/semmle/go/frameworks/BeegoOrm.qll rename to ql/lib/semmle/go/frameworks/BeegoOrm.qll diff --git a/ql/src/semmle/go/frameworks/Chi.qll b/ql/lib/semmle/go/frameworks/Chi.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Chi.qll rename to ql/lib/semmle/go/frameworks/Chi.qll diff --git a/ql/src/semmle/go/frameworks/Couchbase.qll b/ql/lib/semmle/go/frameworks/Couchbase.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Couchbase.qll rename to ql/lib/semmle/go/frameworks/Couchbase.qll diff --git a/ql/src/semmle/go/frameworks/Echo.qll b/ql/lib/semmle/go/frameworks/Echo.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Echo.qll rename to ql/lib/semmle/go/frameworks/Echo.qll diff --git a/ql/src/semmle/go/frameworks/ElazarlGoproxy.qll b/ql/lib/semmle/go/frameworks/ElazarlGoproxy.qll similarity index 100% rename from ql/src/semmle/go/frameworks/ElazarlGoproxy.qll rename to ql/lib/semmle/go/frameworks/ElazarlGoproxy.qll diff --git a/ql/src/semmle/go/frameworks/Email.qll b/ql/lib/semmle/go/frameworks/Email.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Email.qll rename to ql/lib/semmle/go/frameworks/Email.qll diff --git a/ql/src/semmle/go/frameworks/Encoding.qll b/ql/lib/semmle/go/frameworks/Encoding.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Encoding.qll rename to ql/lib/semmle/go/frameworks/Encoding.qll diff --git a/ql/src/semmle/go/frameworks/EvanphxJsonPatch.qll b/ql/lib/semmle/go/frameworks/EvanphxJsonPatch.qll similarity index 100% rename from ql/src/semmle/go/frameworks/EvanphxJsonPatch.qll rename to ql/lib/semmle/go/frameworks/EvanphxJsonPatch.qll diff --git a/ql/src/semmle/go/frameworks/Gin.qll b/ql/lib/semmle/go/frameworks/Gin.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Gin.qll rename to ql/lib/semmle/go/frameworks/Gin.qll diff --git a/ql/src/semmle/go/frameworks/Glog.qll b/ql/lib/semmle/go/frameworks/Glog.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Glog.qll rename to ql/lib/semmle/go/frameworks/Glog.qll diff --git a/ql/src/semmle/go/frameworks/GoKit.qll b/ql/lib/semmle/go/frameworks/GoKit.qll similarity index 100% rename from ql/src/semmle/go/frameworks/GoKit.qll rename to ql/lib/semmle/go/frameworks/GoKit.qll diff --git a/ql/src/semmle/go/frameworks/GoRestfulHttp.qll b/ql/lib/semmle/go/frameworks/GoRestfulHttp.qll similarity index 100% rename from ql/src/semmle/go/frameworks/GoRestfulHttp.qll rename to ql/lib/semmle/go/frameworks/GoRestfulHttp.qll diff --git a/ql/src/semmle/go/frameworks/K8sIoApiCoreV1.qll b/ql/lib/semmle/go/frameworks/K8sIoApiCoreV1.qll similarity index 100% rename from ql/src/semmle/go/frameworks/K8sIoApiCoreV1.qll rename to ql/lib/semmle/go/frameworks/K8sIoApiCoreV1.qll diff --git a/ql/src/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll b/ql/lib/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll similarity index 100% rename from ql/src/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll rename to ql/lib/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll diff --git a/ql/src/semmle/go/frameworks/K8sIoClientGo.qll b/ql/lib/semmle/go/frameworks/K8sIoClientGo.qll similarity index 100% rename from ql/src/semmle/go/frameworks/K8sIoClientGo.qll rename to ql/lib/semmle/go/frameworks/K8sIoClientGo.qll diff --git a/ql/src/semmle/go/frameworks/Logrus.qll b/ql/lib/semmle/go/frameworks/Logrus.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Logrus.qll rename to ql/lib/semmle/go/frameworks/Logrus.qll diff --git a/ql/src/semmle/go/frameworks/Macaron.qll b/ql/lib/semmle/go/frameworks/Macaron.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Macaron.qll rename to ql/lib/semmle/go/frameworks/Macaron.qll diff --git a/ql/src/semmle/go/frameworks/Mux.qll b/ql/lib/semmle/go/frameworks/Mux.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Mux.qll rename to ql/lib/semmle/go/frameworks/Mux.qll diff --git a/ql/src/semmle/go/frameworks/NoSQL.qll b/ql/lib/semmle/go/frameworks/NoSQL.qll similarity index 100% rename from ql/src/semmle/go/frameworks/NoSQL.qll rename to ql/lib/semmle/go/frameworks/NoSQL.qll diff --git a/ql/src/semmle/go/frameworks/Protobuf.qll b/ql/lib/semmle/go/frameworks/Protobuf.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Protobuf.qll rename to ql/lib/semmle/go/frameworks/Protobuf.qll diff --git a/ql/src/semmle/go/frameworks/Revel.qll b/ql/lib/semmle/go/frameworks/Revel.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Revel.qll rename to ql/lib/semmle/go/frameworks/Revel.qll diff --git a/ql/src/semmle/go/frameworks/SQL.qll b/ql/lib/semmle/go/frameworks/SQL.qll similarity index 100% rename from ql/src/semmle/go/frameworks/SQL.qll rename to ql/lib/semmle/go/frameworks/SQL.qll diff --git a/ql/src/semmle/go/frameworks/Spew.qll b/ql/lib/semmle/go/frameworks/Spew.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Spew.qll rename to ql/lib/semmle/go/frameworks/Spew.qll diff --git a/ql/src/semmle/go/frameworks/Stdlib.qll b/ql/lib/semmle/go/frameworks/Stdlib.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Stdlib.qll rename to ql/lib/semmle/go/frameworks/Stdlib.qll diff --git a/ql/src/semmle/go/frameworks/SystemCommandExecutors.qll b/ql/lib/semmle/go/frameworks/SystemCommandExecutors.qll similarity index 100% rename from ql/src/semmle/go/frameworks/SystemCommandExecutors.qll rename to ql/lib/semmle/go/frameworks/SystemCommandExecutors.qll diff --git a/ql/src/semmle/go/frameworks/Testing.qll b/ql/lib/semmle/go/frameworks/Testing.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Testing.qll rename to ql/lib/semmle/go/frameworks/Testing.qll diff --git a/ql/src/semmle/go/frameworks/WebSocket.qll b/ql/lib/semmle/go/frameworks/WebSocket.qll similarity index 100% rename from ql/src/semmle/go/frameworks/WebSocket.qll rename to ql/lib/semmle/go/frameworks/WebSocket.qll diff --git a/ql/src/semmle/go/frameworks/XNetHtml.qll b/ql/lib/semmle/go/frameworks/XNetHtml.qll similarity index 100% rename from ql/src/semmle/go/frameworks/XNetHtml.qll rename to ql/lib/semmle/go/frameworks/XNetHtml.qll diff --git a/ql/src/semmle/go/frameworks/XPath.qll b/ql/lib/semmle/go/frameworks/XPath.qll similarity index 100% rename from ql/src/semmle/go/frameworks/XPath.qll rename to ql/lib/semmle/go/frameworks/XPath.qll diff --git a/ql/src/semmle/go/frameworks/Yaml.qll b/ql/lib/semmle/go/frameworks/Yaml.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Yaml.qll rename to ql/lib/semmle/go/frameworks/Yaml.qll diff --git a/ql/src/semmle/go/frameworks/Zap.qll b/ql/lib/semmle/go/frameworks/Zap.qll similarity index 100% rename from ql/src/semmle/go/frameworks/Zap.qll rename to ql/lib/semmle/go/frameworks/Zap.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/ArchiveTar.qll b/ql/lib/semmle/go/frameworks/stdlib/ArchiveTar.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/ArchiveTar.qll rename to ql/lib/semmle/go/frameworks/stdlib/ArchiveTar.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/ArchiveZip.qll b/ql/lib/semmle/go/frameworks/stdlib/ArchiveZip.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/ArchiveZip.qll rename to ql/lib/semmle/go/frameworks/stdlib/ArchiveZip.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Bufio.qll b/ql/lib/semmle/go/frameworks/stdlib/Bufio.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Bufio.qll rename to ql/lib/semmle/go/frameworks/stdlib/Bufio.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Bytes.qll b/ql/lib/semmle/go/frameworks/stdlib/Bytes.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Bytes.qll rename to ql/lib/semmle/go/frameworks/stdlib/Bytes.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/CompressBzip2.qll b/ql/lib/semmle/go/frameworks/stdlib/CompressBzip2.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/CompressBzip2.qll rename to ql/lib/semmle/go/frameworks/stdlib/CompressBzip2.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/CompressFlate.qll b/ql/lib/semmle/go/frameworks/stdlib/CompressFlate.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/CompressFlate.qll rename to ql/lib/semmle/go/frameworks/stdlib/CompressFlate.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/CompressGzip.qll b/ql/lib/semmle/go/frameworks/stdlib/CompressGzip.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/CompressGzip.qll rename to ql/lib/semmle/go/frameworks/stdlib/CompressGzip.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/CompressLzw.qll b/ql/lib/semmle/go/frameworks/stdlib/CompressLzw.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/CompressLzw.qll rename to ql/lib/semmle/go/frameworks/stdlib/CompressLzw.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/CompressZlib.qll b/ql/lib/semmle/go/frameworks/stdlib/CompressZlib.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/CompressZlib.qll rename to ql/lib/semmle/go/frameworks/stdlib/CompressZlib.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/ContainerHeap.qll b/ql/lib/semmle/go/frameworks/stdlib/ContainerHeap.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/ContainerHeap.qll rename to ql/lib/semmle/go/frameworks/stdlib/ContainerHeap.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/ContainerList.qll b/ql/lib/semmle/go/frameworks/stdlib/ContainerList.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/ContainerList.qll rename to ql/lib/semmle/go/frameworks/stdlib/ContainerList.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/ContainerRing.qll b/ql/lib/semmle/go/frameworks/stdlib/ContainerRing.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/ContainerRing.qll rename to ql/lib/semmle/go/frameworks/stdlib/ContainerRing.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Context.qll b/ql/lib/semmle/go/frameworks/stdlib/Context.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Context.qll rename to ql/lib/semmle/go/frameworks/stdlib/Context.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Crypto.qll b/ql/lib/semmle/go/frameworks/stdlib/Crypto.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Crypto.qll rename to ql/lib/semmle/go/frameworks/stdlib/Crypto.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/CryptoCipher.qll b/ql/lib/semmle/go/frameworks/stdlib/CryptoCipher.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/CryptoCipher.qll rename to ql/lib/semmle/go/frameworks/stdlib/CryptoCipher.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/CryptoRsa.qll b/ql/lib/semmle/go/frameworks/stdlib/CryptoRsa.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/CryptoRsa.qll rename to ql/lib/semmle/go/frameworks/stdlib/CryptoRsa.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/CryptoTls.qll b/ql/lib/semmle/go/frameworks/stdlib/CryptoTls.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/CryptoTls.qll rename to ql/lib/semmle/go/frameworks/stdlib/CryptoTls.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/CryptoX509.qll b/ql/lib/semmle/go/frameworks/stdlib/CryptoX509.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/CryptoX509.qll rename to ql/lib/semmle/go/frameworks/stdlib/CryptoX509.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/DatabaseSql.qll b/ql/lib/semmle/go/frameworks/stdlib/DatabaseSql.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/DatabaseSql.qll rename to ql/lib/semmle/go/frameworks/stdlib/DatabaseSql.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Encoding.qll b/ql/lib/semmle/go/frameworks/stdlib/Encoding.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Encoding.qll rename to ql/lib/semmle/go/frameworks/stdlib/Encoding.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingAscii85.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingAscii85.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingAscii85.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingAscii85.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingAsn1.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingAsn1.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingAsn1.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingAsn1.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingBase32.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingBase32.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingBase32.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingBase32.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingBase64.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingBase64.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingBase64.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingBase64.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingBinary.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingBinary.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingBinary.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingBinary.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingCsv.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingCsv.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingCsv.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingCsv.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingGob.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingGob.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingGob.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingGob.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingHex.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingHex.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingHex.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingHex.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingJson.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingJson.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingJson.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingJson.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingPem.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingPem.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingPem.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingPem.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/EncodingXml.qll b/ql/lib/semmle/go/frameworks/stdlib/EncodingXml.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/EncodingXml.qll rename to ql/lib/semmle/go/frameworks/stdlib/EncodingXml.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Errors.qll b/ql/lib/semmle/go/frameworks/stdlib/Errors.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Errors.qll rename to ql/lib/semmle/go/frameworks/stdlib/Errors.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Expvar.qll b/ql/lib/semmle/go/frameworks/stdlib/Expvar.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Expvar.qll rename to ql/lib/semmle/go/frameworks/stdlib/Expvar.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Fmt.qll b/ql/lib/semmle/go/frameworks/stdlib/Fmt.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Fmt.qll rename to ql/lib/semmle/go/frameworks/stdlib/Fmt.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Html.qll b/ql/lib/semmle/go/frameworks/stdlib/Html.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Html.qll rename to ql/lib/semmle/go/frameworks/stdlib/Html.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/HtmlTemplate.qll b/ql/lib/semmle/go/frameworks/stdlib/HtmlTemplate.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/HtmlTemplate.qll rename to ql/lib/semmle/go/frameworks/stdlib/HtmlTemplate.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Io.qll b/ql/lib/semmle/go/frameworks/stdlib/Io.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Io.qll rename to ql/lib/semmle/go/frameworks/stdlib/Io.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/IoFs.qll b/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/IoFs.qll rename to ql/lib/semmle/go/frameworks/stdlib/IoFs.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/IoIoutil.qll b/ql/lib/semmle/go/frameworks/stdlib/IoIoutil.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/IoIoutil.qll rename to ql/lib/semmle/go/frameworks/stdlib/IoIoutil.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Log.qll b/ql/lib/semmle/go/frameworks/stdlib/Log.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Log.qll rename to ql/lib/semmle/go/frameworks/stdlib/Log.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Mime.qll b/ql/lib/semmle/go/frameworks/stdlib/Mime.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Mime.qll rename to ql/lib/semmle/go/frameworks/stdlib/Mime.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/MimeMultipart.qll b/ql/lib/semmle/go/frameworks/stdlib/MimeMultipart.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/MimeMultipart.qll rename to ql/lib/semmle/go/frameworks/stdlib/MimeMultipart.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/MimeQuotedprintable.qll b/ql/lib/semmle/go/frameworks/stdlib/MimeQuotedprintable.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/MimeQuotedprintable.qll rename to ql/lib/semmle/go/frameworks/stdlib/MimeQuotedprintable.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Net.qll b/ql/lib/semmle/go/frameworks/stdlib/Net.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Net.qll rename to ql/lib/semmle/go/frameworks/stdlib/Net.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/NetHttp.qll b/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/NetHttp.qll rename to ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/NetHttpHttputil.qll b/ql/lib/semmle/go/frameworks/stdlib/NetHttpHttputil.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/NetHttpHttputil.qll rename to ql/lib/semmle/go/frameworks/stdlib/NetHttpHttputil.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/NetMail.qll b/ql/lib/semmle/go/frameworks/stdlib/NetMail.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/NetMail.qll rename to ql/lib/semmle/go/frameworks/stdlib/NetMail.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/NetTextproto.qll b/ql/lib/semmle/go/frameworks/stdlib/NetTextproto.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/NetTextproto.qll rename to ql/lib/semmle/go/frameworks/stdlib/NetTextproto.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Os.qll b/ql/lib/semmle/go/frameworks/stdlib/Os.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Os.qll rename to ql/lib/semmle/go/frameworks/stdlib/Os.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Path.qll b/ql/lib/semmle/go/frameworks/stdlib/Path.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Path.qll rename to ql/lib/semmle/go/frameworks/stdlib/Path.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/PathFilepath.qll b/ql/lib/semmle/go/frameworks/stdlib/PathFilepath.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/PathFilepath.qll rename to ql/lib/semmle/go/frameworks/stdlib/PathFilepath.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Reflect.qll b/ql/lib/semmle/go/frameworks/stdlib/Reflect.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Reflect.qll rename to ql/lib/semmle/go/frameworks/stdlib/Reflect.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Regexp.qll b/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Regexp.qll rename to ql/lib/semmle/go/frameworks/stdlib/Regexp.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Sort.qll b/ql/lib/semmle/go/frameworks/stdlib/Sort.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Sort.qll rename to ql/lib/semmle/go/frameworks/stdlib/Sort.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Strconv.qll b/ql/lib/semmle/go/frameworks/stdlib/Strconv.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Strconv.qll rename to ql/lib/semmle/go/frameworks/stdlib/Strconv.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Strings.qll b/ql/lib/semmle/go/frameworks/stdlib/Strings.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Strings.qll rename to ql/lib/semmle/go/frameworks/stdlib/Strings.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Sync.qll b/ql/lib/semmle/go/frameworks/stdlib/Sync.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Sync.qll rename to ql/lib/semmle/go/frameworks/stdlib/Sync.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/SyncAtomic.qll b/ql/lib/semmle/go/frameworks/stdlib/SyncAtomic.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/SyncAtomic.qll rename to ql/lib/semmle/go/frameworks/stdlib/SyncAtomic.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/Syscall.qll b/ql/lib/semmle/go/frameworks/stdlib/Syscall.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/Syscall.qll rename to ql/lib/semmle/go/frameworks/stdlib/Syscall.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/TextScanner.qll b/ql/lib/semmle/go/frameworks/stdlib/TextScanner.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/TextScanner.qll rename to ql/lib/semmle/go/frameworks/stdlib/TextScanner.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/TextTabwriter.qll b/ql/lib/semmle/go/frameworks/stdlib/TextTabwriter.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/TextTabwriter.qll rename to ql/lib/semmle/go/frameworks/stdlib/TextTabwriter.qll diff --git a/ql/src/semmle/go/frameworks/stdlib/TextTemplate.qll b/ql/lib/semmle/go/frameworks/stdlib/TextTemplate.qll similarity index 100% rename from ql/src/semmle/go/frameworks/stdlib/TextTemplate.qll rename to ql/lib/semmle/go/frameworks/stdlib/TextTemplate.qll diff --git a/ql/src/semmle/go/security/AllocationSizeOverflow.qll b/ql/lib/semmle/go/security/AllocationSizeOverflow.qll similarity index 100% rename from ql/src/semmle/go/security/AllocationSizeOverflow.qll rename to ql/lib/semmle/go/security/AllocationSizeOverflow.qll diff --git a/ql/src/semmle/go/security/AllocationSizeOverflowCustomizations.qll b/ql/lib/semmle/go/security/AllocationSizeOverflowCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/AllocationSizeOverflowCustomizations.qll rename to ql/lib/semmle/go/security/AllocationSizeOverflowCustomizations.qll diff --git a/ql/src/semmle/go/security/CleartextLogging.qll b/ql/lib/semmle/go/security/CleartextLogging.qll similarity index 100% rename from ql/src/semmle/go/security/CleartextLogging.qll rename to ql/lib/semmle/go/security/CleartextLogging.qll diff --git a/ql/src/semmle/go/security/CleartextLoggingCustomizations.qll b/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/CleartextLoggingCustomizations.qll rename to ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll diff --git a/ql/src/semmle/go/security/CommandInjection.qll b/ql/lib/semmle/go/security/CommandInjection.qll similarity index 100% rename from ql/src/semmle/go/security/CommandInjection.qll rename to ql/lib/semmle/go/security/CommandInjection.qll diff --git a/ql/src/semmle/go/security/CommandInjectionCustomizations.qll b/ql/lib/semmle/go/security/CommandInjectionCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/CommandInjectionCustomizations.qll rename to ql/lib/semmle/go/security/CommandInjectionCustomizations.qll diff --git a/ql/src/semmle/go/security/ExternalAPIs.qll b/ql/lib/semmle/go/security/ExternalAPIs.qll similarity index 100% rename from ql/src/semmle/go/security/ExternalAPIs.qll rename to ql/lib/semmle/go/security/ExternalAPIs.qll diff --git a/ql/src/semmle/go/security/FlowSources.qll b/ql/lib/semmle/go/security/FlowSources.qll similarity index 100% rename from ql/src/semmle/go/security/FlowSources.qll rename to ql/lib/semmle/go/security/FlowSources.qll diff --git a/ql/src/semmle/go/security/InsecureFeatureFlag.qll b/ql/lib/semmle/go/security/InsecureFeatureFlag.qll similarity index 100% rename from ql/src/semmle/go/security/InsecureFeatureFlag.qll rename to ql/lib/semmle/go/security/InsecureFeatureFlag.qll diff --git a/ql/src/semmle/go/security/InsecureRandomness.qll b/ql/lib/semmle/go/security/InsecureRandomness.qll similarity index 100% rename from ql/src/semmle/go/security/InsecureRandomness.qll rename to ql/lib/semmle/go/security/InsecureRandomness.qll diff --git a/ql/src/semmle/go/security/InsecureRandomnessCustomizations.qll b/ql/lib/semmle/go/security/InsecureRandomnessCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/InsecureRandomnessCustomizations.qll rename to ql/lib/semmle/go/security/InsecureRandomnessCustomizations.qll diff --git a/ql/src/semmle/go/security/OpenUrlRedirect.qll b/ql/lib/semmle/go/security/OpenUrlRedirect.qll similarity index 100% rename from ql/src/semmle/go/security/OpenUrlRedirect.qll rename to ql/lib/semmle/go/security/OpenUrlRedirect.qll diff --git a/ql/src/semmle/go/security/OpenUrlRedirectCustomizations.qll b/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/OpenUrlRedirectCustomizations.qll rename to ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll diff --git a/ql/src/semmle/go/security/ReflectedXss.qll b/ql/lib/semmle/go/security/ReflectedXss.qll similarity index 100% rename from ql/src/semmle/go/security/ReflectedXss.qll rename to ql/lib/semmle/go/security/ReflectedXss.qll diff --git a/ql/src/semmle/go/security/ReflectedXssCustomizations.qll b/ql/lib/semmle/go/security/ReflectedXssCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/ReflectedXssCustomizations.qll rename to ql/lib/semmle/go/security/ReflectedXssCustomizations.qll diff --git a/ql/src/semmle/go/security/RequestForgery.qll b/ql/lib/semmle/go/security/RequestForgery.qll similarity index 100% rename from ql/src/semmle/go/security/RequestForgery.qll rename to ql/lib/semmle/go/security/RequestForgery.qll diff --git a/ql/src/semmle/go/security/RequestForgeryCustomizations.qll b/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/RequestForgeryCustomizations.qll rename to ql/lib/semmle/go/security/RequestForgeryCustomizations.qll diff --git a/ql/src/semmle/go/security/SafeUrlFlow.qll b/ql/lib/semmle/go/security/SafeUrlFlow.qll similarity index 100% rename from ql/src/semmle/go/security/SafeUrlFlow.qll rename to ql/lib/semmle/go/security/SafeUrlFlow.qll diff --git a/ql/src/semmle/go/security/SafeUrlFlowCustomizations.qll b/ql/lib/semmle/go/security/SafeUrlFlowCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/SafeUrlFlowCustomizations.qll rename to ql/lib/semmle/go/security/SafeUrlFlowCustomizations.qll diff --git a/ql/src/semmle/go/security/SensitiveActions.qll b/ql/lib/semmle/go/security/SensitiveActions.qll similarity index 100% rename from ql/src/semmle/go/security/SensitiveActions.qll rename to ql/lib/semmle/go/security/SensitiveActions.qll diff --git a/ql/src/semmle/go/security/SqlInjection.qll b/ql/lib/semmle/go/security/SqlInjection.qll similarity index 100% rename from ql/src/semmle/go/security/SqlInjection.qll rename to ql/lib/semmle/go/security/SqlInjection.qll diff --git a/ql/src/semmle/go/security/SqlInjectionCustomizations.qll b/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/SqlInjectionCustomizations.qll rename to ql/lib/semmle/go/security/SqlInjectionCustomizations.qll diff --git a/ql/src/semmle/go/security/StoredCommand.qll b/ql/lib/semmle/go/security/StoredCommand.qll similarity index 100% rename from ql/src/semmle/go/security/StoredCommand.qll rename to ql/lib/semmle/go/security/StoredCommand.qll diff --git a/ql/src/semmle/go/security/StoredXss.qll b/ql/lib/semmle/go/security/StoredXss.qll similarity index 100% rename from ql/src/semmle/go/security/StoredXss.qll rename to ql/lib/semmle/go/security/StoredXss.qll diff --git a/ql/src/semmle/go/security/StoredXssCustomizations.qll b/ql/lib/semmle/go/security/StoredXssCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/StoredXssCustomizations.qll rename to ql/lib/semmle/go/security/StoredXssCustomizations.qll diff --git a/ql/src/semmle/go/security/StringBreak.qll b/ql/lib/semmle/go/security/StringBreak.qll similarity index 100% rename from ql/src/semmle/go/security/StringBreak.qll rename to ql/lib/semmle/go/security/StringBreak.qll diff --git a/ql/src/semmle/go/security/StringBreakCustomizations.qll b/ql/lib/semmle/go/security/StringBreakCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/StringBreakCustomizations.qll rename to ql/lib/semmle/go/security/StringBreakCustomizations.qll diff --git a/ql/src/semmle/go/security/TaintedPath.qll b/ql/lib/semmle/go/security/TaintedPath.qll similarity index 100% rename from ql/src/semmle/go/security/TaintedPath.qll rename to ql/lib/semmle/go/security/TaintedPath.qll diff --git a/ql/src/semmle/go/security/TaintedPathCustomizations.qll b/ql/lib/semmle/go/security/TaintedPathCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/TaintedPathCustomizations.qll rename to ql/lib/semmle/go/security/TaintedPathCustomizations.qll diff --git a/ql/src/semmle/go/security/UnsafeUnzipSymlink.qll b/ql/lib/semmle/go/security/UnsafeUnzipSymlink.qll similarity index 100% rename from ql/src/semmle/go/security/UnsafeUnzipSymlink.qll rename to ql/lib/semmle/go/security/UnsafeUnzipSymlink.qll diff --git a/ql/src/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll b/ql/lib/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll rename to ql/lib/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll diff --git a/ql/src/semmle/go/security/UrlConcatenation.qll b/ql/lib/semmle/go/security/UrlConcatenation.qll similarity index 100% rename from ql/src/semmle/go/security/UrlConcatenation.qll rename to ql/lib/semmle/go/security/UrlConcatenation.qll diff --git a/ql/src/semmle/go/security/XPathInjection.qll b/ql/lib/semmle/go/security/XPathInjection.qll similarity index 100% rename from ql/src/semmle/go/security/XPathInjection.qll rename to ql/lib/semmle/go/security/XPathInjection.qll diff --git a/ql/src/semmle/go/security/XPathInjectionCustomizations.qll b/ql/lib/semmle/go/security/XPathInjectionCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/XPathInjectionCustomizations.qll rename to ql/lib/semmle/go/security/XPathInjectionCustomizations.qll diff --git a/ql/src/semmle/go/security/Xss.qll b/ql/lib/semmle/go/security/Xss.qll similarity index 100% rename from ql/src/semmle/go/security/Xss.qll rename to ql/lib/semmle/go/security/Xss.qll diff --git a/ql/src/semmle/go/security/ZipSlip.qll b/ql/lib/semmle/go/security/ZipSlip.qll similarity index 100% rename from ql/src/semmle/go/security/ZipSlip.qll rename to ql/lib/semmle/go/security/ZipSlip.qll diff --git a/ql/src/semmle/go/security/ZipSlipCustomizations.qll b/ql/lib/semmle/go/security/ZipSlipCustomizations.qll similarity index 100% rename from ql/src/semmle/go/security/ZipSlipCustomizations.qll rename to ql/lib/semmle/go/security/ZipSlipCustomizations.qll diff --git a/ql/src/xml.dbscheme b/ql/lib/xml.dbscheme similarity index 100% rename from ql/src/xml.dbscheme rename to ql/lib/xml.dbscheme From 12bb6728d10fe2657cc5865d2ef88cc59107ac16 Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Mon, 23 Aug 2021 12:39:20 -0400 Subject: [PATCH 05/13] Fix dependencies for Go test pack --- ql/test/qlpack.lock.yml | 6 ++++++ ql/test/qlpack.yml | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 ql/test/qlpack.lock.yml diff --git a/ql/test/qlpack.lock.yml b/ql/test/qlpack.lock.yml new file mode 100644 index 00000000000..0bef0f691a9 --- /dev/null +++ b/ql/test/qlpack.lock.yml @@ -0,0 +1,6 @@ +--- +dependencies: + codeql/suite-helpers: + version: 0.0.2 +compiled: false +lockVersion: 1.0.0 diff --git a/ql/test/qlpack.yml b/ql/test/qlpack.yml index e22a916d5c4..66df0276b03 100644 --- a/ql/test/qlpack.yml +++ b/ql/test/qlpack.yml @@ -1,6 +1,6 @@ -name: codeql-go-tests -version: 0.0.0 -libraryPathDependencies: - - codeql-go - - codeql-go-examples +name: codeql/go-tests +version: 0.0.2 +dependencies: + codeql/go-queries: ^0.0.2 + codeql/go-all: ^0.0.2 extractor: go From 3165b8dec179afa95aa661407d6c4e5a5ec35749 Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Mon, 23 Aug 2021 17:36:19 -0400 Subject: [PATCH 06/13] Script to run `codeql pack install` --- scripts/install-deps.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 scripts/install-deps.sh diff --git a/scripts/install-deps.sh b/scripts/install-deps.sh new file mode 100644 index 00000000000..ab0094ccae5 --- /dev/null +++ b/scripts/install-deps.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Installs any necessary QL pack dependencies from the package registry. +# The optional argument must be a valid value for the `--mode` option to `codeql pack install` + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +GO_ROOT=$(dirname "$SCRIPT_DIR") + +if [ $# -eq 0 ]; then + LOCK_MODE="use-lock" +elif [ $# -eq 1 ]; then + LOCK_MODE=$1 +else + echo "Usage: install-deps.sh []" + echo " lock-mode: One of 'use-lock' (default), 'verify', 'update', or 'no-lock'" + exit 1 +fi + +codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/ql/src" +codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/ql/test" From 7c70745e52e3f3c73c5795c2b70ad352afa44c1f Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Mon, 23 Aug 2021 17:38:28 -0400 Subject: [PATCH 07/13] Build target to run `codeql pack install` --- .github/workflows/codeqltest.yml | 2 ++ Makefile | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/codeqltest.yml b/.github/workflows/codeqltest.yml index 0d9275a0f2e..cfff5eb3c56 100644 --- a/.github/workflows/codeqltest.yml +++ b/.github/workflows/codeqltest.yml @@ -98,6 +98,8 @@ jobs: test-win: name: Test Windows runs-on: windows-latest + env: + CODEQL_LOCK_MODE: verify steps: - name: Set up Go 1.17 uses: actions/setup-go@v1 diff --git a/Makefile b/Makefile index 486d07c8b6f..d384bf4bef1 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -all: extractor ql/lib/go.dbscheme +all: extractor ql/lib/go.dbscheme install-deps ifeq ($(OS),Windows_NT) EXE = .exe @@ -37,6 +37,9 @@ check-formatting: find ql -iregex '.*\.qll?' -print0 | xargs -0 codeql query format --check-only test -z "$$(find . -path '**/vendor' -prune -or -type f -iname '*.go' ! -empty -print0 | xargs -0 grep -L "//\s*autoformat-ignore" | xargs gofmt -l)" +install-deps: + scripts/install-deps.sh $(CODEQL_LOCK_MODE) + ifeq ($(QHELP_OUT_DIR),) # If not otherwise specified, compile qhelp to markdown in place QHELP_OUT_DIR := ql/src From a069fa6fda17759eaf3377ef00d810817d4c895a Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Mon, 23 Aug 2021 17:41:48 -0400 Subject: [PATCH 08/13] Make install script executable --- scripts/install-deps.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/install-deps.sh diff --git a/scripts/install-deps.sh b/scripts/install-deps.sh old mode 100644 new mode 100755 From bc9764fcde92f8bb7a7ee9eb085cbd7e2aeb420c Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Mon, 23 Aug 2021 18:12:29 -0400 Subject: [PATCH 09/13] Invoke `bash` explicitly for Windows --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d384bf4bef1..544bbc57b09 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ check-formatting: test -z "$$(find . -path '**/vendor' -prune -or -type f -iname '*.go' ! -empty -print0 | xargs -0 grep -L "//\s*autoformat-ignore" | xargs gofmt -l)" install-deps: - scripts/install-deps.sh $(CODEQL_LOCK_MODE) + bash scripts/install-deps.sh $(CODEQL_LOCK_MODE) ifeq ($(QHELP_OUT_DIR),) # If not otherwise specified, compile qhelp to markdown in place From bcaf218cd4f5f902222cb274fb6c7ffa654f3caf Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Mon, 23 Aug 2021 20:46:42 -0400 Subject: [PATCH 10/13] Update readme with workflow changes --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c36b8d200d9..6d778507ab9 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,11 @@ repository](https://github.com/github/codeql). ## Installation -Simply clone this repository. There are no external dependencies. +Clone this repository. + +Run `scripts/install-deps.sh`. This will ensure that the necessary external CodeQL packs are +downloaded to your machine. You will need to re-run this script whenever you pull new commits from +the repo. If you want to use the CodeQL extension for Visual Studio Code, import this repository into your VS Code workspace. From d82580647ea3c85fc14dbcc3db470867ef7499a6 Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Tue, 24 Aug 2021 05:40:21 -0400 Subject: [PATCH 11/13] Add reference to `codeql/go-examples` pack from test pack --- ql/test/qlpack.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ql/test/qlpack.yml b/ql/test/qlpack.yml index 66df0276b03..12006b13b99 100644 --- a/ql/test/qlpack.yml +++ b/ql/test/qlpack.yml @@ -3,4 +3,5 @@ version: 0.0.2 dependencies: codeql/go-queries: ^0.0.2 codeql/go-all: ^0.0.2 + codeql/go-examples: ^0.0.2 extractor: go From 590b4aac2acc5c2563c80a5c84f24a613a39295b Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Thu, 7 Oct 2021 11:00:15 -0400 Subject: [PATCH 12/13] Fix PR feedback --- Makefile | 2 +- scripts/install-deps.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 544bbc57b09..cae912bfba0 100644 --- a/Makefile +++ b/Makefile @@ -76,7 +76,7 @@ tools-win64: $(addsuffix .exe,$(addprefix tools/win64/,$(BINARIES))) $(addsuffix .exe,$(addprefix tools/win64/,$(BINARIES))): env GOOS=windows GOARCH=amd64 go build -mod=vendor -o $@ ./extractor/cli/$(basename $(@F)) -.PHONY: extractor-common extractor extractor-full +.PHONY: extractor-common extractor extractor-full install-deps extractor-common: codeql-extractor.yml LICENSE ql/lib/go.dbscheme \ tools/tokenizer.jar $(CODEQL_TOOLS) rm -rf $(EXTRACTOR_PACK_OUT) diff --git a/scripts/install-deps.sh b/scripts/install-deps.sh index ab0094ccae5..fcb58ed3f59 100755 --- a/scripts/install-deps.sh +++ b/scripts/install-deps.sh @@ -16,5 +16,8 @@ else exit 1 fi +codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/ql/lib" codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/ql/src" codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/ql/test" +codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/ql/examples" +codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/upgrades" From 3ea2152a86665919885544d9f4f21b8fdac87471 Mon Sep 17 00:00:00 2001 From: Dave Bartolomeo Date: Thu, 7 Oct 2021 11:35:42 -0400 Subject: [PATCH 13/13] Use a for loop --- scripts/install-deps.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/scripts/install-deps.sh b/scripts/install-deps.sh index fcb58ed3f59..6453847f60f 100755 --- a/scripts/install-deps.sh +++ b/scripts/install-deps.sh @@ -16,8 +16,7 @@ else exit 1 fi -codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/ql/lib" -codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/ql/src" -codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/ql/test" -codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/ql/examples" -codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/upgrades" +for d in ql/lib ql/src ql/test ql/examples upgrades +do + codeql pack install --mode ${LOCK_MODE} "${GO_ROOT}/${d}" +done \ No newline at end of file