Tak, po prostu dlatego, że "moduł CPAN" ustanawia tylko bardzo liberalne praktyki. Preferuję moduł :: Zainstaluj, wierzę, że większość zdrowych ludzi też powinna. Aby uzyskać podstawowe rozkład jazdy z modułem zainstalować po prostu użyć modułu rozrusznik:
module-starter --mi --module "Foo::Bar" --author "Evan Carroll" --email "[email protected]"
Następnie tuż po, edytować kapsułę w lib/Foo/Bar.pm: nie lubię kapsułę w środek mojego kodu. Zwykle przenoszę to wszystko na sam dół i usuwam również sekcję FUNCTION i VERSION, ponieważ 99,9% moich modułów to OO z Moose, a Module :: Install odczytuje je z $ Foo :: Bar :: VERSION.
Następnie uruchamiam git-init, edytuję plik .gitignore i dodaje "MANIFEST", "Meta.yml", "Makefile.old", "blib /", "inc /", a także, jakie pliki tymczasowe redaktor, który tworzę, może używać. (Jeśli naciskasz na CPAN, będziesz chciał dodać .gitignore i .git/do MANIFEST.skip w ten sposób, że one też nie idą w górę.) Wtedy I git add .
, i mam moduł w git z bootstrapowym systemem budowania/testowania.
Następnie uruchamiam github, tworzę repozytorium, przesyłam mój moduł i dodaje publiczne repozytorium do Makefile.PL repository git://github....
i zaczynam kodować.
Nawet jeśli nie będziesz naciskać na CPAN, module-install
zapewnia całkiem niezłą podstawę dobrego modułu.
Inne zalety: można uruchomić program make dist
, pobrać plik archiwum i bardzo łatwo go hostować na prywatnym serwerze http, a następnie po prostu poinformować klienta lub serwer, aby zainstalował go pod numerem cpanp http://host/path
.Otrzymasz także wszystkie zalety Module::Install
, użyje dmake w oknach i pobierze dmake, jeśli go nie masz. To jest dość magiczne dzięki dobremu platformowemu.
Nie ma poważnych wad ani nawet godnych uwagi drobnych.
Właściwie publikowanie kodu na CPAN nie było tym, o co go proszono - "dobra praktyka do tworzenia aplikacji Perla tak, jak byś opracowała moduł CPAN" nie oznacza, że faktycznie wypuszczasz go do CPAN, tylko że rozwijasz się w w taki sam sposób, jak w przypadku modułu, który planowałeś udostępnić CPAN. –
Masz na myśli, że jeśli nie publikujesz w CPAN, nie musisz dostarczać dobrego dokumentu lub obsługiwać swojego kodu? –
Jest po prostu zgorzkniały, że ktoś na IRC nie spodobał mu się użycie przestrzeni nazw MooseX :: names. – jrockway