Skip to content

Commit

Permalink
Runtime: Include submodule hashes in the CLI help text
Browse files Browse the repository at this point in the history
This should help identify issues with the embedded libraries more easily. The version tags themselves aren't always accurate if using HEAD.
  • Loading branch information
Duckwhale committed Jan 21, 2024
1 parent f852d73 commit 90057f6
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 18 deletions.
22 changes: 22 additions & 0 deletions Runtime/evo.lua
Original file line number Diff line number Diff line change
Expand Up @@ -273,14 +273,36 @@ function evo.getVersionText()
"wgpu",
"zlib",
}
local submodulePaths = {
glfw = "deps/glfw/glfw",
labsound = "deps/LabSound/LabSound",
libuv = "deps/luvit/luv", -- Always tracks the libuv version
lpeg = "deps/roberto-ieru/LPeg",
miniz = "deps/richgel999/miniz",
rapidjson = "deps/xpol/lua-rapidjson",
openssl = "deps/openssl/openssl",
pcre2 = "deps/PCRE2Project/pcre2",
rml = "deps/mikke89/RmlUi",
stbi = "deps/nothings/stb",
stduuid = "deps/mariusbancila/stduuid",
uws = "deps/uNetworking/uWebSockets",
wgpu = "deps/gfx-rs/wgpu-native",
webview = "deps/webview/webview",
zlib = "deps/madler/zlib",
}

versionText = versionText .. "Embedded libraries:\n\n"
for index, libraryName in ipairs(embeddedLibraryVersions) do
local versionString = embeddedLibraryVersions[libraryName]
local submodulePath = submodulePaths[libraryName]
local commitHash = evo.embeddedLibraryVersions[submodulePath].commit
versionText = versionText
.. "\t"
.. transform.brightBlue(format("%-10s", libraryName))
.. "\t"
.. transform.brightBlue(versionString)
.. "\t\t"
.. format("%s", transform.brightBlue(commitHash))
.. "\n"
end

Expand Down
37 changes: 19 additions & 18 deletions Tests/BDD/evo-library.spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,32 @@ describe("evo", function()
local capturedOutput = console.release()
capturedOutput = transform.strip(capturedOutput)

local VERSION_PATTERN = "%d+.%d+.%d+"
local VERSION = "%d+.%d+.%d+"
local HASH = "[a-f0-9]+"
local WHITESPACE = "%s+"

local runtimeVersion = capturedOutput:match("This is Evo.lua v" .. VERSION_PATTERN)
local engineVersion = capturedOutput:match("powered by LuaJIT " .. VERSION_PATTERN)
local runtimeVersion = capturedOutput:match("This is Evo.lua v" .. VERSION)
local engineVersion = capturedOutput:match("powered by LuaJIT " .. VERSION)
local documentationLink = capturedOutput:match("https://evo%-lua%.github%.io/")

local hasRuntimeVersion = (runtimeVersion ~= nil)
local hasEngineVersion = (engineVersion ~= nil)
local hasEmbeddedLibraryVersions = {
glfw = (capturedOutput:match("glfw" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
labsound = (capturedOutput:match("labsound" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
libuv = (capturedOutput:match("libuv" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
lpeg = (capturedOutput:match("lpeg" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
miniz = (capturedOutput:match("miniz" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
rapidjson = (capturedOutput:match("rapidjson" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
openssl = (capturedOutput:match("openssl" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
pcre2 = (capturedOutput:match("pcre2" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
rml = (capturedOutput:match("rml" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
stbi = (capturedOutput:match("stbi" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
stduuid = (capturedOutput:match("stduuid" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
uws = (capturedOutput:match("uws" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
wgpu = (capturedOutput:match("wgpu" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
webview = (capturedOutput:match("webview" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
zlib = (capturedOutput:match("zlib" .. WHITESPACE .. VERSION_PATTERN) ~= nil),
glfw = (capturedOutput:match("glfw" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
labsound = (capturedOutput:match("labsound" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
libuv = (capturedOutput:match("libuv" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
lpeg = (capturedOutput:match("lpeg" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
miniz = (capturedOutput:match("miniz" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
rapidjson = (capturedOutput:match("rapidjson" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
openssl = (capturedOutput:match("openssl" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
pcre2 = (capturedOutput:match("pcre2" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
rml = (capturedOutput:match("rml" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
stbi = (capturedOutput:match("stbi" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
stduuid = (capturedOutput:match("stduuid" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
uws = (capturedOutput:match("uws" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
wgpu = (capturedOutput:match("wgpu" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
webview = (capturedOutput:match("webview" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
zlib = (capturedOutput:match("zlib" .. WHITESPACE .. VERSION .. WHITESPACE .. HASH) ~= nil),
}
local hasDocumentationLink = (documentationLink ~= nil)

Expand Down

0 comments on commit 90057f6

Please sign in to comment.