Tworzenie pliku packages.xml
Prawidłowo skonstruowany plugin do symfony zawiera oprócz całej struktury plików mały pliczek packages.xml. To właśnie dzięki niemu mozliwe jest instalowanie plugina przy pomocy taska. W tym artykule opiszę jak generować pliki packages.xml przy pomocy narzędzia Pear Package File Manager…
Zakładam, że naszym systemie zainstalowany jest PHP i Pear. Skoro tak upewnijmy się, że nie mamy zainstalowanego programu pfm
bash3-1$ pfm Command not found
Najpierw zróbmy upgrade samego Peara
bash3-1# pear channel-update pear.php.net bash3-1# pear upgrade PEAR
Instalujemy po kolei:
bash3-1# pear install channel://pear.php.net/PHP_CompatInfo bash3-1# pear install channel://pear.php.net/XML_Serializer bash3-1# pear install channel://pear.php.net/PEAR_PackageFileManager_Plugins bash3-1# pear install channel://pear.php.net/PEAR_PackageFileManager bash3-1# pear install PEAR_PackageFileManager_Cli-0.3.0
Jeśli wszystko zainstalowało się bezbłędnie to wypróbujmy działanie pfm. Przejdźmy do katalogu z pluginem i po prostu wydajmy polecenie pfm:
bash3-1$ cd /www/symfony-plugins/plugins/caMailerPlugin bash3-1$ pfm
Po wpisaniu polecenia pfm konsola zrobi się nieco bardziej interaktywna i zacznie wypytywać nas o różne rzeczy. W moim przypadku wylądało to tak:
PEAR Package File Manager Command Line Tool Please enter the location of your package [.]*:
W tym kroku musimy podać względną ( bądź bezwzględną ) ścieżkę do katalogu z pluginem. My znajdujemy się w katalogu z plugnem zatem wpiszmy . ( kropkę ).
Creating a new package file ... Enter the base install directory*:
Wskażmy teraz gdzie ma instalować się plugin. Podajmy znowu kropkę .
Enter the name of the package [caMailerPlugin]*:
Teraz system pyta nas o nazwę naszego pluginu ( w nawiasie kwadratowym sugeruje nazwę katalogu ). Możemy zgodzić się na jego propozycję wciskając enter bądź wpisać dowolnie inną nazwę.
Channel or URI based package? [c] (c,u)*:
W tym kroku wybierzmy tryb channel (c).
Enter the name of the channel [pear.php.net]*:
Teraz musimy podać nazwę kanału pear symfony: pear.symfony-project.com
Enter a 1 line summary*:
Podajmy krótkie podsumowanie pluginu
Enter a description* (2 blank lines to finish):
Teraz wpiszmy nieco dłuższy opis pluginu i wciśnijmy dwa razy enter.
Enter the release version*:
Musimy wpisać wersję pluginu. Zazwyczaj przyjęło się nazywać wersję w formacie x.y.z ( np. 0.4.6 ).
Enter the API version [0.3.2]*:
Teraz należy podać wersję API ( jeśli od ostatniego realeasu uległa jakiejś zmianie ).
Choose a release stability [alpha] (alpha,beta,stable)*:
Teraz musimy określić stabilnośc neszego pluginu. Jeśli jest to plugin rozwojowy wpiszmy alpha bądź beta. Stable wpiszmy dopiero kiedy będziemy pewni, że w pluginie nie ma żadnych poważniejszych błedów. Mała uwaga. Jeśli jako wersję wpiszemy 1.0.0 a póżniej wybierzemy wersję niestabilną ( alpha albo beta ) pearowi niekoniecznie musi się to do końca spodobać ( parserowi symfony także )
Choose an API stability [alpha] (alpha,beta,stable)*:
Jak wyżej lecz dotyczy wersji API
Enter any release notes* (2 blank lines to finish):
Jeśli wiemy co zmieniło się od czasu ostatniego wypustu opiszmy wszystkie te rzeczy w tym kroku i zatwierdźmy wciskając dwa razy enter.
Enter the minimum PHP version [5]*:
Jaka minimalna wersja parsera PHP jest wymagana żeby plugin ruszył. Jeśli rzeczywiście używamy funkcji które dostępne są tylko od określonej wersji php zaznaczmy to w tym kroku wpisując właściwą wersję php.
Enter the minimum PEAR Installer version [1.4.0]*:
Jaka jest minimalna wersja Peara. Zostawmy tak jak jest i przejdźmy do kolejnego kroku wciskając enter
Please choose a license from one of the following options
1) Apache
2) BSD Style
3) LGPL
4) MIT
5) PHP
Please choose an option:
Teraz należy wybrać rodzaj licencji, zgodnie z ideą pluginów symfony należy wybrać licencję spokrewnioną z licencją MIT. Ja wybiorę BSD, ale uwaga, nazwa BSD Style jest nierozpoznawana przez instalator symfony, będziemy ją musieli później ręcznie wyedytować i zmienić na New BSD.
How many maintainers?*:
Ilu jest członków zespołu pracującego nad pluginem. Ja robiłem swój plugin sam więc wpisuję 1.
What type of maintainer is #1? [lead] (lead,developer,contributor,helper)*:
Jaka jest rola członka oznaczonego jako #1. Oczywiście wybieram lead ( lider zespołu ).
Enter maintainer #1's name*:
Imię członka zespołu. Wpisuje swoje dane: Damian Kopiec.
Enter maintainer #1's username*:
Teraz naelży podać nazwę użytkownika pod jaką jesteśmy zarejestrowani na stronie symfony-project.
Enter maintainer #1's email [username@php.net]*:
Wpisujemy adres email.
PEAR Package File Manager Command Line Tool
1. Package name [caMailerPlugin]
2. Channel/URI [Channel: pear.php.net]
3. Summary [plugin summary]
4. Description [plugin description]
5. Maintainers
6. Version [Release: 0.4.3 API: 0.4.3]
7. Stability [Release: alpha API: alpha]
8. License [BSD Style]
9. Notes [changelog]
10. Dependencies
11. Tasks
12. Regenerate contents
13. Echo package file to stdout
14. Save & Quit
15. Quit without saving (ctrl-c)
Please choose an option from the menu:
To juz ostatni krok przed wygenerowaniem ostatecznego pliku xml. Jeśli wszystko jest ok wybierzmy opcję numer 14 – Save & Quit
Teraz bardzo ważne jest to żeby wyedytować plik packages.xml i zmienić w nim:
- Rodzaj licencji z BSD Style na New BSD
- W strukturze plików zamienić wszystkie wystąpienia role=”php” na role=”data”
Na koniec do sekcji required należy dodać:
<package> <name>symfony</name> <channel>pear.symfony-project.com</channel> <min>1.2.0</min> <max>1.3.0</max> <exclude>1.3.0</exclude> </package>
Teraz po wydaniu polecenia
pear package package.xml
Utworzy nam się gotowa paczka z rozszerzeniem tgz. Paczka jest gotowa do zuploadowania na stronie symfony.
Życzę powodzenia.
Inne posty:
Posted on 2010/05/30 at 19:28
Logically this is great, keep up the good work.