Devtips – WordPress eklentilerinin geliştirilmesini otomatikleştirmek için komut dosyaları
Birkaç hafta önce, bence çok komik olan bir makaleyi okudum (birkaç yaşında olmasına rağmen): Bir programcı, işinin çoğunu otomatikleştirmek için birkaç senaryo yazdı ve karısına mektup göndermekten neden Hala veritabanına geri dönüş uygulayarak ve “Endişelenme, arkadaş, bir dahaki sefere dikkatli ol” diye cevaplayarak bu yorucu müşteriden bilet desteğini otomatik olarak tamamlamak için mi çalıştı? İtiraf etmeliyim ki: Bu adamın büyük bir hayranıyım! Çünkü görevin otomasyonu, arkadaş, her iyi programcı tarafından her zaman aranması gereken bir şeydir.
“Bu kadar zor” çalışmamaya çalışın. Sonunda, iyi programcılar daha fazla düğmeye basan kişiler değil, biraz daha fazla çaba ile daha fazlasını yapabilen kişilerdir (ve evet, otomasyonu içerir). Sizin için çalışan bir komut dosyası varsa neden aynı eylemi tekrar tekrar tekrarlar? Otomasyon zamanınızı kazandırır – daha çekici veya üretken diğer görevlere ayırabileceğiniz zaman: müşterilere katılma, yeni teknoloji öğrenmek, hataları onarmak vb. Otomasyon da hatalardan kaçınır: Aynı işi tekrar tekrar yaptığınızda sıkıcı, tekrarlanır ve sıkıcı hale gelir, bu yüzden büyük olasılıkla başarısız olur.Bugünün gönderisinde, ambalaj işlemini otomatikleştirmek ve eklentimizin yeni bir sürümünü yayınlamak için Nelio’da kullandığımız bazı komut dosyalarını sizinle paylaşmak istiyorum. Bu bir roket bilimi değil, ama eminim onları hala yararlı bulacaksınız-aynı zamanda kendi senaryosunuzu yapmanız için size ilham verebilirler! Bir yazılım yapımı eklentisi yaparken görev tekrarlanır. Tabii ki, metodolojiyi işimizde uyguluyoruz ve olabildiğince katı olmaya çalışıyoruz, ancak yazılım yazmak, bir dizi parlaklık ve yetenek gerektirir-bir programcı kullanıcının gereksinim kodunun birkaç satırında ifade etmelidir … Şiir gibi! Ancak iş uzmanlığımızla aldanmayın: tekrarlanan yazılım yaparken ve sürdürürken ve otomatikleştirilebileceği için birçok görev. Daha önce birkaç kez karşılaşmış olabileceğiniz bazı örneklere bakalım: CSS ve JavaScript dosyaları. Bu oldukça yaygın bir görevdir, özellikle kurallarımızı ve işlevlerimizi birkaç dosyaya bölersek ve her şeyi birleştirip en aza indirmeliyiz.
Çevrilecek tüm dizeleri içeren bir .pot dosyası oluşturun. Eklentinizin herkes tarafından kullanılmasını istiyorsanız, uluslararasılaşma kurallarına uymayı düşünmelisiniz. Genellikle, bunun için i18n WordPress işlevini kullanmak istersiniz.
Birim testini çalıştırın. Bu blogda kod biriminizi test etmenin önemini birkaç kez tartıştık. Bunu yapmak için birçok araç var (“devam eden entegrasyon” gibi şeyler dahil), ancak en azından test serinizi kolayca çalıştırabilmeniz ve yeni bir sürüm piyasaya sürmeden önce her şeyin beklendiği gibi çalıştığından emin olmalısınız. Yeni sürümünüzün yüklenmesi ve yayınlanması eklentinizin. Birkaç hafta veya hatta aylarca çalıştıktan sonra, yeni özellikler uygulamak, hataları onarmak ve eklentinize bazı iyileştirmeler eklemek, yeni bir sürüm yayınlama zamanı. Bu, WordPress.org SVN deposunuzu yeni bir dosya ile güncellemeniz gerektiği anlamına gelir, böylece kullanıcınız mevcut yeni bir sürümü görebilir.
Gördüğünüz gibi, eklentinin yapımı sırasında yapacağınız tüm tekrarlanan görevler çok basit ve tekrarlanır, bu da onu otomasyon için mükemmel bir aday yapar. Bu örneği seçtim çünkü bunu otomatikleştirmek için zaten birkaç komut dosyası var … ve bugün bu senaryoyu size paylaşacağız! ?
Umarım senaryomuzu sizinle paylaşacağımı söyledikten sonra bu kişi kadar heyecanlısınızdır? Otomatikleştirme zamanı! Görevlerimizi otomatikleştirmek için birçok araç var, yudum ve bash betiğini kullanacağız ve paylaşacağım senaryo bu dilde yazılacak. Ancak, lütfen, rahat hissettiğiniz araçları kullanmaktan çekinmeyin – burada önemli olan, nihayet kullandığınız belirli dillere veya araçlara bakılmaksızın çeşitli şeyleri otomatikleştirmenizdir. Öyleyse, daha fazla uzatmadan başlayalım! JavaScript ve CSS için Gulp Scripts Web geliştiricileri yaptığımız en yaygın görevlerden biri “Minifikasyon Script” dir. Yani, temelde bazı baytları kaydetmek için kodumuzdan tüm gereksiz alanları ve karakterleri siliyoruz. Peki, bu yudum çok basit: sadece gerekli paketi ekleyin, tüm JavaScript dosyalarını (satır 6), daralma (satır 7), sürüm üreten yeni bir atama oluşturun. Min.js (satır 8 ve 9) ve voila! Çok kolay! Aynı şey elbette CSS dosyaları için de geçerlidir:
Ancak, daha yakından bakarsanız, görevin JavaScript’ten biraz daha karmaşık olduğunu fark edeceksiniz. Çünkü iki farklı paket kullanıyoruz: CSS Next ve CSS Nano. Birincisi, “gelecek kuralları” kullanarak CSS yazmamıza izin veren küçük bir yardımcı programdır. Sonuncusu minifikasyon paketinin kendisidir. İleri: Kaynak dosya ve azaltılmış bir sürümle çalışma konusunda beni en çok rahatsız eden şeylerden biri, kaynak dosyalardan birinde her değişiklik yaptığımda, doğru bir şekilde azaltmayı hatırlamam gerektiğidir. Neyse ki, Gulp, kaynak dosyalarınızdan birinde değişimin ne zaman meydana geldiğini algılayan bir cihaz içerir ve yanıt olarak bir veya daha fazla görev çalıştırır. Başka bir deyişle, Gulp’e şunu söyleyebilirim: “Hey, bu JavaScript veya CSS dosyasında her değişiklik olduğunda, tamamen azalır”: Cool, ha? Ve hey, yudumlamak için alışık olduğunuzda, hiçbir şey seni durduramaz. Örneğin, PHP ve JavaScript dosyalarımda birim testi yapmak için birkaç görev yaptım:
ve .Pot i18n dosyası üretmek için:
Beğendim! Burada komut dosyasının tamamını bulacaksınız, bu yüzden lütfen kendi geliştirmenizde indirin, ayarlayın ve kullanın. Bash Script eklentinin yeni bir sürümünü bildiğiniz gibi yayınlamak için, WordPress eklentisine ilk olarak yeni bir eklenti gönderdikten ve onaylandıktan sonra, geliştirmeye devam edebileceğiniz ve nerede olacağınız SVN deposuna erişim verilecektir. Kararlı versiyonu işaretleyin. Sorun şu ki, şu anda çoğu geliştiricinin GIT’i projelerinde çalışmak için kullanması, bu nedenle eklenti dosyalarını GIT projesinden SVN’ye kopyalamaları gerekiyor. Başka bir deyişle, bir kez daha otomatik olması gereken tekrarlanan bir görevle karşılaşıyoruz!
Eklentimizin yeni sürümünü yayınlamamız ve yayınlamamız gereken komut dosyası oldukça basit: yalnızca kullanmak istediğimiz yeni sürüm numarasını ve SVN dizinimizin konumunu bilmemiz gerekiyor (GIT dizininden çalıştırdığımızı varsayıyoruz ): [E-posta korumalı] : ~/vagrant/wordpress/wp- içerik/eklentiler/nelio-content/$/mkVersion 1.5.0 ~/svn/nelio-concent/Şimdi olması gereken farklı aşamalara bakalım Bu eklentiyi otomatikleştirin: 1. ReadMe’yi güncelleyin. Yeni bir sürüm yayınladığınızda, ReadMe dosyasını güncellemeniz gerekir. İlk olarak, kararlı bir versiyonu değiştirmeniz gerekir (her şeyin yolunda olduğundan emin olduktan sonra işlemin sonunda bunu yapmak isteseniz bile). İkincisi, kullanıcıların yeni sürümde bulunan değişiklikleri görebilmesi için ChangeLog’a yeni bir parça eklemelisiniz. Son olarak, yeni olanı kısaca açıklayan bir artış bildirimi ile ReadMe’nin sonunda kısa bir çizgi eklemeniz gerekir.
Otomatik komut dosyamız önceki ödevlerde bize yardımcı olacaktır. Her şeyden önce, ReadMe dosyasının en son ChangeLog bölümünü içerip içermediğini otomatik olarak kontrol edeceğiz (yani, kararlı olarak işaretlemek istediğimiz sürüm için bir değişiklik listesi içeriyorsa). Eğer öyleyse, adını çıkış tarihini (bugün) içerecek şekilde değiştireceğiz ve artışın bildirimini güncelleyeceğiz:
Komut dosyamızın başında bazı değişkenler (örneğin, $ sürüm) veya işlevler (soru veya hata gibi) tanımlanmıştır. 2. Örneğin, JS ve CSS dosyaları oluşturma, I18N dizesini .pot dosyasına çıkarma veya eklentideki sürüm numarasını güncelleme gibi bazı temel görevleri çalıştırın. Bunların çoğunu Gulp senaryomuzda tanımladığımız için, burada çalıştırmak oldukça kolaydır: 3. GIT dizininizi SVN Trunk Dizinine kopyalayın. Her şey hazır olduktan sonra projeyi GIT’den SVN’ye taşımanın zamanı geldi. Burada hatırlanması gereken tek önemli şey, .git veya Node_modules dizini gibi “gereksiz” birkaç dosyayı kopyalamak değildir:
4. Bagaja dayalı etiketlerde yeni bir sürüm oluşturun. Serbest bırakma sürecimizin bir sonraki adımı, mevcut sürümü kararlı olarak işaretlemektir. SVN’de bu, etiketlerde yeni bir klasör kopyalayarak yapılır. Ayrıca, eklentinin boyutunu olabildiğince küçük sağlamak için birkaç dosya “kaynağı” ndan kurtulmak isteyebilirsiniz:
5. SVN dizinini, hangi dosyaların yeni olduğunu, hangi dosyaların değiştiğini ve hangi dosyaların silindiğini bilmesi için güncelleyin:
Son olarak, son adım (manuel) projeyi iletmek ve wordpress.org adresine yüklemektir. Ve hepsi bu! Burada son senaryoyu bulacaksınız. Şimdi sırası sizde … Umarım bu gönderiyi beğenirsiniz ve paylaştığım fikirlerden yararlanabilirsiniz. Kendi otomasyonunuz var mı? Neden bizimle paylaşmıyorsun? Kullandığınız araçları ve komut dosyalarını görmek istiyorum! Dominic Scythe tarafından Üstün Görüntü Unplash.