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