Erfahrungen im Open-Source-Workflow / SVN?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Erfahrungen im Open-Source-Workflow / SVN?

    Ich arbeite ja schon seit längerem an meinem Sepia. Vorbereitung und Dokumentation dauern viel länger als erwartet, aber kommen gut voran. Ich will die noch-Alleinherschaft nutzen, um so viele grundlegende (und damit API-Verändernde) Designverbesserungen wie möglich einzuarbeiten.

    Jetzt kommt langsam der Punkt, an dem sich die Frage stellt, wie man den CVS/SVN-Entwicklungs-Workflow gestaltet. Ich rechne nicht damit, daß mir Mitarbeitswillige Entwickler oder User vom ersten Tag an die Bude einrennen, aber möchte alle Strukturen von Anfang an so anlegen, daß sie einen solchen Erfolg aushalten würden.

    Es ist ja nicht damit getan, daß man ein Repository aufsetzt und fertig. Die Frage ist, wie man mit der Rechteverwaltung umgeht, also mit Fragen wie: Darf jeder von Außen Änderungen ins Repository committen, und es ist Aufgabe des/der Chefentwickler/s, den Code zu sichten und gegebenenfalls Rückgängig zu machen? Oder gibt es ein Haupt-Repository, das nur einem kleinen Kreis (schreib)zugänglich ist, und einen öffentlichen Zweig, aus dem heraus guter Code in den Hauptzweig integriert wird?
    Es würde mich sehr interessieren, wie das andere Open-Source-Projekte machen, und was generell üblich ist. Gibt es hier jemanden, der an einem komplexeren Open-Source-Projekt mitarbeitet oder gar eins leitet und ein bisschen aus dem Nähkästchen plaudern kann?

    Vielleicht kennt jemand auch ein Forum spezifisch zu diesem Thema.
    Zuletzt geändert von pekka; 18.11.2008, 10:20.

  • #2
    Re: Erfahrungen im Open-Source-Workflow / SVN?

    Original geschrieben von pekka
    Ich arbeite ja schon seit längerem an meinem Sepia. Vorbereitung und Dokumentation dauern viel länger als erwartet, aber kommen gut voran. Ich will die noch-Alleinherschaft nutzen, um so viele grundlegende (und damit API-Verändernde) Designverbesserungen wie möglich einzuarbeiten.
    Genau an der Stelle stehe ich im Moment auch. Du weißt ja bei welchem Projekt.

    Ich bin inzwischen von CVS auf git umgestiegen und sehr sehr zufrieden damit. SVN habe ich praktisch übesprungen. Leider sind dadurch all meine commits und Versionen verloren gegangen. Ist aber erstmal noch egal - Das CVS Repository läuft noch eine Zeit weiter und noch bin ich der einzige Entwickler.

    Direkt committen sollen nur eine Handvoll Entwickler denen ich soweit vertraue. Über git geht dann außerdem zu jedem commit eine Email an die Entwickler Mailingliste und den IRC Raum - Für ein Code Review. Alle anderen Änderungen laufen über Patches. Das geht ja mit den *NIX Tools patch und diff 1a. Mit patches hab ich auch aus anderen Projekten Erfahrung.

    Mach dir dann außerdem mal Gedanken ob du das ganze evtl. in den Distributions Repositories haben möchtest. Ich hab inzwischen Packager für einige Linux Distributionen, OpenSolaris und FreeBSD.

    OffTopic:
    Das Web Interface hab ich btw über den Haufen geworfen. Schreibe ich gerade mit Ruby On Rails neu.


    Ich kann dir als Buch, falls du es noch nicht gelesen hast, "Just for Fun" empfehlen. Das ist die Biographie von Linus Torvalds. Er beschreibt dort selbst wie er mit dem Linux Kernel angefangen hat und wie die ersten Patches kamen, wie es immer unübersichtlicher wurde, seine Entscheidungswege usw.

    Edit: Ganz hilfreich kann es auch sein ein paar Entwickler über Twitter zu followen. Ich hab dort das gefühlt halbe KDE Team auf meiner Liste.
    Zuletzt geändert von lennart; 18.11.2008, 10:47.

    Kommentar


    • #3
      Ich würde auch nur eine handvoll Entwickler commits in den trunk machen lassen. Ich hab für ein Projekt einen RSS Feed eingebaut der bei jedem Commit aktualisiert wird. Somit wird jeder Entwickler informiert wenn sich etwas getan hat.

      Wenn du nicht jeden in deinem trunk rumfuschen lassen willst kannst du natürlich auch branches für Mitentwickler anlegen und die dann hin und wieder mergen. Das erhöht zwar deinen Verwaltungsaufwand, aber so hälst du die Hauptsourcen sauber. Dies ist der Weg den wir bei großen Projekten mit mehreren Entwicklern gehen. Da gibt es einen Stichtag, z.B. jeden Montagmorgen wo alle branches zusammengemerged werden und eine neue Version( egal ob intern oder extern) released wird.

      Kommentar


      • #4
        Cool, damit kann ich was anfangen! Schon mal vielen Dank euch beiden.

        Die Versionskontrolle wird auf jeden Fall SVN, weil TortoiseSVN soooo geil ist Den Trunk nur ausgewählten Entwicklern zugänglich zu machen, und etwas Zusatzaufwand mit Branches in Kauf zu nehmen, klingt sinnvoll. Das mit RSS auch.

        Bei Twitter hab ich Sepia schon angemeldet, aus dem Gefühl raus, das könnte nützlich sein.

        Kommentar


        • #5
          Denk nicht nur an Codebeiträge. Gib auch den Anfängern und Nicht-Programmierern eine Möglichkeit, sich zu beteiligen. Drupal gelingt das imo ganz gut. Überfliege mal die Überschriften, dann weißt du worauf ich hinaus will.

          Beim SCM darf es natürlich nur eine überschaubare Menge Committers geben. Sonst hast du im Handumdrehen nur noch Crap im Repository. Tödlich!
          Imo der einzige Weg: Jeder darf Patches einreichen, alle sind aufgefordert, die Patches zu testen und zu verbessern. Wenn alle der Meinung sind, besser gehts nicht mehr, schaut noch mal einer der Committer drüber und dann wanderts in HEAD.
          Branching & Merging kommt nicht in Frage, weil es nicht skaliert. Wenn man 1000 Kontributoren hat, jeder mit seinem eigenen Branch ... wer soll das noch mergen?
          Zuletzt geändert von onemorenerd; 18.11.2008, 12:17.

          Kommentar


          • #6
            Original geschrieben von pekka
            Bei Twitter hab ich Sepia schon angemeldet, aus dem Gefühl raus, das könnte nützlich sein.
            Ich hab dich mal geadded. Bei Ohloh auch gleich mal Kudos gegeben, hehe.

            Kommentar


            • #7
              Original geschrieben von pekka
              Die Versionskontrolle wird auf jeden Fall SVN, weil TortoiseSVN soooo geil ist
              Ja genau, zumal sich SVN/TortoiseSVN immermehr zur Bananensoftware entwickelt. Seit 1.5.x ist fast jeder Commit mit neuen Dateien/Verzeichnissen mehr ein Glückspiel (zumindest wenn man Samba als Fileserver einsetzt). Ganz besonders beliebt bei mir persönlich: die immer mal wieder auftretenden "Unexpected end of stream" Meldungen, bei denen auch kein "svn clean" oder ähnlicher Hokuspokus mehr was bringt.

              OffTopic:
              Glückwunsch, dann kann man ja gleich auch noch phpMyAdmin von den Oberhirnies einsetzen. Auch bei den Spacken wird nur noch rumgestümpert. Mal ganz davon ab, da die auch keine Ahnung von usability haben.
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                Ja genau, zumal sich SVN/TortoiseSVN immermehr zur Bananensoftware entwickelt. Seit 1.5.x ist fast jeder Commit mit neuen Dateien/Verzeichnissen mehr ein Glückspiel (zumindest wenn man Samba als Fileserver einsetzt).
                Was aber von mehreren Stellen als Samba Problem identifiziert wurde........

                Wie auch immer. Ein sehr konstruktiver Beitrag goth. 1a!

                Kommentar


                • #9
                  Original geschrieben von goth
                  Ja genau, zumal sich SVN/TortoiseSVN immermehr zur Bananensoftware entwickelt. [/ot]
                  Ich weiß ehrlich gesagt garnicht wofür man bei einer Versionsverwaltung unbedingt eine GUI braucht. Die paar Befehle kann man auch 1a über eine Shell machen.

                  PHP-Code:
                  git pull
                  ...
                  git commit
                  git push origin master 
                  Fertig.

                  Kommentar


                  • #10
                    Ich weiß ehrlich gesagt garnicht wofür man bei einer Versionsverwaltung unbedingt eine GUI braucht. Die paar Befehle kann man auch 1a über eine Shell machen.
                    Weil nicht alle auf Shell stehen? Du musst nicht immer von dir auf andere schließen

                    Btw: Ich mache es auch über die Shell, aber nunja. Wir sind halt nicht der Maßstab.

                    Kommentar


                    • #11
                      Original geschrieben von Schnoop
                      Wie auch immer. Ein sehr konstruktiver Beitrag goth. 1a!
                      Kann es sein, dass Du etwas naiv bist. Aus welchem Grunde erwartest Du von mir einen konstruktiven Beitrag zu etwas was ich für eher Mist halte?

                      Wie auch immer. Ein sehr eher überflüssiger Beitrag von Schnoop . 2b!
                      Zuletzt geändert von goth; 18.11.2008, 13:17.
                      carpe noctem

                      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                      Kommentar


                      • #12
                        Ich war wohl so naiv zu glauben das hier die konkrete Frage von Pekka behandelt werden sollte, und nicht jeder seine Vorlieben und/oder Abneigung von irgendwas hier zum besten gibt. Sehr naiv von mir.

                        Wie dem auch sei, du bist der Beste, du hast die Weisheit mit Löffel gefressen, bla, bla, bla ... und ich geh jetzt was Essen. Ist schon nach 13 Uhr.

                        Kommentar


                        • #13
                          Wie ja schon einige gesagt haben, sollte man die Anzahl der Contributor lieber klein halten, um die Übersicht zu behalten. Aber du solltest dir dann auch überlegen, wie andere User konstruktiv am Projekt teilnehmen können. Für das Projekt direkt bietet sich da ein Tool wie etwa Trac an. Für Projekt-nahe aber nicht direkt die Entwicklung betreffende Themen, wie zum Beispiel PlugIns von Usern etc. kannst du ein Forum verwenden, finde persönlich solche Lösungen in der Regel aber nur mittelmäßig. Vielleicht ist für sowas doch ein Wiki oder etwas in der Art besser geeignet.

                          OffTopic:
                          Ob nun GUI oder Shell, beide Wege führen zum Ziel. Ich verwende beide Wege und einen wirklich produktiven Vorteil hat meiner Ansicht nach eigentlich keines der Systeme. Sind halt zwei Wege nach Rom.

                          Kommentar


                          • #14
                            Original geschrieben von Schnoop
                            Ich war wohl so naiv zu glauben das hier die konkrete Frage von Pekka behandelt werden sollte, und nicht jeder seine Vorlieben und/oder Abneigung von irgendwas hier zum besten gibt. Sehr naiv von mir.
                            Ja extrem naiv.

                            Original geschrieben von Schnoop
                            Wie dem auch sei, du bist der Beste, du hast die Weisheit mit Löffel gefressen, bla, bla, bla ... und ich geh jetzt was Essen. Ist schon nach 13 Uhr.
                            CNN: "Bag of rice dropped in china ... situation unclear ..."
                            carpe noctem

                            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                            Kommentar


                            • #15
                              Original geschrieben von goth
                              Seit 1.5.x ist fast jeder Commit mit neuen Dateien/Verzeichnissen mehr ein Glückspiel (zumindest wenn man Samba als Fileserver einsetzt). Ganz besonders beliebt bei mir persönlich: die immer mal wieder auftretenden "Unexpected end of stream" Meldungen, bei denen auch kein "svn clean" oder ähnlicher Hokuspokus mehr was bringt.
                              Das Problem hatte ich vorher auch schon.

                              Was benutzt du denn für eine Versionskontrolle. Oder arbeitest du ohne?
                              [FONT="Helvetica"]twitter.com/unset[/FONT]

                              Shitstorm Podcast – Wöchentliches Auskotzen

                              Kommentar

                              Lädt...
                              X