Mojolicious::Guides::Contributing - Contributing to Mojolicious


There are many ways to contribute to Mojolicious, this guide will show you a few of them.


We use the GitHub issue tracker, so you'll need to create a (free) GitHub account to be able to submit issues, comments and pull requests.

First of all, make sure you are using the latest version of Mojolicious, it is quite likely that your bug has already been fixed. If that doesn't help, take a look at the list of currently open issues, perhaps it has already been reported by someone else and you can just add a comment confirming it.

If it hasn't been reported yet, try to prepare a test case demonstrating the bug, you are not expected to fix it yourself, but you'll have to make sure the developers can replicate your problem. Sending in your whole application generally does more harm than good, the t directory of this distribution has many good examples for how to do it right. Writing a test is usually the hardest part of fixing a bug, so the better your test case the faster it can be fixed. ;)

And don't forget to add a descriptive title and text when you create a new issue.

Reporting security issues

Please report security issues directly to the CPAN email address of the pumpkin-holder, which is currently, and give us a few days to develop and release a proper fix.

Feature requests

Please do not open GitHub issues for feature requests, if there's something you would like to see in a future version of Mojolicious, you have to write the code yourself.

If you're looking for feedback on your ideas, you're welcome to discuss them on the mailing-list or the official IRC channel #mojo on


There are many ways in which you can help us resolve existing issues on the GitHub issue tracker.

Can you replicate the problem on your computer? Add a comment saying that you're seeing the same. Perhaps you can provide additional information that will make it easier for others to replicate the problem, maybe even contribute a better test case.

And for all code contributions we very much appreciate additional testing and code review, just add a comment to show your approval or to point out flaws that need to be addressed.


One of the easiest ways to contribute to Mojolicious is through documentation improvements. While the Mojolicious::Guides are carefully curated by the core team, everybody with a (free) GitHub account can make changes and add new information to the Mojolicious wiki. Pull requests with additions or changes to the documentation included in the Mojolicious distribution follow the same rules as code contributions.


All code contributions should be sent as GitHub pull requests.

An expressive title and detailed description are invaluable during the review process, which usually ends when members of the community have voiced their opinions and the core team voted for or against a change. All code changes should emulate the style of the surrounding code, include tests that fail without them, and update relevant documentation.

While the Mojolicious distribution covers a wide range of features, we are rather conservative when it comes to adding new ones. So if your contribution is not a bug fix, you can drastically increase its chances of getting accepted by discussing it in advance on the mailing-list or the official IRC channel #mojo on

The following mission statement and rules are the foundation of all Mojo and Mojolicious development. Please make sure that your contribution aligns well with them before sending a pull request.


Mojo 是一个 Perl 的 real-time 的 Web 框架的运行时环境. 它为写简单的 Web 应用和高级的 Web 框架 Mojolicious 来提供全部的基础工具和 helper.

所有的组件必须是在其它项目中可重用的, 并且在 Unix 体系中只是松耦合.

特别是对于新的 Perl 用户要尽可能容易安装 Mojolicious 和容易开始. 编写 Web 应用程序可以是最有趣的方式来学习一门语言的方法之一!

For developers of other web frameworks, it should be possible to reuse all the infrastructure and just consider the higher levels of the Mojolicious distribution an example application.



You can continue with Mojolicious::Guides now or take a look at the Mojolicious wiki, which contains a lot more documentation and examples by many different authors.


If you have any questions the documentation might not yet answer, don't hesitate to ask on the mailing-list or the official IRC channel #mojo on