Modul-Programmierung // Wie kann ich testen, ohne auf GitHub zu veröffentlichen?

Hi!

Gibt es eine Möglichkeit für mich, dass ich meine Module testen kann, ohne sie immer auf GitHub laden zu müssen, wo sie jeder gleich sehen/verwenden kann? Ich hatte versucht einen GitServer auf meinem NAS einzurichten, aber dazu bin ich wohl zu doof :smiley: Und extra 7$ im Monat zahlen für ein privates Repo…nicht unbedingt… Oder gibt es einen Sponsor? :smiley:

Kann man ein Modul einfach irgendwie in IPS reinkopieren und „Laden“ um es „richtig“ verwenden zu können?
Einfach so reinkopieren ohne irgendwas klappte beim Test nicht, da kannte IPS die Funktionen natürlich nicht.

Wer hat Tipps für einen motivierten Anfänger? :slight_smile:

Danke im Voraus und Grüße,
Chris

Du kannst im Prinzip einfach was reinkopieren. Du musst aber dann den Dienst neu starten, damit dieser dein Modul erkennt.

Sofern du dann dein Modul drin hast, kannst du einfach in den Dateien spielen ohne Neustart. Es sei denn:

a) Du änderst etwas an der Create Funktion (Workaround => Instanz neu erstellen anstatt IP-Symcon Neustart geht auch)
b) Du fügst eine neue Funktion, die IP-Symcon noch nicht „erkannt“ hat
c) Du ändert die Signatur (=Paramter) einer Funktion, sodass IP-Symcon falsche Parameter kennt
d) Ich hab bestimmt einen Sonderfall vergessen :smiley:

paresy

Rein kopieren sollte gehen. Wenn du IPS einmal neustartest.
Solange du an den json und public Funktionen nichts änderst, braucht es keinen Neustart.
Michael
PS: Für den IIS gibt es Bonobo Gibt Server. Hat mich 5minuten gekostet :slight_smile:
PPS: Man ich bin am Handy zu langsam :wink:

Ist jetzt kein Workaround, nur ein Tipp: erstelle Dir ein Konto auf Bitbucket.org. Dort bekommst Du auch kostenlos private Repos.

Hi Chris,

ich hab die Dinger einfach im Unterverzeichnis /modules rein gesetzt, … und lüppt.

Ist aus den obigen Antworten nicht direkt ersichtlich wie simpel es ist.

Allerdings nur auf einem Entwicklungsrechner, dem Livesystem wollte ich das nicht antun.

Nachteil: die Updatefunktion bei den anderen ist nicht mehr gegeben.

Aber das hatte ich HIER ja bereits angesprochen voller Hoffnung es wird gleich mit erledigt.

mfg

BerndJ

Guten Morgen zusammen :slight_smile:

@paresy: IPS Neustart…hätte ich ja mal versuchen können :smiley: Aber dann muss ich auch jedes Mal die IPS-Console neu öffnen, das ist eher unschön.
> Dazu direkt eine Anregung. Nach dem Trennen vom Server sollte die IPS-Console sich automatisch wieder neu verbinden :cool: Ist da was geplant? Weil dann könnte man einfach ein IPS-Neustart Skript machen und zack geht’s weiter.

@Nall chan: Bonobo hatte ich gesehen, aber extra einen IIS wollte ich dann auch nicht machen. Bei kleineren Änderungen könnte ich es direkt auf dem IPS-Test-Server machen, aber bei meinem momentanen Projekt kommen am Laufenden Band neue Funktionen dazu, da komme ich dann ohne IPS Neustart nicht hin.

@Titus: Bitbucket. Klingt interessant. Da kann man mit dem „original“ GitHub Tool aber vmtl. nichts hochladen?! Was wäre dann da zu empfehlen? TortoiseGit?

@BerndJ: Einfach reinkopieren (ohne IPS Neustart) reicht bei mir leider nicht aus.

Danke für die Ideen! Da hab ich am Wochenende etwas zum Testen :slight_smile:

Am schönsten wäre halt wirklich ein eigenes GitServer, wo ich im Programm dann auswählen kann > upload zum eigenen Server oder wenn fertig und Ok > upload zu GitHub…

Grüße,
Chris

Das bin ich dabei. Ein AutoReconnect wäre traumhaft. Vor allem auch weil der Symcondienst ja immer noch regelmäßig auf dem Pi crashed.

Schau dir mal Gogs - Go Git Service - a painless self-hosted Git service an. Bin super zufrieden damit. Es läuft auf dem Pi oder NAS.

Hallo,

es gibt aber ein Problem mit einfach reinkopieren:
Wenn ich dann doch irgendwann mal wieder die Version vom Git haben will, geht der Update aus IPS nicht mehr, da die Dateien lokal geändert wurde.

Und ich will natürlich auch testen, ob der Update geht…

Mein Lösung:

[ol]
[li]Vor dem hinkipieren mit „cp -a“ eine Kopie erstellen
[/li][li]hinkopieren (+ durchstarten) und testen
[/li][li]Wenn fertig alten Stand zurücksetzen (+ durchstarten)
[/li][li]aufs Git committen
[/li][li]Module update aus IPS
[/li][/ol]

Nicht schön, aber geht.

Aber auch so hat ein Verwender kürzlich einen Fehler bekommen, da die __generated.incl.php nicht korrect erzeugt wurde. Aber auch da half dann durchstarten…

Gruß,
Thorsten

@Kugelberg
Ne da macht man ein „git stash“ und nach dem update ein „git stash apply“.

Soooo, das Ergebnis meiner Tests ist eine super Lösung mit der ich aktuell sehr zufrieden bin :cool:

> GitHub Account für die fertigen Module
> Bitbucket Account (kostenloses privates Repo) für die Tests
>> SourceTree (Programm) um, nach kurzer Einarbeitung, sehr einfach Tests bei Bitbucket zu hochzuladen, über IPS zu testen und wenn die Änderungen OK sind, dann einfach als Push-Ziel GitHub auswählen und fertig :cool:

SourceTree ist ein super Programm, kann in alle Richtungen clonen, pullen, pushen, … Bisher einfach perfekt für mich :slight_smile: Auch Bitbucket kann direkt von GitHub ein Repo clonen und hin und her und echt einfach :slight_smile:

Um ein privates Projekt in IPS hinzuzufügen, muss man einfach eine URL nach diesem Schema eingeben:

https://USER:PASSWORT@www.bitbucket.org/USER/Repo

Danke für eure Anregungen und vlt. hilft es ja noch jemandem beim Einstieg in die tolle Welt der Module :slight_smile:

Schönes Wochenende und Grüße,
Chris

Habe mir gleich mal Bitbucket angelegt und Sourcetree runtergeladen, danke für den Hinweis.

Muss ich bei einem Commit nach Github die Dateien aus dem Bitbucket Verzeichnis ins github Verzeichnis kopieren und dann mit der Github Applikation nach Github hochschieben? Oder kann ich auch aus Sourcetree die Dateien nach Github laden?

Abend!

Du kannst mit „SourceTree“ an beide Gits pushen :cool: Das ist ja das geniale.

Du legst dir ein Projektverzeichnis an im SourceTree und dann der wichtige Teil >> 2 Remotes eintragen :slight_smile:
Damit kannst du dann auswählen, ob du an GitHub oder an Bitbucket pushen willst :cool:

Ist ein wenig Gefummel, bis man verstanden hat wie SourceTree was macht, aber das hat man dann relativ schnell verstanden und schon kann man an beide pushen.

Grüße,
Chris

Danke und gute Nacht :wink:

Noch mal eine Frage zu Bitbucket und Github. Ich führe am Bitbucket Repository kleinere Veränderungen und Bugfixes durch und setzte jeweils einen Commit um die Änderungen in IPS zu testen. Wenn ich jetzt später auch auf Github pushe kann ich dann dort nur bestimmte Commits pushen oder übernimmt bei einem Push Github immer alle Commits?

Ich würde gerne kleinere Bugfixes in Bitbucket durchführen und ein Commit dann auf Github nur veröffentlichen wenn grundlegende Funktionen ergänzt wurden. Ist dies möglich bzw. wie geht ihr dazu vor?

Moin!

Ich pushe immer alle Tests auf Bitbucket und wenn ich mit der Version zufrieden bin, dann pushe ich diese zu GitHub. Dieser letzte Push beinhaltet dann immer auch alle davor (kann man auch in GitHub sehen die Tests), weil jeder Commit in der Historie gespeichert wird mit zu GitHub gepusht werden.

Willst du nicht, dass man diese Test-Commits sieht (mir persönlich ist es egal), dann darfst du die Tests nicht über Commits über Bitbucket machen, sondern nur über Änderungen direkt im Code. Oder, falls möglich, die Commits nachträglich zu einem zusammen mergen, glaube da mal was gesehen zu haben.

Grüße,
Chris

Nun da ich nicht unbedingt will das jede Änderung dann auch auf Github als Commit sichtbar ist wäre das mit dem mergen von Commits eine gute Sache. Kennt sich da jemand mit aus bzw. kann beschreiben wie so was geht?

Hier habe ich was zum Thema gefunden falls es noch jemand interessiert

Atlassian Blogs