CPAN, tvorba a šíření softwaru v jazyce Perl. Petr Pajas Hejnice 2010



Podobné dokumenty
Instalace a konfigurace web serveru. WA1 Martin Klíma

Postup získání licence programu DesignBuilder v4

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie,

Téma 4: Práce s CentOS. Instalace softwarových balíčků pomocí yum

Ant aneb Ferda Mravenec, práce všeho druhu

Instalace programu ProGEO

Instalace. Návod na instalaci a licencování ESI[tronic] Spuštění instalace z DVD ESI[tronic] 2.0 DVD 1 - soubor Setup.exe. 4.

Importy a exporty KLIENTSKÝ DOPLNĚK PRO PODPORU IMPORTŮ VERZE 3.2.0

Program usbradonview Návod k obsluze

Téma 10: Správa hardwarových zařízení a ovladačů II

Postup přechodu na podporované prostředí. Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy

Využití aplikace SketchUp pro tvorbu jednoduchého informačního systému

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2

NAS 107 Seznámení s Control Center

MATLAB: Automatická instalace a aktivace licence TAH

Envis LIMS Klient distribučního portálu

a instalace programu COMSOL Multiphysics

Testovací protokol. webový generátor PostSignum. sada PIIX3; 1 GB RAM; harddisk 20 GB IDE OS: Windows Vista Service Pack 2 SW: Internet Explorer 9

Příloha 6. Palety nástrojů

Aktivace a aktualizace klíčů

CS OTE. Dokumentace pro externí uživatele

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

Stručná instalační příručka SUSE Linux Enterprise Server 11

MATLAB: Automatická instalace a aktivace Campus-Wide licence (TAH Total Academic Headcount)

Návod pro použití Plug-in SMS Operátor

Botanický atlas pro chytré telefony

Instrukce pro vzdálené připojení do učebny 39d

BRICSCAD V15. Licencování

Django. Webový framework pro Python Projekt = webová stránka Aplikace = určitá funkcionalita webu

Software602 FormApps Server

Použití stahovací služby dle INSPIRE v praxi v progamu QGIS

I.CA SecureStore. Instalační příručka. Verze 2.32 a vyšší

Uživatelská příručka

Messenger. Novell 1.0 UMÍSTĚNÍ DOKUMENTACE K PROGRAMU NOVELL MESSENGER. STRUČ NÁ ÚVODNÍ PŘ ÍRUČ KA

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Základní informace pro zprovoznění Aktovky Dozory IS MPP

Kerio IMAP Migration Tool

Demoprojekt Damocles 2404

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

XEF SmartClient Instalační manuál

IntraVUE Co je nového

Aktivace a aktualizace klíčů

ČSOB Business Connector

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

ZÁLOHA A OBNOVA ABRA GEN

Předpoklady správného fungování formulářů

KMI / TMA Tvorba mobilních aplikací

Aktualizace GOM Softwaru pomocí GOM Maintenance Tool

Poznámky k vydání softwaru Capture Pro Verze 3.1.0

TÉMATICKÝ OKRUH Softwarové inženýrství

CS OTE. Dokumentace pro externí uživatele

Monitorování a diagnostika aplikací v produkčním prostředí Michael Juřek

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Generování žádosti o certifikát Uživatelská příručka pro prohlížeč Opera

Redakční systém Joomla. Prokop Zelený

Příručka k instalaci a aktivaci

Konfigurace pracovní stanice pro ISOP-Centrum verze

Quick Installation Guide. Central Management Software

S2. Vytvoření Windows balíku pro vývoj na STM32 architektuře

BI-AWD. Administrace Webového a Databázového serveru Instalace webového serveru Apache httpd

Testovací protokol USB Token Cryptomate

1 Správce licencí Správce licencí Správce licencí Start > Všechny programy > IDEA StatiCa > Správce licencí Soubor > Správce licencí Licence

TomTom ecoplus. Update Tool

Profesionální služby kolem Linuxu

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

MSDNAA podpora. První přihlášení do systému: Další přihlášení do systému:

Střední odborná škola a Střední odborné učiliště, Hořovice

ZÁKLADNÍ UŽIVATELSKÝ MANUÁL PRO SÍŤOVÉ FAXOVÁNÍ

Vytvoření bootovatelného média

Správa licencí pro možnosti Fiery v klientském počítači

Instalace síťové CLS licence

Průzkum možností Cisco AXP modulu do směrovačů Cisco

plussystem Příručka k instalaci systému

Instalace pluginů pro formuláře na eportálu ČSSZ

Předehra: Nastavujeme překladač Céčka

CS OTE. Dokumentace pro externí uživatele

Připojení mobilních zařízení

1. Úvod. 2. CryptoPlus jak začít. 2.1 HW a SW předpoklady. 2.2 Licenční ujednání a omezení. 2.3 Jazyková podpora. Požadavky na HW.

Nápověda pro možnosti Fiery 1.3 (klient)

IceWarp Outlook Sync Rychlá příručka

Partizan Device Manager Uživatelský manuál

Instalace MetaTrader na MAC krok za krokem

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze

ČSOB Business Connector instalační příručka

Angličtina program k procvičování slovní zásoby

Pracovní postup pro testování modulu Organizační struktura a systemizace (OSYS)

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

První kroky s METEL IEC IDE

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

Citrix klient a OneTimePass moje.cpas.cz Uživatelský návod pro uživatele České pojišťovny a.s. a Generali Pojišťovny a.s.

Návod pro uživatele DS150E. Dangerfield May 2009 V3.0 Delphi PSS

Testovací metoda. Testovací metoda. public class SimpleTest {

Obsah. Rozdíly mezi systémy Joomla 1.0 a Systém Joomla coby jednička online komunity...16 Shrnutí...16

Transkript:

CPAN, tvorba a šíření softwaru v jazyce Perl Petr Pajas Hejnice 2010

Služba CPAN CPAN = Comprehensive Perl Archive Network Slouží ke sdílení modulů (knihoven) a dalších nástrojů pro Perl Webové rozhraní poskytuje úložiště (264 mirrorů po celém světě) vyhledávání stahování a prohlížení balíčků zobrazení dokumentace + možnost anotace bug tracker (rt.cpan.org) testování kvanty dobrovolníků na různých platformách hodnocení modulů (review, rating) diskuzní fórum on-line diff a grep na danou distribuci upload, informace pro vývojáře, správa jmenných prostorů

Instalace balíčků Ručně: stažením z webu a aplikováním svaté trojice (viz dále) problém: závislosti (bývá jich hodně) Automaticky: pomocí nástroje cpan Při prvním spuštění se zeptá na nějkolik otázek výběr mirroru, vlajky pro "svatou trojici") Umí najít distribuce pro daný modul, a všechny závislosti, stahnout je, rozbalit, zkompilovat, otestovat, nainstalovat Vše jedním příkazem, např. cpan -i Module::Starter Samotné cpan spouští CPAN shell Při havárii instalace máte možnost instalaci dokončit ručně

Typická struktura balíčku blib/ - dočasný cílový adresář při sestavování lib/ - vaše knihovny inc/ - pomocné knihovny (např. nutné pro instalaci) t/ - self-testy Changes - sem zapisujete podstatné změny Makefile.PL- program pro vytvoření Makefilu Build.PL - program pro vytvoření Build skriptu MANIFEST - seznam souborů pro distribuci META.yml - generovaný soubor pro indexer CPANu README - stručný popis balíčku (vyžadováno CPANem)

Svatá trojice Svatou trojici tvoří následující čtyři :-) příkazy: Varianta A - distribuce založené na ExtUtils::MakeMaker nebo Module::Installer perl Makefile.PL make make test make install Varianta B - distribuce založené na Module::Build perl Build.PL./Build./Build test./build install Varianta A je tradiční, B je v Perlu relativně nová, má ještě mouchy, pomalu se však začíná prosazovat.

Než začneme nový projekt Podívat na CPAN a web, zda někdo už nenapsal něco, co by šlo použít Rozmyslet si strukturu třídy (moduly) samostatné distribuční balíčky Zvolit vhodný prefix jmen modulů inspirovat se na CPANu V případě pochybností je lepší se zeptat modules@perl.org Přečíst si doc perlstyle

Vývojový cyklus Vytvoření skeletonu rozhraní k C knihovně na základě hlavičkových souborů => h2xs případně swig jinak module-starter (viz dále) Úprava skeletonu Tvorba testů (adresář t/) Vývoj kódu (programování, ladění, další testy, však víte) Příprava distribučního balíčku perl Makefile.PL (nebo./build.pl a dále./build místo make) make manifest disttest distsign dist upload na CPAN odezva CPAN indexeru, dobrovolných testerů, a časem i uživatelů Bug tracker: rt.cpan.org

Module::Starter Příklad použítí: module-starter --module=muj::modul \ --author="petr Pajas" \ --email="pajas@matfyz.cz" \ --license=perl umí vytvořit skeleton pro všechny běžné sestavovací moduly: --builder=extutils::makemaker Module::Install Module::Build vytvoří rozumnou kostru budoucí distribuce lib/muj/modul/*.pm, t/..., README, kostru dokumentace v POD je konfigurovatelný (~/.module-starter) rozšiřitelný o pluginy (např. Module::Starter::{Smart,PBP}) do skeletonu lze snadno ručně migrovat i existující projekty

Makefile.PL (ExtUtils::MakeMaker) use strict; use warnings; use ExtUtils::MakeMaker; WriteMakefile( NAME => 'Audio::aKodePlayer', AUTHOR => q{petr Pajas <pajas@matfyz.cz>}, VERSION_FROM => 'lib/audio/akodeplayer.pm', ABSTRACT_FROM => 'lib/audio/akodeplayer.pm', LICENSE => 'perl', BUILD_REQUIRES => { 'Test::More' => 0, }, dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, clean => { FILES => 'Audio-aKodePlayer-*' }, );

Makefile.PL (Module::Install) use inc::module::install; name 'Audio-aKodePlayer'; all_from 'lib/audio/akodeplayer.pm'; author q{petr Pajas <pajas@matfyz.cz>}; license 'perl'; build_requires 'Test::More'; auto_install; WriteAll;

use strict; use warnings; use Module::Build; Build.PL (Module::Build) my $builder = Module::Build->new( module_name => 'Audio::aKodePlayer', license => 'perl', dist_author => q{petr Pajas <pajas@matfyz.cz>}, dist_version_from => 'lib/audio/akodeplayer.pm', build_requires => { 'Test::More' => 0, }, add_to_cleanup => [ 'Audio-aKodePlayer-*' ], create_makefile_pl => 'traditional', ); $builder->create_build_script();

Tvorba testů užívá se testovacích modulů Test, Test::More, apod. plán testů (abychom věděli, že vše doběhlo) use Test::More tests => 23; volání funkcí vaší knihovny a kontrola výstupů pomocí funkcí testovacího modulu, např. BEGIN { use_ok( 'Some::Module' ); } ok($got eq $expected, $test_name); is ($got, $expected, $test_name); is_deeply($got_complex_structure, SKIP: { } $expected_complex_structure, $test_name); skip $why, $how_many unless $missing_feature; ok(..); is(...); samotné testování pomocí make test (resp../build test)

Upload na CPAN http://pause.cpan.org založení účtu na CPANu (zdarma) přečtěte si pravidla na pause.cpan.org předpokládá se znalost perlmodinstall, perlmodlib, perlmodstyle, and perlnewmod upload z webové stránky server PAUSE si soubor převezme a zkontroluje prohledá (vyhledá jména balíčků), zaindexuje zveřejní během několika hodin jej převezmou i mirrory o převzetí a stavu indexace vám zašle e-mail

Různé Module::Starter::PBP - podle mne nic nepřináší Test::Perl::Critic - dobrá věc, pokud souhlasíte s PBP ExtUtils::XSpp xspp je varianta h2xs pro C++ Devel::CheckLib zjistí, zda v systému existuje daná C knihovna a hlavičky cpanp z modulu CPANPLUS varianta cpan shellu komfortnější (zavolá za vás sudo, snazší konfigurace, atp.) výrazně pomalejší (netuším proč) Vývoj pro Windows ActivePerl fy ActiveState používá tzv. Perl Package Manager a binární, předkompilované balíčky zazipovaný blib/plus metadatový XML souboru.ppd vytvoří se pomocí make ppd,zazipovat blib/ ale musíte už sami

Různé II Developer releases: číslo verze tvaru X.YY_ZZ Dokumentace k modulu POD automaticky se vygeneruje man CPAN zobrazí pěkné HTML ActivePerl zobrazí HTML help Co když modul požaduje velká data (model) raději neukládat na CPAN, autoři to nevidějí rádi URL uvést v README, v dokumentaci naučit Makefile.PL/Build.PL data stáhnout pomocí LWP kam s nimi nechat raději na uživateli konfigurace cesty pomocí.pm souboru a ENV

CPAN testers CPAN testers zkouší jen sestavit a provést testy reporty vám chodí průběžně e-mailem Jak se jím stát: Spusťte cpan shell install CPAN::Reporter o conf init test_report To je vše chyby při instalaci modulů se nyní budou automaticky hlásit autorům

To je vše. Děkuji.