Something went wrong. Try again.
Perl game server for TLE Community
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184# cpanfile — Perl dependency manifest for the Lacuna game server.## This replaces the inline `cpanm --notest <Module>` list that used to live in# docker/build-server/Dockerfile. Regenerate the lockfile after any change:## carton install # resolves deps, writes cpanfile.snapshot## and commit both cpanfile and cpanfile.snapshot together. The Docker build# installs strictly from the snapshot (`carton install --deployment`).## Perl 5.40. Core `given`/`when`/`default` and the `~~` smartmatch operator have# been removed from this codebase (un-silenceable deprecation warnings on 5.40;# gone entirely in 5.42). `given`/`when`/`default` and an explicit `smartmatch()`# now come from Switch::Right (see `requires 'Switch::Right'` below).# --- Version pins (deliberate — keep the comment explaining why) ------------# Written against the 4.x API and old MySQL servers (dev 5.7 / deployed 5.5).# DBD::mysql 5.x flipped SSL/auth defaults; revisit as separate work.requires 'DBD::mysql', '== 4.052';# Pre-existing pin carried over from the old Dockerfile.requires 'MailTools', '== 2.21';# --- Runtime: core framework ----------------------------------------------requires 'Moose';requires 'MooseX::NonMoose';requires 'MooseX::Singleton';requires 'MooseX::App';requires 'namespace::autoclean';requires 'Module::Find';requires 'rlib';requires 'PerlX::Maybe';requires 'Try::Tiny';requires 'Class::Load';requires 'Guard';requires 'Clone';requires 'Path::Class';requires 'Exception::Class';requires 'Tie::IxHash';# --- Runtime: web / PSGI stack ------------------------------------------------requires 'Plack';requires 'Starman';requires 'Server::Starter';requires 'Net::Server::SS::PreFork';requires 'Plack::Handler::Twiggy';requires 'Plack::App::WebSocket::Connection';requires 'Plack::Middleware::CrossOrigin';requires 'Plack::Middleware::Headers';requires 'Plack::Middleware::SizeLimit';requires 'Plack::Middleware::LightProfile';requires 'JSON::RPC::Dispatcher';requires 'JSON::RPC::Dispatcher::App';# --- Runtime: DB / ORM -----------------------------------------------------requires 'DBI';requires 'DBIx::Class';requires 'DBIx::Class::Schema';requires 'DBIx::Class::DeploymentHandler';requires 'DBIx::Class::DynamicSubclass';requires 'DBIx::Class::EasyFixture';requires 'DBIx::Class::InflateColumn::Serializer';requires 'DBIx::Class::TimeStamp';requires 'App::DH';# --- Runtime: caching / queue ----------------------------------------------# Compiles a bundled libmemcached from source. Pinned so the Dockerfile's# pre-install step (needed to give it a longer build timeout — carton wipes# PERL_CPANM_OPT) stays in lockstep with the snapshot.requires 'Memcached::libmemcached', '== 1.001801';requires 'AnyEvent';requires 'EV';requires 'AnyEvent::Beanstalk';requires 'Beanstalk::Client';requires 'AnyEvent::WebSocket::Client';requires 'AnyEvent::WebSocket::Server';# --- Runtime: JSON / serialization ---------------------------------------------requires 'JSON';requires 'JSON::Any';requires 'JSON::XS';requires 'JSON::WebToken';# --- Runtime: dates ------------------------------------------------------------requires 'DateTime';requires 'DateTime::Format::Duration';requires 'DateTime::Format::MySQL';requires 'DateTime::Format::Strptime';requires 'Time::HiRes';requires 'Time::Warp';# --- Runtime: crypto / digests ----------------------------------------------requires 'Crypt::SaltedHash';requires 'Digest::MD5';requires 'Digest::MD4';requires 'Digest::HMAC_SHA1';requires 'String::Random';requires 'UUID::Tiny';# --- Runtime: HTTP clients / TLS / external services ------------------------requires 'LWP::UserAgent';requires 'LWP::Protocol::https';requires 'IO::Socket::IP';requires 'IO::Socket::SSL';requires 'SOAP::Lite';# --- Runtime: email ---------------------------------------------------------requires 'Email::Valid';requires 'Data::Validate::Email';# --- Runtime: images (captcha) --------------------------------------------------requires 'GD';requires 'GD::SecurityImage';# --- Runtime: text / parsing / misc ---------------------------------------------requires 'Encode';requires 'Text::CSV_XS';requires 'Text::Trim';requires 'Text::WagnerFischer';requires 'Text::Xslate';requires 'Regexp::Common';requires 'URI::Encode';# Modern replacement for core given/when/default + the ~~ smartmatch operator# (both removed from this codebase — see the header comment). Needs Perl v5.36+.requires 'Switch::Right';requires 'List::Util';requires 'List::MoreUtils';requires 'List::Util::WeightedChoice';requires 'Bad::Words';requires 'XML::Parser';requires 'XML::Hash::LX';requires 'XML::FeedPP';requires 'Config::JSON';requires 'Config::YAML';requires 'Pod::Simple::HTML';# --- Runtime: logging -----------------------------------------------------------requires 'Log::Log4perl';requires 'Log::Any::Adapter';requires 'Log::Any::Adapter::Log4perl';# --- Runtime: process / daemon / CLI (schedulers + bin/ scripts) ---------------requires 'App::Daemon';requires 'File::Pid';requires 'File::Copy';requires 'File::Path';requires 'Sysadm::Install';requires 'Term::ReadKey';requires 'Term::ProgressBar';requires 'Term::ProgressBar::Quiet';requires 'Term::ProgressBar::Simple';requires 'Module::Build';# --- Test-only ------------------------------------------------------------------on 'test' => sub { requires 'Test::Most'; requires 'Test::Harness'; requires 'Test::Deep'; requires 'Test::Differences'; requires 'Test::Exception'; requires 'Test::Number::Delta'; requires 'Test::Trap'; requires 'Test::Warn'; requires 'Test::Compile'; requires 'Test::Pod::Coverage'; requires 'Test::Class::Moose'; requires 'Test::Mock::Class';};