SPHINX - Python documentation generator #337

Closed
opened 2019-02-18 17:44:17 +01:00 by Podhorecky · 35 comments
Podhorecky commented 2019-02-18 17:44:17 +01:00 (Migrated from git.spotter.cz)

Dotaz: Mohla by dokumentace být ve formě nějak podle http://www.sphinx-doc.org/en/master/

Případně pokud máte něco lepšího, nechám se poučit.
Cílem je aby dokumentace nebyla jen nějaký plaintext/markdown. Nechám na vás, zatím nevím na jakou formu se mam těšit.

Dotaz: Mohla by dokumentace být ve formě nějak podle http://www.sphinx-doc.org/en/master/ Případně pokud máte něco lepšího, nechám se poučit. Cílem je aby dokumentace nebyla jen nějaký plaintext/markdown. Nechám na vás, zatím nevím na jakou formu se mam těšit.
Podhorecky commented 2019-02-18 17:44:17 +01:00 (Migrated from git.spotter.cz)

changed milestone to %3

changed milestone to %3
Podhorecky commented 2019-02-18 19:39:17 +01:00 (Migrated from git.spotter.cz)

changed the description

changed the description
Disassembler commented 2019-03-10 14:22:05 +01:00 (Migrated from git.spotter.cz)

No moment, ale Sphinx je jen nějaký plaintext/markdown. Konkrétně používá formát reStructuredText (rst), což je značkovací jazyk s omezenými funkcemi, úplně stejně jako je Markdown. Sphinx se používá převážně pro dokumentace pythonovských modulů a programových rozhraní, ale je možno jej samozřejmě použít pro cokoliv jiného.

Sphinx je "lepší" díky svým nástrojům, které umožňují například automatické generování kostry stránky na základě komentářů v kódu à la Doxygen nebo Javovský JavaDoc a tím, že se celá dokumentace dá snadno exportovat do jiných formátů (HTML, PDF, ...). Přirovnal bych ho k Markdownu, který někdo chtěl předělat na TeX, ale po dvou dnech ho to přestalo bavit. Vzhledem k tomu, že my máme kódu naprosté minimum (a takového, který bude muset používat někdo jiný nemáme vůbec žádný) a budeme chtít dokumentovat hlavně postupy, ovládání, architekturu a takové věci, automatizace nám tu nijak zásadně nepomůže.

Tady na GitLabu a hromadě dalších míst se wiki píšou Markdownem a konkrétně z GitLabu se z nich externími nástroji (např. Wiki2PDF) dají PDF vyrábět taky. Obecně se dá vyrábět z čehokoliv cokoliv, protože jde jen o nějaký značkovací jazyk, ale je k tomu potřeba najít vhodný nástroj a v tomto případě to jde pár kliknutími. Osobně píšu v Markdownu už prakticky všechno, kvůli přenositelnosti. Markdown je možno vyrenderovat téměř v jakémkoliv slušnějším textovém editoru nebo webové službě, což se o rst říct nedá. Například zde na GitLabu s Markdownem můžete hned nahlédnout jak bude váš počin vypadat. Pokud budeme psát v rst, budeme si muset pomáhat nějak jinak. Nicméně prý existují i nástroje, které naučí Sphinx žrát Markdown syntaxi, ale už je to rovnák na vohejbák.

Sphinxu se nebráním. Pokud chceme mít veřejně přístupnou dokumentaci úplně oddělenou od GitLabu, tak to není vůbec špatný nápad, protože nám umožní vygenerovat statické HTML stránky (což teda z Markdownu při použití nějakého nástroje třetí strany můžeme taky). Dalšími alternativami by byly jakékoliv jiné wiki-like systémy (DokuWiki, MediaWiki, MoinMoin atd.)

Mám se tedy začít učit Sphinx nebo raději najít způsob jak vyrábět exportovatelnou dokumentaci ze stávajícího Markdownu? Máte nějaké další cíle a očekávání kromě toho, aby dokumentace nebyla jen nějaký plaintext/markdown, což stejně bude?

No moment, ale Sphinx *je* jen nějaký plaintext/markdown. Konkrétně používá formát *reStructuredText* (rst), což je značkovací jazyk s omezenými funkcemi, úplně stejně jako je Markdown. Sphinx se používá převážně pro dokumentace pythonovských modulů a programových rozhraní, ale je možno jej samozřejmě použít pro cokoliv jiného. Sphinx je "lepší" díky svým nástrojům, které umožňují například automatické generování kostry stránky na základě komentářů v kódu à la *Doxygen* nebo Javovský *JavaDoc* a tím, že se celá dokumentace dá snadno exportovat do jiných formátů (HTML, PDF, ...). Přirovnal bych ho k Markdownu, který někdo chtěl předělat na TeX, ale po dvou dnech ho to přestalo bavit. Vzhledem k tomu, že my máme kódu naprosté minimum (a takového, který bude muset používat někdo jiný nemáme vůbec žádný) a budeme chtít dokumentovat hlavně postupy, ovládání, architekturu a takové věci, automatizace nám tu nijak zásadně nepomůže. Tady na GitLabu a hromadě dalších míst se wiki píšou Markdownem a konkrétně z GitLabu se z nich externími nástroji (např. [Wiki2PDF](https://gitlab.com/Andrea.Ligios/Wiki2PDF)) dají PDF vyrábět taky. Obecně se dá vyrábět z čehokoliv cokoliv, protože jde jen o nějaký značkovací jazyk, ale je k tomu potřeba najít vhodný nástroj a v tomto případě to jde pár kliknutími. Osobně píšu v Markdownu už prakticky všechno, kvůli přenositelnosti. Markdown je možno vyrenderovat téměř v jakémkoliv slušnějším textovém editoru nebo webové službě, což se o rst říct nedá. Například zde na GitLabu s Markdownem můžete hned nahlédnout jak bude váš počin vypadat. Pokud budeme psát v rst, budeme si muset pomáhat nějak jinak. Nicméně prý existují i nástroje, které naučí [Sphinx žrát Markdown syntaxi](https://stackoverflow.com/questions/2471804/using-sphinx-with-markdown-instead-of-rst#2487862), ale už je to rovnák na vohejbák. Sphinxu se nebráním. Pokud chceme mít veřejně přístupnou dokumentaci úplně oddělenou od GitLabu, tak to není vůbec špatný nápad, protože nám umožní vygenerovat statické HTML stránky (což teda z Markdownu při použití nějakého nástroje třetí strany můžeme taky). Dalšími alternativami by byly jakékoliv jiné wiki-like systémy ([DokuWiki](https://www.dokuwiki.org/dokuwiki), [MediaWiki](https://www.mediawiki.org/wiki/MediaWiki), [MoinMoin](http://moinmo.in/) atd.) Mám se tedy začít učit Sphinx nebo raději najít způsob jak vyrábět exportovatelnou dokumentaci ze stávajícího Markdownu? Máte nějaké další cíle a očekávání kromě toho, *aby dokumentace nebyla jen nějaký plaintext/markdown*, což stejně bude?
Podhorecky commented 2019-03-10 14:32:58 +01:00 (Migrated from git.spotter.cz)

jasný... to jsem asi nejasně napsal. Markdown jako takový pro obsah mi nevadí a vesměs vyhoví pro úpravu obsahu. Šlo mi o celkově prezentovanou strukturu v které se bude používat nějaká taková úprava. Tj. nějaké "site" kde lze strukturovaně rozvíjet dokumentaci. Aby to nedopadlo jako jsem to už zažil se Skřivánkem a jeho Google docs nebo jinými Wordy.

Co se týče publikovatelnosti, tak vesměs nejsem proti, spíš celkově ještě nemám domyšlenu úplnou koncepci šiřitelnosti informací ke koncovým uživatelům. A umístění kde to bude... Předpokládám že to budou čistě technické info, takže nejspíše blízko zdrojovým kódům. Tohle rozhodnutí se jistě dá udělat později.

Spekuloval jsem chvíli i s myšlenkou, že dokumentace by byla volitelně instalovatelná do VM, ale to nevím.. případně napište co si o tom myslíte.
Díky.

jasný... to jsem asi nejasně napsal. **Markdown jako takový pro obsah mi nevadí** a vesměs vyhoví pro úpravu obsahu. Šlo mi o celkově prezentovanou strukturu v které se bude používat nějaká taková úprava. Tj. nějaké "site" kde lze strukturovaně rozvíjet dokumentaci. Aby to nedopadlo jako jsem to už zažil se Skřivánkem a jeho Google docs nebo jinými Wordy. Co se týče publikovatelnosti, tak vesměs nejsem proti, spíš celkově ještě nemám domyšlenu úplnou koncepci šiřitelnosti informací ke koncovým uživatelům. A umístění kde to bude... Předpokládám že to budou čistě technické info, takže nejspíše blízko zdrojovým kódům. Tohle rozhodnutí se jistě dá udělat později. Spekuloval jsem chvíli i s myšlenkou, že dokumentace by byla volitelně instalovatelná do VM, ale to nevím.. případně napište co si o tom myslíte. Díky.
Disassembler commented 2019-03-10 14:42:31 +01:00 (Migrated from git.spotter.cz)

No pokud použijeme Sphinx a vygenerujeme statické HTML, tak by dokumentace byla volitelně instalovatelná a funkční málem i na kalkulačce nebo oscilátoru, takže proč ne.

A ano, strukturu a navigaci má Sphinx docela vymakanou, té by nejspíš nebylo úplně triviální dosáhnout s nástroji pracujícími přímo s čistým Markdownem. Zkusím tedy kouknout jaké nástroje pro existují, pohrát si s nimi (včetně Sphinxu), nakrmit je tím, co máme a uvidím jak moc přes ruku to bude. Při nejhorším se zas něco naučím.

No pokud použijeme Sphinx a vygenerujeme statické HTML, tak by dokumentace byla volitelně instalovatelná a funkční málem i na kalkulačce nebo oscilátoru, takže proč ne. A ano, strukturu a navigaci má Sphinx docela vymakanou, té by nejspíš nebylo úplně triviální dosáhnout s nástroji pracujícími přímo s čistým Markdownem. Zkusím tedy kouknout jaké nástroje pro existují, pohrát si s nimi (včetně Sphinxu), nakrmit je tím, co máme a uvidím jak moc přes ruku to bude. Při nejhorším se zas něco naučím.
Disassembler commented 2019-03-10 15:36:15 +01:00 (Migrated from git.spotter.cz)

Oukej. Padám samým údivem na prdel. Sphinx je vážně vymazlenej. Nejen že ten markdown ve stávající verzi sežere bez větších problémů (doinstalovat jeden modul a nastavit jeho použití pro daný typ přípony), ale navíc si ho proleze a z nadpisů si vytvoří obsah. Dále umí vytvářet i vícejazyčné dokumentace a ještě k tomu si vytváří i jednoduchý vyhledávací index, takže je na statických stránkách možno s pomocí automaticky generovaného skriptu vyhledávat. Myslím, že další nástroje už nemá cenu ani zkoušet, tohle je bomba.

Příklad renderu stránky s Markdown dokumentací pro jeden z našich balíkovacích nástrojů:
Výstřižek

Takže ano, jsem rozhodně pro mít dokumentaci řešenou Sphinxem.

Oukej. Padám samým údivem na prdel. Sphinx je vážně vymazlenej. Nejen že ten markdown ve stávající verzi sežere bez větších problémů (doinstalovat jeden modul a nastavit jeho použití pro daný typ přípony), ale navíc si ho proleze a z nadpisů si vytvoří obsah. Dále umí vytvářet i vícejazyčné dokumentace a ještě k tomu si vytváří i jednoduchý vyhledávací index, takže je na statických stránkách možno s pomocí automaticky generovaného skriptu vyhledávat. Myslím, že další nástroje už nemá cenu ani zkoušet, tohle je bomba. Příklad renderu stránky s Markdown dokumentací pro jeden z našich balíkovacích nástrojů: ![Výstřižek](/uploads/d529f4048b087d5f95ab7bdd49a9b3d2/Výstřižek.PNG) Takže ano, jsem rozhodně pro mít dokumentaci řešenou Sphinxem.
Podhorecky commented 2019-03-10 15:37:36 +01:00 (Migrated from git.spotter.cz)

Paráda.. :)

Paráda.. :)
Disassembler commented 2019-03-13 16:58:48 +01:00 (Migrated from git.spotter.cz)

Sphinxem vytvořená technická dokumentace s mobilně responzivním ReadTheDocs tématem vygenerována a šoupnuta na https://dl.dasm.cz/spotter-doc/index.html, jak jsem zmínil v #290.

Tady už se jen zeptám jakým způsobem si přejete, abychom ji udržovali?

Varianta 1 je, že se použije wiki a jednou za čas se extrahuje, ostrukturuje a vygeneruje z ní HTML. Výhoda je, že se nám nebude dokumentace motat mezi kódem a budete ji moci snadno editovat v GitLabovém editoru. Nevýhoda je, že struktura samotná se před vygenerováním bude muset zkontrolovat a upravit ručně, protože ta se Sphinxem nebude kompatibilní (mohla by být, ale pak by na wiki vznikaly podivné indexové stránky v reStructuredText formátu).

Varianta 2 je, že v základním repozitáři vytvořím podadresář _doc a tam to budu sypat. Tím pádem budu moci statické HTML vytvářet lusknutím prstu, ale vy budete mít ztíženou editaci. Na druhou stranu se Vám to nebude motat mezi Vašimi poznámkami na wiki a odliší se tak hotová publikovatelná dokumentace od věcí co jsou stále work in progress.

Zásadní benefity nebo problémy nepřináší ani jedna z variant. Když se trochu uklidí stávající wiki, varianta 1 bude asi z hlediska spolupráce a četnosti změn praktičtější.

Sphinxem vytvořená technická dokumentace s mobilně responzivním *ReadTheDocs* tématem vygenerována a šoupnuta na https://dl.dasm.cz/spotter-doc/index.html, jak jsem zmínil v #290. Tady už se jen zeptám jakým způsobem si přejete, abychom ji udržovali? Varianta 1 je, že se použije [wiki](https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/wikis/home) a jednou za čas se extrahuje, ostrukturuje a vygeneruje z ní HTML. Výhoda je, že se nám nebude dokumentace motat mezi kódem a budete ji moci snadno editovat v GitLabovém editoru. Nevýhoda je, že struktura samotná se před vygenerováním bude muset zkontrolovat a upravit ručně, protože ta se Sphinxem nebude kompatibilní (mohla by být, ale pak by na wiki vznikaly podivné indexové stránky v reStructuredText formátu). Varianta 2 je, že v základním repozitáři vytvořím podadresář `_doc` a tam to budu sypat. Tím pádem budu moci statické HTML vytvářet lusknutím prstu, ale vy budete mít ztíženou editaci. Na druhou stranu se Vám to nebude motat mezi Vašimi poznámkami na wiki a odliší se tak hotová publikovatelná dokumentace od věcí co jsou stále work in progress. Zásadní benefity nebo problémy nepřináší ani jedna z variant. Když se trochu uklidí stávající wiki, varianta 1 bude asi z hlediska spolupráce a četnosti změn praktičtější.
Podhorecky commented 2019-03-13 17:20:26 +01:00 (Migrated from git.spotter.cz)

Vypadá to super, takže paráda, na tomhle se dá dobře pokračovat.
K udržování:
ještě dlouhou dobu budete mít k dokumentaci a její úpravě přístup pouze vy. Další potenciální vývojář(i) zatím jen k čtení. Takže způsoby aktualizace se usadí jak vám budou vyhovovat, předpokládám že později i někomu jinému, včetně mě.

Varianta 1 - pro mne jako BFU to zní dobře, jen teď nevím jak se to popere se současným obsahem wiki. Ano, teď tam je nasypáno víc věcí najednou. Je možno to nějak lépe oddělit, nebo to bude v jednom chumlu?

Varianta 2 - taky mi příjde jako dobrý návrh, já sám neplánuju zásahy do dokumentace, dokud máte hlavní slovo ve vývoji.
Berme ale v úvahu, že další člověk dostane také zadání doplnit dokumentaci o svůj díl práce. (Mapy, frontend) Bude to OK?

jsem jen lehce víc pro 1.

Vypadá to super, takže paráda, na tomhle se dá dobře pokračovat. K udržování: ještě dlouhou dobu budete mít k dokumentaci a její úpravě přístup pouze vy. Další potenciální vývojář(i) zatím jen k čtení. Takže způsoby aktualizace se usadí jak vám budou vyhovovat, předpokládám že později i někomu jinému, včetně mě. Varianta 1 - pro mne jako BFU to zní dobře, jen teď nevím jak se to popere se současným obsahem wiki. Ano, teď tam je nasypáno víc věcí najednou. Je možno to nějak lépe oddělit, nebo to bude v jednom chumlu? Varianta 2 - taky mi příjde jako dobrý návrh, já sám neplánuju zásahy do dokumentace, dokud máte hlavní slovo ve vývoji. Berme ale v úvahu, že další člověk dostane také zadání doplnit dokumentaci o svůj díl práce. (Mapy, frontend) Bude to OK? jsem jen lehce víc pro 1.
Disassembler commented 2019-03-13 18:37:40 +01:00 (Migrated from git.spotter.cz)

No idea u 1 je taková, že místo stávajícího chaosu

├─ CKAN
├─ GDPR
├─ Instalation workaround
├─ Logins
├─ Migrate, Backup
├─ ODK family
├─ Různé SW
├─ Sahana EDEN
├─ Sahana configuration and modules usability report
├─ Virtual Machine architecture
├─ Vision, Mision, Objectives, Strategy
├─ Home
├─ podmínky užití
└─ Pan.do
   └─ Pan.do|ra

Vznike struktura

├─ User documentation
│  ├─ Mission and vision
│  ├─ Applications
│  │  ├─ CKAN
│  │  └─ Sahana
│  └─ Blabla
├─ Technical documentation
│  ├─ Computer
│  │  ├─ How to start computer
│  │  └─ How to stop computer
│  └─ Containers
│     ├─ Na sklo
│     └─ Na papir
└─ Other
   ├─ Bordel
   ├─ Work in progress
   │  └─ Diskuse k necemu
   └─ Vojna a mir

Já pak přijdu, checkoutnu si celou wiki (je to git repozitář jako každý jiný), smažu si lokálně Other a zbytek dám sežrat Sphinxu, z něhož vypadne statické HTML, které můžu obratem nahrát někam k Vám na web nebo nabalit do APK balíčku pro instalaci do VM, o čemž jsme se bavili před pár dny.

Takže jestli mi to takhle odkývete, tak jdu na to, to co je teď obsahem celé wiki přetáhnu do Other, svou technickou část strčím do Technical documentation a v User documentation budu očekávat veškerou publikováníhodnou uživatelskou dokumentaci.

No idea u 1 je taková, že místo stávajícího chaosu ``` ├─ CKAN ├─ GDPR ├─ Instalation workaround ├─ Logins ├─ Migrate, Backup ├─ ODK family ├─ Různé SW ├─ Sahana EDEN ├─ Sahana configuration and modules usability report ├─ Virtual Machine architecture ├─ Vision, Mision, Objectives, Strategy ├─ Home ├─ podmínky užití └─ Pan.do └─ Pan.do|ra ``` Vznike struktura ``` ├─ User documentation │ ├─ Mission and vision │ ├─ Applications │ │ ├─ CKAN │ │ └─ Sahana │ └─ Blabla ├─ Technical documentation │ ├─ Computer │ │ ├─ How to start computer │ │ └─ How to stop computer │ └─ Containers │ ├─ Na sklo │ └─ Na papir └─ Other ├─ Bordel ├─ Work in progress │ └─ Diskuse k necemu └─ Vojna a mir ``` Já pak přijdu, checkoutnu si celou wiki (je to git repozitář jako každý jiný), smažu si lokálně *Other* a zbytek dám sežrat Sphinxu, z něhož vypadne statické HTML, které můžu obratem nahrát někam k Vám na web nebo nabalit do APK balíčku pro instalaci do VM, o čemž jsme se bavili před pár dny. Takže jestli mi to takhle odkývete, tak jdu na to, to co je teď obsahem celé wiki přetáhnu do *Other*, svou technickou část strčím do *Technical documentation* a v *User documentation* budu očekávat veškerou publikováníhodnou uživatelskou dokumentaci.
Podhorecky commented 2019-03-13 18:54:18 +01:00 (Migrated from git.spotter.cz)

Ano, to je OK, prosím upravte to takto.

Ano, to je OK, prosím upravte to takto.
Podhorecky commented 2019-03-15 00:07:48 +01:00 (Migrated from git.spotter.cz)

pro zajímavost - asi velmi blízkou strukturu dokumentace má BIBBOX https://bibbox.readthedocs.io/en/latest/

a celý ten admin je něco, kam by mohl Spotter VM směřovat. https://bibbox.readthedocs.io/en/latest/admin-documentation/

(zvláštní pocit, že bez mé předchozí znalosti těchto řešení jsem s vámi došel téměř k něčemu velmi podobnému. Třeba tam objevíte i nějaké know-how)

pro zajímavost - asi velmi blízkou strukturu dokumentace má BIBBOX https://bibbox.readthedocs.io/en/latest/ a celý ten admin je něco, kam by mohl Spotter VM směřovat. https://bibbox.readthedocs.io/en/latest/admin-documentation/ (zvláštní pocit, že bez mé předchozí znalosti těchto řešení jsem s vámi došel téměř k něčemu velmi podobnému. Třeba tam objevíte i nějaké know-how)
Disassembler commented 2019-03-19 11:41:08 +01:00 (Migrated from git.spotter.cz)

Oukej. Ta GitLab wiki je celkem zlá. Až tak, že je i nebezpečná.

  • Bezpodmínečně vyžaduje, aby se úvodní stránka jmenovala home.
  • Není schopna pobrat všechny symboly reStructuredText formátu, takže některé kousky pak nejsou na stránce vidět i když v kódu jsou.
  • Titulek stránky je svázaný s názvem souboru. A to ještě tak debilně, hrozí vedlejší efekty. Například jak jste vytvořil stránku Pan.do/ra, milý GitLab to pochopil tak, že vytvořil podadresář Pan.do a v něm stránku ra. Tu jste pak přepsal na Pan.do|ra, čímž jste vytvořit soubor se stejnojmenným názvem. Znak | má ale v linuxu speciální význam (pipeline) a ve Windows pro jistot vůbec není povolen, takže repozitář s wiki se na nich nedá ani stáhnout.

Necháme tedy wiki jen na poznámkování a work-in-progress věti a publikovatelnou dokumentaci jsem nastrkal do podadresáře _doc v hlavním repozitáři. A tu titulek té Pandora stránky jsem oprostil o všechny podivné znaky.

Oukej. Ta GitLab wiki je celkem zlá. Až tak, že je i nebezpečná. - Bezpodmínečně vyžaduje, aby se úvodní stránka jmenovala *home*. - Není schopna pobrat všechny symboly reStructuredText formátu, takže některé kousky pak nejsou na stránce vidět i když v kódu jsou. - Titulek stránky je svázaný s názvem souboru. A to ještě tak debilně, hrozí vedlejší efekty. Například jak jste vytvořil stránku *Pan.do/ra*, milý GitLab to pochopil tak, že vytvořil podadresář *Pan.do* a v něm stránku *ra*. Tu jste pak přepsal na *Pan.do|ra*, čímž jste vytvořit soubor se stejnojmenným názvem. Znak `|` má ale v linuxu speciální význam (pipeline) a ve Windows pro jistot vůbec není povolen, takže repozitář s wiki se na nich nedá ani stáhnout. Necháme tedy wiki jen na poznámkování a work-in-progress věti a publikovatelnou dokumentaci jsem nastrkal do podadresáře [_doc](https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/tree/master/_doc) v hlavním repozitáři. A tu titulek té Pandora stránky jsem oprostil o všechny podivné znaky.
Podhorecky commented 2019-03-19 12:02:32 +01:00 (Migrated from git.spotter.cz)

Ok, Díky. K dokumentaci mi prosím řekněte, jestli je vhodné tam stručně zmínit i takové ty věci jak jsme si psali o logování a podobně. Klidně tam doplňte prozatím prázdné stránky do struktury, abychom na něco později nezapomněli.

Pak mi dejte vědět, kdy budete hotov s touto fází a s nějakým aktuálním stavem VM, já si teprv pak začnu dopisovat s p. Nétekem. Kdyby mne neodmítl okamžitě, jsem ochoten mu ukázat odkaz na dokumentaci, lokální VM a pak se teprv uvidí kam mne pošle.

Ok, Díky. K dokumentaci mi prosím řekněte, jestli je vhodné tam stručně zmínit i takové ty věci jak jsme si psali o logování a podobně. Klidně tam doplňte prozatím prázdné stránky do struktury, abychom na něco později nezapomněli. Pak mi dejte vědět, kdy budete hotov s touto fází a s nějakým aktuálním stavem VM, já si teprv pak začnu dopisovat s p. Nétekem. Kdyby mne neodmítl okamžitě, jsem ochoten mu ukázat odkaz na dokumentaci, lokální VM a pak se teprv uvidí kam mne pošle.
Disassembler commented 2019-03-19 13:23:41 +01:00 (Migrated from git.spotter.cz)

jestli je vhodné tam stručně zmínit i takové ty věci

Určitě. Vhodné je zmínit všechno. Nevíme jaké znalosti a zkušenosti bude náš potenciální čtenář mít.

jak jsme si psali o logování a podobně

...eeeh. Jsem rád, že při tom všem přebíhání od jedné věci k druhé udržím alespoň moč, ale myšlenku už ne. Co jsme si psali? Alespoň rámcově, pokud to zrovna nenajdete.

Pak mi dejte vědět, kdy budete hotov s touto fází a s nějakým aktuálním stavem VM

V ToDo teď máme veskrze designové věci a pak dvě záležitosti k Sahaně, takže můžu vyrobit nový build VM ještě dneska. Seženu si nějaké kafe a jdu na to.

> jestli je vhodné tam stručně zmínit i takové ty věci Určitě. Vhodné je zmínit všechno. Nevíme jaké znalosti a zkušenosti bude náš potenciální čtenář mít. > jak jsme si psali o logování a podobně ...eeeh. Jsem rád, že při tom všem přebíhání od jedné věci k druhé udržím alespoň moč, ale myšlenku už ne. Co jsme si psali? Alespoň rámcově, pokud to zrovna nenajdete. > Pak mi dejte vědět, kdy budete hotov s touto fází a s nějakým aktuálním stavem VM V ToDo teď máme veskrze designové věci a pak dvě záležitosti k Sahaně, takže můžu vyrobit nový build VM ještě dneska. Seženu si nějaké kafe a jdu na to.
Podhorecky commented 2019-03-19 14:49:39 +01:00 (Migrated from git.spotter.cz)

V naší dokumentaci by se mohlo objevit:

issue o licencích https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/issues/285
Zatím stačí malá podstránka o licencích, kde by měl být jmenovitě oddělený

  • sw který je integrální součástí řešení našeho kódu
  • náš kód
  • (nevimjaký) kód frontendu
  • naše dokumentace (CC)
  • naše lokalizace Sahany, FrontlineSMS (CC) byť zatím pouze neveřejná
  • zmínka o použití "fair use" logotypů softwarů v rozhraní

issue o logování je tady https://git.spotter.cz/Spotter-Cluster/vmmgr/issues/1#note_2088

Stačí asi zmínit ty limity jak se logy zapisují, obnovují

issue Ping/pong https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/issues/289

  • něco o funkci parse_url()

Pak bude asi něco víc o celém tom prvním přednastavení VM

  • jak to je vymyšleno s tou variantou offline a self-signed certifikáty (obnova)
  • host setup
  • DNS
  • firewall, NAT
  • setup admin@example.com
  • API klíč Google

issue https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/issues/273
Zjednodušené anonymní rozhraní ...

  • tohle je skutečně jen nějaká pracovní fáze, která může s novým frontendem být úplně jinak. Takže možná jen minimální zmínku.

Možná ještě něco objevím, co jsme si psali.

V naší dokumentaci by se mohlo objevit: issue o licencích https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/issues/285 Zatím stačí malá podstránka o licencích, kde by měl být jmenovitě oddělený - sw který je integrální součástí řešení našeho kódu - náš kód - (nevimjaký) kód frontendu - naše dokumentace (CC) - naše lokalizace Sahany, FrontlineSMS (CC) byť zatím pouze neveřejná - zmínka o použití "fair use" logotypů softwarů v rozhraní issue o logování je tady https://git.spotter.cz/Spotter-Cluster/vmmgr/issues/1#note_2088 Stačí asi zmínit ty limity jak se logy zapisují, obnovují issue Ping/pong https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/issues/289 - něco o funkci parse_url() Pak bude asi něco víc o celém tom prvním přednastavení VM - jak to je vymyšleno s tou variantou offline a self-signed certifikáty (obnova) - host setup - DNS - firewall, NAT - setup admin@example.com - API klíč Google issue https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/issues/273 Zjednodušené anonymní rozhraní ... - tohle je skutečně jen nějaká pracovní fáze, která může s novým frontendem být úplně jinak. Takže možná jen minimální zmínku. Možná ještě něco objevím, co jsme si psali.
Disassembler commented 2019-03-21 17:43:20 +01:00 (Migrated from git.spotter.cz)

takže můžu vyrobit nový build VM ještě dneska

Chtěl jsem do něj ještě implementovat oficiální podporu pro VPN a vzdálený přístup, kdybychom zase potřebovali lovit nějaké vzdálené bugy, a nějak jsem do to zabrousil a ještě nevybrousil, protože na mě stihly napadat nějaké pracovní sračky záležitosti. Tak zatím jen sneak peek. Zítra už bych to fakt měl dorazit.

Výstřižek

WireGuard v době kdy jste o návrhu VPN uvažoval ještě neexistovala - odbornou obcí je považována za mistrovský kousek, díky své jednoduchosti jak konfigurace, tak celého programového kódu, výběru state-of-the-art algoritmů a výkonu - čtení tu: https://www.wireguard.com/ - kousky týkající se nasazení v naší VM zdokumentuji i u nás.

Za výtah věcí k dokumentaci díky, po zbuildnění a uploadnutí image se do toho pustím.

> takže můžu vyrobit nový build VM ještě dneska Chtěl jsem do něj ještě implementovat oficiální podporu pro VPN a vzdálený přístup, kdybychom zase potřebovali lovit nějaké vzdálené bugy, a nějak jsem do to zabrousil a ještě nevybrousil, protože na mě stihly napadat nějaké pracovní ~~sračky~~ záležitosti. Tak zatím jen sneak peek. Zítra už bych to fakt měl dorazit. ![Výstřižek](/uploads/44cfb575061bc2b5f0ae2ad82e739ed9/Výstřižek.PNG) WireGuard v době kdy jste o návrhu VPN uvažoval ještě neexistovala - odbornou obcí je považována za mistrovský kousek, díky své jednoduchosti jak konfigurace, tak celého programového kódu, výběru state-of-the-art algoritmů a výkonu - čtení tu: https://www.wireguard.com/ - kousky týkající se nasazení v naší VM zdokumentuji i u nás. Za výtah věcí k dokumentaci díky, po zbuildnění a uploadnutí image se do toho pustím.
Podhorecky commented 2019-03-21 17:52:53 +01:00 (Migrated from git.spotter.cz)

Paráda... já myslím že VPN bude fajn nástroj.
S VM si rád zase pohraju, časově si to nastavte jak to zvládnete,
moje další reakce, případně kroky budu hlásit.

Paráda... já myslím že VPN bude fajn nástroj. S VM si rád zase pohraju, časově si to nastavte jak to zvládnete, moje další reakce, případně kroky budu hlásit.
Disassembler commented 2020-06-01 23:31:07 +02:00 (Migrated from git.spotter.cz)

Technická dokumentace na https://repo.spotter.cz/doc/ aktualizována o všechny novinky a změny za posledního tři čtvrtě roku. Prosím o nějaké zevrubné projití (je tam spousta implementačních detailů, takže podrobné od Vás určitě nevyžaduji) a případné vypíchnutí bodů, které tam nejsou a rád byste je tam ještě viděl. Za tu dobu už trpím profesní slepotou, takže jsem si celkem jist, že se najde spousta věcí, které by tam nejspíše měly být, ale pro mě jsou tak strašně zřejmé, že by mě ani nenapadlo se o nic zmiňovat, takže pokud Vás nějaké takové napadnou, podělte se.

Jak vyžehlíme dokumentaci, pošlu takový ten nepříjemný dokument s ciframi.

Technická dokumentace na https://repo.spotter.cz/doc/ aktualizována o všechny novinky a změny za posledního tři čtvrtě roku. Prosím o nějaké zevrubné projití (je tam spousta implementačních detailů, takže podrobné od Vás určitě nevyžaduji) a případné vypíchnutí bodů, které tam nejsou a rád byste je tam ještě viděl. Za tu dobu už trpím profesní slepotou, takže jsem si celkem jist, že se najde spousta věcí, které by tam nejspíše měly být, ale pro mě jsou tak strašně zřejmé, že by mě ani nenapadlo se o nic zmiňovat, takže pokud Vás nějaké takové napadnou, podělte se. Jak vyžehlíme dokumentaci, pošlu takový ten nepříjemný dokument s ciframi.
Podhorecky commented 2020-06-02 00:19:36 +02:00 (Migrated from git.spotter.cz)

Ok, projdu. dám info.

Ok, projdu. dám info.
Podhorecky commented 2020-06-02 01:47:04 +02:00 (Migrated from git.spotter.cz)

Dílčí poznámky... ještě doplním

na straně https://repo.spotter.cz/doc/toolchain/vmmgr-overview.html

u Application manageru nějak kulantně naznačit, že to je pouze pracovní verze frontendu. Že je pouze v češtině a v této fázi nemá smysl ji překládat.

na straně https://repo.spotter.cz/doc/applications/map-services.html

Crisis Cleanup v.2 Google Maps (imho autor už nikdy neumožní aby fungoval s jeho serverem)

Crisis Cleanup v.3 OSM (imho co s tim skutečně bude, je ve hvězdách)

ostatní nezprovozněné apps asi v této situaci zbytečné.

zmínka a odkaz o POSM - nefunkční, projekt POSM vymřel. Odkaz odstranit.

na straně https://repo.spotter.cz/doc/applications/sahana.html
nefunkční odkazy

*Dílčí poznámky... ještě doplním* na straně https://repo.spotter.cz/doc/toolchain/vmmgr-overview.html u Application manageru nějak kulantně naznačit, že to je pouze pracovní verze frontendu. Že je pouze v češtině a v této fázi nemá smysl ji překládat. na straně https://repo.spotter.cz/doc/applications/map-services.html Crisis Cleanup v.2 Google Maps (imho autor už nikdy neumožní aby fungoval s jeho serverem) Crisis Cleanup v.3 OSM (imho co s tim skutečně bude, je ve hvězdách) ostatní nezprovozněné apps asi v této situaci zbytečné. zmínka a odkaz o POSM - nefunkční, projekt POSM vymřel. Odkaz odstranit. na straně https://repo.spotter.cz/doc/applications/sahana.html nefunkční odkazy
Disassembler commented 2020-06-02 08:59:07 +02:00 (Migrated from git.spotter.cz)

mentioned in commit 553930da0d

mentioned in commit 553930da0d1799b5760cb3fc4107e737579970b5
Disassembler commented 2020-06-02 09:03:22 +02:00 (Migrated from git.spotter.cz)

Komentáře zapracovány. Pro správné zobrazení bude možná nutno ručně refreshnout stránku přes F5, Sphinx cachuje docela agresivně.

Za tu zmínku o nefunkčních odkazech díky. To je něco, co jsem chtěl před odevzdáním ještě projít a už jsem na to v jedenáct večer neměl myšlenky a zapomněl na to.

Komentáře zapracovány. Pro správné zobrazení bude možná nutno ručně refreshnout stránku přes F5, Sphinx cachuje docela agresivně. Za tu zmínku o nefunkčních odkazech díky. To je něco, co jsem chtěl před odevzdáním ještě projít a už jsem na to v jedenáct večer neměl myšlenky a zapomněl na to.
Podhorecky commented 2020-06-02 11:23:26 +02:00 (Migrated from git.spotter.cz)

pokračuji v poznámkách... ještě doplním (nestíhám real life)

Na straně
https://repo.spotter.cz/doc/applications/sahana-configuration-report.html
je v úvodu věta: The configuration has been tested on Sahana Eden version 56afb71 (2017-08-31 01:10:50) using default template.
Pokud jste tedy dělal kontrolu této konfigurace, případně změny, mělo by být nové datum. Namátkou jsem zahlédl, že u https://repo.spotter.cz/doc/applications/sahana-configuration-report.html#localization-settings zůstal starý výčet jazyků bez polštiny. Vyřešit můžete tak, že buď tyto kusy kódu vůbec v reportu neboudou, nebo budou aktuální. To se týká i dalších kusů kódu v tomto reportu, který nebyl námi ovlivněný a námi doplněný pro účel VM.

Prosím ještě odstranit stranu Sahana configuration report z wiki.

Wiki v Gitlabu - Pokud ve Wiki spatříte nějaké zbytečné, nebo zastaralé informace, taky prosím odstranit.
Původně jsme chtěli ve wiki udělat strukturální změny stran. Diskutováno někde. Pomůžete mi?
Obsah wiki případně doplním / změním / odmažu sám. To taky musím projít.

FrontlineSMS - zde by bylo vhodné zmínit, že tato cloudová verze s otevřenou licencí (v.2.0.x) už není výrobcem dále vyvíjena, tedy na VM nebude dále upgradována. Česká lokalizace je dostupná pouze na VM. Výrobce poskytuje ve své nové verzi pouze SaaS s desktopovým klientem.

Pokud nemáme, prosil udělat fork FrontlineSMS na můj github jako zálohu, kdyby je náhodou napadlo to později smazat.

Česká lokalizace Sahany a dalších SW na VM.

Vím, že jsem po Vás chtěl omezení jazyků jen na ČJ a EN, teď přemýšlím, jestli z důvodů použití mimo ČR raději zapnout všechny ostatní jazyky.

U aplikací, kde je česká lokalizace součástí zdrojového kódu asi nemusíme zmiňovat nic.

U Sahany jsme také dělali drobné úpravy pro český region v configu, tj. přidání české měny, možná ještě něco.
U Sahany, FrontlineSMS, kde je ČJ lokalizace pouze na VM, by bylo vhodné zmínit, že ČJ není součástí zdrojového kódu. (Aby se někdo nedivil, hlásit se to musí).

*pokračuji v poznámkách... ještě doplním (nestíhám real life)* Na straně https://repo.spotter.cz/doc/applications/sahana-configuration-report.html je v úvodu věta: *The configuration has been tested on Sahana Eden version 56afb71 (2017-08-31 01:10:50) using default template.* Pokud jste tedy dělal kontrolu této konfigurace, případně změny, mělo by být nové datum. Namátkou jsem zahlédl, že u https://repo.spotter.cz/doc/applications/sahana-configuration-report.html#localization-settings zůstal starý výčet jazyků bez polštiny. Vyřešit můžete tak, že buď tyto kusy kódu vůbec v reportu neboudou, nebo budou aktuální. To se týká i dalších kusů kódu v tomto reportu, který nebyl námi ovlivněný a námi doplněný pro účel VM. Prosím ještě odstranit stranu Sahana configuration report z wiki. **Wiki v Gitlabu** - Pokud ve Wiki spatříte nějaké zbytečné, nebo zastaralé informace, taky prosím odstranit. Původně jsme chtěli ve wiki udělat strukturální změny stran. Diskutováno někde. Pomůžete mi? Obsah wiki případně doplním / změním / odmažu sám. To taky musím projít. **FrontlineSMS** - zde by bylo vhodné zmínit, že tato cloudová verze s otevřenou licencí (v.2.0.x) už není výrobcem dále vyvíjena, tedy na VM nebude dále upgradována. Česká lokalizace je dostupná pouze na VM. Výrobce poskytuje ve své nové verzi pouze SaaS s desktopovým klientem. Pokud nemáme, prosil udělat fork FrontlineSMS na můj github jako zálohu, kdyby je náhodou napadlo to později smazat. **Česká lokalizace Sahany a dalších SW na VM.** Vím, že jsem po Vás chtěl omezení jazyků jen na ČJ a EN, teď přemýšlím, jestli z důvodů použití mimo ČR raději zapnout všechny ostatní jazyky. U aplikací, kde je česká lokalizace součástí zdrojového kódu asi nemusíme zmiňovat nic. U Sahany jsme také dělali drobné úpravy pro český region v configu, tj. přidání české měny, možná ještě něco. U Sahany, FrontlineSMS, kde je ČJ lokalizace pouze na VM, by bylo vhodné zmínit, že ČJ není součástí zdrojového kódu. (Aby se někdo nedivil, hlásit se to musí).
Disassembler commented 2020-06-02 18:32:51 +02:00 (Migrated from git.spotter.cz)

Pokud jste tedy dělal kontrolu této konfigurace, případně změny, mělo by být nové datum.

Nedělal. Je to ta samá stránka jako na wiki, jenom přeformátovaná pro Sphinx. Aktualizaci můžu udělat, ale varoval jsem, že to bude na dlouhé lokte.

Prosím ještě odstranit stranu Sahana configuration report z wiki.

Odstraněno.

Původně jsme chtěli ve wiki udělat strukturální změny stran. Diskutováno někde. Pomůžete mi?

No to bylo přímo tady v tomto ticketu. Nicméně z toho salátu na wiki není úplně jasné, co jsou interní poznámky pro Vás a co chcete mít v technické dokumentaci (uživatelskou zatím neděláme), takže to proberte a popřesouváme to.

FrontlineSMS

Zdokumentováno, forknuto a vzhledem k tomu, že ten fork je celkem na prd, tak i uploadnuta zdravá verze balíku jako "release".

Česká lokalizace Sahany a dalších SW na VM

U Sahany jsme dělali hromadu modifikací, máme na to celý Spotter template, ale ten nepovažuju za nijak stálý a dokumentováníhodný. Čeština jde mimo templaty, takže tu jsem zdokumentoval. Na zapínání dalších jazyků kdyžtak vytvořte separátní ticket.

A ještě koukám, že musím zdokumentovat workaroundy u crisiscleanupu, openmapkitu a pandory. Achjo.

> Pokud jste tedy dělal kontrolu této konfigurace, případně změny, mělo by být nové datum. Nedělal. Je to ta samá stránka jako na wiki, jenom přeformátovaná pro Sphinx. Aktualizaci můžu udělat, ale varoval jsem, že to bude na dlouhé lokte. > Prosím ještě odstranit stranu Sahana configuration report z wiki. Odstraněno. > Původně jsme chtěli ve wiki udělat strukturální změny stran. Diskutováno někde. Pomůžete mi? No to bylo přímo tady v tomto ticketu. Nicméně z toho salátu na wiki není úplně jasné, co jsou interní poznámky pro Vás a co chcete mít v technické dokumentaci (uživatelskou zatím neděláme), takže to proberte a popřesouváme to. > FrontlineSMS Zdokumentováno, forknuto a vzhledem k tomu, že ten fork je celkem na prd, tak i uploadnuta zdravá verze balíku jako "release". > Česká lokalizace Sahany a dalších SW na VM U Sahany jsme dělali hromadu modifikací, máme na to celý Spotter template, ale ten nepovažuju za nijak stálý a dokumentováníhodný. Čeština jde mimo templaty, takže tu jsem zdokumentoval. Na zapínání dalších jazyků kdyžtak vytvořte separátní ticket. A ještě koukám, že musím zdokumentovat workaroundy u crisiscleanupu, openmapkitu a pandory. Achjo.
Podhorecky commented 2020-06-02 19:05:41 +02:00 (Migrated from git.spotter.cz)

A ještě koukám, že musím zdokumentovat workaroundy u crisiscleanupu, openmapkitu a pandory. Achjo.

na CC v.2 se s prominutím viserte asi :)) podle mne je nemožné s tím cokoliv v budoucnu udělat. Ledaže by ve vašem workaroundu bylo něco jako dissassembler-fu, to by pak mělo trochu hodnotu. Jinak fakt nevím... Co myslíte?

Za úpravy díky, ještě napíšu, abyste nedělal něco zbytečně :)

> A ještě koukám, že musím zdokumentovat workaroundy u crisiscleanupu, openmapkitu a pandory. Achjo. na CC v.2 se s prominutím viserte asi :)) podle mne je nemožné s tím cokoliv v budoucnu udělat. Ledaže by ve vašem workaroundu bylo něco jako dissassembler-fu, to by pak mělo trochu hodnotu. Jinak fakt nevím... Co myslíte? Za úpravy díky, ještě napíšu, abyste nedělal něco zbytečně :)
Podhorecky commented 2020-06-03 15:06:33 +02:00 (Migrated from git.spotter.cz)

k té wiki... nyní to je interní wiki a dlouho ještě interní zůstane. Binec přiznávám, ale chtěl jsem ho jen sdílet tak, aby to bylo dostupné v projektu více lidem. Kvuli zpětné vazbě. Jinak bych si různé odkazy dokázal syslit i soukrommě.
Pokud bych zvládl nastavit víceúrovňovou strukturu stran, tak to udělám aby to nebylo jen v první úrovni.

Veřejná wiki s méně info by teoreticky vznikla za dlouhou dobu až v situaci, kdy by se projektem někdo zabýval. Jinak je to zbytečné a podle vašeho zjištění to má i nějaká bezpečnostní rizika.

Dokumentace workaroudů k aplikacím:

  • budu rád za vše, co uznáte za vhodné, ale odstupňujte to podle té použitelnosti a smrtelnosti aplikací. Případně napište krátce o čem váháte. Týká se i workaroundů ke službám běžícím na VM, pokud jste něco dělal, nebo zjistil.

Nicméně... po průběžném průzkumu Decidim a jiných aplikací vč. Karrot kterou jste neřešil a CoopCycle bych se jimi mohl později zabývat, takže Coopcycle průzkum nezahazovat.

Omlouvám se za můj nepříliš uspořádaný feedback, pohybuji se mezi více počítači, ale jen u vlastního PC doma mám někdy kolem půlnoci klid na hlubší přemýšlení. Zbytek dne je to neuspořádané a pak ze mne padají nesrozumitelné věty.

**k té wiki.**.. nyní to je interní wiki a dlouho ještě interní zůstane. Binec přiznávám, ale chtěl jsem ho jen sdílet tak, aby to bylo dostupné v projektu více lidem. Kvuli zpětné vazbě. Jinak bych si různé odkazy dokázal syslit i soukrommě. Pokud bych zvládl nastavit víceúrovňovou strukturu stran, tak to udělám aby to nebylo jen v první úrovni. Veřejná wiki s méně info by teoreticky vznikla za dlouhou dobu až v situaci, kdy by se projektem někdo zabýval. Jinak je to zbytečné a podle vašeho zjištění to má i nějaká bezpečnostní rizika. **Dokumentace workaroudů k aplikacím**: - budu rád za vše, co uznáte za vhodné, ale odstupňujte to podle té použitelnosti a smrtelnosti aplikací. Případně napište krátce o čem váháte. Týká se i workaroundů ke službám běžícím na VM, pokud jste něco dělal, nebo zjistil. Nicméně... po průběžném průzkumu Decidim a jiných aplikací vč. [Karrot](https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/-/issues/390) kterou jste neřešil a [CoopCycle](https://git.spotter.cz/Podhorecky/Hosting/-/issues/12) bych se jimi mohl později zabývat, takže Coopcycle průzkum nezahazovat. Omlouvám se za můj nepříliš uspořádaný feedback, pohybuji se mezi více počítači, ale jen u vlastního PC doma mám někdy kolem půlnoci klid na hlubší přemýšlení. Zbytek dne je to neuspořádané a pak ze mne padají nesrozumitelné věty.
Disassembler commented 2020-06-03 19:02:26 +02:00 (Migrated from git.spotter.cz)

A ještě koukám, že musím zdokumentovat workaroundy u crisiscleanupu, openmapkitu a pandory.

Zdokumentováno. CC 2 mi připadá funkční, to žádnou cloudovou část nepotřebuje. Jestli je ovšem použitelné v praxi je věc jiná.

nyní to je interní wiki a dlouho ještě interní zůstane

Právě proto jsem si nebyl jist tím, co všechno mám přestěhovat do "oficiální" dokumentace a ptal se na to. Prošel jsem si ty stránky a co mi připadlo dostatečně oficiální nebo co mi pomohlo rozpomenout se na nějaké implementační detaily jsem tam šoupnul.

Coopcycle průzkum nezahazovat

Průzkumy nikdy nezahazuju. Zvlášť ne, pokud mi jejich prozkoumávání zabralo několik hodin. Jen je uklidím někam na hrobeček. Dokonce i ten dokument k Horde ještě mám a nehodlám se jej hned tak zbavovat.

> A ještě koukám, že musím zdokumentovat workaroundy u crisiscleanupu, openmapkitu a pandory. Zdokumentováno. CC 2 mi připadá funkční, to žádnou cloudovou část nepotřebuje. Jestli je ovšem použitelné v praxi je věc jiná. > nyní to je interní wiki a dlouho ještě interní zůstane Právě proto jsem si nebyl jist tím, co všechno mám přestěhovat do "oficiální" dokumentace a ptal se na to. Prošel jsem si ty stránky a co mi připadlo dostatečně oficiální nebo co mi pomohlo rozpomenout se na nějaké implementační detaily jsem tam šoupnul. > Coopcycle průzkum nezahazovat Průzkumy nikdy nezahazuju. Zvlášť ne, pokud mi jejich prozkoumávání zabralo několik hodin. Jen je uklidím někam na hrobeček. Dokonce i ten dokument k Horde ještě mám a nehodlám se jej hned tak zbavovat.
Podhorecky commented 2020-06-03 19:31:42 +02:00 (Migrated from git.spotter.cz)

večer se na to doma podívám. Celkově je to zpracované velmi pěkně, a věřím, že když to bude někdo zkoumat, tak se dozví maximum :) takže teď nevím nic zásadního k tomu.

Když jste dělal ty testy kódu... Váš kód dopadl cajk, ale něco jste zmiňoval, že jste si vědom omezení. Tak jen pro jistotu, jestli jste to někde zmínil, jestli to tam je, tak bych to asi našel, ale trvalo by mi to strašně dlouho.

**večer se na to doma podívám.** Celkově je to zpracované velmi pěkně, a věřím, že když to bude někdo zkoumat, tak se dozví maximum :) takže teď nevím nic zásadního k tomu. Když jste dělal ty testy kódu... Váš kód dopadl cajk, ale něco jste zmiňoval, že jste si vědom omezení. Tak jen pro jistotu, jestli jste to někde zmínil, jestli to tam je, tak bych to asi našel, ale trvalo by mi to strašně dlouho.
Podhorecky commented 2020-06-03 19:53:00 +02:00 (Migrated from git.spotter.cz)

Ještě hloupý dotaz: V tom počátečním procesu přípravy balíčků si nejsem úplně tak jist jak se to děje. To je činnost, která se děje adminem na jím zvoleném repozitáři a vyžaduje nějaký námi navržený setup? Je tam zmíněn princip stažení z orig repo, zabalení, uložení do adresáře na serveru aby se pak k němu mohla VM připojit a stáhnout. Případně instrukce / limity za jakých podmínek se lze pustit do update nebo vzniku nového kontejneru s novou app. Uložené balíčky mají konkrétní verzi, tak aby to i třak bylo chápáno, že se instalují tyto buildy, ne zcela aktuální buildy.
Je mi jasné, že podmínky apps jsou dány jejich dokumentací, to nemusíte kopírovat.

U Sahany probíhá nějaký proces buildění ve web2py a to se děje v tom balíčkovacím procesu kdy přesně?

Ještě hloupý dotaz: V tom počátečním procesu přípravy balíčků si nejsem úplně tak jist jak se to děje. To je činnost, která se děje adminem na jím zvoleném repozitáři a vyžaduje nějaký námi navržený setup? Je tam zmíněn princip stažení z orig repo, zabalení, uložení do adresáře na serveru aby se pak k němu mohla VM připojit a stáhnout. Případně instrukce / limity za jakých podmínek se lze pustit do update nebo vzniku nového kontejneru s novou app. Uložené balíčky mají konkrétní verzi, tak aby to i třak bylo chápáno, že se instalují tyto buildy, ne zcela aktuální buildy. Je mi jasné, že podmínky apps jsou dány jejich dokumentací, to nemusíte kopírovat. U Sahany probíhá nějaký proces buildění ve web2py a to se děje v tom balíčkovacím procesu kdy přesně?
Disassembler commented 2020-06-03 20:36:24 +02:00 (Migrated from git.spotter.cz)

Když jste dělal ty testy kódu

Jestli myslíte ten SonarQube, tak to byly vesměs věci, které byly očividně úplně ujeté. Jako třeba že na řádku, kde se zjišťovalo, zda byl předán HTTP nebo HTTPS protokol to varovalo, že HTTP je nezabezpečené. Nebo že na řádcích, kde se něco hashovalo to varovalo, ať si zkontrolujeme, že je použita silná hashovací funkce a takové chobotiny. Kdyby se mělo něco takového dokumentovat, tak je to stejně potřeba dělat v kódu, protože tam na to ten linter ukáže. Nikdo se nepoletí koukat do dokumentace, jestli je warning XY ve funkci bž() očekávaný.

Ještě hloupý dotaz

Nerozumím úplně na co se ptáte. Počáteční proces přípravy balíčků je buildění image, což se děje přes spoc-image build za pomoci těch souborů s build direktivami. Ty si ten, kdo ty image vytváří, napíše dle svého. Pokud ty vybuilděné image chce i distribuovat, tak pak si vygeneruje pár kryptografických klíčů a s pomocí soukromého přes spoc-image publish a spoc-app publish vytváří podepsané archivy. Ty někam nahraje (to "někam" je ten repozitář - není k němu potřeba žádný speciální software, je to prostě adresář na webovém serveru) a když je odtamtud chce nějaký uživatel stáhnout, tak k jejich ověření potřebuje veřejný klíč toho, kdo je podepsal. Klíče se momentálně konfigurují v konfiguračním souboru, klikátko na ně nemáme, protože ještě chvíli neočekáváme, že bychom měli repozitářů víc než jeden.

Do update nebo vzniku nového kontejneru se lze pustit kdykoliv a limity nejsou.

Verzované jsou v podstatě jen aplikace, u kterých se vždy instaluje poslední dostupná verze. Image sice ve svém názvu něco jako číslo verzi obsahují, ale ta slouží pouze jako unikátní identifikátor pro rozlišení člověkem, který sestavuje kontejnery a na nic jiného nemá vliv. Připadalo mi deskriptivněšjí "alpine3.11_3.11.4-200202" a "alpine3.11_3.11.5-200403" než "20990665367ed4a7992681fcd44da693d6522e0c7c9549fd5e3ac5a35e8ba565" a "17e77482af04da8e68195f25ff9ab870cedec7d5192b35951940b50b1122863a", jako to dělá Docker. Tohle je v dokumentaci pro buildery zmíněno.

U Sahany probíhá nějaký proces buildění ve web2py a to se děje v tom balíčkovacím procesu kdy přesně?

Taky nevím, co tím myslíte. U Sahany se nahážou všechny potřebné soubory (python, web2py, sahana atd) do image a ten se zabalí. Tam se buildí maximálně nějaké moduly pro python. Odděleně od něj se zabalí instalační skripty a metadata, ve kterých je mimo jiné řečeno, které image jsou potřeba. Na straně uživatele se tohle všechno z metadat zase vyčte, stáhnou se ty balíčky, rozbalí, vytvoří se z nich kontejnery (u Sahany jeden aplikační a jeden databázový) a pak se spustí instalační skript, který to celé nakonfiguruje. V téhle fázi se vytváří a plní databáze, takže až teprve tady je poprvé spuštěn proces Sahany, která pomocí funkcí web2py frameworku čte konfiguraci template a plní data do databáze.

Kdybychom distribuovali databázi už naplněnou, budou balíčky mnohokrát větší a unikátní záležitosti jako klíče, hesla, GUIDy atd. nebudou unikátní.

> Když jste dělal ty testy kódu Jestli myslíte ten SonarQube, tak to byly vesměs věci, které byly očividně úplně ujeté. Jako třeba že na řádku, kde se zjišťovalo, zda byl předán HTTP nebo HTTPS protokol to varovalo, že HTTP je nezabezpečené. Nebo že na řádcích, kde se něco hashovalo to varovalo, ať si zkontrolujeme, že je použita silná hashovací funkce a takové chobotiny. Kdyby se mělo něco takového dokumentovat, tak je to stejně potřeba dělat v kódu, protože tam na to ten linter ukáže. Nikdo se nepoletí koukat do dokumentace, jestli je warning XY ve funkci bž() očekávaný. > Ještě hloupý dotaz Nerozumím úplně na co se ptáte. Počáteční proces přípravy balíčků je buildění image, což se děje přes `spoc-image build` za pomoci těch souborů s build direktivami. Ty si ten, kdo ty image vytváří, napíše dle svého. Pokud ty vybuilděné image chce i distribuovat, tak pak si vygeneruje pár kryptografických klíčů a s pomocí soukromého přes `spoc-image publish` a `spoc-app publish` vytváří podepsané archivy. Ty někam nahraje (to "někam" je ten repozitář - není k němu potřeba žádný speciální software, je to prostě adresář na webovém serveru) a když je odtamtud chce nějaký uživatel stáhnout, tak k jejich ověření potřebuje veřejný klíč toho, kdo je podepsal. Klíče se momentálně konfigurují v konfiguračním souboru, klikátko na ně nemáme, protože ještě chvíli neočekáváme, že bychom měli repozitářů víc než jeden. Do update nebo vzniku nového kontejneru se lze pustit kdykoliv a limity nejsou. Verzované jsou v podstatě jen aplikace, u kterých se vždy instaluje poslední dostupná verze. Image sice ve svém názvu něco jako číslo verzi obsahují, ale ta slouží pouze jako unikátní identifikátor pro rozlišení člověkem, který sestavuje kontejnery a na nic jiného nemá vliv. Připadalo mi deskriptivněšjí "*alpine3.11_3.11.4-200202*" a "*alpine3.11_3.11.5-200403*" než "*20990665367ed4a7992681fcd44da693d6522e0c7c9549fd5e3ac5a35e8ba565*" a "*17e77482af04da8e68195f25ff9ab870cedec7d5192b35951940b50b1122863a*", jako to dělá Docker. Tohle je v dokumentaci pro buildery zmíněno. > U Sahany probíhá nějaký proces buildění ve web2py a to se děje v tom balíčkovacím procesu kdy přesně? Taky nevím, co tím myslíte. U Sahany se nahážou všechny potřebné soubory (python, web2py, sahana atd) do image a ten se zabalí. Tam se buildí maximálně nějaké moduly pro python. Odděleně od něj se zabalí instalační skripty a metadata, ve kterých je mimo jiné řečeno, které image jsou potřeba. Na straně uživatele se tohle všechno z metadat zase vyčte, stáhnou se ty balíčky, rozbalí, vytvoří se z nich kontejnery (u Sahany jeden aplikační a jeden databázový) a pak se spustí instalační skript, který to celé nakonfiguruje. V téhle fázi se vytváří a plní databáze, takže až teprve tady je poprvé spuštěn proces Sahany, která pomocí funkcí web2py frameworku čte konfiguraci template a plní data do databáze. Kdybychom distribuovali databázi už naplněnou, budou balíčky mnohokrát větší a unikátní záležitosti jako klíče, hesla, GUIDy atd. nebudou unikátní.
Podhorecky commented 2020-06-03 22:23:03 +02:00 (Migrated from git.spotter.cz)

k tomu SonaQube: aha.. ok.

k hloupému dotazu: aha, tohle už je mi jasnější, jen abych věděl že "není potřeba žádného softwaru" je zcela transparentní pro adminy kteří by to chtěli začít úplně znova jen podle dokumentace.

k Sahaně: už jsem si vzpomněl na slovo prepopulating, což mne strašilo v době mr. Skřivánka, neboť mi v procesu práce na Sahaně (myslím tím updaty při nějaké změně kódu) neustále upozorňovali, že jejich updaty vyžadují obtěžující proces prepopulating a proto ho nebudou dělat každou chvíli co si požádám abych viděl co vzniklo... kterýžto vy jste patrně dělal když bylo potřeba a bez takových keců.
Pro mne si tedy teď beru informaci, že nakonec jste připravil velmi šikovný skript, který to instalaci realizuje komplet. Případný bugfixing a následný prepopulating je věc vývoje na Sahaně. Ale ne věc čisté instalace Sahany z balíčků tak, jak se to dělá pro účel VM. Chápu to dobře?

k tomu SonaQube: aha.. ok. k hloupému dotazu: aha, tohle už je mi jasnější, jen abych věděl že "není potřeba žádného softwaru" je zcela transparentní pro adminy kteří by to chtěli začít úplně znova jen podle dokumentace. k Sahaně: už jsem si vzpomněl na slovo **prepopulating**, což mne strašilo v době mr. Skřivánka, neboť mi v procesu práce na Sahaně (myslím tím updaty při nějaké změně kódu) neustále upozorňovali, že jejich updaty vyžadují *obtěžující proces prepopulating* a proto ho nebudou dělat každou chvíli co si požádám abych viděl co vzniklo... kterýžto vy jste patrně dělal když bylo potřeba a bez takových keců. Pro mne si tedy teď beru informaci, že nakonec jste připravil velmi šikovný skript, který to instalaci realizuje komplet. Případný bugfixing a následný prepopulating je věc vývoje na Sahaně. Ale ne věc čisté instalace Sahany z balíčků tak, jak se to dělá pro účel VM. Chápu to dobře?
Disassembler commented 2020-06-04 06:41:07 +02:00 (Migrated from git.spotter.cz)

k hloupému dotazu

OK, ještě si pročtu, co jsem vlastně napsal a kdyžtak upravím, aby to bylo srozumitelnější. Koukám, že některých větám by trocha kontextu navíc určitě neuškodila.

prepopulating

Přesně naopak. To je pouze věc instalace u koncového uživtele. To je právě to plnění dat do databáze. Dějí se tam dvě věci - migrace a prepopulace. Migrace se týká databázové struktury, prepopulace pak jejího obsahu, který se bere z template. A myslím, že Vás Mr. Skřivánek zase trochu povodil za nos, aby si usnadnil práci.

Jde o to, že některé updaty kódu změní její strukturu, takže pokud změny chcete aplikovat na stávající instanci, je nutno provést tzv. migraci (fskutečnosti se nic nikam nemigruje a prostě se updatuje databáze, ale říká se tomu tak u všech aplikací a to i v případě, že se "updatuje" z prázdné databáze). Při updatech se to dělá tak, že se ručně nastaví settings.base.migrate = True, smaže se adresář s nacacheovaným bytekódem pythonu v Sahaně, pustí se stejný proces jako při iniciálním plnění, ten zjistí, že v databázi už něco je, tak jen aplikuje rozdíly a pak se zase nastaví settings.base.migrate = False a zkompiluje se nový bytekód, aby Sahana běhala svižně. Případně se dá ta volba nechat zapnutá a nastavit ještě settings.base.debug = True a v takovém případě jede Sahana v debug módu a pokouší se aplikovat změny okamžitě při každém požadavku, ale je kvůli tomu o hodně pomalejší.

Tohle mě taky párkrát vypeklo a docela dlouho jsem nevěděl, jak to správně udělat, což je i důvod proč všechny nasazení aktuálních verzí Sahany doprovázel datový klystýr, takže jsem pokaždé instaloval do prázdné databáze. Teď už to vím a bude to dělat update skript při aktualizaci aplikačního balíčku.

Prepopulace je ale problém, protože ta se týká jen samotných dat, která nejsou nijak verzovaná, takže Sahana má volbu settings.base.prepopulate, ale ta prakticky dělá jen to, že při každém requestu zkontroluje, zda existují data v databázi a pokud ne, tak ji naplní. Jakmile je databáze naplněná, nemá ta volba žádnou užitečnou funkci. No a jakmile je databáze naplněná, tak jediná možnost, jak ji prepopulovat znova jinými daty, je celou ji vyprázdnit (a k tomu ještě smazat souborovou cache tabulek, které si dělá Sahana) a celou naplnit znova, takže tady už je to mazání databáze mezi verzemi vcelku ospravedlnitelné.

Obě operace zaberou maximálně 5 minut, ale je potřeba vědět, kam sáhnout. Když to člověk neví, tak jako jsem to v začátcích nevěděl ani já, pak je nejpřímočařejším řešením přeinstalovat celou Sahanu. Naprosto chápu, že se do toho ptáčkovi nechtělo, když ji měl nainstalovanou přímo na železe a nemohl pracovat se snapshoty.

> k hloupému dotazu OK, ještě si pročtu, co jsem vlastně napsal a kdyžtak upravím, aby to bylo srozumitelnější. Koukám, že některých větám by trocha kontextu navíc určitě neuškodila. > prepopulating Přesně naopak. To je pouze věc instalace u koncového uživtele. To je právě to plnění dat do databáze. Dějí se tam dvě věci - migrace a prepopulace. Migrace se týká databázové struktury, prepopulace pak jejího obsahu, který se bere z template. A myslím, že Vás Mr. Skřivánek zase trochu povodil za nos, aby si usnadnil práci. Jde o to, že některé updaty kódu změní její strukturu, takže pokud změny chcete aplikovat na *stávající* instanci, je nutno provést tzv. migraci (fskutečnosti se nic nikam nemigruje a prostě se updatuje databáze, ale říká se tomu tak u všech aplikací a to i v případě, že se "updatuje" z prázdné databáze). Při updatech se to dělá tak, že se ručně nastaví `settings.base.migrate = True`, smaže se adresář s nacacheovaným bytekódem pythonu v Sahaně, pustí se stejný proces jako při iniciálním plnění, ten zjistí, že v databázi už něco je, tak jen aplikuje rozdíly a pak se zase nastaví `settings.base.migrate = False` a zkompiluje se nový bytekód, aby Sahana běhala svižně. Případně se dá ta volba nechat zapnutá a nastavit ještě `settings.base.debug = True` a v takovém případě jede Sahana v debug módu a pokouší se aplikovat změny okamžitě při každém požadavku, ale je kvůli tomu o hodně pomalejší. Tohle mě taky párkrát vypeklo a docela dlouho jsem nevěděl, jak to správně udělat, což je i důvod proč všechny nasazení aktuálních verzí Sahany doprovázel datový klystýr, takže jsem pokaždé instaloval do prázdné databáze. Teď už to vím a bude to dělat update skript při aktualizaci aplikačního balíčku. Prepopulace je ale problém, protože ta se týká jen samotných dat, která nejsou nijak verzovaná, takže Sahana má volbu `settings.base.prepopulate`, ale ta prakticky dělá jen to, že při každém requestu zkontroluje, zda existují data v databázi a pokud ne, tak ji naplní. Jakmile je databáze naplněná, nemá ta volba žádnou užitečnou funkci. No a jakmile je databáze naplněná, tak jediná možnost, jak ji prepopulovat znova jinými daty, je celou ji vyprázdnit (a k tomu ještě smazat souborovou cache tabulek, které si dělá Sahana) a celou naplnit znova, takže tady už je to mazání databáze mezi verzemi vcelku ospravedlnitelné. Obě operace zaberou maximálně 5 minut, ale je potřeba vědět, kam sáhnout. Když to člověk neví, tak jako jsem to v začátcích nevěděl ani já, pak je nejpřímočařejším řešením přeinstalovat celou Sahanu. Naprosto chápu, že se do toho ptáčkovi nechtělo, když ji měl nainstalovanou přímo na železe a nemohl pracovat se snapshoty.
Podhorecky commented 2020-06-04 11:34:57 +02:00 (Migrated from git.spotter.cz)

aha, ok. To je zrovna případ, kdy neseznámený člověk tápe a zkoumá jak je konkrétní aplikace vymyšlená. Z toho co jste napsal by tedy stálo zato udělat buď odstavec v naší dokumentaci ve smyslu jak se to dělá s daty, když jsou-nejsou v Sahaně a je potřeba ji znovu sestavit. Popis této logiky zkracuje dobu tápání a omylů. Které někoho stojí čas, peníze, nervy nebo vše najednou.

Nebo alespoň dát odkaz na dokumentaci, jestli je to tam dostatečně rozepsáno.
S poznámkou, že toho je sice hodně, ale některé informace jsou spíše vývojové. (Jak už jsme všichni mnohokrát zjistili), Sahana je spíše vývojový framework pro cílové deploymenty. Naše práce je nadstavbou pro uživatelské deploymenty, která by měla adminům pomoci v rychlejším, nebo nezávislejším nasazení.

Obecněji co v dokumentaci není:

Celá technická dokumentace se věnuje hlavně architektuře a vytváření VM... Ok. Co myslíte, mělo by se někde objevit i popis co se může stát, když je vše běžící a uživatelé již pracují s app a mají data? Setkal jste se s nějakou havarijní situací která vznikla tím, jak jsou aplikace vymyšlené? Patří to k této dokumentaci, nebo spíš do interní wiki?

Něco z toho budou určitě sdělení kapitána Zjevného, ale možná že něco ne...? Uvažuji nahlas. Nemusíte odpovídat okamžitě.

aha, ok. To je zrovna případ, kdy neseznámený člověk tápe a zkoumá jak je konkrétní aplikace vymyšlená. Z toho co jste napsal by tedy stálo zato udělat buď odstavec v naší dokumentaci ve smyslu jak se to dělá s daty, když jsou-nejsou v Sahaně a je potřeba ji znovu sestavit. Popis této logiky zkracuje dobu tápání a omylů. Které někoho stojí čas, peníze, nervy nebo vše najednou. Nebo alespoň dát odkaz na [dokumentaci](http://eden.sahanafoundation.org/wiki), jestli je to tam dostatečně rozepsáno. S poznámkou, že toho je sice hodně, ale některé informace jsou spíše vývojové. (Jak už jsme všichni mnohokrát zjistili), Sahana je spíše vývojový framework pro cílové deploymenty. Naše práce je nadstavbou pro uživatelské deploymenty, která by měla adminům pomoci v rychlejším, nebo nezávislejším nasazení. Obecněji co v dokumentaci není: Celá technická dokumentace se věnuje hlavně architektuře a vytváření VM... Ok. Co myslíte, mělo by se někde objevit i popis co se může stát, když je vše běžící a uživatelé již pracují s app a mají data? Setkal jste se s nějakou havarijní situací která vznikla tím, jak jsou aplikace vymyšlené? Patří to k této dokumentaci, nebo spíš do interní wiki? Něco z toho budou určitě sdělení kapitána Zjevného, ale možná že něco ne...? Uvažuji nahlas. Nemusíte odpovídat okamžitě.
Disassembler commented 2020-06-21 10:13:29 +02:00 (Migrated from git.spotter.cz)

closed via commit 547c3cf84f

closed via commit 547c3cf84fd2f2f05e2b58ccfc182af4066dea2d
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Disassembler/Spotter-VM#337
No description provided.