summaryrefslogtreecommitdiff
path: root/cpan/doc/04pause.html
blob: 537ab9d2bc6f567353dcd966d154ec7ecdf3fd89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
<!DOCTYPE html
 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>PAUSE</title></head><body>
<h2><a href="https://pause.perl.org/pause/">The [Perl programming] Authors Upload Server</a></h2>

<h3>Contents</h3>

<ol type="1">
  <li><a href="#status">Status of this document</a></li>
  <li><a href="#upload">Uploading</a></li>
  <li><a href="#registering">Registering as a developer</a></li>
  <li><a href="#menu">Visit PAUSE</a></li>
  <li><a href="#duties">Your duties, the basics, traps</a></li>
  <li><a href="#before">Before you upload</a></li>
  <li><a href="#comparison">PAUSE vs. CPAN vs. search engines</a></li>
  <li><a href="#takeover">Taking over</a></li>
  <li><a href="#add-comaintainer">Giving co-maintaner rights</a></li>
  <li><a href="#set-primary-maintainer">Transfer ownership - set primary maintainer</a></li>
  <li><a href="#readme">README</a></li>
  <li><a href="#version">$VERSION</a></li>
  <li><a href="#developerreleases">Developer Releases</a></li>
  <li><a href="#indexer">Indexer</a></li>
  <li><a href="#services">Related services on PAUSE</a></li>
  <li><a href="#other">Other useful links</a></li>
  <li><a href="#credits">Software used to run PAUSE</a></li>
</ol>

<h3><a id="status" name="status">Status of this document</a></h3>

<p>
  This document is mirrored on CPAN as <i>CPAN</i>/modules/04pause.html.
</p>

<h3><a id="upload" name="upload">Uploading</a></h3>

<p>A server dedicated to collect the work of perl authors is a <a
href="https://pause.perl.org/pause/">[Perl programming] Authors Upload
Server (PAUSE)</a>. PAUSE provides personal directories and enables
their owners to upload their work into that directory themselves.</p>

<blockquote>

<b>Important:</b> make sure the filename you choose contains a <b>version
number</b>. For security reasons you will never be able to upload a
file with identical name again. This strict requirement does have one
exception: documentation files may be overwritten. There's a simple
regular expression that draws the line between docu and code:
<code>/(readme|\.html|\.txt|\.[xy]ml|\.json|\.[pr]df|\.pod)(\.gz|\.bz2)?$/i</code><!--
see pause_1999/edit.pm: ALLOW_OVERWRITE -->. Filenames matching this
regexp can be uploaded as often as you like. By the way: it is highly
appreciated if your packages come tarred and gzipped with a
Makefile.PL (or Build.PL), so they can be installed in a standard way.

</blockquote>

<p>Use one of the many <a href="http://www.cpan.org/SITES.html">CPAN Mirrors</a>
to download from.</p>

<h3><a id="registering" name="registering"></a>Registering as a developer</h3>

<p>Registered developers have a unique username and a home directory in
the <i>authors/id/</i> tree of CPAN. The write access to that
directory is password protected.</p>

<p>If you have written a module, script, or documentation
you would like to contribute to the
archive, visit <a
href="https://pause.perl.org/pause/query?ACTION=request_id">pause.perl.org
Registration</a> (<a
href="http://pause.perl.org/pause/query?ACTION=request_id">Non-SSL version</a>) and fill in the form.
You will be notified by email about your registration. Please allow
three weeks for proceeding, which should be the maximum during
vacation time. Normally we hope to register you within a week. The
resulting email traffic will run through modules@perl.org and will be
archived at <a

href="http://www.nntp.perl.org/group/perl.modules/"
     >http://www.nntp.perl.org/group/perl.modules/</a>.

modules@perl.org isn't a mailing list, just an alias for the
maintainers of the Perl 5 modules database. Please do not try to
subscribe. Visit the archive instead.</p>

<h3><a id="menu" name="menu"></a>Visit PAUSE</h3>

<p>As soon as you have a password (see <a
href="#registering">registering</a>) you are enabled to use some <a
href="https://pause.perl.org/pause/authenquery">forms to interact with
the PAUSE database</a> (<a
href="http://pause.perl.org/pause/authenquery">Non-SSL version</a>). You
can add files to your home directory, edit your name, email, and
homepage address, delete your files, change your password on PAUSE,
etc.</p>

<p>If you haven't got a password yet or have forgotten it, please visit
<a href="https://pause.perl.org/pause/query?ACTION=mailpw"
>https://pause.perl.org/pause/query?ACTION=mailpw</a> (<a
href="http://pause.perl.org/pause/query?ACTION=mailpw"
>Non-SSL version</a>) for further instructions.</p>

<p>Please, whenever you exchange email with the maintainers of PAUSE,
mention either your userid or the name you used when you registered.</p>

<h3><a id="duties" name="duties">Your duties, the basics, traps</a></h3>

We trust that you have read the <code>perlmodinstall</code>,
<code>perlmodlib</code>, <code>perlmodstyle</code>, and
<code>perlnewmod</code> manpages and that you regularly check out
uploads to CPAN and that you have been watching CPAN activities for a
while to have an impression of how things fit together. It usually
boils down to (slogan shamelessly stolen and adapted from sudo(1)):

<ol>
  <li> Think, better even <b>talk</b> before you upload</li>
  <li> Respect the namespace of others</li>
</ol>

<h3><a id="before" name="before">Before you upload</a></h3>

<p>Before uploading a new module to CPAN, please carefully consider:</p>

<ul>
    <li>What name you plan to use for your module</li>
    <li>How your module relates to similar modules</li>
</ul>

<p>
Choosing a good name is important if you want people to find your module
on CPAN and understand (from the name alone) what it does.
</p>

<p>
Likewise, there are so many modules already on CPAN that it's a good idea
to be sure that your module is doing something new or at least different
(and hopefully better) than something already on CPAN.  Search for similar
modules on <a href="http://metacpan.org">metacpan.org</a> or
<a href="http://search.cpan.org/">search.cpan.org</a>.
</p>

<blockquote>
<p><strong>If you have never uploaded a module to CPAN before (and even if you have),
you are strongly encouraged to get feedback  on
<a href="http://prepan.org/">PrePAN</a></strong>.</p></blockquote>

<p><a href="http://prepan.org/">PrePAN</a> is a site dedicated to discussing ideas for CPAN modules with other
Perl developers and is a great resource for new (and experienced) Perl
developers.  You can also consider discussing your ideas in other local
<a href="http://www.perl.org/community.html">community groups</a> or
online community sites like <a href="http://www.perlmonks.org/">Perl Monks</a>.
</p>

<p>
<strong>Also: think carefully and honestly whether your module
would be better off if it were integrated into an already
existing module.</strong> Sometimes it is for the best to put aside personal
glory and join a collaborative effort: Perl itself is a good example
of this. Contact the author of an existing module and ask whether your
new features would fit into his framework. Even if you in the end
decide to release the module as your very own, you really should know
your 'competition', that is, know all the similar modules and the
features they offer. Maybe you can learn from them, maybe you can help
the users of your module better by giving them an overview about
similar modules.
</p>

<h3><a id="comparison" name="comparison">PAUSE vs. CPAN vs. search engines</a></h3>

<p>
Authors upload new modules to PAUSE, which is responsible for inspecting,
validating and indexing uploads.  PAUSE unwraps the upload and scans the source code
(namely all <code>*.pm</code> files) for package declarations.  In order for
a module to be indexed, the submitting author must be the owner or an authorized
maintainer for every package namespace found (unless the namespace is new, in
which case the uploading author becomes the owner of it).
</p>

<p>
After a module is uploaded to PAUSE, it propagates to
<a href="http://www.cpan.org/">www.cpan.org</a> and dozens of other CPAN mirrors
around the world.  PAUSE also creates a number of index files used by CPAN clients
like CPAN(.pm), CPANPLUS and cpanminus:
</p>

<pre>
  authors/00whois.html
  authors/00whois.xml
  authors/01mailrc.txt.gz
  modules/02packages.details.txt.gz
  modules/03modlist.data.gz
  modules/06perms.txt.gz
</pre>

<p>
In the spirit of <i>security by visibility</i>, PAUSE sends an
immediate email to your secret email address about the upload and, if
your upload is a regular (not developer) module distribution, a few
minutes later an email about the indexing process.
</p>

<p>
CPAN search engines like <a href="http://metacpan.org">metacpan.org</a> and
<a href="http://search.cpan.org/">search.cpan.org</a> use these indexes
and other heuristics to allow Perl developers to find modules that
interest them.
</p>

<p>If you have questions about these, be sure to send them to the right place:</p>

<ul>
    <li>PAUSE and CPAN mirroring: modules@perl.org</li>
    <li>search.cpan.org: cpansearch@perl.org</li>
    <li>metacpan.org:  Submit questions via the <a href="https://github.com/CPAN-API/metacpan-web/issues">metacpan bug tracker</a></li>
</ul>

<h3><a id="takover" name="takeover">Taking over</a></h3>

<p>So there's a module on CPAN that has a critical bug, lacks some features,
or is generally under-maintained and you would like to step in?</p>

<p>It's great that you want to help out and we, the PAUSE admins, really
don't want to create any unnecessary barrier to getting involved with
an existing module (or distribution) on CPAN. There are, however,
some precautions we have to take. The following paragraphs outline the
reason for these precautions and the steps you have to take. Please
read them carefully.</p>

<p>The majority of modules on CPAN has active maintainers. If the
maintainer didn't answer the ticket you created in the request tracker,
maybe she doesn't know about the CPAN ticketing system yet? Or she's
just very busy this week and will get back to you in due time. The best
way of helping out is to talk to the current maintainer about what you
can do. Getting the PAUSE admins involved is only a last resort!</p>

<p>In some circumstances, we can grant co-maintenance permissions to you
or others if the current maintainer of a module has entirely
disappeared. You have to understand that is not a decision we make
lightly. We are essentially giving write access to somebody else's work
to third parties without explicit consent from the missing author.
Since almost all code on CPAN has a free license, this is likely
unproblematic from a legal point of view, but any violation of a
contributor's trust in the PAUSE/CPAN mechanisms is a serious blow
against the work of everybody who contributes to CPAN. For this
reason, we try to tread very lightly, make the least possible use of
the administrative privileges and attempt to protect voluntary
contributors like yourself or the author of the module at hand
from any unnecessary burden.</p>

<p>You have to realize that the author has probably invested a
signficiant amount of time into writing the code in the first place
and then gone through the additional work of making it available to
others via CPAN free of charge. Therefore, it is crucial to be very
polite when asking him or her for co-maintenance permissions.
Politeness, however, does not suffice. Particularly when maintaining
a module for which you received co-maintenance permissions from the
admins (as opposed to being appointed by the author himself), you are
*required* to respect the work and design of the author. A common
fallacy is that people think they are much better programmers than
their predecessors and that entitles them to judge others code quality
and refactor everything. Whether or not your style is "better" is
entirely irrelevant as it is not your code. Do not be arrogant, be
respectful and tread lightly!</p>

<p>If you published your code to CPAN, then went on a hiking vacation (or
to hospital) for a couple of weeks only to see that somebody took over,
completely changed the design, and generally wreaked havoc, you would
probably be rightfully upset and lose the good will that made you
contribute in the first place.
In order to prevent from happening, please go through the following
steps and remember to be respectful all along:</p>

<ol>

<li>Use the rt.cpan.org request tracker to submit a bug report. If the
   module's documentation lists another request tracker, try that
   instead.</li>

<li>Try to reach the author via mail. At the very least, try
   PAUSE_ID@cpan.org, any mail address the author listed on his
   search.cpan.org/~PAUSE_ID page, and any mail address that's listed
   in his or her module documentation. If there's even a mailing list,
   don't forget that either.</li>

<li>Search the web for other ways of contacting the author.
   Send more mail.</li>

<li>Try posting in public places such as your use.perl.org journal,
   perlmonks.org or other forums about your looking for the author.</li>

<li>Wait for *at least* several weeks. Remember, the author might be on
   vacation, ill, or simply busy.</li>

<li>Always keep modules@perl.org in the picture. Send us a copy of your
   mails to the author. After a reasonable period of waiting, send
   another mail to the list explaining how you tried to contact the
   author and pointing at the proof thereof. Do not forget to include
   your PAUSE ID and that of the original module author in this mail.</li>

</ol>

<p>Usually, after all this hassle, we are reasonably quick at assigning
co-maintenance permissions, but don't hold your breath, we're only
human after all. Most requests won't even get here as many authors
who moved on and don't maintain their modules any more are very happy
to see them taken care of and will assign (primary or) co-maintenance
permissions after you've tracked them down and asked nicely.</p>

<p>Good luck and thanks for stepping up.</p>

<h3><a id="add-comaintainer" name="add-comaintainer">Add co-maintainer</a></h3>

<p>
Other people can always upload modules with the same name as the module you uploaded but PAUSE will
only index the modules that <b>primary maintainer</b>, or one of the designated <b>co-maintainers</b>
have uploaded. If you were the first to upload a module, you automatically became the <b>primary maintainer</b>.
</p>
<p>
If you would like to allow other people to upload official versions of a certain module you can give them
<b>co-maintainer status</b>. You do that using the followng steps:
<ol>
  <li>Visiting the <a href="https://pause.perl.org/pause/authenquery?ACTION=share_perms">Change Permissions</a> menu item</li>
  <li>Click on the 3.1 select button. (No need selecting module names here)</li>
  <li>In the new page select the modules for which you want to set the co-maintainer bit.
      (Remember, you have to give co-maintainer bit for every module in a distribution, in order to let the other person upload that distribution.)</li>
  <li>Type in the PAUSE id of the designated co-maintainer</li>
  <li>Click on the button <b>Make Co-Maintainer</b></li>
</ol>

After that you can let the other person know in e-mail or some other communication channel. PAUSE itself won't
notify the new co-maintainer.
</p>
<p>
Remember, you can set several people as co-maintainers, and as long as you don't give up your Primary maintainer status you can always
revoke the co-maintainer rights of anyone by selecting the 3.2 button.
</p>

<h3><a id="set-primary-maintainer" name="set-primary-maintainer">Transfer ownership - set primary maintainer</a></h3>

<p>
If you want to give up control of one of your modules you can set another PAUSE user to become the <b>Primary maintainer</b> of
a module of yours. After doing this the other person will have the right to add/remove co-maintainers and to change who is the
<b>primary maintainer</b>.
</p>
<p>
In order to do this you have to follow the following steps:
<ol>
  <li>Visit the <a href="https://pause.perl.org/pause/authenquery?ACTION=share_perms">Change Permissions</a> menu item</li>
  <li>Cick on 2.1 (no need to select any names yet)</li>
  <li>In the new page select the names of the modules you'd like to transfer. (Remember, in order to transfer the right to upload a distribution, you need to transfer the
      rights to every module in that distribution.)</li>
  <li>Type in the PAUSE ID of the designated new <b>primary maintainer</b></li>
  <li>Click on <b>Pass Maintainership Status</b></li>
</ol>
</p>


<a id="conventions" name="conventions"></a><!-- older anchor name -->
<h3><a id="readme" name="readme">README</a></h3>

<p>Do not upload the <b>READMEs</b> that are integrated in your distribution
files. PAUSE is designed to take care of unwrapping your file with tar
or zip, registering all the modules it finds in there, and placing the
readme file (i.e. a file with the name <code><b>README</b></code> in
the top level directory of your package) into your directory. PAUSE
will change the name of the file to
<code><i>package-name</i><b>.readme</b></code>. It should do so within
a few hours after your upload.</p>

<h3><a id="version" name="version">$VERSION</a></h3>

<p>Please make sure all your <code>*.pm</code> files contain a
<b><code>$VERSION</code></b> variable that conforms to the CPAN rules, i.e.
the complete computation of $VERSION must take place on the one first
line within the module that assigns to it. You can test if this is the
case by running</p>

<blockquote><code>perl -MExtUtils::MakeMaker -le 
'print MM->parse_version(shift)' 'file'</code></blockquote>

<p>on the filenames in question. The CPAN indexer will run this code
within a Safe compartment, so maybe even if the above command
succeeds, PAUSE may fail if you're doing file IO or other potentially
dangerous things within that line.</p>

<p>Before you decide which style of versioning you prefer, you might
want to read the <a
href="http://search.cpan.org/perldoc?version">version</a> manpage.</p>

<h3><a id="developerreleases" name="developerreleases">Developer Releases</a></h3>

<p>The automatic integration of your work into several <b>indexes</b>
and directory trees is not always what you desire. Often you want to
release code for testing out the next release. Code that propagates
through CPAN but is not in a stable state. Something <i>between</i>
two versions.</p>

<p>If you want to do that simply choose a filename that matches
<b><code>/\d\.\d+_\d/</code></b> or matches <b><code>-TRIAL[0-9]*</code></b>
before the file extension (example: <code>My-Dist-0.01-TRIAL.tar.gz</code>).
Please choose a sequence that is easy to comprehend. People have adopted
different conventions:</p>

<pre>
# 1.92 release and bug fixes
1.92
1.9201
1.9202
...

# dev releases towards 1.93
1.92_50
1.92_51
1.92_52
...
</pre>

<p>This allows two separate development tracks between 1.92 and 1.93.</p>

<p>Other people do odd and even, with all odd majors always being dev
releases:</p>

<pre>
0.15_01
0.15_02
0.16
0.1601
0.1602
0.17_01
0.17_02
...
</pre>

<p>PAUSE will leave the underscore distributions alone: no readme will
be extracted, no index will be updated, no symlinks will be created.
Of course many users on the CPAN will take note of the developer
releases. <a href="http://cpantesters.perl.org/">Cpan testers</a> will
test them and bug chasers will probably file bug reports in <a
href="http://rt.cpan.org">RT</a>.</p>

<h3><a id="indexer" name="indexer">Indexer</a></h3>

<p>Any distribution that arrives at PAUSE is checked for <b>package names</b>
contained in the distribution. A package name that arrives for the
first time is automatically assigned either to the author who
submitted it or to user <i>perl</i> if the distribution file is a perl
distribution. A package name that has already been used before must be
submitted by its author, otherwise PAUSE will trigger a warning to the
administrator. That way PAUSE will prevent accidental usage of a
package namespace by more than one author.</p>

<p>Be prepared that very soon after your upload your module will be
tested on dozens of architectures by the never tired <a
href="http://cpantesters.perl.org/">cpantesters</a>.
This helpful lot will send their findings to their mailing list and
collect the results in a database. If they find problems, they try to
diagnose or even solve them and inform you about their findings. So be
prepared to get mail from them before you have closed the buffer in
your editor.</p>

<p>
  Module::Build is an effort to overcome many deficiencies in
  MakeMaker and CPAN. One idea in that context is the storage of
  module-metadata in a file <a
  href="http://module-build.sourceforge.net/META-spec-v1.2.html">META.yml</a>,
  that is being integrated into the module-tarball. PAUSE is supposed
  to follow this emerging standard. The current code base of the PAUSE
  indexer supports META.yml by extracting it and storing it in a
  separate file that is called
  <code><i>package-name</i><b>.meta</b></code> in the same directory.
  The PAUSE indexer honours the contents of the <i>no_index</i> and
  the <i>provides</i> fields. All other fields are currently ignored.
</p>

<h3><a id="services" name="services"></a>Related services on PAUSE</h3>

<p>
  Two documents are available about authors. <a
  href="../authors/00whois.html">00whois.html</a> is a list of
  authors, mailing lists and mailing list archives in HTML format,
</p>

<p>
  And <a href="../authors/01mailrc.txt.gz">01mailrc.txt.gz</a> is a
  smaller list intended to be used as a .mailrc file. Both files are
  maintained automatically.
</p>

<p>
  When new files arrive on the PAUSE, an Upload Scanner program scans
  the new files and categorizes them according to their contents. It
  tries to detect namespace clashes and to keep track of version
  numbers.
</p>

<p>
  The document <a href="01modules.index.html">01modules.index.html</a>
  lists only the most recent distribution files that contain the
  latest of any given module that is available on CPAN. A second
  version of this document is also available that is <a
  href="01modules.mtime.html">sorted by modification date</a>. Both
  are maintained by the scanner automatically.
</p>

<p>
  The listing <a
  href="02packages.details.txt.gz">02packages.details.txt</a> is also
  produced automatically. It is intended for programs but sometimes is
  a valuable information for humans too. It simply lists the current
  version number and the distribution file for all packages found on
  CPAN.
</p>

<p>
  There are also two symlink trees of modules maintained
  automatically. One is based on the basenames of the packages
  involved: <a href="by-module">by-module</a> and the other one
  divides the modules by the chapters of the Module List: <a
  href="by-category">by-category</a>.
</p>

<h3><a id="other" name="other"></a>Other useful links</h3>

<p>You have forgotten how you're supposed to package your software?
Maybe <a href="http://perldoc.perl.org/perlnewmod.html">the
perlnewmod manpage</a> can help you.</p>

<p>A real FAQ is about how to adopt or take over a module from
somebody else? perlfaq7 has the full answer (as of <a
href="http://www.nntp.perl.org/group/perl.cvs.perlfaq/2007/07/msg393.html">rev.
393</a>).</p>

<p>You wanted to ask questions about authoring? Maybe the <a
href="mailto:module-authors-help@perl.org">module authors
mailinglist</a> or <a href="http://www.perlmonks.org/">the Perl
Monks</a> will give you a lead.</p>

<p>You wanted to include proper tests in your package? A myriad of
general purpose and custom tailored testing modules are discussed on
the <a href="mailto:perl-qa-help@perl.org">QA mailing list</a>.
</p>



<h3><a id="credits" name="credits"></a>Software</h3>

<p>The PAUSE source code is kept in a git repository at <a
href="git://github.com/andk/pause.git">git://github.com/andk/pause.git</a>
view it at <a href="https://github.com/andk/pause">https://github.com/andk/pause</a>.
</p>

<p>Please file bug reports against software running on PAUSE to the
github tracker. Bug report with security implication are best sent to
pause-admin@perl.org.</p>

<p>Thanks to all of you for your great contributions!</p>

<hr /> Contact <a href="mailto:modules@perl.org">modules@perl.org</a>
or <a href="mailto:andreas.koenig.7os6VVqR@franz.ak.mind.de">Andreas
K&#x00f6;nig</a> for any questions.
<pre>
<a id="pubkey" name="pubkey"></a>GnuPG public key for Andreas Koenig &lt;andreas.koenig.7os6VVqR@franz.ak.mind.de&gt;
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.6 (GNU/Linux)

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
=HPT0
-----END PGP PUBLIC KEY BLOCK-----
</pre>
</body>
</html>