Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Bessere Kontrolle von sources-dist(-stable) dank jsDelivr?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    320

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Bessere Kontrolle von sources-dist(-stable) dank jsDelivr?

Scheduled Pinned Locked Moved Entwicklung
io-package.jsonjsdelivr
10 Posts 4 Posters 924 Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • UncleSamU Offline
    UncleSamU Offline
    UncleSam
    Developer
    wrote on last edited by UncleSam
    #1

    Vor kurzem habe ich etwas ganz böses gemacht:


    meine neue Version eines Adapters wollte nicht durch den Adapter-Tester, also habe ich auf meinem GitHub master Branch die Anpassungen gemacht - aber kein neues Release. Ging alles wunderbar und niemand hat sich beklagt - insbesondere der nette Adapter-Tester nicht ;-)

    Das hat mich zum Denken angeregt und ich habe hier einige Vorschläge, die uns die Arbeit erleichtern und solche "bösen" Taten erschweren.

    Grundlage meiner Ideen ist, dass wir uns nicht auf den Inhalt auf GitHub verlassen sollten, sondern direkt auf den Inhalt des freigegebenen NPM Pakets.

    Lösung dafür bietet jsDelvir, denn dort kann man eine URL erstellen und ganz einfach (ohne Konfiguration) Dateien aus einem NPM Paket herunterladen. Mehr Infos unter: https://www.jsdelivr.com/

    Nun zum Titel des Themas: aktuell schreiben wir in sources-dist.json folgendes pro Adapter:

      "loxone": {
        "meta": "https://raw.githubusercontent.com/UncleSamSwiss/ioBroker.loxone/master/io-package.json",
        "icon": "https://raw.githubusercontent.com/UncleSamSwiss/ioBroker.loxone/master/admin/loxone.png",
        "type": "iot-systems"
      },
    

    Das wäre alles überflüssig mit jsDeliver (es genügt den Namen des Adapters anzugeben, denn die Informationen können wie folgt geholt werden:

    • meta: https://cdn.jsdelivr.net/npm/iobroker.<adapter-name>/io-package.json also: https://cdn.jsdelivr.net/npm/iobroker.loxone/io-package.json
    • icon: aus dem obigen "meta" holt man sich (bei jedem neuen Release) das Icon, das IMHO nur noch den relativen Pfad haben sollte: "admin/loxone.png" daraus wird https://cdn.jsdelivr.net/npm/iobroker.<adapter-name>/<image-pfad> also: https://cdn.jsdelivr.net/npm/iobroker.loxone/admin/loxone.png
    • type: gleich wie "icon" direkt aus dem io-package.json

    Dasselbe gilt für sources-dist-stable.json: hier können wir nur Adapter-Name und Version angeben:

    "loxone": "2.0.0",
    
    • meta: https://cdn.jsdelivr.net/npm/iobroker.<adapter-name>@<adapter-version>/io-package.json also: https://cdn.jsdelivr.net/npm/iobroker.loxone@2.0.0/io-package.json
    • icon: aus dem obigen "meta" wird https://cdn.jsdelivr.net/npm/iobroker.<adapter-name>@<adapter-version>/<image-pfad> also: https://cdn.jsdelivr.net/npm/iobroker.loxone@2.0.0/admin/loxone.png
    • type: gleich wie "icon" direkt aus dem io-package.json

    Dies hat den grossen Vorteil, dass alle Daten nur aus einem NPM Release kommen und nicht vom (eventuellen Gebastel in) GitHub "master." Ein PR auf ioBroker.repositories ist damit immer noch nötig um eine neue Version ins Stable zu bringen, aber es ist nur noch genau die Versionsnummer zu aktualisieren. Server-seitig kann dann immer noch das alte Format zur Verfügung gestellt werden (insbesondere damit nicht jede ioBroker-Installation auf alle io-package.json zugreifen muss, nur um das Icon und den Typ zu finden.

    Und zu guter Letzt: der Adapter-Checker sollte die Option erhalten, entweder GitHub zu testen (für uns Entwickler - und zwar bitte auch mit der Option, einen Branch zu testen) oder eben eine freigegebene Version auf NPM (für den GitHub Bot, der den Adapter beim PR in ioBroker.repositories überprüft).

    Ich bin gespannt auf euer Feedback, insbesondere von @Bluefox, @apollon77, @ldittmar, @Jey-Cee und weiteren Core Entwicklern.

    Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
    ♡-lichen Dank an meine Sponsoren

    AlCalzoneA 1 Reply Last reply
    0
    • UncleSamU UncleSam

      Vor kurzem habe ich etwas ganz böses gemacht:


      meine neue Version eines Adapters wollte nicht durch den Adapter-Tester, also habe ich auf meinem GitHub master Branch die Anpassungen gemacht - aber kein neues Release. Ging alles wunderbar und niemand hat sich beklagt - insbesondere der nette Adapter-Tester nicht ;-)

      Das hat mich zum Denken angeregt und ich habe hier einige Vorschläge, die uns die Arbeit erleichtern und solche "bösen" Taten erschweren.

      Grundlage meiner Ideen ist, dass wir uns nicht auf den Inhalt auf GitHub verlassen sollten, sondern direkt auf den Inhalt des freigegebenen NPM Pakets.

      Lösung dafür bietet jsDelvir, denn dort kann man eine URL erstellen und ganz einfach (ohne Konfiguration) Dateien aus einem NPM Paket herunterladen. Mehr Infos unter: https://www.jsdelivr.com/

      Nun zum Titel des Themas: aktuell schreiben wir in sources-dist.json folgendes pro Adapter:

        "loxone": {
          "meta": "https://raw.githubusercontent.com/UncleSamSwiss/ioBroker.loxone/master/io-package.json",
          "icon": "https://raw.githubusercontent.com/UncleSamSwiss/ioBroker.loxone/master/admin/loxone.png",
          "type": "iot-systems"
        },
      

      Das wäre alles überflüssig mit jsDeliver (es genügt den Namen des Adapters anzugeben, denn die Informationen können wie folgt geholt werden:

      • meta: https://cdn.jsdelivr.net/npm/iobroker.<adapter-name>/io-package.json also: https://cdn.jsdelivr.net/npm/iobroker.loxone/io-package.json
      • icon: aus dem obigen "meta" holt man sich (bei jedem neuen Release) das Icon, das IMHO nur noch den relativen Pfad haben sollte: "admin/loxone.png" daraus wird https://cdn.jsdelivr.net/npm/iobroker.<adapter-name>/<image-pfad> also: https://cdn.jsdelivr.net/npm/iobroker.loxone/admin/loxone.png
      • type: gleich wie "icon" direkt aus dem io-package.json

      Dasselbe gilt für sources-dist-stable.json: hier können wir nur Adapter-Name und Version angeben:

      "loxone": "2.0.0",
      
      • meta: https://cdn.jsdelivr.net/npm/iobroker.<adapter-name>@<adapter-version>/io-package.json also: https://cdn.jsdelivr.net/npm/iobroker.loxone@2.0.0/io-package.json
      • icon: aus dem obigen "meta" wird https://cdn.jsdelivr.net/npm/iobroker.<adapter-name>@<adapter-version>/<image-pfad> also: https://cdn.jsdelivr.net/npm/iobroker.loxone@2.0.0/admin/loxone.png
      • type: gleich wie "icon" direkt aus dem io-package.json

      Dies hat den grossen Vorteil, dass alle Daten nur aus einem NPM Release kommen und nicht vom (eventuellen Gebastel in) GitHub "master." Ein PR auf ioBroker.repositories ist damit immer noch nötig um eine neue Version ins Stable zu bringen, aber es ist nur noch genau die Versionsnummer zu aktualisieren. Server-seitig kann dann immer noch das alte Format zur Verfügung gestellt werden (insbesondere damit nicht jede ioBroker-Installation auf alle io-package.json zugreifen muss, nur um das Icon und den Typ zu finden.

      Und zu guter Letzt: der Adapter-Checker sollte die Option erhalten, entweder GitHub zu testen (für uns Entwickler - und zwar bitte auch mit der Option, einen Branch zu testen) oder eben eine freigegebene Version auf NPM (für den GitHub Bot, der den Adapter beim PR in ioBroker.repositories überprüft).

      Ich bin gespannt auf euer Feedback, insbesondere von @Bluefox, @apollon77, @ldittmar, @Jey-Cee und weiteren Core Entwicklern.

      AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      wrote on last edited by
      #2

      @UncleSam sagte in Bessere Kontrolle von sources-dist(-stable) dank jsDelivr?:

      Das hat mich zum Denken angeregt und ich habe hier einige Vorschläge, die uns die Arbeit erleichtern und solche "bösen" Taten erschweren.
      Grundlage meiner Ideen ist, dass wir uns nicht auf den Inhalt auf GitHub verlassen sollten, sondern direkt auf den Inhalt des freigegebenen NPM Pakets.

      Ich hab das Problem noch nicht ganz verstanden, kannst du das bitte nochmal ausführen? Zugegebenermaßen weiß ich aber auch nicht, was mit der meta-Angabe überhaupt gemacht wird.

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      UncleSamU 1 Reply Last reply
      0
      • AlCalzoneA AlCalzone

        @UncleSam sagte in Bessere Kontrolle von sources-dist(-stable) dank jsDelivr?:

        Das hat mich zum Denken angeregt und ich habe hier einige Vorschläge, die uns die Arbeit erleichtern und solche "bösen" Taten erschweren.
        Grundlage meiner Ideen ist, dass wir uns nicht auf den Inhalt auf GitHub verlassen sollten, sondern direkt auf den Inhalt des freigegebenen NPM Pakets.

        Ich hab das Problem noch nicht ganz verstanden, kannst du das bitte nochmal ausführen? Zugegebenermaßen weiß ich aber auch nicht, was mit der meta-Angabe überhaupt gemacht wird.

        UncleSamU Offline
        UncleSamU Offline
        UncleSam
        Developer
        wrote on last edited by
        #3

        @AlCalzone sagte in Bessere Kontrolle von sources-dist(-stable) dank jsDelivr?:

        Ich hab das Problem noch nicht ganz verstanden, kannst du das bitte nochmal ausführen?

        Aktuell verwenden wir überall in Admin die Daten von GitHub "master" des jeweiligen Adapters. Es wird aber nirgends sichergestellt, dass das auch der neusten (freigegebenen) Version des Adapters entspricht. Wenn ich z.B. das Icon ändere, dann wird das auf allen ioBroker-Installationen angezeigt, sobald ich die Änderung auf "master" bringe (push, PR oder merge), nicht erst wenn ich die neue Version des Adapters veröffentliche.

        Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
        ♡-lichen Dank an meine Sponsoren

        AlCalzoneA Jey CeeJ 2 Replies Last reply
        0
        • UncleSamU UncleSam

          @AlCalzone sagte in Bessere Kontrolle von sources-dist(-stable) dank jsDelivr?:

          Ich hab das Problem noch nicht ganz verstanden, kannst du das bitte nochmal ausführen?

          Aktuell verwenden wir überall in Admin die Daten von GitHub "master" des jeweiligen Adapters. Es wird aber nirgends sichergestellt, dass das auch der neusten (freigegebenen) Version des Adapters entspricht. Wenn ich z.B. das Icon ändere, dann wird das auf allen ioBroker-Installationen angezeigt, sobald ich die Änderung auf "master" bringe (push, PR oder merge), nicht erst wenn ich die neue Version des Adapters veröffentliche.

          AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          wrote on last edited by
          #4

          @UncleSam Ok jetzt hats Klick gemacht.

          Alternativ könnte man aber auch bei Github bleiben. Voraussetzung ist ein korrektes Tag wie es z.B. durchs Release-Skript gesetzt wird. Dann geht auch so ein Link:
          https://raw.githubusercontent.com/AlCalzone/ioBroker.zwave2/v1.5.0/io-package.json

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          UncleSamU 1 Reply Last reply
          0
          • AlCalzoneA AlCalzone

            @UncleSam Ok jetzt hats Klick gemacht.

            Alternativ könnte man aber auch bei Github bleiben. Voraussetzung ist ein korrektes Tag wie es z.B. durchs Release-Skript gesetzt wird. Dann geht auch so ein Link:
            https://raw.githubusercontent.com/AlCalzone/ioBroker.zwave2/v1.5.0/io-package.json

            UncleSamU Offline
            UncleSamU Offline
            UncleSam
            Developer
            wrote on last edited by
            #5

            @AlCalzone Richtig. Wie du aber sagst, benötigt das eine Veränderung des Release-Prozesses durch den Adapter-Entwickler (die übrigens sehr zu empfehlen wäre). Mein Vorschlag würde mit dem heutigen Prozess funktionieren und hätte (ausser der Änderung in ioBroker.repository) keine Auswirkung auf Adapter-Entwickler.

            Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
            ♡-lichen Dank an meine Sponsoren

            1 Reply Last reply
            0
            • UncleSamU UncleSam

              @AlCalzone sagte in Bessere Kontrolle von sources-dist(-stable) dank jsDelivr?:

              Ich hab das Problem noch nicht ganz verstanden, kannst du das bitte nochmal ausführen?

              Aktuell verwenden wir überall in Admin die Daten von GitHub "master" des jeweiligen Adapters. Es wird aber nirgends sichergestellt, dass das auch der neusten (freigegebenen) Version des Adapters entspricht. Wenn ich z.B. das Icon ändere, dann wird das auf allen ioBroker-Installationen angezeigt, sobald ich die Änderung auf "master" bringe (push, PR oder merge), nicht erst wenn ich die neue Version des Adapters veröffentliche.

              Jey CeeJ Online
              Jey CeeJ Online
              Jey Cee
              Developer
              wrote on last edited by
              #6

              @UncleSam sagte in Bessere Kontrolle von sources-dist(-stable) dank jsDelivr?:

              @AlCalzone sagte in Bessere Kontrolle von sources-dist(-stable) dank jsDelivr?:

              Ich hab das Problem noch nicht ganz verstanden, kannst du das bitte nochmal ausführen?

              Aktuell verwenden wir überall in Admin die Daten von GitHub "master" des jeweiligen Adapters. Es wird aber nirgends sichergestellt, dass das auch der neusten (freigegebenen) Version des Adapters entspricht. Wenn ich z.B. das Icon ändere, dann wird das auf allen ioBroker-Installationen angezeigt, sobald ich die Änderung auf "master" bringe (push, PR oder merge), nicht erst wenn ich die neue Version des Adapters veröffentliche.

              Genau das gleiche Thema hatte ich mit der Readme eines Adapters, die war neuer als der Adapter im Stable. Die wird aber im Admin von Github geholt nicht aus dem npm Paket, das hat etwas Verwirrung verursacht.

              Persönlicher Support
              Spenden -> paypal.me/J3YC33

              1 Reply Last reply
              1
              • apollon77A Offline
                apollon77A Offline
                apollon77
                wrote on last edited by
                #7

                Und man muss nichts dafür tun das die files da verfügbar sind?

                Am Ende könnte es helfen die aktuellen checker false positive errors weil zu viele GitHub requests vom checker gemacht werden aufzulösen.

                Und ja so ist es besser weil wirklich die relevanten files gecheckt werden und bf könnte sich sparen für Repo Bau alle Adapter von npm zu ziehen.

                Find ich cool und ja darüber wäre auch das Thema „Admin adapter icons hängen von GitHub ab“ gelöst - ok hängt dann von dem Service ab ;-)

                Readme ist so ne Sache. Ich mochte es das man die Doku ohne ne neue Adapter Version erweitern kann. Und nur wegen Doku ne neue Version zu publishen fände ich Overkill. Hier also lieber als dev aufpassen.

                Meine ganz spontane Meinung dazu.

                Ingo

                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                UncleSamU 1 Reply Last reply
                1
                • apollon77A apollon77

                  Und man muss nichts dafür tun das die files da verfügbar sind?

                  Am Ende könnte es helfen die aktuellen checker false positive errors weil zu viele GitHub requests vom checker gemacht werden aufzulösen.

                  Und ja so ist es besser weil wirklich die relevanten files gecheckt werden und bf könnte sich sparen für Repo Bau alle Adapter von npm zu ziehen.

                  Find ich cool und ja darüber wäre auch das Thema „Admin adapter icons hängen von GitHub ab“ gelöst - ok hängt dann von dem Service ab ;-)

                  Readme ist so ne Sache. Ich mochte es das man die Doku ohne ne neue Adapter Version erweitern kann. Und nur wegen Doku ne neue Version zu publishen fände ich Overkill. Hier also lieber als dev aufpassen.

                  Meine ganz spontane Meinung dazu.

                  Ingo

                  UncleSamU Offline
                  UncleSamU Offline
                  UncleSam
                  Developer
                  wrote on last edited by
                  #8

                  @apollon77 sagte in Bessere Kontrolle von sources-dist(-stable) dank jsDelivr?:

                  Und man muss nichts dafür tun das die files da verfügbar sind?

                  Jap, kannst es mit irgendeinem Adapter versuchen, das "funktioniert einfach" :)

                  Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                  ♡-lichen Dank an meine Sponsoren

                  1 Reply Last reply
                  0
                  • AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    wrote on last edited by
                    #9

                    Gut das schließt sich ja beides nicht aus. Beim Updaten des Repos könnte dann sichergestellt werden, dass entweder jsDelivr, unpkg (selbes Prinzip) oder zur Not halt ein getaggter Pfad von Github eingetragen ist.

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    apollon77A 1 Reply Last reply
                    1
                    • AlCalzoneA AlCalzone

                      Gut das schließt sich ja beides nicht aus. Beim Updaten des Repos könnte dann sichergestellt werden, dass entweder jsDelivr, unpkg (selbes Prinzip) oder zur Not halt ein getaggter Pfad von Github eingetragen ist.

                      apollon77A Offline
                      apollon77A Offline
                      apollon77
                      wrote on last edited by
                      #10

                      @AlCalzone man müsste mal versuchen ob’s jetzt schon tut. Also mal einen Pr gegen Repo mit einer der anderen URLs. Ggf mir hard coded Version aber ist ja erstmal egal.

                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      413

                      Online

                      32.7k

                      Users

                      82.5k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe