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ı