Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Wie am Besten mit den Versionen bei Github umgehen?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wie am Besten mit den Versionen bei Github umgehen?

    This topic has been deleted. Only users with topic management privileges can see it.
    • mcm1957
      mcm1957 @SKB last edited by

      @skb said in Wie am Besten mit den Versionen bei Github umgehen?:

      @mcm1957 das heißt im Endeffekt lässt man die Versionen einfach so durchlaufen, wie man sie erstellt und irgendwann ist dann die letzte Major Version im stable und der User sieht dann auch die Alpha Versionen darunter in der Readme.

      Man muss also nicht noch extra alle Änderung der Alpha/Beta bei der nächsten Major mitteilen. Das sieht man ja dann an Alphas darunter, korrekt?

      Im Prinzip korrekt.
      Bei patch / minor / major würd ichs jedenfalls so machen. Bei alphaskann man im README gern zusammenziehen da due ja nicht ins latest gehen (sollen) und nur im kleinsten Kreis getestet werden.

      Wenn ein allgemeiner Test gewünschten ist gern normale Version erzeugen undvia Latest testen lassen. Sinnvoll ist dazu auch ein topic hier im Tester Bereic

      SKB 1 Reply Last reply Reply Quote 0
      • SKB
        SKB Developer Most Active @mcm1957 last edited by

        @mcm1957 perfekt. Danke!

        Habe zu den verschiedenen Versionen auch verschiedene Topics hier. Passt dann so!

        1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @SKB last edited by

          @skb

          Aus meiner Sicht sind die Versionen auf GitHub für die normalen User vollkommen egal.
          Nur im Ausnahmefall forderst du den User
          Direkt von GitHub etwas zu installieren.

          Für stable und beta sind nur die Versionen die bei NPM existieren relevant.
          Dort publishe ich nur wenn das auch eine Version für die beiden repos sind.

          Daher ich benütze das Release Script nur wenn es einen echten publish nach NPM geben soll.
          Ansonsten mache ich nur normale commits und push’s nach GitHub.

          Auch das stößt auf GitHub die Tests an.
          Nur das Release Script löst von GitHub aus den publish nach NPM aus

          SKB 1 Reply Last reply Reply Quote 0
          • SKB
            SKB Developer Most Active @OliverIO last edited by

            @oliverio sagte in Wie am Besten mit den Versionen bei Github umgehen?:

            Nur das Release Script löst von GitHub aus den publish nach NPM aus

            Nicht ganz. Das Release-Script erkennt Alpha und Beta Versionen und pusht diese zwar nach NPM aber sie sind darüber nur mit Angabe der Version installierbar.

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @SKB last edited by

              @skb

              Ah ok,
              Ich mache keine Alpha Beta etc Versionen

              Getestet wird von mir,
              Dann im NPM repo durch die User
              Und wenns kein Gemeckere gibt nach
              Einiger Zeit ins stable

              SKB 1 Reply Last reply Reply Quote 0
              • SKB
                SKB Developer Most Active @OliverIO last edited by

                @oliverio Ah, ok.

                Naja, ich code Adapter noch nicht so lange und demnach habe ich jetzt viel verändert und das würde ich dann gerne auch mal von Anderen ansehen lassen 😉

                OliverIO 1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @SKB last edited by

                  @skb

                  Mcm macht Code Review bevor er ins beta repo geht.
                  Ansonsten kannst du ja im Forum fragen.
                  Wenn du Lust hast kannst mich auch fragen

                  SKB 1 Reply Last reply Reply Quote 0
                  • SKB
                    SKB Developer Most Active @OliverIO last edited by

                    @oliverio Danke, einfach mal nach "energiefluss-erweitert" gucken. Da gibst einen Alpha Thread zu 😉

                    1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO last edited by OliverIO

                      @skb sagte in Wie am Besten mit den Versionen bei Github umgehen?:

                      • du verwendest im adapter fs.writefile, es sollte die iobroker funktion verwendet werden, so das es mit redis usw. kompatibel ist.

                      • für besseres datum/zeithandling kannst du mal momentjs anschauen

                      • warum hast du hier das await vor await this.setStateChangedAsync main.js 484-454?
                        Die Funktion ist zuende und danach kommt nix mehr. daher kannst das await auch weglassen

                      • JSON.parse(JSON.stringify(obj)) kann man neuerdings auch mit {...obj} austauschen. es wird jeweils ein neues obj erstellt, welches keine referenzen mehr auf das ursprungsobjekt hat (zumindest auf der ersten ebene). wenn tiefer weitere objekte sind, dann die nicht.

                      • warum hast du so einen großen tab-space (also das einrücken von code) von 8? 2 oder 4 reichen vollkommen

                      • in 2 (oder mehr) ebenen verschachtelte ifs kannst du in einem zusammenfassen, wenn es da nicht mehr fälle unterschieden werden 849-851 und später

                      • manche funktionen sind sehr groß, ich kenne styleguides, wo eine funktion nicht mehr wie 20 zeilen anweisungen enthalten darf (aber so wie es dir genehm ist). ist kein muss, macht komplexen code aber les- und wartbarer

                      • 906/907, warum das Function-Statement? Ist das so ein Art interpreter? Ich seh es wird der Funktionsnahme ermittelt und dann ausgeführt
                        -functions ist zu mini zum anschauen 🙂

                      • irgendwie kommen mir viele code teile zu kompliziert aufgebaut vor. evtl kannst du, wenn du vscode verwendest, mal diese kostenlose ki-erweiterung https://codeium.com/ laden. da gibt es eine refactor funktion. da kannst mal schauen, was die dir vorschlägt einzelne funktionen zu optimieren.

                      • auch haben sich mir manche funktionen nicht wirklich erschlossen, allerdings hab ich nur den code angeschaut, ohne mir den adapter zu installieren und auszuprobieren.

                      alle punkte sind nur ideen, nach denen du mal schauen könntest.
                      wenn dir dein aktueller codestyle lieber ist, alles gut. ich gehe mal davon aus, das du noch nicht so lange programmierst (zumindest in javascript). von daher ist es nicht so wild, wenn nicht alles kompakt und effizient aussieht. wichtig ist, das es funktioniert. optimieren kann man später immer noch,

                      SKB 1 Reply Last reply Reply Quote 0
                      • SKB
                        SKB Developer Most Active @OliverIO last edited by

                        @oliverio Danke für deine Ausführungen 🙂

                        Eigentlich programmiere ich "schon" mehr als 20 Jahre, aber immer mit älteren Dingen bzw. nicht beruflich (und auch meist nicht mit aktuellen Modulen, da man diese nicht immer kennt 😉 )

                        Meinst Du Zeile 454 das await, weil danach eh nichts mehr kommt? ok, das kann man weglassen, ja.

                        JSON.parse(JSON.stringify(obj)) verwende ich, weil das Objekt verschachtelt ist bzw. bis zu 3 Ebenen haben kann.

                        Ich mag den Tab-Space - daher verwende ich den etwas größeren (ist man so gewohnt)

                        Du meinst aus:

                        if (operators.test(item)) {
                        	// Now, we need to check, if condValue is a number
                        	if (!isNaN(condValue)) {
                        	}
                        }
                        

                        wird

                        if (operators.test(item) && !isNaN(condValue)) {
                        }
                        

                        ? Ok, das könnte man so machen - stimmt

                        Mit den komplexen Funktionen hast Du Recht - diese kann man auf kleinere Funktionsblöcke herunterbrechen - ich denke, das ist meinem Gedankengang geschuldet.

                        Das Function Statement evaluiert Statements aus einem JSON Objekt und prüft, welche Condition valide ist.
                        Beispiel:
                        Der Wert ist 10 und die Bedingung des Users siehst so aus:

                        {
                            ">0": {
                                "_comment": "Einspeisung",
                                "icon": "mdi:transmission-tower-export",
                                "color": "rgb(161,211,67)"
                            },
                            "<0": {
                                "_comment": "Netzbezug",
                                "icon": "mdi:transmission-tower-import?flip=horizontal",
                                "color": "#F20E40"
                            }
                        }
                        
                        Dann wird hier jeder Block gegen diesen Wert geprüft und der Block genutzt, welcher am Besten dazu passt.
                        
                        Die Erweiterung schaue ich mir mal an. Danke Dir!
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        701
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        3
                        13
                        528
                        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