fpcupdeluxe mit dynamischen Gitlab-Tags

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von HobbyProgrammer »

Hallo alle zusammen,

auf Grund der Diskussion viewtopic.php?t=16202 und der immer wieder einmal
angesprochenen Tatsache das die verschiedenen Releases in fpcupdeluxe hart codiert sind, habe ich mir Gedanken
gemacht wie man die hart codierten Gitlab Versionen durch dynamische, beim Programmstart, eingelesene Versionen
ersetzen könnte.

Dazu habe ich mir Warfs Proof of Concept https://github.com/Warfley/LazSetup eines Lazarus Installers angesehen.
Daraus ist dann die Unit 'GitLabTagReader' entstanden, welche ich zu fpcupdeluxe hinzugefügt habe. Damit kann
fpcupdeluxe nun beim Start über eine bestehene Internetverbindung die bei Gitlab vorhandenen Tags auslesen
und weiter Verarbeitung.

Erste Tests auf KUbuntu 22.04 LTS 64bit sehen sehr gut aus. Trunk, Stable und Fixes Installationen funktionieren.
Auch gemischte Installationen (Lazarus 4.0 RC1 mit FPC Trunk 3.3.1) scheinen zu funktionieren.
Cross-Compiler habe ich noch nicht getestet.

Zu finden ist das Projekt hier: https://github.com/ProgrammingHobby/fpcupdeluxe

Das ganze ist mit Sicherheit nicht vollständig, aber wie ich finde eine schöne Basis um fpcupdeluxe flexibler zu
machen, ohne jedesmal den Code anfassen zu müssen.

Über Feedback würde ich mich sehr freuen.

Grüße
HobbyProgrammer
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6763
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von af0815 »

Mir ist nur aufgefallen das die up.lpr umgebaut wurde, ohne weiteren Benefiz. Sowas wird nicht gerne übernommen. Vermeide Änderungen nur aufgrund der persönlichen Ästhetik. Auch reine white Spaces Änderung ist nicht gerne gesehen, bzw. gibt es dann eigene Regeln dafür.

Ansonsten wenn es geht, mache einen Pullrequest. Alfred ist neuen Ideen aufgeschlossen.

Eventuell mal einen Feature-Request bei ihm machen mit dem Hinweis auf den Thread. Alfred kann IMHO deutsch lesen und wird die vermutlich auch hier Antworten.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von HobbyProgrammer »

af0815 hat geschrieben: Sa 21. Dez 2024, 13:16 Mir ist nur aufgefallen das die up.lpr umgebaut wurde, ohne weiteren Benefiz. Sowas wird nicht gerne übernommen. Vermeide Änderungen nur aufgrund der persönlichen Ästhetik. Auch reine white Spaces Änderung ist nicht gerne gesehen, bzw. gibt es dann eigene Regeln dafür.
Danke für den Hinweis. Allerdings habe ich die up.lpr definitiv nicht angefasst. Weder um darin zu Editieren oder den Codeformatter darüber laufen zu lassen.

Kann das von der IDE kommen? Habe gerade gesehen das die GitLabTagReader Unit hinzugefügt wurde. Das war so nicht beabsichtigt.
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von HobbyProgrammer »

af0815 hat geschrieben: Sa 21. Dez 2024, 13:16 Ansonsten wenn es geht, mache einen Pullrequest. Alfred ist neuen Ideen aufgeschlossen.

Eventuell mal einen Feature-Request bei ihm machen mit dem Hinweis auf den Thread. Alfred kann IMHO deutsch lesen und wird die vermutlich auch hier Antworten.
Danke für den Tip. :)
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

charlytango
Beiträge: 1058
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von charlytango »

Nur zur Info:

habe fpcupdeluxe.lpi geöffnet und konnte es fehlerfrei kompilieren.
Allerdings gab es beim Ausführen der EXE heaptrace Fehlermeldungen.
Das Programm konnte nicht gestartet werden.

Habe mit 4.0rc1 und 3.4 getestet. Bei beiden gleiches Verhalten.
OS: Win 10
Screenshot 2024-12-21 153919.png
Screenshot 2024-12-21 153919.png (38.01 KiB) 3859 mal betrachtet
Screenshot 2024-12-21 154005.png
Screenshot 2024-12-21 154005.png (9.59 KiB) 3859 mal betrachtet

HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von HobbyProgrammer »

Wie schon angedeutet habe ich die Anpassungen bis jetzt nur unter Linux getestet.

Ich bin mir nicht sicher ob für den TFPHTTPClient in der GitLabTagReader Unit unter Windows noch Anpassungen nötig sind
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

DonAlfredo
Beiträge: 83
Registriert: Do 28. Sep 2017, 10:26

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von DonAlfredo »

First of all, thanks for this modification of fpcupdeluxe !
I like the idea, but the implementation should be made (slightly) different.

Main point (of critic).
Your mod tries to download the tags during startup. That is not good. The GUI must be able to start without any internet access.
Advice: use Application.QueueAsyncCall to get the tags after startup.

Few additional remarks.
The main tag-list should only contain releases, fixes and trunk. And should mimic the original tag-lit as close as possible, due to the fact that requested tags are stored in settings-files and all this should be backwards compatible.
The parsing of the json could use some more abstraction and strong-typing, but that is more of a personal coding taste.

Again, thanks !

HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von HobbyProgrammer »

Hallo Don Alfredo,

Deinen Hinweis auf Application.QueueAsyncCall werde ich mir nach den Weihnachtsfeiertagen gerne ansehen. Im Augenblick muß ich noch sehen das ich den TFPHTTPClient, welchen ich zum Lesen der Tags verwende, unter Windows zum Laufen bekomme.

Beim Aufbereiten der Tags habe ich Wert darauf gelegt fpcupdeluxe so wenig wie möglich ändern zu müssen. Es sind ja lediglich 2 Änderungen die ich eingebracht habe (procedure FillSourceListboxes in fpcupdeluxemainform.pas sowie function GetAlias in installeruniversal.pas)
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6763
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von af0815 »

HobbyProgrammer hat geschrieben: So 22. Dez 2024, 19:28 Im Augenblick muß ich noch sehen das ich den TFPHTTPClient, welchen ich zum Lesen der Tags verwende, unter Windows zum Laufen bekomme.
Anmerkung von mir: Ich würde die Tags sowieso nur auf Anfrage einlesen. Warum sollten die immer wieder gelesen werden ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von Warf »

HobbyProgrammer hat geschrieben: So 22. Dez 2024, 19:28 Deinen Hinweis auf Application.QueueAsyncCall werde ich mir nach den Weihnachtsfeiertagen gerne ansehen. Im Augenblick muß ich noch sehen das ich den TFPHTTPClient, welchen ich zum Lesen der Tags verwende, unter Windows zum Laufen bekomme.
Vermutlich ist das Problem in das du grade läufst das du die OpenSSL Bibliotheken mit in den Zielordner packen musst :)

charlytango
Beiträge: 1058
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von charlytango »

af0815 hat geschrieben: So 22. Dez 2024, 21:26 Anmerkung von mir: Ich würde die Tags sowieso nur auf Anfrage einlesen. Warum sollten die immer wieder gelesen werden ?
Dem stimme ich zu --und wenn ich mir etwas wünschen dürfte:
Einen Button mit dem man die Tags bei Bedarf abfragen kann und irgendwie ein Log um zu sehen was passiert und was nicht. Irgend ein Prozess im Hintergrund der dann ggfs nicht klappt macht für mich kaum Sinn.

An sich sollte das abholen von Tags ja in der letzten Version funktionieren, tut es bei mir aber leider nicht. Und nachdem es keinerlei Meldungen gibt, kann man auch nciht sagen warum es nicht klappt. Wäre sehr froh wenn fpcupdeluxe von permanenter Wartung unabhängig werden könnte.

DonAlfredo
Beiträge: 83
Registriert: Do 28. Sep 2017, 10:26

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von DonAlfredo »

You can add a tag yourself with the current fpcupdeluxe. Just have a look into fpcup.ini to see how this is done.

Code: Alles auswählen

[ALIASfpcTAG]
stable.gitlab=release_3_2_2
; 3.2.4.gitlab=release_3_2_4  <------ uncomment to add tag for future release
3.2.2.gitlab=release_3_2_2
3.2.0.gitlab=release_3_2_0

HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von HobbyProgrammer »

charlytango hat geschrieben: Mo 23. Dez 2024, 11:35 An sich sollte das abholen von Tags ja in der letzten Version funktionieren, tut es bei mir aber leider nicht. Und nachdem es keinerlei Meldungen gibt, kann man auch nciht sagen warum es nicht klappt. Wäre sehr froh wenn fpcupdeluxe von permanenter Wartung unabhängig werden könnte.
Ich habe das mal nachvollzogen. Bis jetzt hatte ich den Tab 'Tags' mir nicht angeschaut. Aber genau dort hat Don Alfredo die Möglichkeit geschaffen auf zusätzliche (neue) Versionen zu Prüfen und diese dann in die fpcup.ini eintragen zu lassen.
Damit wäre meine Idee der Erweiterung von fpcupdeluxe eigentlich hinfällig. :roll:

In der fpcupdeluxe Version 2.4.0e funktioniert das ganze noch nicht. Aber mit einem aus dem master Zweig kompilierten fpcupdeluxe funktioniert das ganze. Versuchsweise habe ich nach Lazarus Versionen suchen lassen, und mir aus den gefundenen Versionen die 4.0RC1 in die fpcup.ini eintragen lassen. Daraufhin konnte ich die 4.0RC1 einwandfrei installieren.

Lediglich bei den FPC Versionen scheint noch ein Bug vorhanden zu sein. Z.B. die Trunkversion 3.3.1 oder die Fixesversion 3.2.3 werden nicht korrekt in die fpcup.ini eingetragen und verursachen beim Installieren der jeweiligen Version dann einen Fehler mit Abbruch.

Aber ansonsten wäre das ja schon die Möglichkeit fpcupdeluxe selbst aktualisieren zu können ohne den Source-Code anfassen zu müssen.
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

DonAlfredo
Beiträge: 83
Registriert: Do 28. Sep 2017, 10:26

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von DonAlfredo »

FPC and Lazarus release candidates are also available using the current fpcupdeluxe. Under the "Tags".
See included screenshot.
aaatags.png
aaatags.png (77.63 KiB) 3601 mal betrachtet

charlytango
Beiträge: 1058
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: fpcupdeluxe mit dynamischen Gitlab-Tags

Beitrag von charlytango »

I have tested the pre-release v2.4.0fp (in win32 and win64) on my computer under win 10 and unfortunately no versions were suggested. Unfortunately, there were no error messages or hints as to why this might be the case.

In TForm1.PageControl1Change (line 1921) there is the following construct, which does not handle the error case that GitExe does not exist. Possibly it is because I have not installed git.

Ich habe die Vorabversion v2.4.0fp (in win32 und win64) auf meinem Rechner unter win 10 getestet und leider wurden keine Versionen vorgeschlagen. Leider gab es auch keine Fehlermeldungen oder Hinweise, warum dies der Fall sein könnte.

In TForm1.PageControl1Change (Zeile 1921) gibt es das folgende Konstrukt, das den Fehlerfall, dass GitExe nicht existiert, nicht behandelt. Möglicherweise liegt es daran, dass ich Git nicht installiert habe.

Code: Alles auswählen

    if FileExists(GitExe) then
    begin
      .....
    end;
Screenshot 2024-12-23 185513.png
Screenshot 2024-12-23 185513.png (66.26 KiB) 3554 mal betrachtet
Normally git is installed locally by fpcupdeluxe (if I'm not mistaken) and at this point it probably doesn't exist yet. A message might be useful.

Normalerweise wird git lokal von fpcupdeluxe installiert (wenn ich mich nicht irre) und zu diesem Zeitpunkt existiert es wahrscheinlich noch nicht. Eine Nachricht könnte nützlich sein.

Antworten