Empty┬Â

─░ndir

Kaynaklar

ilgisiz

https://github.com/pluginsGLPI/empty

Bu uygulama eki asl─▒ndaÔÇŽ hi├ž bir ┼čey yapmaz. Ger├žekten!

Bu uygulama ekinde, geli┼čtirmeye bir ba┼člang─▒├ž noktas─▒ olu┼čturmak i├žin kullan─▒labilecek ┼čekilde baz─▒ varsay─▒lan betikler ve ├Âneriler bulunur. Uygulama eki olanaklar─▒n─▒ ├Â─črenmek istiyorsan─▒z ├Ârnek uygulama eki b├Âl├╝m├╝ne bak─▒n.

Yeni bir uygulama eki olu┼čturmak┬Â

Yeni bir uygulama eki olu┼čturmak i├žin plugin.sh beti─či kullan─▒l─▒r. Betik ├ža─čr─▒l─▒rken bir uygulama eki ad─▒, bir s├╝r├╝m ve iste─če ba─čl─▒ olarak uygulama ekinin olu┼čturulmas─▒ istenilen yol belirtilmelidir:

$ ./plugin.sh MyGreatPlugin 0.0.1

Betik yazd─▒─č─▒n─▒z ad─▒ ar─▒nd─▒r─▒p l├╝├ž├╝k harfe d├Ân├╝┼čt├╝r├╝r, tema dosyalar─▒n─▒ yeni klas├Âre kopyalar ve baz─▒ de─či┼čiklikler yapar.

Betik hedef parametresi olmadan kullan─▒ld─▒─č─▒nda kendi bulundu─ču klas├Âr i├žine mygreatplugin klas├Âr├╝n├╝ ekler. Yol belirtilmi┼č ise yeni klas├Âr belirtilen yola eklenir:

$ ./plugin.sh MyGreatPlugin 0.0.1 /path/to/glpi/plugins/

Var olan uygulama ekini g├╝ncellemek┬Â

G├Âzden ge├žirilmesi gereken ├žok say─▒da durum oldu─čundan hen├╝z var olan uygulama ekleri otomatik olarak g├╝ncellenemiyor. Gene de sorun de─čil, i┼člem olduk├ža basit ;)

Bo┼č ├Âzellikleri kullanmak bir ka├ž dosya olu┼čturmak kadar kolay:

  • composer.json,

  • .travis.yml,

  • Robofile.php,

  • .gitignore.

Herhangi bir composer ya da travis yap─▒land─▒rma dosyan─▒z yoksa, bo┼č uygulama ekindeki dosyalar─▒ kopyalay─▒n. Varsa; composer.json dosyas─▒na ┼čunu ekleyin:

{
  "minimum-stability": "dev",
  "prefer-stable": true
}

Ard─▒ndan composer require glpi-project/tools komutunu ├žal─▒┼čt─▒r─▒n.

Travis yap─▒land─▒rma dosyas─▒na CS ├ža─čr─▒s─▒n─▒ ekleyin:

script:
  - vendor/bin/robo --no-interaction code:cs

.gitignore dosyas─▒na ┼čunu ekleyin:

dist/
vendor/
.gh_token
*.min.*

Robo.li yap─▒land─▒rma dosyas─▒nda, bo┼č uygulama ekini g├Âmmenin biraz incelikli oldu─čunu unutmay─▒n. Sorunsuz ├žal─▒┼čmas─▒ i├žin d├╝zenlemeniz gereken baz─▒ ┼čeyler var. Ayr─▒nt─▒l─▒ bilgi almak i├žin a┼ča─č─▒ya bak─▒n.

Son olarak tools projesi size baz─▒ ├Âzellikler sunar. Uygulama ekinizde bulunabilecek ├žift ara├ž beti─či dosyalar─▒n─▒ silebilirsiniz (release`, extract_template.sh, gibi).

├ľzellikler┬Â

Kodlama standartlar─▒┬Â

GLPI PHP KodTaray─▒c─▒ kural k├╝mesi, vendor/glpi-project/coding-standard/GlpiStandard/ bi├žiminde sunulur.

Kodlama standartlar─▒n─▒ denetlemek i├žin Robo.li task code:cs kullan─▒n:

$ ./vendor/bin/robo code:cs

Not

Yukar─▒daki komut vendor se├žene─čini yok sayar ve ge├žerli klas├Ârde y├╝r├╝t├╝l├╝r.

Yok sayma listesi ya da denetlenmi┼č klas├Ârleri uygulamak istiyorsan─▒z, uygulama ekinin RoboFile.php dosyas─▒ndaki $csignore ve $csfiles de─čerlerini de─či┼čtirmeniz yeterlidir:

<?php

class RoboFile extends Glpi\Tools\RoboFile
{
   protected $csignore = ['/vendor/', '/lib/'];
   protected $csfiles  = ['./', 'setup.php.tpl']
   [...]
}

Otomatik denetimler┬Â

Kolayl─▒k sa─člamak i├žin ├Ânceden haz─▒rlanm─▒┼č bir .travis.yml dosyas─▒ sunulmu┼čtur ve ┼čunlar─▒ kapsar:

  • Kodlama standartlar─▒n─▒ denetler,

  • Farkl─▒ yap─▒land─▒rmalar ├╝zerinde ├žal─▒┼č─▒r

Otomatik denetimlerin yap─▒labilmesi i├žin site ├╝zerinde travis-ci yap─▒mlar─▒n─▒ etkinle┼čtirmeniz gerekir.

.travis.yml dosyas─▒ de─či┼čtirilebilir. Birim denetimleri y├╝r├╝tmek, bir veri taban─▒n─▒ olu┼čturmak ya da g├╝ncellemek, bildirimleri etkinle┼čtirmek gibi i┼člemler ekleyebilirsiniz. Ayr─▒nt─▒l─▒ bilgi almak i├žin Travis-CI belgelerine bak─▒n.

CSS ve JS dosyalar─▒n─▒ k├╝├ž├╝ltmek┬Â

Uyar─▒

Robo kitapl─▒klar─▒ eskimi┼č oldu─čundan ve de─či┼čtirilemedi─činden 0.1.13 s├╝r├╝m├╝yle birlikte devre d─▒┼č─▒ b─▒rak─▒ld─▒.

Robo.li kullanan standart bir betik sunulmu┼čtur. RoboFile.php` dosyas─▒nda Glpi\Tools\RoboFile (glpi-project/tools ba─čl─▒l─▒─č─▒ taraf─▒ndan sunulan) ├Âzelliklerini geni┼čleten bo┼č bir s─▒n─▒f bulunur. Burada istedi─činiz ayarlar─▒ yapabilirsiniz.

B├Âylece ortak dosyay─▒ kolayca g├╝ncelleyerek kendi g├Ârevlerinizin ayn─▒ kalmas─▒n─▒ sa─člayabilirsiniz.

Gerekli kitapl─▒klar─▒n y├╝klenmesi i├žin get composer <http://getcomposer.org>`_ y├╝kleyip ┼čunu ├žal─▒┼čt─▒rmal─▒s─▒n─▒z:

$ composer install -o

├ť├ž hedef se├žilebilir:

  • k├╝├ž├╝lt t├╝m CSS ve JavaScript dosyalar─▒n─▒ k├╝├ž├╝lt├╝r (a┼ča─č─▒ya bak─▒n),

  • k├╝├ž├╝lt:css uygulama ekinizin css klas├Âr├╝ndeki t├╝m css stil sayfalar─▒n─▒ k├╝├ž├╝lterek ├Âzg├╝n dosyalar─▒n yan─▒nda .min.css s├╝r├╝mlerini olu┼čturur.

  • k├╝├ž├╝lt:js uygulama ekinizin js klas├Âr├╝ndeki t├╝m javascript dosyalar─▒n─▒ k├╝├ž├╝lterek ├Âzg├╝n dosyalar─▒n yan─▒nda .min.js s├╝r├╝mlerini olu┼čturur.

Yaln─▒z hedefi se├žin ve ┼čunun gibi bir ┼čey ├žal─▒┼čt─▒r─▒n:

$ ./vendor/bin/robo minify:css

Not

Derlenmi┼č dosyalar─▒n depo kaynaklar─▒n─▒za y├╝klenmeyece─čini unutmay─▒n. Bu i┼člem yay─▒nlamadan ├Ânce dosyalar─▒ k├╝├ž├╝ltmek i├žindir.

Ayr─▒ca betiklerinizi varsa k├╝├ž├╝lt├╝lm├╝┼č s├╝r├╝mleri yoksa ├Âzg├╝n s├╝r├╝mleri y├╝kleyecek ┼čekilde uyarlamay─▒ unutmay─▒n :)

GLPI 9.2 s├╝r├╝m├╝nden itibaren, add_css ve add_javascript se├ženeklerini kullanarak, k├╝├ž├╝lt├╝lm├╝┼č dosyalar─▒n y├╝klenmesi i├žin herhangi bir ek i┼člem yapman─▒z gerekmez. K├╝├ž├╝lt├╝lmemi┼č beti─či ├ža─č─▒rman─▒z yeterlidir. Varsa ve Hata Ay─▒klama kipinde de─čilse GLPI k├╝├ž├╝lt├╝lm├╝┼č s├╝r├╝m├╝ kullan─▒r.

├çeviriler┬Â

GLPI ve uygulama eklerinin dil ├ževirileri i├žin gettext kullan─▒l─▒r. ├çevirilerin do─čru ├žal─▒┼čmas─▒ i├žin bir ka├ž ad─▒m gereklidir:

1 translatable strings must be extracted from source files, a POT file will be created or updated accordingly, 2 PO files must be created or updated from the POT file, 3 PO files must be translated, 4 MO files must be compiled from the latest PO.

vendor/bin klas├Âr├╝nde bulabilece─činiz extract_template.sh beti─či ile kaynak kodunuzdaki ├ževrilebilecek dizgeleri ay─▒klayabilirsiniz (yukar─▒daki birinci ad─▒m).

Bu betik ├žal─▒┼čt─▒r─▒ld─▒─č─▒nda locale/uygulamaekim.pot dosyas─▒ olu┼čturulur ya da g├╝ncellenir.

─░kinci ve ├╝├ž├╝nc├╝ ad─▒mlar i├žin bir se├žim yapman─▒z gerekir. PO dosyalar─▒n─▒z─▒ g├╝ncellemek ve ├ževirmek i├žin poedit; gibi gettext ara├žlar─▒n─▒ kullanabilece─činiz gibi`Transifex <http://transifex.com/>`_ ya da Zanata gibi ├ževrim i├ži ├ževiri sistemlerinden yararlanabilirsiniz. ┼×u anda Transifex ├╝zerinde GLPI ├žekirde─či ve ├žo─ču uygulama ekinin ├ževirileri bulunmaktad─▒r.

PO dosyalar─▒n─▒z─▒ g├╝ncelledikten sonra MO dosyalar─▒n─▒ derlemelisiniz. Bu i┼člemi el ile yapabilirsiniz. Yay─▒nlama beti─či bu dosyalar─▒ her durumda yeniden derler. MO dosyalar─▒n─▒ derlemek b├Âl├╝m├╝ne bak─▒n.

Yay─▒nlama beti─či┬Â

vendor/bin/plugin-release klas├Âr├╝nde bir yay─▒nlama beti─či bulunur. ÔÇťBasitÔÇŁ bir Python beti─čidir. Sisteminizde Python y├╝kl├╝ olmal─▒d─▒r (├žo─ču linux da─č─▒t─▒m─▒nda varsay─▒lan olarak y├╝kl├╝d├╝r).

Uyar─▒

Yay─▒nlama beti─činin yaln─▒z anlam bilimsel s├╝r├╝mleme ile uyumlu oldu─čunu unutmay─▒n!

Yaln─▒z varsay─▒lan de─čerler kullan─▒ld─▒─č─▒nda betik git deponuzdaki son etiketi almay─▒, ├╝├ž├╝nc├╝ taraf ba─čl─▒l─▒klar─▒n─▒ eklemeyi ve github projesinde Yay─▒n s├╝r├╝m├╝n├╝ olu┼čturmay─▒ dener:

$ ./vendor/bin/plugin-release
Do you want to build version 1.9.5? [Yes/no] y
Building glpi-order-1.9.5...
Archiving GIT tag 1.9.5
Adding vendor libraries
$ ls dist
glpi-order-1.9.5.tar.bz2  glpi-order-1.9.5.tar.bz2.asc

Gereksinimler┬Â

Python derleyicinin ┼ču mod├╝ller ile y├╝klenmi┼č olmas─▒ gerekir:

  • termcolor,

  • gitdb,

  • github (var olan s├╝r├╝mleri ve taslaklar─▒ denetlemek ve github s├╝r├╝mlerini olu┼čturmak i├žin ), --nogithub se├žene─čini kullanmad─▒─č─▒n─▒z s├╝rece

Betik ile ilgili yard─▒m sayfas─▒n─▒ g├Âr├╝nt├╝lemek i├žin ./vendor/bin/plugin-release -h yaz─▒n.

S├╝re├ž┬Â

Yay─▒nlama s├╝recinde ┼ču i┼člemler yap─▒l─▒r:

  • S├╝r├╝m sabitinin istedi─činiz etiket ile ayn─▒ olup olmad─▒─č─▒ denetlenir,

  • Site XML dosyas─▒ s├╝r├╝m├╝n├╝n istedi─činiz etiket ile ayn─▒ olup olmad─▒─č─▒ denetlenir,

  • Yerel ve uzak (projenizin pluginsGLPI kurulu┼čunda yay─▒nland─▒─č─▒ ve herkese a├ž─▒k olarak yay─▒nland─▒─č─▒ varsay─▒larak) bir s├╝r├╝m├╝n var olup olmad─▒─č─▒ denetlenir,

  • Devre d─▒┼č─▒ b─▒rak─▒lmam─▒┼č yollar─▒n git ar┼čivi of olu┼čturulur (.git, tools, tests, ÔÇŽ),

  • Varsa derleyici ba─č─▒ml─▒l─▒klar─▒ y├╝klenir,

  • Varsa, MO dosyalar─▒ derlenir,

  • Varsa, CSS bi├žem sayfalar─▒ ve JavaScript dosyalar─▒ derlenir (Robo.li <http://robo.li> kullan─▒larak_),

  • T├╝m bunlardan bir yay─▒n ar┼čivi derlenerek Robo.li dist klas├Âr├╝ne eklenir,

  • Ar┼čivi imzalamak i├žin GPG kullan─▒n.

Not

Standart yay─▒nlama s├╝recinde do─črudan dosyalar─▒n─▒z ├╝zerinde ├žal─▒┼č─▒lmaz. Dosyalar ├Ânce dist/src klas├Âr├╝ne kopyalan─▒r. Bu i┼člemin uygulanmad─▒─č─▒ tek durum MO derleme se├žene─čidir.

Ger├žek s├╝r├╝m├╝ yay─▒nlamadan ├Ânce her ┼čeyin tamam olup olmad─▒─č─▒n─▒ g├Ârmek i├žin etiketinizi olu┼čturun ve ./vendor/bin/plugin-release -C komutunu y├╝r├╝t├╝n etiketinize push i┼člemi yapmadan ├Ânce. B├Âylece olas─▒ sorunlar─▒ ├ž├Âzerek etiketinizi yerel olarak yeniden olu┼čturabilirsiniz. (yay─▒nlanan etiketlerin asla silinemedi─čini unutmay─▒n).

MO dosyalar─▒n─▒ derlemek┬Â

Yay─▒nlama s├╝recinde locales klas├Âr├╝ndeki her PO dosyas─▒ otomatik olarak derlenir. Ancak b├╝y├╝k olas─▒l─▒kla deneme amac─▒yla kaynak kodlar─▒nda son MO dosyalar─▒n─▒n bulunmas─▒n─▒ istersiniz. Yay─▒nlama beti─činde bu i┼člemi ger├žekle┼čtirmek i├žin --compile-mo (ya da -m) se├žene─či sunulur:

$ ./vendor/bin/plugin-release --compile-mo

Uyar─▒

Bu komut yukar─▒daki di─čer komutlar gibi uygulama eki dosyalar─▒n─▒z─▒n kopyalar─▒ ├╝zerinde de─čil, do─črudan uygulama eki dosyalar─▒n─▒z─▒n ├╝zerinde ├žal─▒┼č─▒r.

├ľn yay─▒nlar┬Â

Varsay─▒lan olarak yay─▒nlama beti─či yaln─▒z var olan etiketler ├╝zerinde ├žal─▒┼č─▒r. Herhangi bir ├Ân yay─▒n─▒n kendi etiketi olmal─▒d─▒r. Ancak baz─▒ durumlarda herhangi bir etiketi olmayan bir yay─▒n ar┼čivi olu┼čturmak isteyebilirsiniz.

Yay─▒nlama beti─činde bu i┼člemi ger├žekle┼čtirmek i├žin bir ka├ž parametre belirtmeniz gerekir:

  • --commit (ya da -c) commit karmas─▒n─▒ verir,

  • --release (ya da -r) yay─▒n s├╝r├╝m├╝n├╝ verir (genellikle bir sonraki yay─▒n s├╝r├╝m├╝d├╝r),

  • --extra (ya da -e) ek bir dizge belirtmek i├žin kullan─▒l─▒r (alpha, beta, rc1 gibi)

├ľrnek olarak sipari┼č uygulama eki i├žin:

$ ./vendor/bin/plugin-release --commit 632d515d4ac0 --release 1.9.5 --extra alpha1
$ ls dist
glpi-order-1.9.5-alpha1-20161103-632d515d4a.tar.bz2

S├╝r├╝mleri imzalamak┬Â

Yay─▒n s├╝r├╝mlerinin GPG anahtar─▒ ile imzalanmas─▒ kullan─▒c─▒lar─▒n y├╝klemeden ├Ânce indirdikleri dosyan─▒n sorunsuz oldu─čunu anlamalar─▒n─▒ sa─člar. Bu i┼člem i├žin herkese a├ž─▒k olarak sunaca─č─▒n─▒z bir GPG anahtar─▒na gerek vard─▒r. ─░mzalama se├žene─či varsay─▒lan olarak etkindir. --nosign (ya da -S) se├žene─či kullan─▒larak devre d─▒┼č─▒ b─▒rak─▒labilir.

─░mzan─▒n bulundu─ču dosya ar┼čiv ile ayn─▒ adla ve .asc uzant─▒s─▒yla dist klas├Âr├╝ne eklenir.

GitHub ├╝zerinde yay─▒nlamak┬Â

Yay─▒nlama beti─či --nogithub (ya da -g) se├žene─či kullan─▒lmad─▒k├ža GitHub deposu ├╝zerinde bir taslak yay─▒nlama s├╝r├╝m├╝ olu┼čturur.

Not

Maalesef, yeni s├╝r├╝m i├žin olu┼čturulmu┼č ar┼čiv dosyas─▒n─▒ hen├╝z y├╝kleyemiyoruzÔÇŽBu sorun ileride ├ž├Âz├╝lebilir.

Bu ├Âzelli─či kullanabilmek i├žn GitHub kurulmu┼č; ve eri┼čim kodu al─▒nm─▒┼č olmal─▒d─▒r. Her kullan─▒c─▒ya bir eri┼čim kodu verilir ve depolar─▒na ula┼čmas─▒ i├žin kullan─▒l─▒r.

GitHub ayarlar─▒ sayfas─▒n─▒za giderek, personnal access token sekmesinden. generate new token ├╝zerine t─▒klay─▒n. A├ž─▒klamay─▒ iste─činize g├Âre yaz─▒n ve yaln─▒z public_repo se├žene─čini i┼čaretledi─činizden emin olun (ba┼čka bir se├žene─či i┼čaretlemeniz gerekmez. Gerek duyarsan─▒z bir ka├ž eri┼čim kodu ├╝retebilirsiniz).

Kod yaln─▒z bir kez g├Âr├╝nt├╝lenir. kodu plugin klas├Âr├╝n├╝zdeki .gh_token dosyas─▒na kaydederek i┼člemi tamamlayabilirsiniz.

Kat─▒lmayacak dosyalar─▒ belirlemek┬Â

Uygulama ekinizin k├Âk klas├Âr├╝nde bir .ignore-release dosyas─▒ olu┼čturabilir ve i├žine s├╝r├╝m ar┼čivine kat─▒lmas─▒n─▒ istemedi─činiz dosya ve klas├Ârleri yazabilirsiniz. Her sat─▒ra bir ifade yaz─▒n

.+\.png
screenshots/

Baz─▒ dosyalar otomatik olarak kat─▒lmaz:

  • .git*,

  • .gh_token

  • .tx/

  • tools/

  • tests/

  • .atoum.php

  • .travis.yml

  • .circleci/

  • .ignore-release

  • composer.lock

  • Robofile.php

Creative Commons Lisans─▒