Commit | Line | Data |
eda0fb99 |
1 | =pod |
2 | |
3 | =head1 NAME |
4 | |
5 | Moose::Manual::Support - Policies regarding support, releases, and |
6 | compatibility. |
7 | |
995b7d56 |
8 | =head1 SUPPORT POLICY |
9 | |
a0214906 |
10 | There are two principles to Moose's policy of supported behavior. |
995b7d56 |
11 | |
64936d78 |
12 | =over 4 |
13 | |
14 | =item 1. |
15 | |
16 | Moose favors correctness over everything. |
17 | |
18 | =item 2. |
19 | |
20 | Moose supports documented and tested behavior, not accidental behavior or side |
21 | effects. |
22 | |
23 | =back |
995b7d56 |
24 | |
a0214906 |
25 | If a behavior has never been documented or tested, the behavior is |
26 | I<officially> undefined. Relying upon undocumented and untested behavior is |
27 | done at your own risk. |
995b7d56 |
28 | |
a0214906 |
29 | If a behavior is documented or tested but found to be incorrect later, the |
64936d78 |
30 | behavior will go through a deprecation period. During the deprecation period, |
31 | use of that feature will cause a warning. Eventually, the deprecated feature |
32 | will be removed. |
995b7d56 |
33 | |
eda0fb99 |
34 | =head1 RELEASE SCHEDULE |
35 | |
a0214906 |
36 | Moose is on a system of weekly minor releases and quarterly major releases. A |
64936d78 |
37 | minor release is defined as one that makes every attempt to preserve backwards |
38 | compatibility. Currently this means that we did not introduce any new |
39 | dependency conflicts, and that we did not make any changes to documented, |
40 | tested behavior. A minor release can include new features and bug fixes. |
d1e4fecf |
41 | |
64936d78 |
42 | Major releases may be backwards incompatible. Moose prioritizes |
43 | correctness over backwards compatibility or performance; see the L<Deprecation |
44 | Policy> to understand how backwards incompatible changes are announced. |
d1e4fecf |
45 | |
a0214906 |
46 | Before a major release, a series of development releases will be made so that |
47 | users can test the upcoming major release before it is distributed to CPAN. It |
48 | is in the best interests of everyone involved if these releases are tested as |
49 | widely as possible. |
eda0fb99 |
50 | |
51 | =head1 DEPRECATION POLICY |
52 | |
53 | Moose has always prioritized correctness over performance and backwards |
79dce67a |
54 | compatibility. |
eda0fb99 |
55 | |
64936d78 |
56 | Major deprecations or API changes are documented in the Changes file as well |
57 | as in L<Moose::Manual::Delta>. The Moose developers will also make an effort |
58 | to warn users of upcoming deprecations and breakage through the Moose blog |
59 | (http://blog.moose.perl.org). |
eda0fb99 |
60 | |
45d92036 |
61 | Deprecated APIs will be preserved for at least one year I<after the major |
62 | release which deprecates that API>. Deprecated APIs will only be removed in a |
63 | major release. |
eda0fb99 |
64 | |
64936d78 |
65 | Moose will also warn during installation if the version of Moose being |
66 | installed will break an installed dependency. Unfortunately, due to the nature |
eda0fb99 |
67 | of the Perl install process these warnings may be easy to miss. |
68 | |
69 | =head1 BACKWARDS COMPATIBILITY |
70 | |
71 | We try to ensure compatibility by having a extensive test suite (last |
72 | count just over around 5123 tests), as well as testing a number of |
ccc47a38 |
73 | packages (currently just under 100 packages) that depend on Moose before |
eda0fb99 |
74 | any release. |
75 | |
76 | The current list of downstream dependencies that are tested is in |
77 | C<xt/author/test-my-dependents.t>. |
78 | |
79 | =head1 VERSION NUMBERS |
80 | |
64936d78 |
81 | Moose version numbers consist of three parts, in the form X.YYZZ. The X is the |
82 | "special magic number" that only gets changed for really big changes. Think of |
83 | this as being like the "5" in Perl 5.12.1. |
84 | |
85 | The YY portion is the major version number. Moose uses even numbers for stable |
86 | releases, and odd numbers for trial releases. The ZZ is the minor version, and |
87 | it simply increases monotonically. It starts at "00" each time a new major |
88 | version is released. |
89 | |
90 | Semantically, this means that any two releases which share a major version |
91 | should be API-compatible with each other. In other words, 2.0200, 2.0201, and |
92 | 2.0274 are all API-compatible. |
eda0fb99 |
93 | |
64936d78 |
94 | Prior to version 2.0, Moose version numbers were monotonically incrementing |
95 | two decimal values (0.01, 0.02, ... 1.11, 1.12, etc.). |
3d5e4dc0 |
96 | |
eda0fb99 |
97 | Moose was declared production ready at version 0.18 (via L<< |
98 | http://www.perlmonks.org/?node_id=608144 >>). |
99 | |
100 | =head1 CONTRIBUTING |
101 | |
102 | Moose has an open contribution policy. Anybody is welcome to submit a |
204f629c |
103 | patch. Please see L<Moose::Manual::Contributing> for more details. |
eda0fb99 |
104 | |
79dce67a |
105 | =cut |