Entwicklungsumgebung für GrandOrgue

    • Offizieller Beitrag

    Hallo liebe zukünftige GrandOrgue-Programmierer und Interessierte,

    wie ihr wohl schon gemerkt habt, möchte ich der Weiterentwicklung von GrandOrgue hier einen breiteren Raum einräumen. Mein im Moment vorrangiges Ziel ist, mir eine Entwicklungsumgebung dafür einzurichten. Desweiteren soll hier gleichzeitig Wissen transferiert werden, mit dem das auch jedem anderen Interessierten möglich gemacht werden soll. Meine Zeit als aktiver Programmierer liegt schon viele Jahre zurück und so ist mein Wissen nicht auf dem neuesten Stand. Also geht mal davon aus ich bin "dumm" und habe Erklärungsbedarf. ;) Dann verstehen es vielleicht auch andere, die bisher noch wenig Ahnung haben. Je mehr sich beteiligen, umso besser wird unser GrandOrgue eines Tages werden.

    Ich möchte also ein System einrichten, mit dem es mir möglich ist, den Sourcecode von GO zu bearbeiten und automatisiert lauffähige Programme für alle möglichen Computer-Systeme zu bauen. Im nächsten Schritt würde ich dann mal versuchen, kleine Änderungen im Programm durchzuführen und das ganze zu testen.

    Damit in Zukunft auch mehrere parallel am Projekt arbeiten können, wird eine Versionsverwaltung nötig sein. Als gängigster Standard ist wohl derzeit die software "Git" anzusehen.
    Jetzt stellen sich mir folgende Fragen:

    • Was für ein PC ist dafür nötig und sinnvoll? Ich hätte mehrere Optionen. Benötigt sowas viel oder eher wenig Leistung und Speicherplatz?
    • Was sind die Vor- und Nachteile einer Entwicklungsumgebung unter Linux oder unter Windows. Beides wäre mir möglich.
    • Welche IDE kommt je nach Betriebssystem infrage?
    • Können unterschiedliche Entwickler mit unterschiedlichen Betriebssystemen und unterschiedlichen IDEs problemlos am selben Projekt arbeiten?
    • Muss ich erst Git Installieren und dann die IDE oder spielt das keine Rolle? Wie werden beide verheiratet?

    Das wäre es mal fürs Erste - Danke.

    • Offizieller Beitrag

    Danke für Deine schöne Beschreibung zu Git.
    Ich denke, ich werde mich dann auch mal auf die Windows Schiene begeben. Neben meiner Lieblingscouch steht ein i5-6500 mit 32 GB und Win10, der für allerlei Anwendungen herhalten muss. Der wird wohl auch mit diesem Job noch klar kommen - hoffe ich mal. Da läuft dann auch Testweise GO mit einigermaßen Sets und Midi-Masterkeyboard.

    Was muss ich nun als IDE mit Git-Integration installieren? Visual Studio Code für Linux und WSL ?
    Macht ja im Moment mehr Sinn, wenn nicht jeder eine andere Lösung fährt.

    • Offizieller Beitrag

    Jetzt bin ich vorerst doch auf einem ganz anderen Computer gelandet als gedacht. Mein Wohnzimmer-Stromspar-Surf-PC, der praktisch rund um die Uhr läuft. Der hat eine AMD "Kabini" 4-Core CPU mit minimalem Stromverbrauch und dementsprechend recht mäßiger Leistung. Außerdem nur noch 8 GB RAM (die zweiten 8 GB waren verdampft). Außerdem läuft da ein Ubuntu 20.04 LTS drauf. Mal sehen, wie weit ich damit komme.

    Dort habe ich auch schon lange die Entwicklungsumgebung "Geany" installiert für diverse programmiertechnische Gehversuche. Bei meinen Nachforschungen zu Geany und Git hat sich ergeben, dass Git nicht direkt von Geany unterstützt wird. Es gibt für Geany aber ein PlugIn für Git, mit dem man es "einigermaßen" für Git nutzen kann. Was immer auch damit gemeint ist. Es kam mir so vor, als sei es eher eine Krücke und ich habe es nicht ausprobiert.

    Nach weiteren Recherchen über eine IDE, die es sowohl für Linux, als auch für Windows gibt, bin ich darauf gestoßen, dass es MS "Visual Studio Code" tatsächlich auch für Linux gibt. Also eine Linux-Version für Linux und nicht nur eine Windows-Version für Linux, sozusagen. Nach Abwägung von Für und Wider aller infrage kommenden IDEs habe ich mir jetzt mal KDevelop installiert. Zu meiner Überraschung hat sich das Programm beim ersten Aufruf gleich auf Deutsch gemeldet. Naja, zumindest teilweise. Viele Fachausdrücke lassen sich eben schwer eindeutschen. Ob mir KDevelop auf Dauer etwas bringt, muss sich erst noch herausstellen. Es soll immerhin auf C / C++ spezialisiert sein, im Gegensatz zu manch anderer IDE und hat eine Git-Unterstützung von Haus aus schon aktiviert.


    Als Nächstes habe ich dann Git auf Ubuntu installiert. https://git-scm.com/

    Klassisch via Terminal:

    Code
    #
    # sudo add-apt-repository ppa:git-core/ppa
    # sudo apt update
    # sudo apt install git

    "iGit" - das bringt noch nicht mal eine GUI (grafische Benutzeroberfläche) mit. Ich soll jetzt steinzeitmäßig alle Einstellungen über das Terminal nach Handbuch reinklopfen. <X:-8
    Nachdem ich mich wieder beruhigt hatte, fand ich heraus, dass es etliche GUIs für Git von Drittherstellern gibt. Ich durfte mich dann durch rund zwei Dutzend Alternativen durchwurschteln...

    ...eine Menge Schrott dabei. Mehrere kommerzielle Anbieter wie z. B. "GitKraken", die wohl recht gut sind und mit "gratis" locken, aber dann die Hand aufhalten wenn es anfängt für den User interessant zu werden. Einige GUIs haben von vornherein auch nur wenig Funktionalität versprochen.

    Nachdem alles durchgedröselt war, blieb für mich nur noch eine GUI mit dem aussagekräftigen Namen "gitg" übrig. Kostenlos unter freier Lizenz als GitHub Projekt. Dieses ließ sich dann sogar, ausnahmsweise in aktuellerer Version, einfach über die Anwendung "Software" von Ubuntu per Mausklick installieren. Welche (für den Windows Anwender selbstverständliche) Wohltat.

    Dann "gitg" gestartet und siehe da, hat es sofort verstanden, dass ich erst die Grundeinstellung von Git machen muss. Es ist eigentlich nur der bei GitHub verwendete persönliche Benutzername und die dort angegebene Email-Adresse einzutragen. Das wars schon. Geht also auch ohne Terminalverrenkungen.

    Anschließend gibt es eigentlich nur zwei Optionen. Entweder ein neues Repository anlegen, oder ein vorhandenes Repository "Klonen". Da ich auf GitHub bereits ein Repository für GrandOrgue habe (Heiliger Oleg sei Dank), musste ich nur den Pfad dorthin angeben und "Klonen" bestätigen. Wie durch ein Wunder wurde dann das gesamte Repository von GitHub komplett auf meinen PC übertragen.

    Der nächste Schritt wird jetzt sein, Git und mein Repository irgendwie mit der KDevelop IDE zu verbinden, um überhaupt etwas Vernünftiges anfangen zu können.

    Wie das geht ist mir noch völlig unklar.
    Hat jemand eine Ahnung?

    • Offizieller Beitrag

    Wie hieß der Link von mir oben doch gleich? "Visual Studio Code für Linux"? 8o:D

    Das ist doch aber die Version, die zwar unter Windows läuft, aber trotzdem "Code für Linux" erzeugen kann? So hatte ich das zumindest aufgefasst. Die Version die unter Linux läuft müsste im übertragenen Sinn heißen: "Visual Studio Code für Linux für Linux". Wegen solcher unlösbaren Probleme habe ich ja auch KDevelop genommen...:D

    • Offizieller Beitrag

    Haralder Was Du sagst, trifft nur auf den Sourcecode zu und nicht auf Binärcode. Ich war davon ausgegangen, dass "Visual Studio Code für Linux" unter Windows einen Build für Linux Systeme erzeugen kann und evtl. auch noch Crosscompiler für andere CPU Architekturen mit dabei hat.

    • Offizieller Beitrag

    Mich würde mal interessieren, wie das bei der Entwicklung von GrandOrgue funktioniert und wie ich das hinbekommen könnte, mit einem Mausklick die Builds für mehrere Architekturen hinzubekommen. Martin hat das jahrelang irgendwie mit Open SUSE gemacht. Mir schien, dass das von Haus aus bessere Möglichkeiten dafür anbietet. Ich kann mir im Moment nicht vorstellen, ob das mit KDevelop unter Ubuntu überhaupt machbar wäre.

    Erst muss ich mal schauen, wie ich damit überhaupt ein GO für das eine System bauen kann und wie ich das nun mit Git verknösele.

  • Ich kenne es aus meiner Praxis so dass man mehrere virtuelle Umgebungen hat (also wirklich VM's) die entsprechend konfiguriert sind und sich beim bauen dann starten, den übergebenen Code bauen und dann das Ergebnis auf einem Server ablegen und sich wieder beenden. Crossbuilds gehen oft ja nicht anders. Während man unter Linux noch mit viel Krampf ein Windows Programm bauen kann, so ist auf dem Mac das ganze nur Nativ möglich.

    Aber auch das ist nicht ganz ungefährlich. Ein Compiler in einer VM kann sich durchaus seltsam verhalten... Das standen wir auch schon oft da und schauten ratlos warum sich ein Code nicht bauen ließ.

    Melodeum.de - Wissenswertes zu Harmonium

    • Offizieller Beitrag

    Überraschenderweise musste ich jetzt erst mal produktiv an GrandOrgue tätig werden. Meine Dienste für die Übersetzung ins Deutsche wurden angefragt. Den Job habe ich ja schon seit 2013 inne. Also habe ich mich heute einige Stunden mit GitHub und meinem GrandOrgue Fork Repository dort herumgeschlagen. Letztlich kann ich dort jetzt auf Knopfdruck einen Build von GO in Gang setzen, das nach rund 15 Minuten tatsächlich alle gängigen Versionen für die rund 10 verschiedenen Architekturen ausspuckt. Erstaunlich. Würde mich mal interessieren wie das dort auf dem Server abgeht. Oder läuft das womöglich extern bei Lars im Wohnzimmer? :)

    Also wenn ihr noch Wünsche für verunglückte Übersetzungen in GrandOrgue habt - jetzt könnte ich sie einfließen lassen. Allerdings gibt es leider sehr viele Stellen, an denen Meldungen direkt in den Code gehackt sind und deswegen nicht in der Übersetzung auftauchen können.

    Die Amtierenden Entwickler haben sich die letzte Zeit damit beschäftigt die Menüs umzubauen. Also nicht wundern, wenn ihr demnächst nichts mehr findet. ;)

  • Allerdings gibt es leider sehr viele Stellen, an denen Meldungen direkt in den Code gehackt sind und deswegen nicht in der Übersetzung auftauchen können.

    Das wäre doch ein Punkt den man schon mal anregen könnte. Alles an Text in eine externe Quelle die dann in beliebige Sprachen übersetzt werden kann. Kein einziger Textfetzen gehört in den Quellcode.

    Melodeum.de - Wissenswertes zu Harmonium

    • Offizieller Beitrag

    Kein einziger Textfetzen gehört in den Quellcode.

    Sprech' doch mal dort vor.

    Selbst Debuggen der Linux-App funktioniert unter Windows

    Probier doch mal, ob Du die ganze Konstellation nicht mit Wine auf einem Linuxsystem zum Laufen bringst. Dann kannst Du Linux unter Linux mit Hilfe von Windows debuggen. Das ganze dann vielleicht noch in einer virtuellen Maschine auf dem Mac. So kann man seine CPU gut auslasten. :D