Search

Archives

Pages

Op mijn desktop:

Suggesties, commentaar, ... (klik of schrijf zelf:)e-mail webgang
Laatste titels:

Stockpi project: gesplit

RadioLab, Uitzending do 18:00 ** July 27th, 2023 by wim.webgang **

“Pas bezig en al gesplit”

Het stockpi project is al gesplit, niet wij als project deelnemers, maar de code van het project.

Op basis van de opmerking van Marthe of een grafische gebruiksomgeving echt nodig is, of het niet zonder kon, kwam Wim tot de conclusie dat er naast een Desktop applicatie ook en CLI (Command Line Interface) moet komen. Twee programma’s dus in plaats van één.


Maar dat is wel dubbel zoveel werk… of niet?

Alles wat gemeenschappelijk is kan gemeenschappelijk beschikbaar gemaakt worden in een “library” of “.lib“. Daarin komt alle code die bv de objecten (recordstructuur) beschrijft, communiceert met de database enz.

Dus:

  • Gemeenschappelijke code in StockPiLib
  • De code voor de commandolijn bediening StockPiCLI.
  • Alles wat specifiek is voor de desktop komt in de StockPiApp,

Voordeel is dat ook iemand anders de lib kan gebruiken en er zijn eigen Gambas programma mee kan schrijven. Stel dat iemand bv een web-versie wil maken, met Gambas Server Pages of als CGI script (wat kan met Gambas):

En ook zonder de StockPi-LIB kan je aan de data via rechtstreekse SQL commando’s naar de MariaDb/MySQL server, of via een andere programmeertaal als PHP (dan moet je wel alle code daarvoor schrijven of een kant-en-klare tool gebruiken als PhpMyAdmin):

Een CLI versie
We proberen een voorbeeldje uit met een ander programma met een CLI interface, waar we allebei vanop afstand op inloggen; het gebruik wijst zichzelf uit ..

Conclusie
- zo’n CLI doet heel erg denken aan een lang vervlogen tijd, en is niet bepaald wat we voor ogen hadden voor gebruik als stockpi programma.
- Het biedt wel mogelijkheden om library code uit te proberen voor de app klaar is, en om vanop afstand op een gemakkelijke manier de database te ondervragen, bv met een ssh verbinding. CLI heeft dus zijn waarde.

We kijken nu uit naar het eerste voorbeeld toegepast op het StockPi project, zowel van lib als cli als app. Wordt vervolgd….

(ps zie dat je zeker bij bent met je installatie van Gambas3, en mysql – zie ook hieronder)


(Dit was de voorbereiding voor 27/07):
Vandaag: de eerste code upload op gitlab.

Vorige afleveringen hadden we ons al voorbereid:
- hardware: pi + cameramodule (ok)
- case: aangepaste behuizing (ok)
- besturingsysteem op de pi, gambas3 installeren (ok)
- repository op gitlab en accounts (ok)
- databaseserver: mariadb (zou ok moeten geweest zijn).

Database server
1. Installeren
Mariadb is geïnstalleerd. Standaard heeft die een paar testdingen die normaal gewist worden voor gebruik, en ook moet je het wachtwoord instellen. Daarvoor is een script bijgeleverd; uitvoeren!
mysql-secure-install (als root).

2. Database-server testen
Probeer in te loggen als root of met de beheerdersaccount als die anders heet, en bijhorend wachtwoord.

3. Database maken
Je kan het door ons gemaakte ontwerp voor stockpi onmiddellijk overnemen: daarvoor moet je een voorafgemaakt .sql bestand inladen in je database server. Dat zal opgenomen worden bij de broncode.

Maar je kan ook zelf aan de slag:
Gebruik de SQL commandolijn of een hulpmiddel om jouw ideale (voorlopig) database te maken. Gebruik bv phpMyAdmin (maar dan moet je ook een webserver installeren).
Ik gebruikte DbInfoCode.

De database is daarna geëxporteerd vanuit phpMyAdmin:


De export wordt als bestand opgenomen bij de broncode: stockpi.sql

Komende: git group, project split en commit

Git group
Nieuwe situatie: group met url op hoogste niveau is “Stockpi” : https://gitlab.com/stockpi
Het project is nu onderverdeeld in volgende sub-projecten:

  • StockpiApp : de desktop applicatie
  • StockpiCLI : de commandolijn versie
  • StockpiLib : de gemeenschappelijke code (basisfuncties)

De deelnemers aan het project moeten toegevoegd worden op niveau van het project, en hebben dan dezelfde rechten op de sub-projecten of repositories. Bv de status “developer” kan aan de code werken (repo branches access).

De main repositorie is om van te downloaden; bevat de samenvatting van de wijzigingen tot dan.
Gewerkt wordt in de sub-repositories, bv dev, dev-startproject, dev-experiment-db, dev-fix-bugs enz.

Om het project af te halen: ga in je programmeer directory staan en doe:

git clone git@gitlab.com:stockpi/stockpiapp.git
git clone git@gitlab.com:stockpi/stockpicli.git
git clone git@gitlab.com:stockpi/stockpilib.git

Gebruik de gegevens van je gitlab account.

Check de .git/config file voor de details van je git instellingen.
Check de ~/.ssh directory voor je SSH key.

Voor wie zelf niet aan de code werkt, is het vooral belangrijk om nieuwe code af te kunnen halen: kies een repositorie, een branch, en haal af. Openen in Gambas, en uitvoerbaar maken.

Enkele git-commando’s:

git setup user.name
git setup user.email
git clone git@gitlab.com:stockpi/stockpilib.git
git status
git checkout dev-hq
git checkout -b dev-mytest
(..edit sources)
git commit -am "wat ik wijzigde"
git push --set-upstream origin dev-mytest
git checkout dev-hq
git fetch
git pull
git merge dev-hq
git push

Ook via de web-interface kan je wijzigingen doen aan tekstbestanden zoals de README. De huidige teksten daar zijn (gedeeltelijk) zo gemaakt. Je kan dat ook doen om de rechten van je account uit te proberen (kies een sub-branch!).

Er staan een paar stappen klaar om te mergen …

Start met de master:
git clone git@gitlab.com:stockpi/stockpilib.git

Ga in de hierdoor gemaakte stockpilib directory en tik:

git fetch
git pull

Daarna halen we de eerste developer zijn bijdrage binnen:

git merge dev01setup

Als je het project opent in Gambas zie je de veranderingen en kan je “run” doen. Niet dat er al veel gebeurt natuurlijk, want ten eerste is dit een “library”, en ten tweede is dit maar het opzet van het gambas project. Maar toch is het de bedoelilng dat je met de “main” hier ook stukjes code kan laten lopen, de de geëxporteerde objecten en methodes gebruiken.

Daaropvolgend ook de andere developers hun bijdrage “mergen” met je project:
git merge dev02..
git merge dev03..
git merge dev04..

Of je kan wachten tot de cooridnator van main alles gemerged heeft, en dan kan je synchroniseren met main door git checkout main
git pull

Lift ^ | Lift v | Comments Off

Comments are closed.