1Mojolicious::Guides::CoUnsterribCuotnitnrgi(b3u)ted PerlMoDjoocluimceinotuast:i:oGnuides::Contributing(3)
2
3
4

NAME

6       Mojolicious::Guides::Contributing - Contributing to Mojolicious
7

OVERVIEW

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

REPORTING BUGS

13       We use the GitHub issue tracker
14       <https://github.com/mojolicious/mojo/issues>, so you'll need to create
15       a (free) GitHub account to be able to submit issues, comments and pull
16       requests.
17
18       First of all, make sure you are using the latest version of
19       Mojolicious, it is quite likely that your bug has already been fixed.
20       If that doesn't help, take a look at the list of currently open issues,
21       perhaps it has already been reported by someone else and you can just
22       add a comment confirming it.
23
24       If it hasn't been reported yet, try to prepare a test case
25       demonstrating the bug, you are not expected to fix it yourself, but
26       you'll have to make sure the developers can replicate your problem.
27       Sending in your whole application generally does more harm than good,
28       the "t" directory of this distribution has many good examples for how
29       to do it right. Writing a test is usually the hardest part of fixing a
30       bug, so the better your test case the faster it can be fixed. ;)
31
32       And don't forget to add a descriptive title and text, when you create a
33       new issue. If your issue does not contain enough information or is
34       unintelligible, it might get closed pretty quickly. But don't be
35       disheartened, if there's new activity it will get reopened just as
36       quickly.
37
38   Reporting security issues
39       Please report security issues directly to the pumpkin-holder via email,
40       which is currently Sebastian Riedel ("kraih@mojolicious.org"), and give
41       us a few days to develop and release a proper fix.
42

RESOLVING ISSUES

44       There are many ways in which you can help us resolve existing issues on
45       the GitHub issue tracker <https://github.com/mojolicious/mojo/issues>.
46
47       Can you replicate the problem on your computer? Add a comment saying
48       that you're seeing the same. Perhaps you can provide additional
49       information that will make it easier for others to replicate the
50       problem, maybe even contribute a better test case.
51
52       And for all code contributions we very much appreciate additional
53       testing and code review, just add a comment to show your approval or to
54       point out flaws that need to be addressed.
55

CONTRIBUTING DOCUMENTATION

57       One of the easiest ways to contribute to Mojolicious is through
58       documentation improvements. While the Mojolicious::Guides are carefully
59       curated by the core team, everybody with a (free) GitHub account can
60       make changes and add new information to the Mojolicious wiki
61       <http://github.com/mojolicious/mojo/wiki>.
62
63       Pull requests with additions or changes to the documentation included
64       in the Mojolicious distribution follow the same rules as code
65       contributions. Please don't send pull requests for overly simplistic
66       changes, such as the addition of a comma or semicolon.
67

CONTRIBUTING CODE

69       All code contributions should be sent as GitHub pull requests
70       <https://help.github.com/articles/using-pull-requests>.  But please try
71       to avoid pull requests with very simplistic changes, such as a single
72       typo fix somewhere in the documentation or comments.
73
74       An expressive title and detailed description are invaluable during the
75       review process, which usually ends when members of the community have
76       voiced their opinions and the core team voted for or against a change.
77       All code changes should emulate the style of the surrounding code,
78       include tests that fail without them, and update relevant
79       documentation.
80
81       While the Mojolicious distribution covers a wide range of features, we
82       are rather conservative when it comes to adding new ones. So if your
83       contribution is not a simple bug fix, it is strongly recommended that
84       you discuss it in advance on the mailing list
85       <http://groups.google.com/group/mojolicious> or the official IRC
86       channel "#mojo" on "irc.freenode.net" (chat now!
87       <https://kiwiirc.com/nextclient/#irc://irc.freenode.net/mojo?nick=guest-?>),
88       to avoid unnecessary work and to increase its chances of getting
89       accepted.
90
91       The following mission statement and rules are the foundation of all
92       Mojo and Mojolicious development. Please make sure that your
93       contribution aligns well with them before sending a pull request.
94
95   Mission statement
96       Mojo is a web development toolkit, with all the basic tools and helpers
97       needed to write simple web applications and higher level web
98       frameworks, such as Mojolicious.
99
100       All components should be reusable in other projects, and in a UNIXish
101       way only loosely coupled.
102
103       Especially for people new to Perl it should be as easy as possible to
104       install Mojolicious and get started. Writing web applications can be
105       one of the most fun ways to learn a language!
106
107       For developers of other web frameworks, it should be possible to reuse
108       all the infrastructure and just consider the higher levels of the
109       Mojolicious distribution an example application.
110
111   Rules
112         Web development should be easy and fun, this is what we optimize for.
113
114         The web is a moving target, to stay relevant we have to stay in
115         motion too.
116
117         Keep it simple, no magic unless absolutely necessary.
118
119         The installation process should be as fast and painless as possible.
120         (Less than a minute on most common hardware is a good rule of thumb)
121
122         The addition and modification of features is decided by majority vote
123         or the pumpkin-holder.
124
125         Any core developer may nominate a new one, who must then be accepted
126         by a 2/3 majority vote.
127
128         The pumpkin-holder has veto rights and may select their successor.
129
130         It's not a feature without a test and documentation.
131
132         A feature is only needed when the majority of the user base benefits
133         from it.
134
135         Features may only be changed in a major release, to fix a serious
136         security issue, or after being deprecated for at least 3 months.
137
138         Refactoring and deprecations should be avoided if there are no
139         substantial benefits.
140
141         New features can be marked as experimental to be excluded from
142         deprecation policies.
143
144         A major release is signaled by a new major version number and a
145         unique code name based on a Unicode character.
146
147         Only add dependencies if absolutely necessary and make them optional
148         if possible.
149
150         Domain specific languages should be avoided in favor of Perl-ish
151         solutions.
152
153         No inline POD.
154
155         Documentation belongs to the guides, module POD is just an API
156         reference.
157
158         The main focus of the included documentation should be on examples,
159         no walls of text. (An example for every one or two sentences is a
160         good rule of thumb)
161
162         Everything should be ordered alphabetically if possible, or at least
163         be consistent if not.
164
165         The master source code repository should always be kept in a stable
166         state, use feature branches for actual development.
167
168         Code has to be run through Perl::Tidy with the included .perltidyrc
169         <https://github.com/mojolicious/mojo/blob/master/.perltidyrc>, and
170         everything should look like it was written by a single person.
171
172         Functions and methods should be as short as possible, no spaghetti
173         code.
174
175         Comments should be correctly capitalized, and funny if possible,
176         punctuation is optional if it doesn't increase readability.
177
178         No names outside of "Mojolicious.pm".
179

DONATIONS

181       Mojolicious is open source and free to use. However, the amount of
182       effort needed to maintain the project and develop new features for it
183       is not sustainable without proper financial backing. You can support
184       the ongoing development of Mojolicious through PayPal
185       <https://www.paypal.me/kraih>.
186
187       If you run a business and use Mojolicious in a revenue generating
188       product, it makes business sense to support Mojolicious development.
189       Because it ensures that the project your product relies on stays
190       healthy and actively maintained.  It can also help your exposure within
191       the community and will make it easier to attract Mojolicious
192       developers.
193
194       Please email Sebastian Riedel ("kraih@mojolicious.org") if you have any
195       questions about becoming a sponsor.
196

CODE OF CONDUCT

198       Like the technical community as a whole, the Mojolicious team and
199       community is made up of a mixture of professionals and volunteers from
200       all over the world, working on every aspect of the mission - including
201       mentorship, teaching, and connecting people.
202
203       Diversity is one of our huge strengths, but it can also lead to
204       communication issues and unhappiness. To that end, we have a few ground
205       rules that we ask people to adhere to. This code applies equally to
206       founders, mentors and those seeking help and guidance.
207
208       This isn't an exhaustive list of things that you can't do. Rather, take
209       it in the spirit in which it’s intended - a guide to make it easier to
210       enrich all of us and the technical communities in which we participate.
211
212       This code of conduct applies to all spaces managed by the Mojolicious
213       project. This includes IRC, the mailing lists, the issue tracker, and
214       any other forums created by the project team which the community uses
215       for communication.  In addition, violations of this code outside these
216       spaces may affect a person's ability to participate within them.
217
218       If you believe someone is violating the code of conduct, we ask that
219       you report it by emailing Joel Berger ("jberger@mojolicious.org") or
220       other members of the team.
221
222       · Be friendly and patient.
223
224       · Be welcoming. We strive to be a community that welcomes and supports
225         people of all backgrounds and identities. This includes, but is not
226         limited to members of any race, ethnicity, culture, national origin,
227         colour, immigration status, social and economic class, educational
228         level, sex, sexual orientation, gender identity and expression, age,
229         size, family status, political belief, religion, and mental and
230         physical ability.
231
232       · Be considerate. Your work will be used by other people, and you in
233         turn will depend on the work of others. Any decision you take will
234         affect users and colleagues, and you should take those consequences
235         into account when making decisions. Remember that we're a world-wide
236         community, so you might not be communicating in someone else's
237         primary language.
238
239       · Be respectful. Not all of us will agree all the time, but
240         disagreement is no excuse for poor behavior and poor manners. We
241         might all experience some frustration now and then, but we cannot
242         allow that frustration to turn into a personal attack. It’s important
243         to remember that a community where people feel uncomfortable or
244         threatened is not a productive one. Members of the Mojolicious
245         community should be respectful when dealing with other members as
246         well as with people outside the Mojolicious community.
247
248       · Be careful in the words that you choose. We are a community of
249         professionals, and we conduct ourselves professionally. Be kind to
250         others. Do not insult or put down other participants. Harassment and
251         other exclusionary behavior aren't acceptable. This includes, but is
252         not limited to:
253
254         · Violent threats or language directed against another person.
255
256         · Discriminatory jokes and language.
257
258         · Posting sexually explicit or violent material.
259
260         · Posting (or threatening to post) other people's personally
261           identifying information ("doxing").
262
263         · Personal insults, especially those using racist or sexist terms.
264
265         · Unwelcome sexual attention.
266
267         · Advocating for, or encouraging, any of the above behavior.
268
269         · Repeated harassment of others. In general, if someone asks you to
270           stop, then stop.
271
272       · When we disagree, try to understand why. Disagreements, both social
273         and technical, happen all the time and Mojolicious is no exception.
274         It is important that we resolve disagreements and differing views
275         constructively.  Remember that we’re different. The strength of
276         Mojolicious comes from its varied community, people from a wide range
277         of backgrounds. Different people have different perspectives on
278         issues. Being unable to understand why someone holds a viewpoint
279         doesn’t mean that they’re wrong. Don’t forget that it is human to err
280         and blaming each other doesn’t get us anywhere. Instead, focus on
281         helping to resolve issues and learning from mistakes.
282

FORK POLICY

284       The Mojolicious core team believes that there is a lot of value in the
285       entire toolkit being a unified project. Forks drain resources from a
286       project, not just mindshare but also very valuable bug reports and
287       patches, which can have very serious security implications. Therefore
288       we ask that you please not publically fork pieces of the Mojolicious
289       distribution without our consent. As doing so is against our express
290       wishes, individuals who engage in unauthorized forking may be denied
291       from participating in community sponsored spaces.
292
293       For developers considering the use of a forked module, we strongly
294       recommend that you make yourself familiar with its history and track
295       record. While many parts of Mojolicious have been forked in the past,
296       very few forks have been able to keep up with Mojolicious development,
297       and most are missing critical bug fixes.
298

MORE

300       You can continue with Mojolicious::Guides now or take a look at the
301       Mojolicious wiki <http://github.com/mojolicious/mojo/wiki>, which
302       contains a lot more documentation and examples by many different
303       authors.
304

SUPPORT

306       If you have any questions the documentation might not yet answer, don't
307       hesitate to ask on the mailing list
308       <http://groups.google.com/group/mojolicious> or the official IRC
309       channel "#mojo" on "irc.freenode.net" (chat now!
310       <https://kiwiirc.com/nextclient/#irc://irc.freenode.net/mojo?nick=guest-?>).
311
312
313
314perl v5.28.0                      2018-10-2M7ojolicious::Guides::Contributing(3)
Impressum