98_Version.pm - Semver Zusätzlich zu REF ID unterstützen

Begonnen von Sidey, 18 Mai 2025, 17:13:24

Vorheriges Thema - Nächstes Thema

Sidey

Hi Betateilchen,


Wäre es möglich, für Module die nicht im SVN liegen auch die Angabe einer semver zu untersützen?

Ich denke, das wäre schon möglich wenn die Regex an diese Stelle https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/98_version.pm#L67 ein bisschen angepasst wird:

\$Id\: (\S+?) ((\d+?)|v?\d+.\d{0,}.\d{0,}) (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}Z \S+?) \$

Viele Grüße
Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

betateilchen

Zwei Bitten:

  • verschiebe den Thread bitte in den Developer-Bereich, ich möchte das nicht alleine entscheiden.
  • füge ein sinnvolles Beispiel der gewünschten Ausgabe hinzu, damit man sieht, wie sich das auswirkt.

Da in einer semver auch ziemlich viel "Käse" stehen kann, wird die Angabe vermutlich die Ausgabe der Versionstabelle unkontrolliert sprengen. Die verwendete Ausgabe mit sprintf() wird wahrscheinlich nicht mehr passen.

Spontan habe ich gerade keine wirkliche Lust, das zu ändern, zumal die Ausgabe von "version" auch jetzt schon an der einen oder anderen Stelle bei Anwendern für eigene Auswertungen genutzt wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sidey

Hallo Betateilchen,

An der Regex müsste ich noch etwas arbeiten und an besagtem sprintf auch, da hast Du recht.
Da das mit der Länge der Versionsangabe natürlich gewisse Herausforderungen mit sich bringt, könnte ich mir folgenden Kompromiss gut vorstellen:

Folgende ID Zeile:
# $Id: 99_DockerImageInfo.pm v1 2025-03-25 11:20:51Z sidey79 $

Könnte dann zu folgendem Ergebnis führen:
File                  Rev   Last Change

fhem.pl               29402 2024-12-05 16:03:59Z rudolfkoenig
39_alexa.pm           23820 2021-02-24 19:29:15Z justme1968
98_autocreate.pm      29378 2024-11-30 18:25:51Z rudolfkoenig
99_DockerImageInfo.pm     0 2025-03-25 11:20:51Z sidey79


Wenn das auf Zustimmung trifft, würde ich den Patch dafür auch erstellen.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

@betateilchen


wie wollen wir hier denn weiter machen?

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

betateilchen

Zitat von: Sidey am 24 Mai 2025, 19:59:48wie wollen wir hier denn weiter machen?

Kurzfassung: derzeit gar nicht.

Langfassung:

Zitat von: Sidey am 18 Mai 2025, 17:13:24für Module die nicht im SVN liegen auch die Angabe einer semver

Wenn eine Moduldatei es offenbar nicht "wert" ist, in das offizielle repository (ggf. in ./contrib) eingecheckt zu werden und damit eine reguläre Versionsnummer zu erhalten, verstehe ich nicht, warum man es dann in der für offizielle Module vorgesehenen Liste mit Versionsangaben aufnehmen sollte.

Darüber hinaus stelle ich fest:

  • außer Dir hat offenbar niemand ein Interesse an der vorgeschlagenen Änderung (bzw. nichtmal eine Meinung dazu)
  • semver sind derzeit in den Entwicklungsstandards von FHEM nicht vorgesehen
  • zusätzliche, vom Standard abweichende Versionsangaben sind geeignet, bei Anwendern Verwirrung zu stiften
  • die Ausgabe von "version" dient regelmäßig des Debuggings und der Hilfe bei Problemmeldungen hier im Forum. Man sollte sich als Helfender darauf verlassen können, welche einheitlichen Informationen die Ausgabe enthält

Das von Dir gelieferte Beispiel

Zitat von: Sidey am 20 Mai 2025, 08:54:14# $Id: 99_DockerImageInfo.pm v1 2025-03-25 11:20:51Z sidey79 $Könnte dann zu folgendem Ergebnis führen:
99_DockerImageInfo.pm     0 2025-03-25 11:20:51Z sidey79

habe ich nicht verstanden. Welchen Sinn soll es haben, als Versionsangabe eine 0 darzustellen, wenn im $Id String doch v1 steht? Sowas würde ich auf keinen Fall umsetzen.

Falls es Dir nur darum geht, alle geladenen Moduldateien (egal ob mit oder ohne $Id) in der Liste zu haben, solltest Du die Anforderung bitte nochmal neu formulieren.

Wie gesagt: Im Moment sehe ich keinen Bedarf, an dieser Stelle irgendetwas zu verändern.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sidey

Zitat von: betateilchen am 25 Mai 2025, 12:30:30Wenn eine Moduldatei es offenbar nicht "wert" ist, in das offizielle repository (ggf. in ./contrib) eingecheckt zu werden und damit eine reguläre Versionsnummer zu erhalten, verstehe ich nicht, warum man es dann in der für offizielle Module vorgesehenen Liste mit Versionsangaben aufnehmen sollte.

Das war mir nicht bewusst, dass z.B. github.com/fhem keine offiziellen repositorys sind.

Zitat von: betateilchen am 25 Mai 2025, 12:30:30habe ich nicht verstanden. Welchen Sinn soll es haben, als Versionsangabe eine 0 darzustellen, wenn im $Id String doch v1 steht? Sowas würde ich auf keinen Fall umsetzen.

Das war ein Kompromissversuch, weil Du dich zur Formatierung geäußert hattest.
Aktuell wird die ID Zeile ausgegeben, wenn in der Versionsnummer keine valide SVN Revisionsnummer steht.



Zitat von: betateilchen am 25 Mai 2025, 12:30:30Falls es Dir nur darum geht, alle geladenen Moduldateien (egal ob mit oder ohne $Id) in der Liste zu haben, solltest Du die Anforderung bitte nochmal neu formulieren.

Das war tatsächlich mein Bedarf neben der REV id auch andere Versionsangaben zu erlauben:
Also so etwas:

99_DockerImageInfo.pm    v1 2025-03-25 11:20:51Z sidey79
Oder auch sowas:
99_DockerImageInfo.pm v1.0.0 2025-03-25 11:20:51Z sidey79
Gerne auch die Daten aus dem META block, wenn keine SVN Revisions ID gefunden wurde.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker