File Coverage

blib/lib/CPAN/Porters.pm
Criterion Covered Total %
statement 6 6 100.0
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 8 8 100.0


line stmt bran cond sub pod time code
1             package CPAN::Porters;
2 1     1   951 use strict;
  1         3  
  1         44  
3 1     1   5 use warnings;
  1         2  
  1         129  
4              
5             our $VERSION = '0.03';
6              
7             1;
8              
9              
10             =head1 NAME
11              
12             CPAN::Porters - resource for people maintaining packages of CPAN modules in various distributions
13              
14             =head1 SYNOPSIS
15              
16             CPAN modules can be either installed from source (downloaded directly from CPAN)
17             or they can be installed with the package mangement system of your distribution.
18              
19             CPAN::Porters is a resource for people who are maintaining those packages in the
20             various distributions.
21              
22             =head1 Reasoning
23              
24             When developing an application we usually don't want to build our own machine. Neither
25             compile our own kernel. In most of the cases we won't want to compile and install
26             our own version of a database engine nor Apache or any other 3rd party tool.
27             So my assumption is that we won't want to install our CPAN dependencies either.
28             Again - in the standard case.
29              
30             For people just using an application written in Perl it is even more important that they
31             should not deal with all these packages. Most of us know how much people suffer when they
32             need to install 10s of modules and their dependencies from CPAN. Especially for modules
33             with dependencies outside of CPAN.
34              
35             While CPAN.pm, CPANPLUS.pm have improved a lot they still cannot deal with cases when one
36             of the dependencies fails to install cleanly.
37              
38             In addition while we usually want to work with recent versions of modules from CPAN,
39             we usually don't want to get the bleeding edge. Espcially not in applications.
40              
41             =head1 General resources
42              
43             L Statistics about CPAN modules in the various distributions
44              
45             =head2 Related mailing lists
46              
47             Module Authors: L
48              
49             Perl QA L and the mailing list L
50              
51             CPAN Testers L
52              
53             CPAN Discuss http://lists.cpan.org/showlist.cgi?name=cpan-discuss
54              
55              
56             =head1 Guidelines for inclusion
57              
58             In addition to the guidelines of each distribution on which module to include,
59             when to upgrade etc. we would like to setup our own guidelines to help people
60             decide what to include, what would be the priorites, when to upgrade a module
61             etc.
62              
63             A few guidelines on how to select and prioritize modules:
64              
65             =over 4
66              
67             =item * Modules that are dependencies of another module by a different module author.
68              
69             =item * Modules that require compilation
70              
71             =item * Modules that require files not on CPAN
72              
73             Such modules are especially difficult to install with CPAN.pm or CPANPLUS as they require
74             files outside the scope of CPAN. Making sure such modules and their dependencies can be
75             installed with the standard packaging system gets extra points.
76              
77             =item * Web development frameworks
78              
79             =item * Modules required by some of the big open source Perl applications.
80              
81             For a good listing see the journal entry of brian d foy
82             L
83              
84             =back
85              
86             Requirements for inclusion or upgrade
87              
88             =over 4
89              
90             =item * The module already has all its prereq in the system
91              
92             =item * The module passes all its tests with its prereqs currently in the system on the system
93              
94             =item * The tests of all the currently available dependent modules in the system pass with this new version
95              
96             =item * A broader requirement would be that the version has no failing test reports on any other system,
97             though this requirement might be too harsh and unnecessary
98              
99              
100             =back
101              
102              
103             =head1 Guidelines for module authors
104              
105             In order to make packaging of CPAN modules for the various distros easier
106             module authors should create and package their module adhering to some
107             standards. Following is a wishlist created by the Debian Perl module maintainers:
108             L
109              
110             =over 4
111              
112             =item * Sane version numbering
113              
114             While having the version in a uniform way might be nice,
115             it would be already helpful if one module used a consistent scheme.
116              
117             That is stick try to stick to the whatever version numbering scheme you
118             have started.
119              
120             "We have way too many modules where we have to do {d,u}versionmangling
121             because they switch from x.yyyy to x.yy and
122             x.yy.zz or stuff like that (and we try to add 00$ or strip it or
123             divide .xxxx into .xx.yy or something like that)."
124              
125             TODO: list a few reasonable scheme here:
126              
127             \d+\.\d\d(_\d\d)?
128              
129             =item * Copyrights/licensing
130              
131             Ideally each and every file in given CPAN distribution should have
132             clearly stated copyright and license information. AUTHORS/CHANGES (if
133             properly filled) can be used as a source of guessing, but I think
134             guessing about legal stuff is nothing we want daily.
135              
136             =item * No interactive prompting during installation
137              
138             No interactive prompting from Makefile.PL or other parts of the build
139             system without corresponding (and documented!) ways of setting the same
140             parameters automatically.
141              
142             =item * No network access during build
143              
144             no network access needed for building and testing (or an
145             easy and documented way to turn network tests off).
146              
147             =item * Use standar packaging systems
148              
149             Please use one of the standard Perl module build packages if at all
150             possible. (This probably goes without saying.)
151              
152             =item * Structured POD
153              
154             POD documentation for modules should be structured as described in the
155             pod2man man page. In particular, the NAME section and its content is
156             mandatory. Otherwise, one doesn't get a valid man page.
157              
158             Make sure your POD documentation makes sense when translated with
159             pod2man. I went several times, i.e., over all of PDF::API2's manpages
160             because they used "=head1 PDF::API2::Some::Thing" instead of "=head1 NAME".
161             Those bugs take a _lot_ of time to properly patch!
162              
163             POD is not just to be used by perldoc.
164              
165             =item * Don't ship Makefiles
166              
167             Please don't ship generated Makefiles etc.
168              
169             =item * Testing
170              
171             Don't use conditions in tests that test for the existence of author
172             specfic files or settings (" unless -d '.svn'" or "unless $username eq
173             'timbo'")
174              
175             Specifically, don't do this unless that's being used as a criteria for
176             skipping a test that's really meaningless outside of the author's
177             environment. (I do have a few tests in modules that depend on local
178             infrastructure to run and hence are skipped if they're not run by me.)
179            
180             =back
181              
182              
183             =head1 Distributions
184              
185             For our purposes a distribution is one if the Linux (or BSD) distributions with
186             its own rpm or deb (...) based packaging system. It can also be some stand-alone
187             Perl package such as the ActivePerl of ActiveState or Vanilla and Strawberry Perl.
188              
189             =head2 Debian
190              
191             Perl Packages - the return
192             L
193              
194             Building Debian Packages of Perl modules:
195             L
196              
197             Debian New Maintainers' Guide L
198              
199             Debian Perl mailing list: L
200              
201             L
202              
203             The Debian Perl Policy
204             L
205              
206             The latest versions of CPAN modules built for Debian.
207             This site is not related to the official Debian packages. It can be
208             good for people who want the latest versions of CPAN modules in
209             .deb format. L
210              
211             Debian Package serach tool will help finding out if a module is
212             already in included: L
213              
214             Wiki about the Debian Perl Group:
215             L
216              
217             L
218              
219              
220             =head2 Ubuntu
221              
222             My current understanding is that the best way to get CPAN modules into Ubuntu is to get them
223             into Debian unstable and then sync them into Ubuntu universe.
224              
225             Look at Gutsy Gibson (7.10) development forum L
226             and more specifically at Requesting New Packages for Inclusion in Gutsy Universe
227             L
228              
229             =head2 Fedora
230              
231             More details needed.
232              
233             For now look at
234             L and
235              
236             L
237              
238             L
239              
240             L
241              
242             And the wish-list so far:
243              
244             =over 4
245              
246             =item * Clearly and properly copyright your works.
247              
248             =item * Always apply a widely used and commonly acknowledged license to your works.
249              
250             =back
251              
252             =head2 RedHat
253              
254             =head2 Mandriva
255              
256             L
257              
258             L
259              
260             =head2 SuSE
261              
262              
263             =head2 OpenSUSE
264              
265             L
266              
267             =head2 Gentoo
268              
269             As in Gentoo the standard way is to install everything from source and they have some way to
270             channel all CPAN via their system for Gentoo this whole issue is probably not relevant.
271              
272             =head2 FreeBSD
273              
274             L
275              
276             =head2 NetBSD
277              
278             L
279              
280             =head2 OpenBSD
281              
282             L
283              
284             =head2 ActivePerl
285              
286             ActivePerl is distribute by ActiveState L Its list of packages
287             far exceeds of any of the other distributions listed here. It is based on the automatic build
288             system of ActiveState.
289              
290             =head2 Strawberry and Vanilla
291              
292             L
293              
294             =head2 Sun Solaris
295              
296             =head2 IBM AIX
297              
298             =head2 HP-UX
299              
300              
301             =head1 TODO
302              
303             =over 4
304              
305             =item * Collect the basic information for the main distributions
306              
307             =back
308              
309             =head1 SEE ALSO
310              
311             L
312              
313             L
314              
315             PIG has moved here: L
316              
317             cpan2dist is a script from L
318              
319             =head1 AUTHOR
320              
321             This document is maintained by Gabor Szabo
322              
323             =cut
324