naucse.python.cz icon indicating copy to clipboard operation
naucse.python.cz copied to clipboard

Rozdělit renderování obsahu, aplikaci, a seznam kurzů

Open encukou opened this issue 5 years ago • 2 comments

Aktuálně naucse není v dobrém stavu. Všechno souvisí se vším, a udělat nějaké změny a vylepšení je složité až nereálné. Rozplést to je těžší než se zdá. Zároveň je to frustrující pro lidi, kteří by se chtěli zapojit. V posledních měsících mě zavalila práce, tak se to moc nepohnulo. Teď na to mám dedikovaný čas. Budu sem postupně psát, jak se posouvám. (Kód je v mojí větvi, ale rozhodně není ve stavu, kdy bych chtěl aby se na to někdo díval nebo to kritizoval.)

Toto je refaktorování. Výstup bude nezměněný, takže se bude líp dělat review a na nic důležitého nezapomenu. (Opravy chyb a UX přijdou pak.)

Co plánuju v této fázi:

  • Rozdělení do tří knihoven:
    • Renderování obsahu – naucse_render
    • Webová aplikace – naucse
    • Obsah – naucse.python.cz
  • naucse bude s naucse_render komunikovat přes verzované a validované JSON API (a HTML – žádný Markdown).
  • naucse bude poskytovat verzované a validované JSON API (nástrojům jako je odevzdávátko úkolů nebo zpětnovazebník).
  • Když se nepodaří vyrenderovat jednu stránku, spadne build celého kurzu. (Teď spadne úplně celý build. Později se použije starší verze toho jednoho kurzu, a přestanu požadovat přístup k všem repozitářům s obsahem.)

Co mě od toho aktuálně dělí:

  • [x] Renderování notebooků
  • [x] Renderování odkazů
  • [x] Renderování seznamů materiálů
  • [x] Renderování seznamu kurzů
  • [x] Renderování kanonických lekcí
  • [x] Doladění API
  • [x] Doladění modelů
  • [ ] Renderování forků
    • [ ] Sanitizace inline CSS – https://github.com/pyvec/naucse.python.cz/pull/503
    • [x] Cover page
  • [x] Opravy existujících forků
    • [x] https://github.com/PyLadiesCZ/naucse.python.cz/pull/17
    • [x] https://github.com/muzikovam/naucse.python.cz/pull/49
  • [ ] Dokumentace
    • [ ] README
    • [ ] meta course
  • [ ] Dokumentace API
  • [ ] Zrušení nepoužitého kódu
  • [ ] Testy
    • [ ] Fix the xfail
    • [ ] Remove test_forks.py. (I'd like to go through it once more before that).
  • [x] Dokumentace kódu

Hard deadline je v únoru.

Tohle blokuje (nebo řeší) všechno, čemu se chci věnovat (kromě obsahu). Zejména:

  • #342 #491 Course static files
  • Caching (incl. using old course data if current data is wrong/invalid)
  • #480 Testování validity YAML souborů při buildu
  • #460 Unability to freeze the website if no runs have calendar
  • #444 Make lesson number/name available in the pages
  • #439 Review validation of src/href
  • #438 Validate all HTML/Markdown from forks
  • #424 Errors in forks break non HTML pages
  • #397 Definovat workflow s forky
  • #417 Archived run
  • Změny prezentace
    • #333 #355 Statistika na hlavní stránce
    • #377 Site improvements
    • #501 Add session description to the course page

encukou avatar Nov 28 '18 13:11 encukou

@frenzymadness, explicitní varování pro tebe: PR #505 s sebou nese zhoršení aktuálního stavu. Když se nepodaří vyrenderovat jednu stránku, spadne úplně celý build. To v praxi znamená, že když někdo do svého forku nahraje špatná data, zablokuje aktualizace celého naucse. Já a Miro to můžeme vyřešit (máme přístup ke všem forkům), ale pro tebe to může být nepříjemné, kdybychom oba nebyli online :( Oprava má docela prioritu (hned po statických souborech), takže to doufám problémy nepřinese.

encukou avatar Jan 16 '19 14:01 encukou

Děkuji za varování. Tak snad se nic nepokazí hned ze startu, kdy se kromě přípravy kurzu nic zas tak často nemění.

frenzymadness avatar Jan 16 '19 16:01 frenzymadness