Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Frage zur Veröffentlichung von Adapter Updates

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Frage zur Veröffentlichung von Adapter Updates

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      AxLED last edited by

      Hallo Devs,

      habe vor einiger Zeit mal den Adapter powerfox2 erstellt.

      Nun habe ich den Code angepasst, habe aber leider keinen "Königsweg" zur Aktualisierung/Veröffentlichung des Adapters gefunden.

      Habe diverse Dokus gelesen, die sind aber teilweise schwer verständlich und auch der Zusammenhang warum Github und/oder npm erschließt sich mir nicht so recht.

      Meine Entwicklungsumgebung:
      Betriebssystem: Windows 10 Pro
      Adapterpfad: C:\iobroker\node_modules\ioBroker.powerfox2
      Habe das Script @alcalzone/release-script mit eingebunden
      Adaptercode angepasst und Readme gepflegt.

      Wer kann mir folgende Fragen beantworten:

      • auf welchen Platformen (github und/oder npm) müssen die geänderten Daten hin?
      • in welcher Reihenfolge (erst github oder npm) muss das erfolgen?
      • mit welchen Befehlen in der Kommandozeile und in welchen Pfaden/Verzeichnissen muss was erfolgen?
      • danach Anpassung der Dateien sources-dist-stable.json und/oder sources-dist.json in einem Fork von https://github.com/ioBroker/ioBroker.repositories durchführen und PullRequest durchführen

      Freue mich auf Eure Rückmeldungen

      Gruß

      AxLED

      mcm1957 1 Reply Last reply Reply Quote 0
      • mcm1957
        mcm1957 @AxLED last edited by

        @axled

        Hallo AxLED,

        Du hast zwischenzeitlich (oder schon vorher) einen PR für die Aktualisierung der Release auf stable erstellt. Dabei hast du schon mal alles richtig gemacht. Was konkret n och zu tun ist, hab ich dir im PR zusammengestellt:

        https://github.com/ioBroker/ioBroker.repositories/pull/2946

        Ich gehe aber hier gern auf deine Fragen ein:

        • auf welchen Platformen (github und/oder npm) müssen die geänderten Daten hin?

        Der Sourcecode von Adaptern wird auf Github verwaltet. Dort hats du ja jetzt schon ein Repository mit deinem Code. Dieses clonst du auf deinen Entwicklungsrechner, änderts und testest was notwendig ist und committest die Änderungen auf Github. Aber da der Adapter nicht neu ist, nehme ich mal an, dass dir das bekannt ist.

        Auf npm kommt dann eine fertige Release. Dies erfolgt nach dem Erstellen einer Release - am einfachsten mit dem Releasescript dass du ja eh im Adapter eingebunden hast. Anschließend kannst du die Release mittels npm deploy auf npm hochladen oder noch einfacher den in den Workflow integrierten releasemachanismus verwenden. Dazu musst du in test-and-release.yml den entsprechenden Abschnitt entkommentieren.

        • in welcher Reihenfolge (erst github oder npm) muss das erfolgen?

        Sourcen auf github, fertiges release auf npm. In der Reihenfolge.

        • mit welchen Befehlen in der Kommandozeile und in welchen Pfaden/Verzeichnissen muss was erfolgen?

        Dies sprengt jetzt ein wenig meine Zeit. Ich erlaube mir aber zu fragen wie der derzeitige Adapterstand auf Github bzw. npm gekommen ist? Prinzipiell hängt die Befehle stark davon ab welche Entwicklungsplatform (Linux, Windows, Mac) und welche Werkzeuge (z.B. Webstorm, vs-code) du verwendest.

        -) danach Anpassung der Dateien sources-dist-stable.json und/oder sources-dist.json in einem Fork von https://github.com/ioBroker/ioBroker.repositories durchführen und PullRequest durchführen

        Nein,
        Der Adapter ist ja bereits im latest repository. Daher brauchst du an sources-dist.json gar nichts mehr zu tun. Für ein Release ins stable repository muss nur die Versio n in sources-dist-stable.json angepasst werden. Das geht am einfachsten und am sichersten vie www.iobroker.dev. Dort deinen Adapter auswählen und auf Releases gehen. Bei gewünschter Version set as stable anklicken. Alternativ kann die Version direkt auf der Github Webseite in sources-dist-stabel.json geändertw erden, github erstellt dann einen PR für dich.

        Hoff ich habe ein paar Fragen beantworten können.

        Wenn du bezüglich Werkzeuge Grundsatzfragen hats hoffe ich dass andere dir hier helfen können oder meld ich bei unserer adapter development starters Telegramm Gruppe an.
        Links gibt auf www.iobroker.dev.

        Mcm1957

        Ax-LED created this issue in ioBroker/ioBroker.repositories

        closed Update update powerfox2 to 0.0.13 #2946

        1 Reply Last reply Reply Quote 0
        • T
          ticaki Developer last edited by ticaki

          @mcm57 sagte in Frage zur Veröffentlichung von Adapter Updates:

          www.iobroker.dev

          https://www.iobroker.dev
          🙂

          1 Reply Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active last edited by haus-automatisierung

            Ich habe den kompletten Prozess mal für einen Adapter dokumentiert. ALLES und jedes Detail ist natürlich nicht enthalten, aber eventuell ein guter Überblick für Dich:

            https://www.youtube.com/watch?v=A9UETXyAmL4

            Ganz am Ende siehst Du,

            • wie das release-script angestoßen wird
            • dieses erstellt ein neues Tag und pusht die Änderungen ins Repo
            • das neue Tag stößt den GitHub Workflow test-and-release an und erstellt z.B. ein Release für GitHub
            • Damit wird (wenn NPM secret usw. richtig im Repository konfiguriert ist) automatisch die Version zusammengepackt und auf npm gestellt.
            mcm1957 1 Reply Last reply Reply Quote 4
            • mcm1957
              mcm1957 @haus-automatisierung last edited by mcm1957

              Wie im PR geschrieben werde ich dir voraussichtlich morgen einen PR schicken der die notwendigen Anpassungen am test-and-and release workflow vornimmt (wegen node 12-> 16 bis 20). Ich werd da auch den automatischen deploy auf npm aktivieren sodass du dann nur mehr dein Secret hinterlegen musst.

              @haus-automatisierung
              DANKE für den Link

              1 Reply Last reply Reply Quote 1
              • A
                AxLED last edited by

                @mcm57
                @haus-automatisierung

                danke für die vielen Antworten und den Link zum Video, dann versuche ich diese mal zusammenzufassen, wie ich diese verstanden habe.

                Das Portal https://www.iobroker.dev ist mir neu, sieht aber vielversprechend aus.

                • Anpassung Code in der eigenen Entwicklungsumgebung (bei mir Win10 mit Visual Studio Code)
                • Upload Code in sein eigenes github repository mittels folgender Befehle (im Arbeitsverzeichnis des Adapters ausführen, in meinem Fall: C:\iobroker\node_modules\ioBroker.powerfox2)
                  git add .
                  git status
                  git commit -m "changes"
                  npm test
                  git push origin main
                • (Alternativ upload zu Github mittels Quellcodeverwaltung in Visual Studio Code)
                • ggfls. von weiteren Usern testen lassen

                Ab hier ist es mir noch nicht ganz klar wie es weitergeht:

                • wie geht es korrekterweise weiter oder gibt es mehrere Wege?
                • im Portal Portal https://www.iobroker.dev den Adapter Check ausführen?
                • Angezeigte Fehler im Code beheben und neu auf github hochladen und Adapter Check ausführen (diesen Schritt ggfls. wiederholen bis alles passt)
                • auf npm veröffentlichen mit npm run release
                • Versionsnummer des geänderten Adapters in sources-dist-stable.json in einem Fork von https://github.com/ioBroker/ioBroker.repositories durchführen und PullRequest durchführen
                • welchen der "unklaren" Schritte/Reihenfolge könnne alternativ über https://www.iobroker.dev erfolgen?

                Gruß

                AxLED

                T 1 Reply Last reply Reply Quote 0
                • T
                  ticaki Developer @AxLED last edited by

                  @axled sagte in Frage zur Veröffentlichung von Adapter Updates:

                  Es gibt mehrere Wege. Deiner ist soweit ok. Es ist aber npm run test

                  Bevor du eine PR für stable machst, lassen den Adapter mal etwas testen, ne Woche oder so. 🙂

                  mcm1957 1 Reply Last reply Reply Quote 1
                  • mcm1957
                    mcm1957 @ticaki last edited by

                    AxLED

                    Zuerst mal eine Frage: Benutzt du Telegram? Interaktive Hilfe bei konkreten Schritten kann dort leichter und schneller erfolgen da 90% der Entwickelr dort mitlesen. Discord ist auch OK (da mit Telegramm synchronisiert) ur kann ich dir dort beim Einstieg nicht helfen.

                    Zu deinem Ablauf:

                    • Anpassung Code in der eigenen Entwicklungsumgebung (bei mir Win10 mit Visual Studio Code)

                    Richtig, Ich benutze ebenfalls VS Code unter Win 10.

                    • Upload Code in sein eigenes github repository mittels folgender Befehle (im Arbeitsverzeichnis des Adapters ausführen, in meinem Fall: C:\iobroker\node_modules\ioBroker.powerfox2)
                      git add .
                      git status
                      git commit -m "changes"
                      npm test
                      git push origin main
                      (Alternativ upload zu Github mittels Quellcodeverwaltung in Visual Studio Code)
                      ggfls. von weiteren Usern testen lassen

                    Teilweise richtig 🙂

                    Du kannst mit npm run test alles testen bevor du irgendwas committest. Die Tests laufen ja lokal.

                    Bezüglich Upload zu Github verwende ich den Github Desktop: https://desktop.github.com/
                    Ich empfinde ihn angenehmer als die vs Integration - aber das ist wie bei den meisten Dev-Tools Geschmacksache. Schau ihn dir einfach mal an. Die Commandline ist für 0815 Dinge nicht meine Erste Wahl. Sie zu kennen ist aber seht gut.

                    Ab hier ist es mir noch nicht ganz klar wie es weitergeht:
                    wie geht es korrekterweise weiter oder gibt es mehrere Wege?

                    im Portal Portal https://www.iobroker.dev den Adapter Check ausführen?
                    Angezeigte Fehler im Code beheben und neu auf github hochladen und Adapter Check ausführen (diesen Schritt ggfls. wiederholen bis alles passt)

                    Ja das ist ein guter Zeitpunkt das mal zu tun

                    auf npm veröffentlichen mit npm run release

                    Dieser Befehl legt eine neue Release an. Das bedeutet, dass in diverse Files (package.json, io-package.json) die neue Versionsnummer eingetragen wird, releasenotes aktualisisert werden etc.

                    Technisch werden die Änderungen dann auf Github kopiert und dort getagged. Der commit und das Taggen lösen den Github Workflow test-and-release aus. Ist dieser erfolgreich veröffentlicht er das Package (die neue Release) auch gleich auf npm.

                    Sobald die Release auf npm veröffentlicht wurde wird diese binnen 24h im LATEST Repository zur Installation angeboten. Sinnvoller Weise eröffnest oder aktualisiserst du nun einen Thread im TESTER Bereich hier im Forum https://forum.iobroker.net/category/91/tester. (Falls du dort nicht posten darfs schreib hier z,B. Homoran an dass er dich freischaltet). Damit infirmierst du potenziell Testinterissierte dass es da was neues gibt.

                    Nach frühestens eienr Woche kannst du dann die Adapterrelease in Stable veröffentlichen lassen sofern beim test im Latest keine ernsten Probleme entdeckt wurden. (Ausnahmen für Feuer-Hot-Fixes sind möglich, das sprengt aber hier den Rahmen. Gib einfach Bescheid, wenn du galubst dass das notwendig wäre.) Nach 14 bis 30 Tagen bekommst du ein ErinnerungsIssue im Repository falls du auf stable vergisst.

                    Versionsnummer des geänderten Adapters in sources-dist-stable.json in einem Fork von https://github.com/ioBroker/ioBroker.repositories durchführen und PullRequest durchführen

                    Zur Veröffentlichung in Stable am besten https://www.iobroker.dev verwenden. Alternativ direkt in Github auf der Webseite editieren (2te Wahl).
                    Warum: ioborker.dev prüft gleich mal die wichtigsten Dinge und vor allem stellt es sicher, dass der PR technisch i.O. ist. Vergessene Strichpunkte und verlorene Zeichen gibts da nicht. Und bei einem Fork kriegt der PR öfter mal ältere commits mehr mit was mir im günstigsten Fall nur mehr Arbeit beim Checken macht - im Extremfall aber Nebenwirkungen hat 🙂

                    welchen der "unklaren" Schritte/Reihenfolge könnne alternativ über https://www.iobroker.dev erfolgen?

                    siehe oben 🙂

                    P.S. PR mit Update der Testumgebung ist in Arbeit

                    mcm1957 1 Reply Last reply Reply Quote 0
                    • mcm1957
                      mcm1957 @mcm1957 last edited by

                      @AxLED

                      Ich habe jetzt mal ein paar PRs für dich erstellt:

                      https://github.com/Ax-LED/ioBroker.powerfox2/pull/9

                      Der PR aktualisiert die testumgebung auf aktuellen Stand.

                      https://github.com/Ax-LED/ioBroker.powerfox2/pull/11

                      Der PR aktualisiert das Releasescript auf aktuellen Stand

                      https://github.com/Ax-LED/ioBroker.powerfox2/pull/12

                      Der PR aktiviert dependabot. Dependabot hilft dir deine Abhängigkeiten auf akteullem Stand zu halten und erstellt automatisch PRs für den Update. Da du "ein wenig" veraltete Abhängigkeiten hast, kann es sein, dass da nach dem Update einige PRs erscheinen. Schau sie dir an und merge sie. Nachher solltes du unbedingt den Adapter neiu testen um allfällige Inkompatibiltäten zu entdecken (und zu beheben). Bitte beachte auch dass es sinnvoll ist VOR dem merge des PRs das im PR angegebene Token in Github einzutragen damit Patchänderungen (= kleine Änderungen) automatisch gemerged werden können.

                      Ich zieh mich dann mal aus dem Adapter einw enig zurück. Meld dich wenn du Hilfe brauchst (vorzugsweise auf Telegramm abder gerne auch hier). Bin sicher dass du Hilfe bekommsgt wenn du sie brauchst.

                      UND NOCHMALS DANKE für den Adapter und dass du deine Zeit dafür aufwendest !

                      mcm1957 created this issue in Ax-LED/ioBroker.powerfox2

                      closed Update test environment, fix linter errors at sources #9

                      mcm1957 created this issue in Ax-LED/ioBroker.powerfox2

                      closed update releasescript #11

                      mcm1957 created this issue in Ax-LED/ioBroker.powerfox2

                      closed activate dependabot #12

                      haus-automatisierung 1 Reply Last reply Reply Quote 2
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @mcm1957 last edited by

                        @mcm57 Danke auch Dich, für Deine unermüdliche Arbeit in allen Adaptern 🙂

                        mcm1957 1 Reply Last reply Reply Quote 0
                        • mcm1957
                          mcm1957 @haus-automatisierung last edited by

                          @AxLED

                          Disen Beitrag mal als Link für den Github PR. Inhalt folgt gleich 🙂

                          mcm1957 1 Reply Last reply Reply Quote 0
                          • mcm1957
                            mcm1957 @mcm1957 last edited by

                            @AxLED

                            Sodala - hier ist der besserer Platz für ausführlichere Diskussionen. PRs / Issues sind da nur zweite Wahl.

                            Du schriebst in https://github.com/ioBroker/ioBroker.repositories/pull/2946#issuecomment-1816273341

                            i could merge 2 of the 3 PR in https://github.com/Ax-LED/ioBroker.powerfox2/pulls, the 3rd one shows an error Ax-LED/ioBroker.powerfox2#11.
                            The 2 merged PR produced some more PRs in my repo, also with error.
                            I dont know how to move forward.
                            AxLED

                            Die Ursache des Merge Konflikts war, dass ich nicht beachtet habe, dasss ich den zweiten PR auf Basis des IST Standes erstellt habe und nicht auf Basis meines ersten PRs. Sorry.
                            @ticaki hat dir dazu schon geschrieben (DANKE) wie man auf Github mit Merge Konflikten umgeht und diese Beheben kann.

                            These are merge conflicts, the update of Axios has changed your package.json and therefore git cannot merge them without help.
                            https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github
                            If your conflict is too complex for Github and you need to continue on the command line, please ask again.
                            The 2 merged PR produced some more PRs in my repo, also with error.
                            u can merge them. Error comes from missing token for auto merge.
                            other thing: its near impossible that the native change of io-package.json break ur adapter.

                            DANKE Tim.

                            Da das manulle Beheben eine Merge-Konflikts in package-lock (fast) unmöglich ist, hab ich einen neuen PR erstellt. Generell ist was wohl am besten bei einem Merge Konflikt in package-lock.json "irgendwas" zu committen und anschließen auf dem eigenen Rechner das File neu zu erstellen (= Löchen + mit npm i neu bauen).

                            Zu den zahlreichen anderen PRs mit roten X.
                            Wie @ticaki dir schonr ichtig mitgeteilt hat, die kommen davon dass dur nicht wie im PR geschrieben ein AUTOMERGE_TOKEN angelegt hats.
                            https://github.com/Ax-LED/ioBroker.powerfox2/pull/12

                            This PR activates dependabot.
                            
                            Dependabot creates update PRs to help keeping your dependencies up to date, paatch (and development minor) upodates will be merged automaticall, other PRs miust be reviewed and merged by you.
                            
                            To use automrge the following must be done:
                            
                            # In order to use this, you need to go to https://github.com/settings/tokens and
                            # create a Personal Access Token with the permission "public_repo".
                            # Enter this token in your repository settings under "Secrets" and name it AUTO_MERGE_TOKEN
                            

                            Sofern sie keine Merge Konflikte haben, kannst du sie manuell mergen. Um dein Token zu testen, kannst du aber auch in jeden PR als Kommentar posten "@dependebot recreate".
                            Der Einzrag @dependabot recreate" veranlasst dependabot den PR neu zu erstellen. Dann sollten die Actions neu anlaufen und wenn das Token passt dann sollte der PR gemerged werden.

                            Ich würde dir auch Testgründen den zweiten Weg raten.

                            Bitte beachte, dass sich die PRs gegenseitig beeinflussen. Du solltes als erstes (!) den releasescript PR mergen. Dann kann dependabot seine PRs ggF anpassen.

                            Mcm1957

                            Ax-LED created this issue in ioBroker/ioBroker.repositories

                            closed Update update powerfox2 to 0.0.13 #2946

                            mcm1957 created this issue in Ax-LED/ioBroker.powerfox2

                            closed activate dependabot #12

                            mcm1957 1 Reply Last reply Reply Quote 0
                            • mcm1957
                              mcm1957 @mcm1957 last edited by

                              Und nochmal die Frage:
                              Telegramm?
                              Discord?

                              Wär halt interaktiver als hier das Forum für solche Fälle...

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                AxLED @mcm1957 last edited by

                                @mcm57
                                @ticaki

                                danke für eure unermüdliche Hilfe. Austausch gerne über discord.
                                Schaue mir jetzt mal die ganzen ToDos in euren Anmerkungen an und versuche diese umzusetzen.

                                Gruß

                                AxLED

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                660
                                Online

                                31.7k
                                Users

                                79.8k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                608
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo