NEWS
iobroker upgrade: js-controller futsch
-
@aski71 sagte in iobroker upgrade: js-controller futsch:
Der Controller wird doch nur zur Laufzeit benötigt und nicht bei Installation oder Upgrade?!
Eben doch:
iobroker upgrade ...
Befehle rufen den JS-Controller, bzw. seine CLI auf. Der wiederum ruftnpm
auf. Und wennnpm
beim Installieren vom JS-Controller auf die Nase fällt, z.B. wegen einernpm
-Version, die mit dem (noch) alten Controller nicht kompatibel ist, dann ist der futsch. -
@alcalzone said in iobroker upgrade: js-controller futsch:
@aski71 sagte in iobroker upgrade: js-controller futsch:
Der Controller wird doch nur zur Laufzeit benötigt und nicht bei Installation oder Upgrade?!
Eben doch:
iobroker upgrade ...
Befehle rufen den JS-Controller, bzw. seine CLI auf. Der wiederum ruftnpm
auf. Und wennnpm
beim Installieren vom JS-Controller auf die Nase fällt, z.B. wegen einernpm
-Version, die mit dem (noch) alten Controller nicht kompatibel ist, dann ist der futsch.Tatsächlich. Ich hab mir das gerade im Code angesehen.
Passt dennoch alles nicht zusammen: Nach dieser Logik dürfte dann ja weder "upgrade <adapter>" noch "upgrade self" funktionieren.
Lustigerweise ist der Adapter-Upgrade von web vorher ja problemlos durchgelaufen. js-controller aber nicht und es gab nicht mal eine Fehlermeldung. Der war einfach weg.Der pure "upgrade" ohne weitere Parameter macht einen "upgrade all". Da gehe ich aus Erfahrung davon aus, dass der js-controller mit upgegradet wird. Zumindest war das bei mir in der Vergangenheit so.
Aber egal. Jetzt bin ich schlauer.
Wenn das so tricky ist, würde ich mir aber dennoch aus Robustheitsgründen wünschen, dass iob eine Versionsprüfung auf eine maximal zugelassene node oder npm Version macht und sagt: Die node/npm Version ist mir zu hoch. Die unterstütz ich nicht und mach gar nix.
-
Dafür gibt es ja nicht ohne Grund eine Empfehlung vom ioBroker-Team, was die beste Version von nodeJS angeht. Im Moment ist das immer noch node14 / npm6. Andere Versionen können funktionieren, müssen aber nicht. Insbesondere bei Versionsübergängen kann es naturgemäß da halt knirschen.
-
@thomas-braun said in iobroker upgrade: js-controller futsch:
Dafür gibt es ja nicht ohne Grund eine Empfehlung vom ioBroker-Team, was die beste Version von nodeJS angeht. Im Moment ist das immer noch node14 / npm6. Andere Versionen können funktionieren, müssen aber nicht. Insbesondere bei Versionsübergängen kann es naturgemäß da halt knirschen.
Eben drum wäre es guter Programmierstil, das abzufangen.
Das kann ja einem Anwender ja auch zwischen dem supporteten Wechsel zwischen Node 12 und 14 passieren, dass er sich etwas zerlegt, weil er die Reihenfolge nicht kennt oder nicht eingehalten hat. -
@aski71 Den Fehler kann man selbst abfangen, indem man vor jedem Update n Backup / Snapshot macht
Gehts nicht oder ich hab keine Zeit genauer zu investigieren, geh ich wieder zurueck. -
@ilovegym said in iobroker upgrade: js-controller futsch:
@aski71 Den Fehler kann man selbst abfangen, indem man vor jedem Update n Backup / Snapshot macht
Gehts nicht oder ich hab keine Zeit genauer zu investigieren, geh ich wieder zurueck.Was glaubst Du, was ich gemacht habe?
Vor so einer fundamentalen Änderung klone ich sogar meine ganze virtuelle Maschine. Dann kann ich nämlich, falls es schief geht und ich keine Zeit habe, einfach die alte 1:1 wieder hoch fahren. Überraschung: Ich habe nämlich noch andere node Abhängigkeiten, die nicht iobroker heißen. Zum Beispiel homebridge.
Nehmt halt mal einfach Denkanregungen und Verbesserungsvorschläge an, statt immer zu diskutieren, wie man es auch machen könnte. Das ist mir schon klar, wie man es auch machen kann. Das Ziel einer jeden Entwicklung muss doch sein, dem Anwender so wenig Probleme wie möglich zu bereiten. Ihr müsst auch mal an Leute denken, die sich nicht rund um die Uhr mit der Materie auseinandersetzen und dennoch ein lauffähiges System haben wollen.
Daher einfach mein Verbesserungsvorschlag, jetzt wo ich es verstanden habe:
js-controller sollte prüfen ob seine Voraussetzungen in der gültigen Range liegen und sagen: Ich brauche npm 0.0.7 bis 0.8.15. Du hast npm 47.11.
Dann weiß man, wie man dran ist. -
@aski71 sagte in iobroker upgrade: js-controller futsch:
Und dann kann ich auf meinem Testsystem keine von der Empfehlung abweichende Version fahren? Nö.
-
@aski71 sagte in iobroker upgrade: js-controller futsch:
js-controller sollte prüfen ob seine Voraussetzungen in der gültigen Range liegen und sagen: Ich brauche npm 0.0.7 bis 0.8.15. Du hast npm 47.11.
wie soll er das machen, wenn du an ihm vorbei node, und vor allem npm, auf eine zu hohe Version setztst?
Wenn der arme Controller dann wieder arbeitet ist es schon passiert.Dann müssten die Macher von npm es so programmieren, dass vor der Installation von npmv8 überprüft wird ob alle existierenden Programme damit schon zurechtkommen.
Ich glaube nicht, dass npm das machen wird!Und das Problem, dass Homebridge die ioBroker Installation killt, ist hier im Forum schon öfters besprochen worden.
-
@homoran said in iobroker upgrade: js-controller futsch:
@aski71 sagte in iobroker upgrade: js-controller futsch:
js-controller sollte prüfen ob seine Voraussetzungen in der gültigen Range liegen und sagen: Ich brauche npm 0.0.7 bis 0.8.15. Du hast npm 47.11.
wie soll er das machen, wenn du an ihm vorbei node, und vor allem npm, auf eine zu hohe Version setztst?
Wenn der arme Controller dann wieder arbeitet ist es schon passiert.Dann müssten die Macher von npm es so programmieren, dass vor der Installation von npmv8 überprüft wird ob alle existierenden Programme damit schon zurechtkommen.
Ich glaube nicht, dass npm das machen wird!Und das Problem, dass Homebridge die ioBroker Installation killt, ist hier im Forum schon öfters besprochen worden.
Wo ist das Problem, bei einem iob upgrade eine Abfrage einzubauen?
Prosa: if (npm < 007 || npm > 0815) print "fuck off" && exitAber ich seh schon: Vorschläge machen ist unpopulär.
Nix für ungut.
Btw. hat homebridge bei mir noch nie die iobroker Installation gekillt und das war auch gar nicht das Thema. Ich sagte, ich habe hier noch andere Abhängigkeiten, wie zum Beispiel ...
-
@aski71 sagte in iobroker upgrade: js-controller futsch:
Aber ich seh schon: Vorschläge machen ist unpopulär.
das siehst du falsch!
@aski71 sagte in iobroker upgrade: js-controller futsch:
Wo ist das Problem, bei einem iob upgrade eine Abfrage einzubauen?
Die Abfrage muss vorher erfolgen wenn npm aktualisiert wird (z.B. von Homebridge)
Danach ist es zu spätAnders herum ist es ja drin. Da werden die Abhängigkeiten geprüft wenn node, der controller oder der admin zu niedrige Versionen haben