bbf774c2eeec310ca7a8ff9efab34ca8ee6beb8b
[catagits/Catalyst-Manual.git] / lib / Catalyst / Manual / DevelopmentProcess.pod
1 =head1 NAME
2
3 Catalyst::Manual::DevelopmentProcess - Administrative structure of the Catalyst Development Process
4
5 =head1 Catalyst development
6
7 =head2 Schedule
8
9 There is no dated release cycle for Catalyst. New releases will be made
10 when sufficient small fixes have accumulated; or an important bugfix, or
11 significant feature addition, is completed.
12
13 =head2 Roadmap for features
14
15 The Catalyst Roadmap is kept at
16 L<http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/5.80/trunk/lib/Roadmap.pod>
17
18 =head2 Bug list
19
20 The TODO list with known bugs / deficiences is kept at
21 L<http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/5.80/trunk/TODO>
22
23 =head1 The Catalyst Core Team
24
25 The intention of the Catalyst Core Team is to maintain and support the
26 Catalyst framework, in order for it to be a viable and stable framework
27 for developing web-based MVC applications. This includes both technical
28 decisions about the Catalyst core distribution, and public relations
29 relating to the Catalyst framework as a whole.
30
31 The current goals of the Catalyst core development team are stability,
32 performance, and a properly paced addition of features, with a focus on
33 extensibility.
34
35 The core team is concerned with the 'core' Catalyst distributions
36 (i.e. L<Catalyst::Runtime>, L<Catalyst::Devel> and L<Catalyst::Manual>),
37 and also tries to encourage best practices for extension authors, and
38 cooperation and shared vision within the Catalyst community.
39
40 =head2 Membership
41
42 The Catalyst Core Team consists of the developers who have full commit
43 privileges to the entire Catalyst source tree, and who have made a significant
44 contribution to the core Catalyst distributions, and various extensions and
45 plugins.
46
47 In addition, the core team includes members that have non-technical
48 roles, such as marketing, legal, or economic responsibilities.
49
50 Currently, the Core Team consists of the following people:
51
52 =over 4
53
54 =item Brian Cassidy
55
56 =item Andy Grundman
57
58 =item Christian Hansen
59
60 =item Yuval Kogman
61
62 =item Marcus Ramberg
63
64 =item Jonathan Rockway
65
66 =item Jesse Sheidlower
67
68 =item Matt S. Trout
69
70 =item Florian Ragwitz
71
72 =item Tomas Doran
73
74 =back
75
76 New members of the Core Team must be accepted by a 2/3 majority by the
77 current members.
78
79 =head2 Technical Decisions.
80
81 Any change to the Catalyst core which can not be conceived as a
82 correction of an error in the current feature set will need to be
83 accepted by at least 3 members of the Core Team before it can be
84 commited to the trunk (which is the basis for CPAN releases). Anyone
85 with access is at any time free to make a branch to develop a proof of
86 concept for a feature to be committed to trunk.
87
88 =head2 Organizational and Philosophical Decisions.
89
90 Any organizational or philosophical decision should be decided by
91 majority vote. Thus it should be a goal of the organization that its
92 membership number should at any time be an odd number, to render it
93 effective with regards to decision making. The exceptions to this rule
94 are changes to this charter and additions to the membership of the Core
95 Team, which require a 2/3 majority.
96
97 =head2 CPAN Releases
98
99 Planned releases to CPAN should be performed by the release manager, at
100 the time of writing Marcus Ramberg, or the deputy release manager, at
101 the time of writing Florian Ragwitz. In the case of critical error
102 correction, any member of the Core Team can perform a rescue release.
103
104 =head2 Public statements from the Core Team
105
106 The Core Team should strive to appear publicly as a group when answering
107 questions or other correspondence. In cases where this is not possible,
108 the same order as for CPAN releases applies.
109
110 =head1 Contributing to Catalyst
111
112 The main philosophy behind Catalyst development can be summarized as:
113
114     Patches welcome!
115
116 Everyone is welcome (and will be encouraged) to contribute to Catalyst
117 in whatever capacity they're able to. People in #catalyst-dev will be
118 more than happy to talk newcomers through contributing their first patch,
119 or how best to go about their first CPAN extension module....
120
121 =head2 Repositories
122
123 The Catalyst subversion repository can be found at:
124
125     svn: http://dev.catalyst.perl.org/repos/Catalyst
126     browser: ttp://dev.catalyst.perl.org/svnweb/Catalyst
127
128 and the git repository can be found at:
129
130     read: git://git.shadowcat.co.uk/catagits/PROJECTNAME
131     write: catagits@git.shadowcat.co.uk:PROJECTNAME
132     browser: https://git.shadowcat.co.uk/gitweb/gitweb.cgi
133
134 =head2 New Catalyst extensions
135
136 As Catalyst is deliberately designed for extension, there is an ecosystem of
137 several hundred Catalyst extensions which can be found on CPAN.
138
139 See L<Catalyst::Manual::ExtendingCatalyst> for more information on how to extend
140 Catalyst in various ways and how to write CPANable components for Catalyst which
141 can be reused in many applications.
142
143 It is recommended to post a request for comments to the Catalyst mailing list,
144 or ask around in the #catalyst irc channel before starting to implement something,
145 as another member of the community is likely to have example or prototype code that
146 you can reuse, and members of the community and core team are happy to advise on
147 the best way to implement a generic solution to a particular problem.
148
149 This could save you duplicate work, and will help you produce a betetr thought out
150 and designed extension.
151
152 =head1 AUTHORS
153
154 Catalyst Contributors, see Catalyst.pm
155
156 =head1 COPYRIGHT
157
158 This library is free software. You can redistribute it and/or modify it under
159 the same terms as Perl itself.
160
161 =cut
162