fix a bunch of spelling errors
[gitmo/Moose.git] / lib / Moose / Manual / Contributing.pod
1 =pod
2
3 =head1 NAME
4
5 Moose::Manual::Contributing - How to get involved in Moose
6
7 =head1 GETTING INVOLVED
8
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.
29
30 =head1 NEW FEATURES
31
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.
41
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.
50
51 =head1 TESTS, TESTS, TESTS
52
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.
61
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!
64
65 =head1 BACKWARDS COMPATIBILITY
66
67 Change is inevitable and Moose is not immune to this. We do our best
68 to maintain backwards compatibility, but we do not want the code base
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.
73
74 The rule is that if you do something that is not backwards compatible
75 you B<must> do I<at least> one deprecation cycle (more if it is larger
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).
79
80 The preference with regard to deprecation is to warn loudly and often
81 so that users will have time to fix their usages.
82
83 All backwards incompatible changes B<must> be documented in
84 L<Moose::Manual::Delta>. Make sure to document any useful tips or
85 workarounds for the change in that document.
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
100 =cut