ፕለጊን መፍጠር¶
በዚህ መመሪያ ውስጥ እንዴት የ Climweb ፕለጊን መፍጠር እንደምንችል፣ ስለ ፕለጊን አርክቴክቸር እንወያይ እና አንድ ምሳሌ ተሰኪን እንሰጣለን እና እንዴት ተሰኪዎን ማተም እንደሚችሉ እንወያያለን።
ተሰኪ አርክቴክቸር¶
ClimWeb Plugin በመሠረቱ በተሰኪው ስም የተሰየመ አቃፊ ነው። አቃፊው Django/Wagtail መተግበሪያ መሆን አለበት።
ተሰኪዎን ከተሰኪው አብነት ያስጀምሩት።¶
የፕለጊን አብነት አስፈላጊው መዋቅር እና ፋይል ያለው ተሰኪ የሚያመነጭ አብነት cookiecutter አብነት ነው። ይህ ፕለጊኑ የሚጠበቀውን መዋቅር መከተሉን እና በቀላሉ ወደ ክሊምዌብ መጫኑን ያረጋግጣል።
አብነቱን ለማፍጠን፣ ተሰኪውን ለመፍጠር ከሚፈልጉት ማውጫ ውስጥ የሚከተሉትን ትዕዛዞችን ያስፈጽሙ።
pip install cookiecutter
cookiecutter gh:wmo-raf/climweb --directory plugin-boilerplate
ተሰኪውን ቦይለርፕሌት ስለመጠቀም ለበለጠ መረጃ፡ ተሰኪውን ቦይለርፕሌት በመጠቀም ፕለጊን ለመፍጠር የደረጃ በደረጃ መመሪያ መከተል ይችላሉ።
Plugin Installation API¶
የ Climweb docker ምስል ተሰኪዎችን ለመጫን የሚያገለግሉ የሚከተሉትን ባሽ ስክሪፕቶች ይዟል። ፕለጊን ወደ ቀድሞ አድል ኮንቴይነር በሂደት ጊዜ ለመጫን ሊያገለግሉ ይችላሉ። install_plugin.sh ፕለጊን ከዩአርኤል፣ git repo ወይም ከአካባቢያዊ ማህደር በፋይል ስርዓቱ ላይ ለመጫን ጥቅም ላይ ሊውል ይችላል።
በተገነቡት ምስሎች ውስጥ እነዚህን ስክሪፕቶች በሚከተሉት ቦታዎች ማግኘት ይችላሉ፡
/deploy/plugins/install_plugin.sh
በዚህ repo ላይ ስክሪፕቶቹን በ‹deploy/plugins› አቃፊ ውስጥ ማግኘት ይችላሉ።
እነዚህ ስክሪፕቶች የClimWeb ተሰኪ ከዚህ በታች የተገለጹትን ስምምነቶች እንዲከተል ይጠብቃሉ፡
ተሰኪ ፋይል መዋቅር¶
የinstall_plugin.sh ስክሪፕት ተሰኪዎ በሚከተለው መልኩ የተወሰነ መዋቅር እንዲኖረው ይጠበቃል፡
├── plugin_name
│ ├── climweb_plugin_info.json (A simple json file containing info about your plugin)
| ├── setup.py
| ├── build.sh (Called when installing the plugin in a Dockerfile/container)
| ├── runtime_setup.sh (Called on first runtime startup of the plugin)
| ├── uninstall.sh (Called when uninstalling the plugin in a container)
| ├── src/plugin_name/src/config/settings/settings.py (Optional Django setting file)
ማህደሩ ሶስት ባሽ ፋይሎችን ይይዛል እነዚህም ተሰኪውን በሚጫኑበት እና በሚራገፉበት ጊዜ በ climweb's plugin ስክሪፕቶች የሚጠሩት። ተጨማሪ የግንባታ ደረጃዎችን፣ ፓኬጆችን መጫን እና ሌሎች በፕለጊንዎ የሚፈለጉትን የዶከር ኮንቴይነር ግንባታ ደረጃዎችን ለማከናወን እነዚህን ስክሪፕቶች መጠቀም ይችላሉ።
build.sh፡ የአሂድ ጊዜ መጫኛ እየተከሰተ ከሆነ በመያዣ ጅምር ላይ ይጠራል።runtime_setup.sh፡ ተሰኪው ከተጫነ በኋላ መያዣው ሲጀምር ለመጀመሪያ ጊዜ ይባላል፣ ይህም በመያዣው ላይ የሱፐር ተጠቃሚ ትዕዛዞችን ለማስኬድ ይጠቅማል።uninstall.sh፡ ማራገፍ ሲጠራ፡ ዳታቤዙ የሚገኝ ይሆናል እና ማንኛውም ወደ ኋላ የሚደረጉ ፍልሰቶች እዚህ መሮጥ አለባቸው።
የተሰኪው መረጃ ፋይል¶
የclimweb_plugin_info.json ፋይል የ json ፋይል ነው፣ በእርስዎ root ፕለጊን አቃፊ ውስጥ፣ ስለ ተሰኪዎ ሜታዳታ የያዘ። የሚከተለው የJSON መዋቅር ሊኖረው ይገባል፡
{
"name": "TODO",
"version": "TODO",
"description": "TODO",
"author": "TODO",
"author_url": "TODO",
"url": "TODO",
"license": "TODO",
"contact": "TODO"
}
የሚጠበቀው የተሰኪ መዋቅር ከ git ማከማቻ ሲጫኑ¶
ከgit ላይ ፕለጊን ሲጭኑ፣ repo አንድ ነጠላ ፕለጊኖች ፎልደር መያዝ አለበት፣ በውስጡም ከላይ ያለውን መዋቅር የሚከተል አንድ ፕለጊን ማህደር ያለበት እና እንደ ተሰኪዎ ተመሳሳይ ስም ያለው ነው።
በነባሪነት plugin boilerplate ከዚህ መዋቅር ጋር ማከማቻ ያመነጫል።
ለምሳሌ አንድ የሚስማማ git repo እንደዚህ ያለ ነገር መያዝ አለበት፡-
├─ * (an outermost wrapper directory named anything is allowed but not required)
│ ├── plugins/
│ │ ├── plugin_name
│ | | ├── climweb_plugin_info.json
| | | ├── setup.py
| | | ├── build.sh
| | | ├── runtime_setup.sh
| | | ├── uninstall.sh
| | | ├── src/plugin_name/src/config/settings/settings.py (Optional Django setting file)
Plugin Boilerplate¶
በተሰኪው ቦይለርፕሌት በቀላሉ አዲስ ፕለጊን መፍጠር እና አድልን እንደ ጥገኝነት የሚጭን የዶከር ልማት አካባቢን ማዋቀር ይችላሉ። ይህ በቀላሉ በኩኪ መቁረጫ በኩል መጫን ይቻላል.
ተሰኪ መፍጠር¶
ተሰኪውን ቦይለር ለመጠቀም መጀመሪያ Cookiecutter መሳሪያ (pip install cookiecutter) መጫን አለቦት።
አንዴ ኩኪኩተርን ከጫኑ በኋላ አዲስ የኤ ዲ ኤል ፕለጊን ከእኛ አብነት ለመፍጠር የሚከተለውን ትዕዛዝ ማከናወን ይችላሉ። በዚህ መመሪያ ውስጥ የእኛን ፕለጊን "የእኔ ክሊምዌብ ፕለጊን" እንሰጣለን, ነገር ግን በኩኪ ቆጣቢ ሲጠየቁ የራስዎን የተሰኪ ስም መምረጥ ይችላሉ.
Note
የ Python ሞጁል በመረጡት ተሰኪ ስም ይወሰናል። ለምሳሌ በ"My Climweb Plugin" ከሄድን የDjango መተግበሪያ ስም my_climweb_plugin መሆን አለበት።
cookiecutter gh:wmo-raf/climweb --directory plugin-boilerplate
project_name [My Climweb Plugin]:
project_slug [my-climweb-plugin]:
project_module [my_climweb_plugin]:
ምንም ስህተቶች ካላዩ ይህ ማለት የእርስዎ ተሰኪ ተፈጥሯል ማለት ነው።
ፕለጊን በመጻፍ ላይ¶
አሁን ፕለጊን ፈጥረዋል፣ እንዴት በትክክል ፕለጊንዎን በመጠቀም Climwebን እንዴት ማራዘም እና ማበጀት እንደሚቻል የበለጠ በዝርዝር እናስብ።
ግዛትን ማከማቸት¶
ፕለጊንዎ ሁኔታን ማከማቸት ካለበት፣ ይህንን በሚከተለው ውስጥ ብቻ ማድረግ አለብዎት፦
በ Climweb ጥቅም ላይ የዋለው የውሂብ ጎታ
የጃንጎን ነባሪ የማከማቻ ዘዴ በመጠቀም
Redis በ Climweb ጥቅም ላይ እየዋለ ነው፣ ነገር ግን በማንኛውም ጊዜ መጥፋት ጥሩ እንደሆነ መሸጎጫ ያለ ቀጣይነት ላለው ሁኔታ ብቻ ነው።
Note
በእቃ መያዣው ውስጥ በራሱ ፕለጊን አቃፊ ውስጥ ማንኛውንም ሁኔታ በጭራሽ አታከማቹ። ይህ አቃፊ ተሰርዟል እና እንደ ተሰኪው የመጫን ሂደት አካል ሆኖ እንደገና ተፈጥሯል እና በውስጡ ያከማቹት ማንኛውም ሁኔታ ሊጠፋ ይችላል።
የ Python መስፈርቶችን ማከል¶
የእርስዎ ፕለጊን በinstall_plugin.sh በኩል pipን በመጠቀም ወደ Climweb ምናባዊ አካባቢ የሚጫነው የተለመደ የፓይቶን ሞጁል ነው። የፕለጊን ቦይለር ሰሌዳውን ከተጠቀሙ በrequirements/base.txt ላይ ባለው የፒፕ መስፈርቶች ፋይል ላይ ማንኛውንም የpython መስፈርቶች ማከል ይችላሉ።
እንደ Django/Wagtail መተግበሪያ¶
የ Climweb Django አገልግሎት ሲጀመር በፕለጊን ማውጫ ውስጥ ያሉ ማንኛውንም ተሰኪዎችን ይፈልጋል። ካገኘ የsrc/plugin_name/ ንዑስ አቃፊ Django መተግበሪያ እንደያዘ እና ወደ INSTALLED_APPS' ያክላል ብሎ ያስባል። ይህ ማለት የእርስዎ ፕለጊን ስሙ በትክክል ከተሰኪው አቃፊ ስም ጋር የሚዛመድ Django/Wagtail መተግበሪያ መሆን አለበት።
በእርስዎ ፕለጊን Django/Wagtail መተግበሪያ ውስጥ እንደ ማይግሬሽን ያሉ በDjango/Wagtail መተግበሪያ አማካኝነት ማድረግ የሚችሉትን ማንኛውንም ነገር ማድረግ ይችላሉ፣ የጅምር ውቅረትን ለመስራት የዝግጁ() ዘዴን በመጠቀም።
የእርስዎን ተሰኪ በማተም ላይ¶
እርስዎን ፕለጊን ከሌሎች ጋር ለማጋራት ቀላሉ መንገድ GitHub፣GitLab ወይም አንዳንድ ሌላ git አስተናጋጅ በመጠቀም ይፋዊ git ማከማቻ ማድረግ ነው። አንዴ የፕለጊን አቃፊዎን ወደ git ማከማቻው ከገፉ በኋላ ማንም ሰው በፕለጊን መጫኛ መመሪያ ውስጥ ያሉትን ደረጃዎች በመከተል ፕለጊንዎን መጫን ይችላል።