RadioLab LTS 04-2023: The StockPi project
RadioLab ** April 27th, 2023 by wim.webgang **Special guest
Marthe heeft ook nog een gast meegebracht: DJ Conconbre, zodat we met 4 zijn in ons RadioLAB. We haasten ons dus live van de kleine studio naar de grote.
Een Special guest die bovendien ook de muziek verzorgt tijdens het programma, maar ook thuis is in servers, hacking, javascript, Processwire, enz…
The StockPi project
Marthe geeft ons al een idee van de hardware: Raspberry pi, in te bouwen camera met platte draad, enz:
We werken ondertussen aan ons in maart opgestarte LTS project “StockPi”…
Voor de software zullen we git gebruiken (zie verder).
Marthe stelt nog een online edit programma voor om online live samen te werken (..)
Voor de documentatie kunnen we de wiki van GitLab gebruiken.
Git
Het is Linus Torvalds’ broncode-beheer-systeem voor de ontwikkeling van de Linux kernel, dat als vrije software de wereld (van de programmeurs en ontwikkelaars) veroverde.
Het is eenvoudig te installeren uit de bronnen van de eigen Linux distributies.
Het maakt het mogelijk om van broncode en andere teksten verschillende versies (of takken) te maken (bv try-out, afwijkende hardware, definitieve versie), en die eventueel terug te integreren in een of meer voortlevende takken, of gewoon te laten afsterven als je ze niet meer nodig hebt.
We moeten dus git installeren, ook als je wil volgen is dat handig.
Zie Reeks Git – handboek (nl) – commando’s vb – branch, merge – GitLab vb – SourceForge vb – git en gambas op linuxuser.copyleft.be
Gitlab
We kozen voor git Gitlab om ons project op te ontwikkelen; het is een platform gebouwd rond git, en voorlopig nog niet opgekocht door één van de grote internetmonopoliegarchen.
1. Gitlab, project, members
- Een account op gitlab maken (hadden wij allemaal al)
- Een project maken. Ingelogd op gitlab, nieuw project, naam geven, publiek, licentie: gpl3.
https://gitlab.com/wim.webgang/stockpi
- Een gebruiker toevoegen:
menu Project information / members
Project members
You can invite a new member to StockPi or invite another group.
- Knop “Invite members”
- naam intikken, toevoegen en rol kiezen (bv guest, reporter*, developer, maintainer, owner)
- zichtbaar in de lijst van Members binnen het project
We moeten tijdens het programma eens overlopen wat voor rol de “rol” speelt… TODO (daar was geen tijd voor in de uitzending).
(upd: alle rollen op Maintainer gezet)
2. Gitlab, README.md
Deze is automatisch aangemaakt bij de creatie van het project, en bevat een soort help-tekst. Je moet die verwijderen en vervangen door relevante inhoud voor je eigen project.
TODO (zie onderaan)
3. Gitlab repository, subdirectories, branch
Hoe organiseren we het project? Beginnen we direkt met code in de map van het project?
Of maken we een onderverdeling, met een map voor “Documentatie”, “Gb3code”, “ArduinoCode”, “schema”, …
Dan kan je een pull doen van alleen die code?
Of komt alles mee binnen? “Cloning only a subdirectory is not possible in Git” (2013)
Bestaat git “Sparse checkout“?
4. Gitlab tools
Gebruiken we nog andere onderdelen van gitlab, zoals …
Gitlab biedt bv “Static Pages” die je wel kan (laten) genereren met Static Site Gereration.
5. Aktie: clone StockPi
Eens de beslissingen genomen zijn, of zelfs vanaf de repository aangemaakt is, kan je hem naar je computer halen met een “git” commando dat ook te kopieren is op de gitlab site bij de git branch pagina’s:
Ik maakte eerst een map voor het hele project, daarbinnen ga ik mijn git krijgen.
~/webgang/prj> mkdir StockPiPrj
~/webgang/prj> cd StockPiPrj/
Daar doe je dan:
StockPiPrj>git clone https://gitlab.com/wim.webgang/stockpi.git
De reaktie is iets als:
Cloning into 'stockpi'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 1), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (6/6), done.
Resolving deltas: 100% (1/1), done.
Het gevolg is dat je een directory hebt met alle broncode bestanden van ons project in (bij aanvang dus leeg), en die wat extra git-eigen hulpdirectories en bestanden bevat, die onzichtbaar zijn en die je ook zelf niet nodig hebt.
StockPiPrj> ls
stockpi
Hier, in StockPiPrj kan ik zefl bestanden zetten, nota’s, tijdelijke dingen, vragen enz. Die komen niet in het git project terecht.
Maar als ik in de “stockpi” map ga, zit in “in” het git project. Git gaat hier zelf bestanden zetten en directories maken, bv als je synchroniseert met de toestand van het project online.
Je kan hier dingen zetten, en kiezen om ze niet mee op te nemen in git, maar dat zou ik afraden, hou die in de hogere StockPiPrj directory.