<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://compusofia.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AVersion</id>
	<title>Module:Version - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://compusofia.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AVersion"/>
	<link rel="alternate" type="text/html" href="https://compusofia.com/w/index.php?title=Module:Version&amp;action=history"/>
	<updated>2026-04-19T05:07:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://compusofia.com/w/index.php?title=Module:Version&amp;diff=2564&amp;oldid=prev</id>
		<title>Majestix: 1 revision imported: Initial Setup</title>
		<link rel="alternate" type="text/html" href="https://compusofia.com/w/index.php?title=Module:Version&amp;diff=2564&amp;oldid=prev"/>
		<updated>2026-04-12T06:38:48Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported: Initial Setup&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:38, 12 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikiNonStop:diff:1.41:old-2563:rev-2564 --&gt;
&lt;/table&gt;</summary>
		<author><name>Majestix</name></author>
	</entry>
	<entry>
		<id>https://compusofia.com/w/index.php?title=Module:Version&amp;diff=2563&amp;oldid=prev</id>
		<title>en&gt;Reedy: april fools!</title>
		<link rel="alternate" type="text/html" href="https://compusofia.com/w/index.php?title=Module:Version&amp;diff=2563&amp;oldid=prev"/>
		<updated>2026-04-01T13:10:51Z</updated>

		<summary type="html">&lt;p&gt;april fools!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local releases = {}&lt;br /&gt;
&lt;br /&gt;
-- HEY YOU, UPDATE THESE&lt;br /&gt;
releases[&amp;quot;1.45.3&amp;quot;] = &amp;quot;2026-04-01&amp;quot;&lt;br /&gt;
releases[&amp;quot;1.44.5&amp;quot;] = &amp;quot;2026-04-01&amp;quot;&lt;br /&gt;
releases[&amp;quot;1.43.8&amp;quot;] = &amp;quot;2026-04-01&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- Is there a beta branch that isn&amp;#039;t a proper release yet?&lt;br /&gt;
p.isthereabeta = false&lt;br /&gt;
-- OKAY YOU CAN STOP NOW&lt;br /&gt;
&lt;br /&gt;
-- Iterate in reverse&lt;br /&gt;
-- from http://lua-users.org/wiki/IteratorsTutorial&lt;br /&gt;
function ripairs(t)&lt;br /&gt;
  local function ripairs_it(t,i)&lt;br /&gt;
    i=i-1&lt;br /&gt;
    local v=t[i]&lt;br /&gt;
    if v==nil then return v end&lt;br /&gt;
    return i,v&lt;br /&gt;
  end&lt;br /&gt;
  return ripairs_it, t, #t+1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.releases = releases&lt;br /&gt;
&lt;br /&gt;
-- get trimmed version like &amp;quot;1.XX&amp;quot;&lt;br /&gt;
function p.branch( version )&lt;br /&gt;
	return string.sub(version, 0,4)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- git branch like REL1_XX&lt;br /&gt;
function p.git_branch( version )&lt;br /&gt;
	return &amp;quot;REL1_&amp;quot; .. string.sub(p.branch(version), 3)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- is the given version an LTS release?&lt;br /&gt;
function p.islts( version )&lt;br /&gt;
	-- if we ever cut a 2.x release this will need to be rethought&lt;br /&gt;
	local x = tonumber(string.sub(p.branch( version ), 3))&lt;br /&gt;
	if x &amp;lt; 19 then return false end&lt;br /&gt;
	-- every 4th release starting with 1.19 is an LTS&lt;br /&gt;
	return ((x - 19) % 4) == 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.get( frame )&lt;br /&gt;
	return p.version( frame.args[1], frame.args[2] )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- main function&lt;br /&gt;
-- release: stable, legacy, legacylts, lts, alpha&lt;br /&gt;
-- format: version, branch, git, date&lt;br /&gt;
function p.version( release, format )&lt;br /&gt;
	local versions = {}&lt;br /&gt;
	for k,v in pairs(p.releases) do&lt;br /&gt;
		table.insert(versions,k)&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(versions)&lt;br /&gt;
	--mw.logObject(versions)&lt;br /&gt;
	--mw.log(#versions)&lt;br /&gt;
	local version = &amp;quot;0.0.0&amp;quot;&lt;br /&gt;
	if release == &amp;quot;stable&amp;quot; then&lt;br /&gt;
		version = versions[#versions]&lt;br /&gt;
	elseif release == &amp;quot;legacy&amp;quot; then&lt;br /&gt;
		version = versions[#versions-1]&lt;br /&gt;
	elseif release == &amp;quot;lts&amp;quot; then&lt;br /&gt;
		for i,v in ipairs(versions) do&lt;br /&gt;
			-- this might not be right.&lt;br /&gt;
			if p.islts(v) then&lt;br /&gt;
				version = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif release == &amp;quot;legacylts&amp;quot; then&lt;br /&gt;
		-- the oldest LTS version is the legacy LTS version.&lt;br /&gt;
		-- (e.g. when there are both 1.23.x and 1.27.x releases, choose 1.23.x)&lt;br /&gt;
		for i,v in ripairs(versions) do&lt;br /&gt;
			if p.islts(v) then&lt;br /&gt;
				version = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif (release == &amp;quot;alpha&amp;quot; or release == &amp;quot;beta&amp;quot;) then&lt;br /&gt;
		-- alpha and beta only works with &amp;quot;branch&amp;quot; output&lt;br /&gt;
		&lt;br /&gt;
		version_parts = mw.text.split(p.branch(versions[#versions]), &amp;quot;.&amp;quot;, true)&lt;br /&gt;
		version_parts[2] = tonumber(version_parts[2])+1&lt;br /&gt;
		&lt;br /&gt;
		if (p.isthereabeta and release == &amp;quot;alpha&amp;quot;) then&lt;br /&gt;
			version_parts[2] = tonumber(version_parts[2]) + 1&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		version = table.concat(version_parts, &amp;quot;.&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		if (not p.isthereabeta and release == &amp;quot;beta&amp;quot;) then&lt;br /&gt;
			version = &amp;quot;—&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local out = &amp;quot;WRONG&amp;quot;&lt;br /&gt;
	if format == &amp;quot;version&amp;quot; then&lt;br /&gt;
		out = version&lt;br /&gt;
	elseif format == &amp;quot;branch&amp;quot; then&lt;br /&gt;
		out = p.branch( version )&lt;br /&gt;
	elseif format == &amp;quot;git&amp;quot; then&lt;br /&gt;
		out = p.git_branch( version )&lt;br /&gt;
	elseif format == &amp;quot;date&amp;quot; then&lt;br /&gt;
		out = p.releases[version]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>en&gt;Reedy</name></author>
	</entry>
</feed>