Bug 602300 - Review Request: perl-Mojolicious - A next generation web framework for Perl
Summary: Review Request: perl-Mojolicious - A next generation web framework for Perl
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Iain Arnell
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-06-09 14:42 UTC by Yanko Kaneti
Modified: 2010-06-11 05:47 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-06-11 05:47:53 UTC
Type: ---
Embargoed:
iarnell: fedora-review+
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Yanko Kaneti 2010-06-09 14:42:17 UTC
Spec URL: http://declera.com/~yaneti/Mojolicious/Mojolicious.spec
SRPM URL: http://declera.com/~yaneti/Mojolicious/Mojolicious-0.999925-1.fc14.src.rpm
Description: 
Back in the early days of the web there was this wonderful Perl library
called CGI, many people only learned Perl because of it. It was simple
enough to get started without knowing much about the language and powerful
enough to keep you going, learning by doing was much fun. While most of the
techniques used are outdated now, the idea behind it is not. Mojolicious is
a new attempt at implementing this idea using state of the art technology.

Comment 1 Yanko Kaneti 2010-06-09 15:11:07 UTC
CC perl-devel for anyone interested. Packaged just for evaluation purposes.
It was quite simple and pleasant experience

Comment 2 Iain Arnell 2010-06-09 15:29:12 UTC
At first glance, you should remove the explicit Requires: lines - those modules are only necessary for building - not at runtime. 

I'd also refine the name slightly - either perl-Mojolicious (since it's not really an end-user app - more for developers who are likely to look for perl-Stuff), or all lower case mojolicious.

Otherwise, it looks pretty good to me.

Comment 4 Iain Arnell 2010-06-09 16:14:03 UTC
+ source files match upstream.  
    ee6d1120331e0e0762cce773e7d816a4  Mojolicious-0.999925.tar.gz

+ package meets naming and versioning guidelines.
+ specfile is properly named, is cleanly written and uses macros consistently.
+ summary is OK.
+ description is OK.
+ dist tag is present.
+ build root is OK.
+ license field matches the actual license.
    Artistic 2.0

+ license is open source-compatible.
+ license text included.
+ latest version is being packaged.
+ BuildRequires are proper.
+ compiler flags are appropriate.
+ %clean is present.
+ package builds in mock (dist-f14-perltest)
    http://koji.fedoraproject.org/koji/taskinfo?taskID=2241132

+ package installs properly.
+ rpmlint has no complaints:
    perl-Mojolicious.noarch: I: checking
    perl-Mojolicious.noarch: I: checking-url http://mojolicious.org/ (timeout 10 seconds)
    perl-Mojolicious.src: I: checking
    perl-Mojolicious.src: I: checking-url http://mojolicious.org/ (timeout 10 seconds)
    perl-Mojolicious.src: I: checking-url http://www.cpan.org/authors/id/K/KR/KRAIH/Mojolicious-0.999925.tar.gz (timeout 10 seconds)
    2 packages and 0 specfiles checked; 0 errors, 0 warnings.

+ final provides and requires are sane:
    perl(Mojo) = 0.999925
    perl(Mojo::Asset)  
    perl(Mojo::Asset::File)  
    perl(Mojo::Asset::Memory)  
    perl(Mojo::Base)  
    perl(Mojo::ByteStream)  
    perl(Mojo::Client)  
    perl(Mojo::Command)  
    perl(Mojo::Command::Cgi)  
    perl(Mojo::Command::Daemon)  
    perl(Mojo::Command::DaemonPrefork)  
    perl(Mojo::Command::Fastcgi)  
    perl(Mojo::Command::Generate)  
    perl(Mojo::Command::Generate::App)  
    perl(Mojo::Command::Generate::Gitignore)  
    perl(Mojo::Command::Generate::Makefile)  
    perl(Mojo::Command::Get)  
    perl(Mojo::Command::Psgi)  
    perl(Mojo::Commands)  
    perl(Mojo::Command::Test)  
    perl(Mojo::Command::Version)  
    perl(Mojo::Content)  
    perl(Mojo::Content::MultiPart)  
    perl(Mojo::Content::Single)  
    perl(Mojo::Cookie)  
    perl(Mojo::CookieJar)  
    perl(Mojo::Cookie::Request)  
    perl(Mojo::Cookie::Response)  
    perl(Mojo::Date)  
    perl(Mojo::DOM)  
    perl(Mojo::Exception)  
    perl(Mojo::Filter)  
    perl(Mojo::Filter::Chunked)  
    perl(Mojo::Headers)  
    perl(Mojo::HelloWorld)  
    perl(Mojo::Home)  
    perl(Mojo::IOLoop)  
    perl(Mojo::JSON)  
    perl(Mojo::JSON::_Bool)  
    perl(Mojolicious) = 0.999925
    perl-Mojolicious = 0.999925-1.fc14
    perl(Mojolicious::Command::Generate)  
    perl(Mojolicious::Command::Generate::App)  
    perl(Mojolicious::Command::Generate::LiteApp)  
    perl(Mojolicious::Command::Inflate)  
    perl(Mojolicious::Command::Routes)  
    perl(Mojolicious::Commands)  
    perl(Mojolicious::Controller)  
    perl(Mojolicious::Lite)  
    perl(Mojolicious::Plugin)  
    perl(Mojolicious::Plugin::AgentCondition)  
    perl(Mojolicious::Plugin::Charset)  
    perl(Mojolicious::Plugin::DefaultHelpers)  
    perl(Mojolicious::Plugin::EplRenderer)  
    perl(Mojolicious::Plugin::EpRenderer)  
    perl(Mojolicious::Plugin::HeaderCondition)  
    perl(Mojolicious::Plugin::I18n)  
    perl(Mojolicious::Plugin::I18n::_Handler)  
    perl(Mojolicious::Plugin::JsonConfig)  
    perl(Mojolicious::Plugin::PodRenderer)  
    perl(Mojolicious::Plugin::PoweredBy)  
    perl(Mojolicious::Plugin::RequestTimer)  
    perl(Mojolicious::Plugins)  
    perl(Mojolicious::Plugin::TagHelpers)  
    perl(Mojo::Loader)  
    perl(Mojo::Log)  
    perl(Mojo::Message)  
    perl(Mojo::Message::Request)  
    perl(Mojo::Message::Response)  
    perl(Mojo::Parameters)  
    perl(Mojo::Path)  
    perl(Mojo::Server)  
    perl(Mojo::Server::CGI)  
    perl(Mojo::Server::Daemon)  
    perl(Mojo::Server::Daemon::Prefork)  
    perl(Mojo::Server::FastCGI)  
    perl(Mojo::Server::PSGI)  
    perl(Mojo::Server::PSGI::_Handle)  
    perl(Mojo::Stateful)  
    perl(Mojo::Template)  
    perl(Mojo::Transaction)  
    perl(Mojo::Transaction::HTTP)  
    perl(Mojo::Transaction::Single)  
    perl(Mojo::Transaction::WebSocket)  
    perl(Mojo::Upload)  
    perl(Mojo::URL)  
    perl(MojoX::Controller)  
    perl(MojoX::Dispatcher::Routes)  
    perl(MojoX::Dispatcher::Routes::Controller)  
    perl(MojoX::Dispatcher::Static)  
    perl(MojoX::Renderer)  
    perl(MojoX::Routes)  
    perl(MojoX::Routes::Match)  
    perl(MojoX::Routes::Pattern)  
    perl(MojoX::Session::Cookie)  
    perl(MojoX::Session::Cookie::Controller)  
    perl(MojoX::Types)  
    perl(Test::Mojo)  
    perl(Test::Mojo::Server)  
=
    perl(base)  
    perl(Carp)  
    perl(constant)  
    perl(Cwd)  
    perl(Data::Dumper)  
    perl(Digest::MD5)  
    perl(Encode)  
    perl(Errno)  
    perl(Fcntl)  
    perl(File::Basename)  
    perl(File::Copy)  
    perl(File::Path)  
    perl(File::Spec)  
    perl(File::stat)  
    perl(FindBin)  
    perl(Getopt::Long)  
    perl(I18N::LangTags)  
    perl(IO::File)  
    perl(IO::Poll)  
    perl(IO::Socket)  
    perl(IO::Socket::INET)  
    perl(lib)  
    perl(MIME::Base64)  
    perl(MIME::QuotedPrint)  
    perl(:MODULE_COMPAT_5.12.0)  
    perl(Mojo::Asset::File)  
    perl(Mojo::Asset::Memory)  
    perl(Mojo::ByteStream)  
    perl(Mojo::Client)  
    perl(Mojo::Command)  
    perl(Mojo::Commands)  
    perl(Mojo::Content::MultiPart)  
    perl(Mojo::Content::Single)  
    perl(Mojo::CookieJar)  
    perl(Mojo::Cookie::Request)  
    perl(Mojo::Cookie::Response)  
    perl(Mojo::Date)  
    perl(Mojo::Exception)  
    perl(Mojo::Filter::Chunked)  
    perl(Mojo::Headers)  
    perl(Mojo::Home)  
    perl(Mojo::IOLoop)  
    perl(Mojo::JSON)  
    perl(Mojolicious)  
    perl(Mojolicious::Commands)  
    perl(Mojolicious::Plugins)  
    perl(Mojo::Loader)  
    perl(Mojo::Log)  
    perl(Mojo::Message::Request)  
    perl(Mojo::Message::Response)  
    perl(Mojo::Parameters)  
    perl(Mojo::Path)  
    perl(Mojo::Server)  
    perl(Mojo::Server::CGI)  
    perl(Mojo::Server::Daemon)  
    perl(Mojo::Server::Daemon::Prefork)  
    perl(Mojo::Server::FastCGI)  
    perl(Mojo::Server::PSGI)  
    perl(Mojo::Template)  
    perl(Mojo::Transaction::HTTP)  
    perl(Mojo::Transaction::WebSocket)  
    perl(Mojo::Upload)  
    perl(Mojo::URL)  
    perl(MojoX::Dispatcher::Routes)  
    perl(MojoX::Dispatcher::Static)  
    perl(MojoX::Renderer)  
    perl(MojoX::Routes::Match)  
    perl(MojoX::Routes::Pattern)  
    perl(MojoX::Session::Cookie)  
    perl(MojoX::Types)  
    perl(overload)  
    perl(POSIX)  
    perl(Scalar::Util)  
    perl(Socket)  
    perl(Storable)  
    perl(strict)  
    perl(Test::Harness)  
    perl(Test::More)  
    perl(Time::HiRes)  
    perl(Time::Local)  
    perl(warnings)  

+ %check is present and all tests pass.
    PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/*/*.t t/*/*/*.t t/*/*/*/*.t
    t/mojo/apache_cgi.t ....................... skipped: Mac OS X required for this test!
    t/mojo/apache_fastcgi.t ................... skipped: Mac OS X required for this test!
    t/mojo/app.t .............................. ok
    t/mojo/asset.t ............................ ok
    t/mojo/base.t ............................. ok
    t/mojo/bytestream.t ....................... ok
    t/mojo/cgi.t .............................. ok
    t/mojo/client.t ........................... skipped: set TEST_CLIENT to enable this test (internet connection required!)
    t/mojo/content.t .......................... ok
    t/mojo/cookie.t ........................... ok
    t/mojo/cookiejar.t ........................ ok
    t/mojo/daemon.t ........................... skipped: set TEST_DAEMON to enable this test (developer only!)
    t/mojo/daemon_prefork.t ................... skipped: set TEST_PREFORK to enable this test (developer only!)
    t/mojo/date.t ............................. ok
    t/mojo/dom.t .............................. ok
    t/mojo/fastcgi.t .......................... ok
    t/mojo/headers.t .......................... ok
    t/mojo/home.t ............................. ok
    t/mojo/ioloop.t ........................... ok
    t/mojo/json.t ............................. ok
    t/mojo/loader.t ........................... ok
    t/mojo/message.t .......................... ok
    t/mojo/parameters.t ....................... ok
    t/mojo/path.t ............................. ok
    t/mojo/psgi.t ............................. ok
    t/mojo/server.t ........................... ok
    t/mojo/stateful.t ......................... ok
    t/mojo/template.t ......................... ok
    t/mojo/url.t .............................. ok
    t/mojolicious/app.t ....................... ok
    t/mojolicious/charset_lite_app.t .......... ok
    t/mojolicious/dispatcher_lite_app.t ....... ok
    t/mojolicious/embedded_lite_app.t ......... ok
    t/mojolicious/i18n_lite_app.t ............. ok
    t/mojolicious/json_config_lite_app.t ...... ok
    t/mojolicious/lite_app.t .................. ok
    t/mojolicious/pod_renderer_lite_app.t ..... ok
    t/mojolicious/production_app.t ............ ok
    t/mojolicious/twinkle_lite_app.t .......... ok
    t/mojolicious/upload_lite_app.t ........... ok
    t/mojolicious/websocket_lite_app.t ........ ok
    t/mojolicious/websocket_proxy_lite_app.t .. ok
    t/mojox/dispatcher/routes.t ............... ok
    t/mojox/dispatcher/routes/controller.t .... ok
    t/mojox/renderer.t ........................ ok
    t/mojox/routes/pattern.t .................. ok
    t/mojox/routes/routes.t ................... ok
    t/pod.t ................................... skipped: Test::Pod 1.14 required for this test!
    t/pod_coverage.t .......................... skipped: Test::Pod::Coverage 1.04 required for this test!
    All tests successful.
    Files=49, Tests=2717, 15 wallclock secs ( 0.11 usr  0.16 sys + 10.79 cusr  1.23 csys = 12.29 CPU)
    Result: PASS

+ no shared libraries are added to the regular linker search paths.
+ owns the directories it creates.
+ doesn't own any directories it shouldn't.
+ no duplicates in %files.
+ file permissions are appropriate.
+ no generically named files
+ code, not content.
+ documentation is small, so no -doc subpackage is necessary.
+ %docs are not necessary for the proper functioning of the package.

Comment 5 Iain Arnell 2010-06-09 16:14:39 UTC
Looks good. APPROVED.

Comment 6 Yanko Kaneti 2010-06-09 16:22:06 UTC
New Package CVS Request
=======================
Package Name: perl-Mojolicious
Short Description: A next generation web framework for Perl
Owners: yaneti
Branches: F-13
InitialCC: perl-sig

Comment 7 Kevin Fenzi 2010-06-11 04:55:13 UTC
CVS done (by process-cvs-requests.py).

Comment 8 Yanko Kaneti 2010-06-11 05:47:53 UTC
Imported. Builds done. Bodhi update for stable submitted.
Thanks for the review. Co-maintainers and potential new owners welcome.


Note You need to log in before you can comment on or make changes to this bug.