Meldung von Sven (DTFB-IT): "In der Tabelle sind Saetze falsch." Die Satz-Spalte der Tabelle summiert teamspiel_*_punkte, und die zaehlen nur ENTSCHIEDENE Saetze -- unentschiedene Saetze verschwanden spurlos. Aus "6:4 5:5 2:6 6:3" wurden 2:2 Saetze, das 5:5 fehlte in jeder Summe. Vorbild ist die Spielerstatistik, die mit saetze_unentschieden genau dieses Feld schon fuehrt. Neue NULL-bare Spalten, NULL heisst unbekannt (Bestand vor der Erfassung von Satzergebnissen), nie wird 0 unterstellt: - teamspiel.teamspiel_saetze_remis: unentschiedene Saetze des Spiels, eine Zahl, fuer beide Seiten gleich - begegnung.saetze_remis: Summe ueber die Spiele; NULL, sobald ein Spiel unbekannt ist (gleiche Regel wie bei den Toren) - team.saetze_remis: Summe ueber die ausgetragenen Begegnungen, in teamstatistikAktualisieren mitberechnet Berechnet wird der Wert in tools.php (saetzeRemisFuerSpiel, analog zu toreFuerSpiel: nur bei punktetyp 1 mit Satzergebnissen bekannt, sonst NULL) und an denselben beiden Stellen geschrieben wie die Tore: Speicherschleife adminSaveBegegnungSpielplan() und begegnungenAktualisieren(). Migration: #306 ist nicht ausgeliefert, Datenbankversion 123 gehoert bereits zu diesem Zweig -- die neuen Spalten erweitern deshalb den bestehenden <123-Block in database/update.php (mit eigenen Spalten-Guards, damit eine Instanz, die den bisherigen 123er-Stand schon traegt, nur das Fehlende nachzieht) und die CREATEs in script.php. Anzeige: im Je-Satz-Modus weist die Satz-Spalte der Tabelle die Remis-Saetze kompakt mit aus ("6:5 (4)"), mit erklaerendem title (neuer Sprachschluessel COM_SPORTSMANAGER_SETS_DRAWN); die Spaltenzahl waechst nicht. Ausserhalb des Je-Satz-Modus bleibt team.saetze_remis NULL und die Anzeige unveraendert. getTabelleSpieltag liefert den Wert je Spieltag ueber ein Subselect, das nur im Je-Satz-Zweig erzeugt wird; die JSON-Ansicht reicht die Teamobjekte unveraendert durch und traegt den Wert damit automatisch.
SportsManager
DEV/STAGE environments
| LV | HOSTER | DOMAIN | BRANCH |
|---|---|---|---|
| DTFB | Kicktemp | stage.dtfb.de | dev |
| TFVHH | Kicktemp | stage.kickern-hamburg.de | dev |
| STFVH | DTFB | stage.stfv.de | sportsmanager2-stage |
| MTFV | DTFB | stage.mtfv.de | ? |
| TFVSH | DTFB | relaunch.tfvsh.de | ? |
PROD environments
| LV | HOSTER | DOMAIN | BRANCH |
|---|---|---|---|
| DTFB | Kicktemp | dtfb.de | production |
| TFVHH | Kicktemp | kickern-hamburg.de | production |
| MTFV | DTFB | mtfv.de | sportsmanager2-prod |
| TFVSH | DTFB | tfvsh.de | sportsmanager2-prod |
| STFVH | DTFB | stfv.de | sportsmanager2-prod |
Test setup
Installation
To start joomla and the database, run
docker-compose up -d
Release creation
To create a release execute
npm run release
Deployment
Deployment can only be done manually right now (sad)
To do this go to
Testserver Extension Installer Site
and upload the zip file found in ./package/packages
Development Tools
If you are using Intellij, there is a plugin named Joomla! which helps with resolving
joomla specific database prefixes like #__
To set it up, insert into the configuration popup which follows after you enable the framework support:
Joomla install path: ./data/joomla_data
JConfig: ./data/joomla_data/configuration.php
This works only with mounted volumes. However, mounted volumes will slow down the joomla instance significantly.
The current setup does not use mounted volumes. An alternative would be to download joomla and use that installation
Debugging (with Docker/Intellij)
-
Start Docker Container (see above)
-
Create a terminal for that container
docker exec -it <container_name> bash -
install xdebug within the container since joomla does not come with xdebug preinstalled
pecl install xdebug -
restart the container
-
In Intellij Go to File | Settings | Languages & Frameworks | PHP | Servers and setup your server
name anything host localhost port 8080 debugger xdebug use the path mapping and map the repo structure to the container content
File/Directory path on server <path>/com_sportsmanager/src/structure/administrator/components /var/www/html/administrator/components <path>/com_sportsmanager/src/structure/components /var/www/html/components -
Click on "Start Listening for PHP Debug Connections" in the top row of intellij
-
(Not sure if optional) Install a browser extension by Jetbrains
https://chromewebstore.google.com/detail/xdebug-helper-by-jetbrain/aoelhdemabeimdhedkidlnbkfhnhgnhm
How to release
Hint: for technical details regarding the release process have a look into .github/...
To create a release these steps need to be followed
- make sure all needed code changes are merged from dev -> stage -> prod, since releases may only be build on prod branch
- give pull requests meaningful names and label them enhancement/bug/chore since labels and names are used for release note generation Hint: if a specific pull request should be ignored, add the label changelog-ignore
- tag a commit (recommended is the latest merge on prod). The pipeline is listening for any tag fitting
v[0-9]+.[0-9]+.[0-9]+git tag -a v1.2.3 1a2b3c4 -m "Release version 1.2.3" - push the tag
git push origin --tags - the tag push will trigger the pipeline, and it will create the release and store in GitHub
A release can be created again anytime by deleting the release from GitHub, deleting the tag (from GitHub and additionally from git) and repeating step 3 and 4
Further: merges from dev to stage and from stage to prod can only be done by creating pull requests. These pull requests will be automatically labeled as changelog-ignore