Commit | Line | Data |
600f7f85 |
1 | =pod |
2 | |
3 | =head1 NAME |
4 | |
5 | Moose::Manual::Contributing - How to get involved in Moose |
6 | |
7 | =head1 GETTING INVOLVED |
8 | |
d85337ff |
9 | Moose is a pretty open project and we are always willing to accept bug |
10 | fixes, more tests and doc patches. Doing these things is as simple as |
11 | cloning a copy of the git repository and hacking. |
12 | |
13 | Commit bits are given out freely. All we ask is that for any |
14 | non-trivial code patches, you check with one of the core developers |
15 | before applying said patch. |
16 | |
17 | Alternatively, you can make a new branch with your change and push it |
18 | back to the Moose git server, then ask a core dev to review your |
19 | branch. |
20 | |
21 | =head2 IRC and Email |
22 | |
23 | A B<lot> of Moose discussion happens on IRC. We have two channels on |
24 | irc.perl.org, #moose and #moose-dev. The former is much more active, |
25 | but the core developers pay attention to both channels. |
26 | |
27 | We also have a mailing list, moose@perl.org and all the core |
28 | developers read and respond to messages on that list. |
600f7f85 |
29 | |
30 | =head1 NEW FEATURES |
31 | |
d85337ff |
32 | Moose already has a fairly large feature set and we are currently |
33 | B<not> looking to add any major new features to it. If you have an |
34 | idea for a new feature in Moose, you are invited instead to create a |
35 | MooseX module first. |
36 | |
37 | At this stage, no new features will even be considered for addition |
38 | into the core without first being vetted as a MooseX module, unless |
39 | it is absolutely 100% impossible to implement the feature outside the |
40 | core. |
600f7f85 |
41 | |
d85337ff |
42 | If you think it is 100% impossible, you're probably wrong. However, |
43 | your feature may need a small hook in the core, or a refactoring of |
44 | some core modules, and we are definitely open to that. |
45 | |
46 | Moose was built from the ground up with the idea of being highly |
47 | extensible, and quite often the feature requests we see can be |
48 | implemented through a couple of small and well placed extensions. Try |
49 | it, it is much easier then you might think. |
600f7f85 |
50 | |
51 | =head1 TESTS, TESTS, TESTS |
52 | |
d85337ff |
53 | If you write I<any> code for Moose or Class::MOP, you B<must> add |
54 | tests for that code. If you do not write tests then we cannot |
55 | guarantee your change will not be removed or altered at a later date. |
56 | |
57 | If your code change/addition is deep within the bowels of |
58 | Moose/Class::MOP and your test exercises this feature in a non-obvious |
59 | way, please add some comments either near the code in question or in |
60 | the test so that others know. |
600f7f85 |
61 | |
d85337ff |
62 | We also greatly appreciate documentation to go with your changes, and |
63 | an entry in the Changes file. Make sure to give yourself credit! |
600f7f85 |
64 | |
d85337ff |
65 | =head1 BACKWARDS COMPATIBILITY |
600f7f85 |
66 | |
d85337ff |
67 | Change is inevitable and Moose is not immune to this. We do our best |
86b96832 |
68 | to maintain backwards compatibility, but we do not want the code base |
d85337ff |
69 | to become overburdened by this. This is not to say that we will be |
70 | frivolous with our changes, quite the opposite, just that we are not |
71 | afraid of change and will do our best to keep it as painless as |
72 | possible for the end user. |
600f7f85 |
73 | |
86b96832 |
74 | The rule is that if you do something that is not backwards compatible |
600f7f85 |
75 | you B<must> do I<at least> one deprecation cycle (more if it is larger |
d85337ff |
76 | change). For really larger or radical changes dev releases may be |
77 | needed as well (the core developers will decide on this on a |
78 | case-per-case basis). |
600f7f85 |
79 | |
80 | The preference with regard to deprecation is to warn loudly and often |
d85337ff |
81 | so that users will have time to fix their usages. |
600f7f85 |
82 | |
d85337ff |
83 | All backwards incompatible changes B<must> be documented in |
86b96832 |
84 | L<Moose::Manual::Delta>. Make sure to document any useful tips or |
d85337ff |
85 | workarounds for the change in that document. |
600f7f85 |
86 | |
87 | =head1 AUTHOR |
88 | |
89 | Stevan Little E<lt>stevan@iinteractive.comE<gt> |
90 | |
91 | =head1 COPYRIGHT AND LICENSE |
92 | |
93 | Copyright 2009 by Infinity Interactive, Inc. |
94 | |
95 | L<http://www.iinteractive.com> |
96 | |
97 | This library is free software; you can redistribute it and/or modify |
98 | it under the same terms as Perl itself. |
99 | |
d85337ff |
100 | =cut |