Incompatibility with Mojolicious 9.11 or later
When I tried to build Lufi on alpine:latest, clicking the buttons in the Web UI does not have any effect.
I traced it down to be an incompatibility with Mojolicious 9.11 or later, because if I pin Mojolicious at 9.10, a completely functional Lufi can be built on alpine:latest.
Looking at the ChangeLog of Mojolicious and also inside the Lufi source code, I would imagine this change (for security reasons) in Mojolicious 9.11 at fault:
- Disabled format detection by default to fix vulnerabilities in many Mojolicious applications. That means some of
your routes that previously matched "/foo" and "/foo.json", will only match "/foo" after upgrading. From now on you
will have to explicitly declare the formats your routes are allowed to handle.
# /foo
# /foo.html
# /foo.json
$r->get('/foo')->to('bar#yada');
becomes
$r->get('/foo' => [format => ['html', 'json']])->to('bar#yada', format => undef);
And if you are certain that your application is not vulnerable, you also have the option to re-enable format
detection for a route and all its nested routes. Due to the high risk of vulnerabilities, this feature is going to
be removed again in a future release however.
my $active = $r->any([format => 1]);
$active->get('/foo')->to('Test#first');
$active->put('/bar')->to('Test#second');
Are there any plans to update Lufi to work with later versions of Mojolicious?