Versionen

  • Versionen

    Hallo,
    ich gehöre ja zu den Autodidakten, die sich das Programmieren und Coden hier und dort ab geschaut haben und das nun so um modeln das sie es verwenden können.
    Ich kann demnach vieles an wenden und komme mit dem bischen was ich eigentlich kann, scheinbar schon erstaunlich weit. Jedenfalls komt es mir so vor.
    Jedoch gibt es immer wieder Bereiche, da steh ich dann wie n Ochs vorm Berg. Da hab ich ja zum Glück hier n hilfreiches Forum gefunden :thumbup:

    Jetzt bin ich an eine Situation geraten, bei der ich Verständnis-Probleme habe, bzw eigentlich ist es richtiges Unwissen. Ich arbeite an einem Programm, das ich an verschiedenen Rechnern weiter entwickel (Festrechner zu hause, Laptop unterwegs, ...) und das langsam so groß wird, das ich schnell mal den Überblick verliere welcher Rechner jetzt von welchem Programm-Schnippsel die aktuellste Version enthält.
    Da fällt einem ein, das sich da ja mal findige Menschen was überlegt haben, das nennt sich Versions-Nummer, sieht dann so 1.2.51 oder so ähnlich aus.

    Meine Frage ist nun: Wonach richtet sich das? Erhöhe ich die Versions-Nummer schon sobald ich nur einen Rechtschreib-Fehler in den Kommentaran korrigiert habe? Oder sobald ich eine neue Funktion hinzugefügt habe? Sobald ich zum testen compiliere? Oder erst wenn die neue Funktion wirklich fehlerfrei läuft?
    Wie erhöhe ich überhaupt? Aus 0.1.9 wird 0.1.10? oder doch 0.2.0?
    Gibts da n System? Oder hält das jeder wie n Dachdecker?

    So, und nun lacht mich aus weil ich so dämliche Fragen stelle 8)
  • RE: Versionen

    Lookbehind schrieb:

    Ich arbeite an einem Programm, das ich an verschiedenen Rechnern weiter entwickel (Festrechner zu hause, Laptop unterwegs, ...) und das langsam so groß wird, das ich schnell mal den Überblick verliere welcher Rechner jetzt von welchem Programm-Schnippsel die aktuellste Version enthält.

    Ganz abgesehen von Versionsnummern usw. würd ich dir für diese Problematik ne Versionsverwaltungs-Software empfehlen (z.b. Subversion). Ich hatte auch mal genau diese Probleme mit 2 Desktoprechnern und einem Laptop an denen ich parallel gearbeitet hab. Hab dann einfach ein SVN-Repository auf nem USB-Stick angelegt und konnte damit dann problemlos alle Rechner auf den aktuellsten Stand synchronisieren. Noch einfacher gehts natürlich, wenn man ein Repository im Web hat (hab meines jetzt auf nem kleinen vServer)
  • Genau.
    In der Versionsverwaltung selber benutzt du keine versionierten Dateinamen. Lies dich mal zu Subversion ein.
    Immer wenn du etwas an einen Kunden rausgibst oder in irgendeiner Form veröffentlichst (auf einem anderen Server zum Beispiel) legst du dann eine Kopie mit Versionsnummer an.

    Du kannst dir ja interessehalber mal meine Subversion Projekte anschauen. In den Changelogs verfolgst du die Änderungen: trac.easy-coding.de/trac/wcf/timeline
    Und den aktuellen Code browser du hier: trac.easy-coding.de/trac/wcf/browser


    Ob du solch einen "Release" nun nach jedem Rechtschreibfehler machst oder nur nach kritischen Fehlern, das ist dir überlassen.

    Generell gilt.

    Version: 1.5.11

    1. komplette Überarbeitung
    .5 neue Features
    .11 bugfixes
  • Hi,

    svn :thumbup:

    Ansonsten zu deiner Frage mit den Versionsnummern.
    Ich habe leider nicht die Seite gefunden wo die Konventionen schön aufgelistet sind, aber dafür in der Wikipedia einen schönen Artikel.
    en.wikipedia.org/wiki/Software_versioning

    Im Endeffekt kannst du es aber machen wie du möchtest.

    z.B kannst du bei 0.0.1 anfangen und nach Änderungen die build? Version zu ändern.
    Also 0.0.1-001. Wenn du dann sagst, dass sich genug getan hat, dann könntest du auf 0.0.1PR (Pre Release) und dann auf 0.0.1b1(Beta1) und wenn alles funkioniert auf 0.0.2 switchen.

    Im Endeffekt hast du Recht und es ist dir überlassen, hauptsache es steigt noch jemand durch ^^

    Edit:
    Ich hab die Seite noch gefunden
    de.wikipedia.org/wiki/Versionsnummer
    <Hauptversionsnummer>.<Nebenversionsnummer>.<Revisionsnummer>-<Buildnummer>


    <major release>.<minor release>.<patch level>-<build number>
  • und am Ende spielen (leider?) noch Faktoren wie Gewinnabsicht und Supportdauer eine Rolle.

    So sollte es bei jedem Produkt kostenlose Bugfixes geben. Sprich 5.0.*
    Neue Features sind vollkommen legitim abzurechnen. Manche tun es, manche tun es nicht. 5.**
    Major Releases sind dann schon ein neues Produkt und kosten eigentlich immer einen gewissen Aufpreis.
    Updatefähige Produkte sind ein Segen. Aber hier ist es im Zweifelsfall auch erlaubt einen Bruch zu machen.

    Neben den Zahlenspielen gibt es dann noch Alpha + Beta Versionen + Release Canidates

    Wie ich gerade gesehen habe, beschreibt das auch der Wiki Artikel alles:
    * Alpha – während der Entwicklung der Software, sehr frühes Stadium
    * Beta – zum Testen vorgesehen, begrenzter Anwenderkreis
    * RC - Veröffentlichungskandidat (release candidate rc), abschließende Testversion
    * Release (final) - endgültige Version
    * Patch (oder patchlevel pl) - Korrekturlevel