[Dresden-pm] Perl-Projekt veröffentlichen
Steffen Schwigon
schwigon at webit.de
Mon Jul 18 03:06:38 PDT 2005
Hi!
Torsten Werner <email at twerner42.de> writes:
> ich habe mal ein Perl-Modul für den neuen inotify-Mechanismus des
> Linux-Kernel 2.6.13rc3 geschrieben. Die Sachen liegen unter
> http://www.twerner42.de/inotify/inotify.tar.gz bereit. Alles schön
> objektorientiert, inklusive Doku und ein Beispielprogramm (inotify.pl).
> Was muss ich jetzt machen, um das richtig rund zu bekommen? Über Tipps
> würde ich mich freuen.
Sehr schön. Ich hab' mal bissel was aufgeschrieben, aber nicht 100%
durchprobiert. Wenn Du magst, kannst Du mir das Resultat vorher noch
zeigen, bevor Du es veröffentlichst, da guck ich nochmal drüber. Ich
finde mit Sicherheit noch was. :-)
Ich empfehle folgendes Vorgehen:
- Du solltest möglichst noch ein Stück Namespace einschieben, es gibt
z.B. schon Linux:: im CPAN, das würde ich empfehlen.
Wenn Dir das nicht reicht, Du unischer bist oder keinen weiteren
Namespace möchtest, fragst Du am besten in der Perl-Mailingliste
comp.lang.perl.modules nach. Auf CPAN herrscht Anarchie, Du kannst
es auch ohne weiteren Namespace hochladen, ohne daß Dich einer
verhaftet, aber nützlicher wär's mit.
- Nimm Dir ein Vorbild-Modul her, z.B. Acme::PM::Dresden auf CPAN, das
hat extra eine saubere Struktur zu Anschauungszwecken.
- In Inotify.pm nimmst Du eine Versionsnummer auf, mit folgenden
Zeilen ziemlich am Anfang bei den "use"-Zeilen:
use vars qw($VERSION);
$VERSION = '0.01';
- Du erzeugst eine Datei-/Verzeichnisstruktur wie folgt:
./trunk/Linux/Inotify/Event.pm
./trunk/Linux/Inotify/Watch.pm
./trunk/Linux/Inotify.pm
./trunk/eg/inotify.pl
./trunk/README
./trunk/MANIFEST.SKIP
./trunk/Makefile.PL
./trunk/LICENSE
./trunk/INSTALL
./trunk/ChangeLog
./trunk/Build.PL
- In Build.PL schreibst Du etwa sowas rein:
---- schnipp -------------------------------------------------------
use Module::Build;
my $build = new Module::Build
(
module_name => 'Linux::Inotify',
license => 'gpl',
requires => {
perl => '5.6.1',
POSIX => 0,
},
create_makefile_pl => 'passthrough',
);
$build->create_build_script;
$build->create_makefile_pl;
---- schnapp -------------------------------------------------------
- Fülle die Dateien README, INSTALL, LICENSE, ChangeLog nach Vorbild
von Acme::PM::Dresden.
- Wenn Du ein Perl-Superheld werden möchtest, schreibst Du in einem
Unterverzeichnis
./trunk/t/
auch noch ein paar Testskripte, z.B. nach Vorbild
Acme::PM::Dresden. Kannst Du Die aber auch für spätere Versionen
aufheben.
- Erzeuge eine Datei MANIFEST.SKIP wie diese hier:
---- schnipp -------------------------------------------------------
^_build
^Build$
^blib
~$
\.bak$
cover_db
TODO
.*\/?CVS\/.+$
.*\/?\.svn\/.+$
.cvsignore
.svnignore
^Makefile$
^Linux-Inotify-[0-9]+\.[0-9]+$
^Linux-Inotify-[0-9]+\.[0-9]+\.tar\.gz$
---- schnapp -------------------------------------------------------
- Mache einmal im trunk/-Verzeichnis folgende Kommandos:
perl Build.PL
./Build
./Build manifest
./Build dist
./Build distclean
- "Linux-Inotify-0.01.tar.gz" testen; z.B. in /tmp/ auspacken und im
entstandenen Verzeichnis /tmp/Linux/Inotify-0.01/ das probieren:
perl Build.PL
./Build
./Build install (ggf. als root)
- Wenn Du das auf CPAN hochladen möchtest, gehe zu
http://pause.cpan.org
und drücke links "Request PAUSE account". Mit dem Account den Du
paar Stunden/Minuten später hast, loggst Du Dich auf pause.cpan.org
ein.
- Uploade Deine Datei "Linux-Inotify-0.01.tar.gz" über den Punkt
"upload a file to CPAN". Gib am besten ein Target directory
"inotify" an und nutze gleich den ersten Abschnitt für
Browser-Upload.
Achtung. Die tar.gz-Datei muss unbedingt eine Versionsnummer
enthalten, da Du nie mehrmals den gleichen Dateinamen uploaden
kannst.
- Paar Minuten/Stunden später isses online.
GreetinX
Steffen
--
Steffen Schwigon <schwigon at webit.de>
Dresden Perl Mongers <http://dresden-pm.org/>