<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>https://soft.trung.fun/code/prosody/</link>
    <language>en-us</language>

    <title>prosody: .luacheckrc history</title>
    <description>.luacheckrc revision history</description>
    <item>
    <title>.luacheckrc: Ignore config files in spec/tls</title>
    <link>https://soft.trung.fun/code/prosody/log/b88f94aecfe3/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Ignore config files in spec/tls]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 03 Apr 2025 19:56:11 +0100</pubDate>
</item>
<item>
    <title>luacheck: Declare new config globals</title>
    <link>https://soft.trung.fun/code/prosody/log/23aef73f0cb0/.luacheckrc</link>
    <description><![CDATA[luacheck: Declare new config globals]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 18 Jan 2025 12:33:18 +0100</pubDate>
</item>
<item>
    <title>luacheckrc: Add module.ready()</title>
    <link>https://soft.trung.fun/code/prosody/log/7b632cd0e00d/.luacheckrc</link>
    <description><![CDATA[luacheckrc: Add module.ready()]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 10 Jan 2025 12:34:29 +0100</pubDate>
</item>
<item>
    <title>luacheckrc: Reorder module API methods  for consistency with prosody-modules</title>
    <link>https://soft.trung.fun/code/prosody/log/981bbe358771/.luacheckrc</link>
    <description><![CDATA[luacheckrc: Reorder module API methods  for consistency with prosody-modules<br/>
<br/>
Makes it easier to keep them in sync when the diff is smaller]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 10 Jan 2025 12:32:29 +0100</pubDate>
</item>
<item>
    <title>util.rfc6724: Remove, unused since introduction of Happy Eyeballs</title>
    <link>https://soft.trung.fun/code/prosody/log/581899aef96f/.luacheckrc</link>
    <description><![CDATA[util.rfc6724: Remove, unused since introduction of Happy Eyeballs<br/>
<br/>
It was mainly used to determine whether to try IPv6 or IPv4 first,<br/>
following the rules for this in the RFC.<br/>
<br/>
Now we always try IPv6 and IPv4 at roughly the same time, thus there no<br/>
need to carry these rules.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 22 Feb 2024 19:46:52 +0100</pubDate>
</item>
<item>
    <title>luacheckrc, mod_http_file_share: Update for module API change (once-&gt;on_ready)</title>
    <link>https://soft.trung.fun/code/prosody/log/11e66ad894f0/.luacheckrc</link>
    <description><![CDATA[luacheckrc, mod_http_file_share: Update for module API change (once-&gt;on_ready)]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 30 Nov 2023 10:14:17 +0000</pubDate>
</item>
<item>
    <title>.luacheckrc: Add module:could()</title>
    <link>https://soft.trung.fun/code/prosody/log/7bc1cabb3c6c/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Add module:could()]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 07 Nov 2023 11:56:15 +0000</pubDate>
</item>
<item>
    <title>lint: Teach luacheck about module:once</title>
    <link>https://soft.trung.fun/code/prosody/log/14bbfb2cc8dd/.luacheckrc</link>
    <description><![CDATA[lint: Teach luacheck about module:once<br/>
<br/>
Silence warning for using this introduced in 9c62ffbdf2ae]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 15 Oct 2023 16:43:14 +0200</pubDate>
</item>
<item>
    <title>moduleapi: Add :get_option_integer()</title>
    <link>https://soft.trung.fun/code/prosody/log/4d4f9e42bcf8/.luacheckrc</link>
    <description><![CDATA[moduleapi: Add :get_option_integer()<br/>
<br/>
Many options in Prosody that are treated as numbers don't make sense as<br/>
floats, e.g. sizes and limits measured in bytes.<br/>
<br/>
Simplified implementation based on an earlier attempt dating back to 2020]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 17 Jul 2023 00:09:41 +0200</pubDate>
</item>
<item>
    <title>core.moduleapi: Add :get_option_period for parsing time intervals</title>
    <link>https://soft.trung.fun/code/prosody/log/c9ef35fab0b1/.luacheckrc</link>
    <description><![CDATA[core.moduleapi: Add :get_option_period for parsing time intervals<br/>
<br/>
E.g. for use in mod_mam and others that take an amount of time before<br/>
some (usually cleanup) action is taken.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 16 Jul 2023 19:49:12 +0200</pubDate>
</item>
<item>
    <title>moduleapi: Add enum config option method</title>
    <link>https://soft.trung.fun/code/prosody/log/65fb0d7a2312/.luacheckrc</link>
    <description><![CDATA[moduleapi: Add enum config option method<br/>
<br/>
For when a setting has a few fixed values it can take]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 16 Jan 2021 20:40:14 +0100</pubDate>
</item>
<item>
    <title>luacheck: Remove long gone mod_storage_sql1 from excludes</title>
    <link>https://soft.trung.fun/code/prosody/log/330bfcaa5532/.luacheckrc</link>
    <description><![CDATA[luacheck: Remove long gone mod_storage_sql1 from excludes<br/>
<br/>
No point not checking a file that doesn't exist]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 19 Jan 2023 17:29:40 +0100</pubDate>
</item>
<item>
    <title>.luacheckrc: Add test_mutants.sh.lua to the ignore list</title>
    <link>https://soft.trung.fun/code/prosody/log/bde224616766/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Add test_mutants.sh.lua to the ignore list]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 11 Oct 2022 13:12:26 +0100</pubDate>
</item>
<item>
    <title>Switch to a new role-based authorization framework, removing is_admin()</title>
    <link>https://soft.trung.fun/code/prosody/log/9061f9621330/.luacheckrc</link>
    <description><![CDATA[Switch to a new role-based authorization framework, removing is_admin()<br/>
<br/>
We began moving away from simple &quot;is this user an admin?&quot; permission checks<br/>
before 0.12, with the introduction of mod_authz_internal and the ability to<br/>
dynamically change the roles of individual users.<br/>
<br/>
The approach in 0.12 still had various limitations however, and apart from<br/>
the introduction of roles other than &quot;admin&quot; and the ability to pull that info<br/>
from storage, not much actually changed.<br/>
<br/>
This new framework shakes things up a lot, though aims to maintain the same<br/>
functionality and behaviour on the surface for a default Prosody<br/>
configuration. That is, if you don't take advantage of any of the new<br/>
features, you shouldn't notice any change.<br/>
<br/>
The biggest change visible to developers is that usermanager.is_admin() (and<br/>
the auth provider is_admin() method) have been removed. Gone. Completely.<br/>
<br/>
Permission checks should now be performed using a new module API method:<br/>
<br/>
  module:may(action_name, context)<br/>
<br/>
This method accepts an action name, followed by either a JID (string) or<br/>
(preferably) a table containing 'origin'/'session' and 'stanza' fields (e.g.<br/>
the standard object passed to most events). It will return true if the action<br/>
should be permitted, or false/nil otherwise.<br/>
<br/>
Modules should no longer perform permission checks based on the role name.<br/>
E.g. a lot of code previously checked if the user's role was prosody:admin<br/>
before permitting some action. Since many roles might now exist with similar<br/>
permissions, and the permissions of prosody:admin may be redefined<br/>
dynamically, it is no longer suitable to use this method for permission<br/>
checks. Use module:may().<br/>
<br/>
If you start an action name with ':' (recommended) then the current module's<br/>
name will automatically be used as a prefix.<br/>
<br/>
To define a new permission, use the new module API:<br/>
<br/>
  module:default_permission(role_name, action_name)<br/>
  module:default_permissions(role_name, { action_name[, action_name...] })<br/>
<br/>
This grants the specified role permission to execute the named action(s) by<br/>
default. This may be overridden via other mechanisms external to your module.<br/>
<br/>
The built-in roles that developers should use are:<br/>
<br/>
 - prosody:user (normal user)<br/>
 - prosody:admin (host admin)<br/>
 - prosody:operator (global admin)<br/>
<br/>
The new prosody:operator role is intended for server-wide actions (such as<br/>
shutting down Prosody).<br/>
<br/>
Finally, all usage of is_admin() in modules has been fixed by this commit.<br/>
Some of these changes were trickier than others, but no change is expected to<br/>
break existing deployments.<br/>
<br/>
EXCEPT: mod_auth_ldap no longer supports the ldap_admin_filter option. It's<br/>
very possible nobody is using this, but if someone is then we can later update<br/>
it to pull roles from LDAP somehow.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 15 Jun 2022 12:15:01 +0100</pubDate>
</item>
<item>
    <title>luacheck: Set expected globals to Lua 5.4 + compat</title>
    <link>https://soft.trung.fun/code/prosody/log/1332c650400d/.luacheckrc</link>
    <description><![CDATA[luacheck: Set expected globals to Lua 5.4 + compat<br/>
<br/>
Requires luacheck 0.25.0]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 10 Jul 2022 16:10:29 +0200</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>https://soft.trung.fun/code/prosody/log/6abbf2dd2b14/.luacheckrc</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 08 Jul 2022 19:56:29 +0200</pubDate>
</item>
<item>
    <title>luacheck: Shut up (backports 3caff1f93520, ignores module deleted in trunk)</title>
    <link>https://soft.trung.fun/code/prosody/log/fb0bf0a0864f/.luacheckrc</link>
    <description><![CDATA[luacheck: Shut up (backports 3caff1f93520, ignores module deleted in trunk)]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 30 May 2022 17:34:58 +0200</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>https://soft.trung.fun/code/prosody/log/93bed323e361/.luacheckrc</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 08 Jul 2022 19:43:47 +0200</pubDate>
</item>
<item>
    <title>Backport 875f73ead4e8 8e4033213c62 to deal with luacheck 0.26</title>
    <link>https://soft.trung.fun/code/prosody/log/e72bb50456c4/.luacheckrc</link>
    <description><![CDATA[Backport 875f73ead4e8 8e4033213c62 to deal with luacheck 0.26]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 08 Jul 2022 19:42:48 +0200</pubDate>
</item>
<item>
    <title>luacheck: Ignore new warning about uses of `not (x == y)` and similar</title>
    <link>https://soft.trung.fun/code/prosody/log/875f73ead4e8/.luacheckrc</link>
    <description><![CDATA[luacheck: Ignore new warning about uses of `not (x == y)` and similar<br/>
<br/>
Added in luacheck 0.26.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 30 May 2022 17:12:58 +0200</pubDate>
</item>
<item>
    <title>luacheck: Ignore new warning about using variables prefixed with '_'</title>
    <link>https://soft.trung.fun/code/prosody/log/8e4033213c62/.luacheckrc</link>
    <description><![CDATA[luacheck: Ignore new warning about using variables prefixed with '_'<br/>
<br/>
luacheck 0.26 considers the _ prefix as a hint that the variable or<br/>
argument is unused, then warns if they are used despite this.<br/>
<br/>
We have several places where this prefix is used to avoid shadowing<br/>
another similarly named variable, resulting in many instances of this<br/>
warning.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 30 May 2022 16:49:52 +0200</pubDate>
</item>
<item>
    <title>mod_c2s,mod_s2s: Disable and close port listeners before closing sessions</title>
    <link>https://soft.trung.fun/code/prosody/log/cb459f8fa740/.luacheckrc</link>
    <description><![CDATA[mod_c2s,mod_s2s: Disable and close port listeners before closing sessions<br/>
<br/>
This ensures no new clients can start connecting during shutdown]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 11 Feb 2022 21:36:53 +0100</pubDate>
</item>
<item>
    <title>prosody: Expose main thread on the 'prosody' global</title>
    <link>https://soft.trung.fun/code/prosody/log/49ebac8a5260/.luacheckrc</link>
    <description><![CDATA[prosody: Expose main thread on the 'prosody' global<br/>
<br/>
To allow running things in it.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 06 Oct 2021 14:49:26 +0200</pubDate>
</item>
<item>
    <title>mod_cron: Add a 'weekly' job frequency</title>
    <link>https://soft.trung.fun/code/prosody/log/cbed7d8d8f35/.luacheckrc</link>
    <description><![CDATA[mod_cron: Add a 'weekly' job frequency]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 03 Dec 2021 09:05:41 +0100</pubDate>
</item>
<item>
    <title>core.moduleapi: Add API for adding daily or hourly tasks via mod_cron</title>
    <link>https://soft.trung.fun/code/prosody/log/4b519c575ad0/.luacheckrc</link>
    <description><![CDATA[core.moduleapi: Add API for adding daily or hourly tasks via mod_cron]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 21 Nov 2021 18:13:21 +0100</pubDate>
</item>
<item>
    <title>Statistics: Rewrite statistics backends to use OpenMetrics</title>
    <link>https://soft.trung.fun/code/prosody/log/5f15ab7c6ae5/.luacheckrc</link>
    <description><![CDATA[Statistics: Rewrite statistics backends to use OpenMetrics<br/>
<br/>
The metric subsystem of Prosody has had some shortcomings from<br/>
the perspective of the current state-of-the-art in metric<br/>
observability.<br/>
<br/>
The OpenMetrics standard [0] is a formalization of the data<br/>
model (and serialization format) of the well-known and<br/>
widely-used Prometheus [1] software stack.<br/>
<br/>
The previous stats subsystem of Prosody did not map well to that<br/>
format (see e.g. [2] and [3]); the key reason is that it was<br/>
trying to do too much math on its own ([2]) while lacking<br/>
first-class support for &quot;families&quot; of metrics ([3]) and<br/>
structured metric metadata (despite the `extra` argument to<br/>
metrics, there was no standard way of representing common things<br/>
like &quot;tags&quot; or &quot;labels&quot;).<br/>
<br/>
Even though OpenMetrics has grown from the Prometheus world of<br/>
monitoring, it maps well to other popular monitoring stacks<br/>
such as:<br/>
<br/>
- InfluxDB (labels can be mapped to tags and fields as necessary)<br/>
- Carbon/Graphite (labels can be attached to the metric name with<br/>
  dot-separation)<br/>
- StatsD (see graphite when assuming that graphite is used as<br/>
  backend, which is the default)<br/>
<br/>
The util.statsd module has been ported to use the OpenMetrics<br/>
model as a proof of concept. An implementation which exposes<br/>
the util.statistics backend data as Prometheus metrics is<br/>
ready for publishing in prosody-modules (most likely as<br/>
mod_openmetrics_prometheus to avoid breaking existing 0.11<br/>
deployments).<br/>
<br/>
At the same time, the previous measure()-based API had one major<br/>
advantage: It is really simple and easy to use without requiring<br/>
lots of knowledge about OpenMetrics or similar concepts. For that<br/>
reason as well as compatibility with existing code, it is preserved<br/>
and may even be extended in the future.<br/>
<br/>
However, code relying on the `stats-updated` event as well as<br/>
`get_stats` from `statsmanager` will break because the data<br/>
model has changed completely; in case of `stats-updated`, the<br/>
code will simply not run (as the event was renamed in order<br/>
to avoid conflicts); the `get_stats` function has been removed<br/>
completely (so it will cause a traceback when it is attempted<br/>
to be used).<br/>
<br/>
Note that the measure_*_event methods have been removed from<br/>
the module API. I was unable to find any uses or documentation<br/>
and thus deemed they should not be ported. Re-implementation is<br/>
possible when necessary.<br/>
<br/>
   [0]: https://openmetrics.io/<br/>
   [1]: https://prometheus.io/<br/>
   [2]: #959<br/>
   [3]: #960]]></description>
    <author>&#74;&#111;&#110;&#97;&#115;&#32;&#83;&#99;&#104;&#228;&#102;&#101;&#114;&#32;&#60;&#106;&#111;&#110;&#97;&#115;&#64;&#119;&#105;&#101;&#108;&#105;&#99;&#107;&#105;&#46;&#110;&#97;&#109;&#101;&#62;</author>
    <pubDate>Sun, 18 Apr 2021 11:47:41 +0200</pubDate>
</item>
<item>
    <title>util.datamapper: Library for extracting data from stanzas</title>
    <link>https://soft.trung.fun/code/prosody/log/a1fa6202fa13/.luacheckrc</link>
    <description><![CDATA[util.datamapper: Library for extracting data from stanzas<br/>
<br/>
Based on the XML support in the OpenAPI specification.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 07 Mar 2021 00:57:36 +0100</pubDate>
</item>
<item>
    <title>util.jsonschema: Library for JSON Schema validation</title>
    <link>https://soft.trung.fun/code/prosody/log/66d4067bdfb2/.luacheckrc</link>
    <description><![CDATA[util.jsonschema: Library for JSON Schema validation]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 06 Mar 2021 21:07:53 +0100</pubDate>
</item>
<item>
    <title>luacheck: Remove exception for net.cqueues since it is now clean</title>
    <link>https://soft.trung.fun/code/prosody/log/2451e3918c2c/.luacheckrc</link>
    <description><![CDATA[luacheck: Remove exception for net.cqueues since it is now clean]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 08 Jul 2020 20:22:48 +0200</pubDate>
</item>
<item>
    <title>util.sasl.digest-md5: Remove, obsolete since 2011</title>
    <link>https://soft.trung.fun/code/prosody/log/144a1ee24a4e/.luacheckrc</link>
    <description><![CDATA[util.sasl.digest-md5: Remove, obsolete since 2011<br/>
<br/>
RFC 6331 lists several problems with this outdated authentication<br/>
mechanism. The code here was also completely ignored by lint checks and<br/>
has probably not been used for a long time, as it is incompatible with<br/>
SCRAM-hashed password storage.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 14 Apr 2020 16:51:24 +0200</pubDate>
</item>
<item>
    <title>luacheck: Don't not warn about not using secondary return values</title>
    <link>https://soft.trung.fun/code/prosody/log/d59be9befad7/.luacheckrc</link>
    <description><![CDATA[luacheck: Don't not warn about not using secondary return values<br/>
<br/>
Brace for ONE BILLION WARNINGS!!!]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 20 Dec 2019 22:23:22 +0100</pubDate>
</item>
<item>
    <title>.luacheckrc: Remove passing spec/ files from ignore list</title>
    <link>https://soft.trung.fun/code/prosody/log/d302fc749464/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Remove passing spec/ files from ignore list]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 09 Dec 2019 12:44:43 +0000</pubDate>
</item>
<item>
    <title>.luacheckrc: Remove passing file from ignore list</title>
    <link>https://soft.trung.fun/code/prosody/log/ec67425dedf1/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Remove passing file from ignore list]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 09 Dec 2019 12:42:22 +0000</pubDate>
</item>
<item>
    <title>.luacheckrc: Correct indentation of 'exclude_files' list</title>
    <link>https://soft.trung.fun/code/prosody/log/5d5e3d982bdc/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Correct indentation of 'exclude_files' list]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 01 Apr 2019 21:15:47 +0200</pubDate>
</item>
<item>
    <title>.luacheckrc: Update to reflect new module API methods</title>
    <link>https://soft.trung.fun/code/prosody/log/7be5477c399e/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Update to reflect new module API methods]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 19 Mar 2019 09:07:36 +0000</pubDate>
</item>
<item>
    <title>luacheckrc: Teach luacheck about the new module:send_iq() API</title>
    <link>https://soft.trung.fun/code/prosody/log/8132030ff04a/.luacheckrc</link>
    <description><![CDATA[luacheckrc: Teach luacheck about the new module:send_iq() API]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 30 Dec 2018 03:20:37 +0100</pubDate>
</item>
<item>
    <title>net.adns: Silence individual luacheck warnings instead of ignoring entire file</title>
    <link>https://soft.trung.fun/code/prosody/log/47121e8dc5b1/.luacheckrc</link>
    <description><![CDATA[net.adns: Silence individual luacheck warnings instead of ignoring entire file]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 24 Dec 2018 03:00:27 +0100</pubDate>
</item>
<item>
    <title>luacheckrc: No longer ignore access to undefined fields on table lib</title>
    <link>https://soft.trung.fun/code/prosody/log/faebfd3ad2a1/.luacheckrc</link>
    <description><![CDATA[luacheckrc: No longer ignore access to undefined fields on table lib]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 08 Dec 2018 17:13:39 +0100</pubDate>
</item>
<item>
    <title>lint: No longer ignore access to the deprecated global 'unpack'</title>
    <link>https://soft.trung.fun/code/prosody/log/75ed3403065d/.luacheckrc</link>
    <description><![CDATA[lint: No longer ignore access to the deprecated global 'unpack'<br/>
<br/>
_G.unpack is deprecated in Lua 5.2]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 08 Dec 2018 17:07:28 +0100</pubDate>
</item>
<item>
    <title>luacheckrc: Set Lua standard to 5.3 with 5.2 compat enabled</title>
    <link>https://soft.trung.fun/code/prosody/log/9e2ee40b4a0a/.luacheckrc</link>
    <description><![CDATA[luacheckrc: Set Lua standard to 5.3 with 5.2 compat enabled]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 08 Dec 2018 17:00:30 +0100</pubDate>
</item>
<item>
    <title>mod_net_multiplex: Remove exception from luacheck</title>
    <link>https://soft.trung.fun/code/prosody/log/eacdafd07217/.luacheckrc</link>
    <description><![CDATA[mod_net_multiplex: Remove exception from luacheck]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 Oct 2018 21:55:58 +0200</pubDate>
</item>
<item>
    <title>mod_http_files: Remove exception from luacheck</title>
    <link>https://soft.trung.fun/code/prosody/log/cc19b8f8e692/.luacheckrc</link>
    <description><![CDATA[mod_http_files: Remove exception from luacheck]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 Oct 2018 21:53:15 +0200</pubDate>
</item>
<item>
    <title>mod_privacy: Remove exception from luacheck</title>
    <link>https://soft.trung.fun/code/prosody/log/009f7054a9a5/.luacheckrc</link>
    <description><![CDATA[mod_privacy: Remove exception from luacheck<br/>
<br/>
Plugin has been removed and replaced by a tombstone, no point in<br/>
excluding it from linting]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 Oct 2018 21:48:38 +0200</pubDate>
</item>
<item>
    <title>mod_storage_sql: Remove exception from luacheck</title>
    <link>https://soft.trung.fun/code/prosody/log/640c4f1b69a1/.luacheckrc</link>
    <description><![CDATA[mod_storage_sql: Remove exception from luacheck]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 10 Oct 2018 21:22:43 +0200</pubDate>
</item>
<item>
    <title>.luacheckrc: Ignore unused secondaries in non-strict mode</title>
    <link>https://soft.trung.fun/code/prosody/log/4e881be88727/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Ignore unused secondaries in non-strict mode<br/>
<br/>
Previous commit was backwards]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 06 Oct 2018 18:56:22 +0200</pubDate>
</item>
<item>
    <title>.luacheckrc: Do not ignore unused secondaries in strict mode</title>
    <link>https://soft.trung.fun/code/prosody/log/f210ee7dffe9/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Do not ignore unused secondaries in strict mode]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 06 Oct 2018 18:52:52 +0200</pubDate>
</item>
<item>
    <title>mod_websocket: Silence the one warning instead of ignoring the entire file</title>
    <link>https://soft.trung.fun/code/prosody/log/02155a10c5e9/.luacheckrc</link>
    <description><![CDATA[mod_websocket: Silence the one warning instead of ignoring the entire file]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 30 Sep 2018 17:55:13 +0200</pubDate>
</item>
<item>
    <title>mod_s2s: Silence all warnings instead of ignoring the entire module</title>
    <link>https://soft.trung.fun/code/prosody/log/063977461363/.luacheckrc</link>
    <description><![CDATA[mod_s2s: Silence all warnings instead of ignoring the entire module]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 30 Sep 2018 17:49:56 +0200</pubDate>
</item>
<item>
    <title>mod_admin_telnet: Remove from luacheck ignore list</title>
    <link>https://soft.trung.fun/code/prosody/log/0a8ddd855587/.luacheckrc</link>
    <description><![CDATA[mod_admin_telnet: Remove from luacheck ignore list]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 30 Sep 2018 14:38:32 +0200</pubDate>
</item>
<item>
    <title>mod_admin_adhoc: Remove from global luacheck ignore list</title>
    <link>https://soft.trung.fun/code/prosody/log/7f8ba13b4dd6/.luacheckrc</link>
    <description><![CDATA[mod_admin_adhoc: Remove from global luacheck ignore list]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 30 Sep 2018 13:37:13 +0200</pubDate>
</item>
<item>
    <title>.luacheckrc: Allow randomize() global in spec/</title>
    <link>https://soft.trung.fun/code/prosody/log/b749cce57f08/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Allow randomize() global in spec/<br/>
<br/>
This is a busted function that is not currently recognized by luacheck.<br/>
<br/>
See https://github.com/mpeterv/luacheck/pull/183]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 29 Sep 2018 12:20:51 +0100</pubDate>
</item>
<item>
    <title>util.json tests: Add [luacheck] annotation to mark intentionally-empty if branch</title>
    <link>https://soft.trung.fun/code/prosody/log/c9c4b8bc53b1/.luacheckrc</link>
    <description><![CDATA[util.json tests: Add [luacheck] annotation to mark intentionally-empty if branch]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 17 Sep 2018 15:28:53 +0100</pubDate>
</item>
<item>
    <title>.luacheckrc: Remove util_cache_spec.lua from the ignore list</title>
    <link>https://soft.trung.fun/code/prosody/log/982f8ae61de2/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Remove util_cache_spec.lua from the ignore list]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 17 Sep 2018 15:27:01 +0100</pubDate>
</item>
<item>
    <title>.luacheckrc: Remove aspirational goals from strict check, keep it simple for now</title>
    <link>https://soft.trung.fun/code/prosody/log/0616412409c5/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Remove aspirational goals from strict check, keep it simple for now]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 13 Sep 2018 16:17:46 +0100</pubDate>
</item>
<item>
    <title>luacheckrc: Remove mod_groups from ignored files</title>
    <link>https://soft.trung.fun/code/prosody/log/903351e082aa/.luacheckrc</link>
    <description><![CDATA[luacheckrc: Remove mod_groups from ignored files]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 07 Jul 2018 21:00:14 +0200</pubDate>
</item>
<item>
    <title>luacheckrc: Remove exception for modules that produce no warnings</title>
    <link>https://soft.trung.fun/code/prosody/log/47dd2e850781/.luacheckrc</link>
    <description><![CDATA[luacheckrc: Remove exception for modules that produce no warnings]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 06 Jul 2018 00:19:22 +0200</pubDate>
</item>
<item>
    <title>mod_announce: Fix luacheck warnings</title>
    <link>https://soft.trung.fun/code/prosody/log/71500c68fed4/.luacheckrc</link>
    <description><![CDATA[mod_announce: Fix luacheck warnings]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 06 Jul 2018 00:16:48 +0200</pubDate>
</item>
<item>
    <title>luacheckrc: Consider mod_http clean</title>
    <link>https://soft.trung.fun/code/prosody/log/188c05e906f1/.luacheckrc</link>
    <description><![CDATA[luacheckrc: Consider mod_http clean]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 06 Jul 2018 00:16:17 +0200</pubDate>
</item>
<item>
    <title>luacheckrc: Remove exception for mod_pep, it's clean</title>
    <link>https://soft.trung.fun/code/prosody/log/27c6fff84c8f/.luacheckrc</link>
    <description><![CDATA[luacheckrc: Remove exception for mod_pep, it's clean]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 06 Jul 2018 00:06:36 +0200</pubDate>
</item>
<item>
    <title>.luacheckrc: Remove mod_pubsub/pubsub.lib.lua from files excluded from checks</title>
    <link>https://soft.trung.fun/code/prosody/log/9232305618ac/.luacheckrc</link>
    <description><![CDATA[.luacheckrc: Remove mod_pubsub/pubsub.lib.lua from files excluded from checks]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 23 May 2018 15:02:55 +0200</pubDate>
</item>

  </channel>
</rss>
