Szervusztok!
A gerrit felületét szeretnem kiegészíteni egy új nézettel kliens oldalon, ami a review -kat (egy keresés kimenetet) grafikusan jelenítené meg. Jelenleg van egy python szkriptem, ami REST API -n éri el a szervert, plantuml forrást generál, amiből .svg ábra készül. Működik, de nem elég interaktív, read-only, és állapota sincs, azaz nem lehet kommentelni rá. Az egészet review status átnézésre használja a csapat a heti meetingen (hogy halad az egyes patch-stack -ek review -ja, esetleges elakadás oka, mi legyen a merge order, stb...). Csatoltam egy példa SVG -t.
Arra gondoltam, hogy valami kliens oldali tool -lal tenném szebbé és jobbá a megoldást. Mit kellene a megoldás tudjon:
- Vizualizálja a patch-stack -eket interaktívan. Lehessen nagyítani, összecsukni, ideiglenesen elrejteni az egyes ágakat. Ehhez vonalakkal összekötött dobozok kellenének. Kb. mint egy komponens diagram, ahol a komponensekben benne vannak alap onfók (commit message, change id, topik es hash tag, link a review -ra, szavazatok állapota), illetve valami színkód jelölné mikor volt a legutóbbi frissítés.
- Bukl műveletek. A stack kijelölt elemeire lehessen has-tag -et, topic -ot, assigneet, reviewert állítani.
- Jó lenne ha 2 szerver adatait egybe tudná fésülni. A 2 szerveren ugyan azok a módosítások vannak fent, a belső szerverről vándorolnak a publikus szerverre a patch -ek.
Arra gondoltam, hogy ami nekem kell az egy böngésző bővítmény, ami REST API -n manipulálná a szervert, és valamilyen js toolsettel generálna valami interaktív nézetet. Csak fogalmam sincs, milyen library -vel halmazzal érdemes ennek nekilátni manapság. Az "offline kommentekhez" (adat amit a szerver nem tud kezelni) kellene valami local storage. Nem tudom a browser extension -nak lehet e ilyenje. Ha nem, akkor gondolom egy elektron app, vagy vscode bővítmény lehetne a megoldás.
Ki, mivel indulna el? Elég ha megoldásokat, library -ket javasoltok, merre induljak el a kutatással. Előre is köszi!
Hozzászólások
Szerintem lemaradt a példa SVG.
Nekem ez elég összetett feladatnak tűnik, el vagy szánva, hogy rengeteg munkaórát bele kell ölni, hogy használható eredményt kapj? Pláne, hogy tanulással kezdődik, ha jól látjuk.
Szerintem kell hozzá szerver. Például a kommenteket hol tárolod, hogy osztod meg másképpen? Ha már egyszer Python szkript van hozzá, akkor azt beleépítheted, vagy úgy hogy Pythonban csinálsz web szervert, vagy úgy, hogy amit csinálsz, az ezt a generátort meghívja. Olyan technológiát választanék amihez legjobban ért aki fejleszteni fogja.
"Szerintem lemaradt a példa SVG."
Nem találtam olyan ingyenes image hosting oldalt ami elfogad .svg fájlokat. 🤷♂️
"Nekem ez elég összetett feladatnak tűnik, el vagy szánva, hogy rengeteg munkaórát bele kell ölni, hogy használható eredményt kapj? Pláne, hogy tanulással kezdődik, ha jól látjuk."
Low prio hobbi project. Meglátjuk mekkora falatnak bizonyul.
"Szerintem kell hozzá szerver. Például a kommenteket hol tárolod, hogy osztod meg másképpen?"
Szerver van, de ezek a kommentek inkább offline annotációk lenének, amit helyben kellene menteni. A kommentek megoszthatósága nem szükséges.
"Ha már egyszer Python szkript van hozzá, akkor azt beleépítheted, vagy úgy hogy Pythonban csinálsz web szervert, vagy úgy, hogy amit csinálsz, az ezt a generátort meghívja. Olyan technológiát választanék amihez legjobban ért aki fejleszteni fogja."
Igen, lehetne belőle egy pythonban irt web-app, de azt kicsit ovekill -nek érezném. A gerritnek van webui -ja, ez "mellé" betenni valamit tűnik egyszerűnek. Ha önálló alkalmazás lenne, inkább kihagynám belőle a browser -t meg a javascript -et. Nem tudom miben lehet manapság portolható desktop GUI -t írni. Desktop GUI -hoz ugyan annyira értek, mint a webes GUI -hoz. Semennyire :D Delphi -ben és c++ builder -ben csináltam utoljára ilyesmit. Portolható mondjuk egyik sem volt.
Szerintem jobban járnál, ha JS-ben és Electronban gondolkodnál, abból kicsit egyszerűbb is macerálni a meglevő oldal DOM-ját, plusz nem vernéd szét a Gerrit már meglévő működéseit. De amúgy AFAIK a Gerrit nyillt forrású dolog, le is lehet forkolni, és belerakni ezeket a riportokat.
Viszont, ha ez neked egy sima dinamikus board, én lehet, hogy inkább egy webappban saját dashboardot írnék, nem feltétlenül a mostani divatos felállásban, ti hogy a kliens rendereljen/csináljon/tároljon mindent, hanem inkább azt csinálnám, hogy egy webappban összelapátolnék minden infót, és leküldeném a kliensre, a kliens JS-e meg csak annyit tudna, amennyit múlhatatlanul szükséges. Így a business logikát is abban valósíthatnád meg, amiben kényelmesebb (webapp oldalon a Ruby-tól a Python-on át a Javáig vagy C CGI-ig is terjedhet a skála), míg böngésző oldalon HTML, CSS kell meg egy nagyon minimál JS tudás.
Ja, igen oldschool megoldás, egy webfejlesztő valószínűleg szembe fog köpni. De gondolom nem ezzel akarsz senior fejlesztői babérokra törni.
> Nem találtam olyan ingyenes image hosting oldalt ami elfogad .svg fájlokat. 🤷♂️
GitHub Gists bármilyen szövegformátumú fájlt elfogad, ide pedig tudsz belőle PNG-t konvertálni ImageMagick-kel vagy Gimp-pel.
Blog | @hron84
via @snq-
Ma jött szembe. Elképzelhető, hogy hasznos lehet neked, főleg, hogy már amúgy is Pythonozol:
https://github.com/zauberzeug/nicegui
Köszi, ez jól néz ki! Az, hogy Pythonozok azért erős kifejezés. Tudom használni a nyelved, de erősen kontár vagyok.
IMHO ezzel a fejlesztők úgy felét le is fedted :D
Amúgy a kedvenc LLM-edet megkérdezted már?
o3-mini-high nekem ezt adta, kiindulási pontnak nagyjából jónak tűnik:
:) Megkérdeztem, de elküldött a szélrózsa minden irányába egyszerre. Gondoltam megkérdezem a közös tudatot is, hátha jobb irány mutat.