Tangra Framework Alpha1 Release

Posted / Публикувана 2009-01-17 in category / в категория: Tangra framework for PHP

След като месеци наред се занимавах с TangraCMS-а, сайтове за клиенти и разни мои лични SEO простотии (mlbticketsstore.com, nflticketsstore.com и други), най-накрая дойде време да обърна повече внимание на самият framework. Предишният release (dev5) беше преди повече от 6 месеца и се оказа, че съм позабравил как се подготвят някои от нещата. За щастие си намерих записките във вид на txt файл и лесно си припомних (баща ми има един лаф, който му е бил казан от някой от неговите шефове докато е бил младо инженерче: "Умните пишат, глупавите помнят").

Alpha1 release-а представлява основно bugfix-ове и "подреждане на килера". Много отдавна се канех да унифицирам имената на tpl файловете, защото преди имаше една неконсистентост -- tpl-тата за форми и гридове бяха от типа на site_edit_form_en.tpl, т.е. езикът стои най-отзад, а tpl-тата за страници бяха от типа на site_edit_en_default.tpl, т.е. в средата. Този проблем се беше получил от това, че tpl-тата за страниците бяха наследили конвенцията за имената на файлове си от мнооого ранни версии на framework-а и тъй като усилието, необходимо за промяната им щеше да бъде огромно (буквално стотици файлове трябваше да бъдат преименувани), постоянно отглагах и отлагах. Тия дни (по коледа) като ми остана време взех най-накрая, че се стегнах и с много "копане" ги приведох в ред.

Другата новост в alpha1 е наличието на модула TangraCMS. Ето тук бяха постнал за него относително подробно описание. Накратко: TangraCMS има два основни приоритета:

  • да е удобен за SEO цели;
  • да е лесно разширяем чрез добавяне на (под)модули.
Това, което не достига на alpha1, за да се превърне поне в beta1 е, че управлението на модулите има някои недовършени неща. Когато навремето проектирах мениджъра за модули, основните идеи ги взех от управлението на пакети в Debian. За добро или лошо дебианската система е доста трудоемка за реализация (поне и от сам човек) и някои предварително планирани функционалности все още не са реализирани. Например:
  • деинсталацията на модул просто изтрива неговите файлове, но ако има инсталирани DB таблици -- те си остават. Това се дължи на факта, че модулите си нямат свои деинсталатори, а се ползва общия механизъм на Modules manager. Реално това не предизвиква почти никакви проблеми -- много, много рядко се налага да се деинсталира модул, но все пак си е мърлявщина, която ме чака да оправя…
  • липсва инфраструктура за публикуване на модулите поотделно. В момента release-ите представляват all-in-one пакети, които съдържат всички модули накуп. Засега това не е проблем, но за в бъдеще ще трябва да направя някакво централно хранилище.
  • няма направена функционалност за автоматичен upgrade на модул. Под "автоматичен" нямам предвид, докато си спите, системата да вземе да си се upgrade-не сама. По скоро става дума за това като се види, че има нова версия на даден модул -- админа да може да каже: я се upgrade-ни и modules manager-a да си се оправи сам с деинсталацията на старата версия, инсталирането на новата и евентуално, ако има нужда от подаване на нови параметри или друга човешка намеса -- да си пита.
Като гледам какво ще е необходимо да се промени в modules manager-a и все повече и повече ми се струва, че ще трябва да го пренапиша.
Преди малко погленах в sourceforge-а статистиката за Tangra framework -- след release-a на alpha1 проектът се е изкачил до 837 позиция (от общо 120К проекти). Nice.
Щях да забравя най-важното  -- трябва да напиша manual. Идеята ми е да е в DocBook формат, но не мога да си намеря удобен редактор за XML. Дори най-мощния, който съм намерил -- XMLSpy не върши добра работа, когато се използва за DocBook -- при разделянето на документацията на множество файлове няма начин как да му се укаже, кое DTD да използва за всеки файл поотделно (без в самия XML да се слага описание отгоре (ако се сложи на вски файл -- xml validator-a почва да мърмори)). Проблемът ми се състои в това, че искам да имам контекстно предлагане на тагове. Пример: като си в <chapter> и дадеш ctrl-space да ти изкара pop-up с възможните (и коректни) child елементи. Някой да има представа за редактор (windows по-възможност), който е удобен за DocBook?
Преди месец-два бях получил мейл от някакъв пич от БГ, който ме питаше: "Абе, много хубаво си направил фреймуърк, ама защо не е на български". Отговорът е много прост -- защото няма смисъл. Негативният ми опит с превода на PHP manual-а ми беше достатъчен, за да се убедя, че едва ли има в България критична маса developer-и, които да не знаят английски и да имат нужда от превод на български.
Какво предстои да бъде направено занапред:
  • пренаписване на modules manager-a, "изграждане" на хранилище (ще отнеме около месец, месец и половина);
  • release на alpha2
  • написване на manual с най-важните неща (ще отнеме около 2-3 седмици);
  • release на beta1;
  • тестване и изчакване за feedback (2 седмици);
  • release на RC
  • тестване и изчакване за feedback (2 седмици);
  • повтаряне на последните 2 ако се наложи;
  • stable release -- така като смятам ще се случи в началото на май месец.

One Response to “Tangra Framework Alpha1 Release”

  1. Ogre's blog » Tangra Framework Alpha1 Release Says:

    […] Тази публикация беше преместена на Tangra Framework Alpha1 Release. […]