Module:Sandbox/BDavis (WMF)/Version explained

local p = local releases =

-- HEY YOU, UPDATE THESEreleases["1.27.0"] = "2016-06-28"releases["1.26.3"] = "2016-05-20"releases["1.23.14"] = "2016-05-20"

-- Is there a beta branch that isn't a proper release yet?p.isthereabeta = false-- OKAY YOU CAN STOP NOW

-- Iterate a table in reverse-- from http://lua-users.org/wiki/IteratorsTutorialfunction ripairs(t) local function ripairs_it(t,i) i=i-1 local v=t[i] if v

nil then return v end return i,v end return ripairs_it, t, #t+1end

p.releases = releases

-- get trimmed version like "1.XX"function p.branch(version) return string.sub(version, 0,4)end

-- git branch like REL1_XXfunction p.git_branch(version) return "REL1_" .. string.sub(p.branch(version), 3)end

function p.islts(version) local branch = p.branch(version) -- yeah don't do this return branch

"1.19" or branch

"1.23" or branch

"1.27"end

function p.get(frame) return p.version(frame.args[1], frame.args[2])end

-- main function-- release: stable, legacy, lts, alpha-- format: version, branch, git, datefunction p.version(release, format) local versions = for k,v in pairs(p.releases) do table.insert(versions,k) end table.sort(versions) --mw.logObject(versions) --mw.log(#versions) local version = "0.0.0" if release

"stable" then version = versions[#versions] elseif release

"legacy" then version = versions[#versions-1] elseif release

"lts" then for i,v in ripairs(versions) do -- this might not be right. if p.islts(v) then version = v end end elseif release

"alpha" then -- alpha only works with "branch" output version = tonumber(p.branch(versions[#versions]))+0.01 if p.isthereabeta then version = version + 0.01 end version = tostring(version) end

local out = "WRONG" if format

"version" then out = version elseif format

"branch" then out = p.branch(version) elseif format

"git" then out = p.git_branch(version) elseif format

"date" then out = p.releases[version] end

return outend

return p