diff --git a/Entwicklung.md b/Entwicklung.md index 0d6bb66..2ca71d1 100644 --- a/Entwicklung.md +++ b/Entwicklung.md @@ -1,3 +1,197 @@ # Entwicklung -Inhalte folgeden bald. +1. [Einrichtung](#einrichtung) + * [VS Code](#vs-code) +2. [Versionierung](#versionierung) +3. [Branches](#branches) +4. [Pull Requests](#pull-requests) + +## Einrichtung + +Generelle werden folgende abhängigkeiten benötigt: + +* [Python][python] +* [Pip][pip] + +Nach der Installation von Python und Pip können wir nun das Projekt einrichten. +Dazu öffnen Sie bitte ein Terminal ein und navigieren mit dem Befehl ```cd``` zu einem Ordner, in dem Sie das Projekt ablegen wollen. + +Nachdem Sie dies gemacht haben, holen Sie sich die Projekt Dateien mit folgendem Befehl: + +```sh +git clone https://git.sh-edraft.de/sh-edraft.de/sh_gismo.git +``` + +Nun müssen Sie in den Ordner des Projektes gehen. + +```sh +cd sh_gismo +``` + +Dort erstellen und aktivieren Sie ein VirtualEnv von Python: + +```sh +# erstellen: +python -m venv venv +# aktivieren: +# linux: +source venv/bin/activate +# windows: +.\venv\Scripts\activate +``` + +Nun richten Sie die IDE ein, die Sie verwenden wollen. + +### VS Code + +Um adequat mit Python arbeiten zu können benötigen Sie ein paar Extensions: + +* [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) +* [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) +* [Python Docstring Generator](https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring) +* [Python Indent](https://marketplace.visualstudio.com/items?itemName=KevinRose.vsc-python-indent) +* [Python Test Explorer for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=LittleFoxTeam.vscode-python-test-adapter) +* [python-snippets](https://marketplace.visualstudio.com/items?itemName=cstrap.python-snippets) +* [Importmagic](https://marketplace.visualstudio.com/items?itemName=brainfit.vscode-importmagic) + +Sie sollten für ```Importmagic``` ein Keyboard Shortcut anlegen: + +```text +ImportMagic: Resolve Import -> Alt+Enter +``` + +VS Code sollten Sie dann einmal neustarten und die Entwicklung kann ab dann losgehen. + +## Versionierung + +Major.Minor.Micro + +Major wird nur geändert, wenn der neue Stand nicht Kompatibel mit dem alten Stand ist. +Minor wird bei jeder neuen Funktion erhöht. +Micro wird bei kleinen Änderungen oder Patches erhöht. + +### Stories + +Jede Story bekommt eine Version, anhand der sie auch Identifierzeit werden kann. +Es wird während der Entwicklungsphase eine Kennung mit dem Stadium angehangen. +Sobald das MVP (Minimum Viable Product, Minimum Viable Product ist die einfachste Konfiguration eines Produkts, die ein Benutzer testen und bewerten kann) bereitsteht, wird die Entwicklungsphase verlassen und ein Release 1.0 erstellt. +Ab dem Zeitpunkt fallen die Prefixe für Stories weg. + +Stadien: + +* Alpha +* Beta + +Bsp.: + +```text +A-0.6.1 - Beschreibung +B-0.13.4 - Beschreibung +1.0.2 - Beschreibung +``` + +### Developmental releases + +Für Versionen die sich noch in der Entwicklung befinden, jedoch schonmal gebaut werden müssen, wird ein ```devN``` angehangen. + +Bsp.: + +```text +1.2.3.dev1 +1.2.3.dev2 +1.2.3.dev3 +``` + +### Pre-releases + +Für Versionen, die getestet werden müssen, wird ein ```rcN``` angehangen. +Wenn Fehler aufreten, werden diese im Rahmen des nächsten rc gefixed. Es wird darauf verzichtet andere Versionsänderungen vorzunehmen. + +Bsp.: + +```text +1.2.0.rc1 +1.2.0.rc2 +1.2.0.rc3 +``` + +### Post-releases + +Für Änderungen, die kleinere Fehler beheben, jedoch keinen weiteren Einfluss auf das Produkt haben wird ein ```postN``` angehangen. + +## Branches + +Alle Änderungen am Code werden auf externen Branches zum ```master``` bearbeitet. +Es wird für jeden Sprint ein Branch erstellt. +Es wird für jede Story ein Branch erstellt, sobald diese bearbeitet wird (nicht vorher!). Dieser Branch basiert auf den Branch des Sprints. + +Minor Stories also Stories, dessen Version aus zwei ziffen besteht bekommen ebenfalls ein Branch. +Micro Stories die auf der Minor Story basieren werden von de, Branch der Minor Story abgewandelt. + +Bevor die Minor Story wieder auf den Branch des Sprints geführt werden kann, MÜSSEN alle Micro Stories beendet und in den Branch der Micro Story eingefügt sein! + +Nach bearbeitung einer Story wird ein [Pull Request](#pull-requests) erstellt. Dieser beantragt das Einfügen der Story in den Sprint. + +Das ganze sollte dann so aussehen: + +* Sprint: Alpha +* Minor Story: A-0.10 +* Micro Story: A-0.10.1 + +```text +master +| +\ +|\ +| \ +| \ +| Alpha +| | +| \ +| |\ +| | \ +| | \ +| | A-0.10 +| | | +| | \ +| | |\ +| | | \ +| | | \ +| | | A-0.10.1 +| | | | +| | | / +| | | / +| | | / +| | |/ +| | / +| | | +| | / +| | / +| | / +| |/ +| / +| | +| / +| / +| / +|/ +/ +| +``` + +## Pull Requests + +Pull Requests werden erstellt, wenn ein Branch in einen anderen eingefügt werden kann. + +Die Pull Requests finden Sie [hier][pr]. + +Pull Requests werden erst überprüft. Dazu setzt sich ein Erfahrener Entwickler mit dem Entwickler des Branches zusammen und geht alle Änderungen durch. +Dabei werden letzte Änderungen vorschlagen, damit z.B. Toter Code nicht weiter übermittelt wird. +Sobald das Code Review Erfolgreich war, werden die Branches gemerged. +Danach wird der Branch gelöscht welcher gemerged wurde. + + +[pip-url]: https://pip.sh-edraft.de +[python]: https://www.python.org/ +[pip]: https://pypi.org/project/pip/ +[pr]: https://git.sh-edraft.de/sh-edraft.de/sh_gismo/pulls \ No newline at end of file diff --git a/Mitarbeit.md b/Mitarbeit.md new file mode 100644 index 0000000..779f2c3 --- /dev/null +++ b/Mitarbeit.md @@ -0,0 +1,65 @@ +# Mitarbeit + +1. [Ablauf](#ablauf) +2. [Projektaufbau](#projektaufbau) +3. [Meetings](#meetings) + * [Wöchentlich](#wöchentliche-besprechung) + * [Monatlich](#monatliche-besprechung) +4. [Entwicklung](Entwicklung) +5. [Tests](#tests) + +## Ablauf + +Jedes mal, wenn Sie am Projekt arbeiten, müssen Sie die Arbeitszeiten [hier](clockify) eintragen. + +Dabei wählen Sie immer das Projekt ```sh_gismo``` und die Aufgabe an die Sie arbeiten. +In der Beschreibung beschreiben kurz und genau woran Sie arbeiten. + +## Projektaufbau + +Der Bot wird in Sprints entwickelt. Jeder Sprint beinhaltet festgelegte Issues, welche bearbeitet werden müssen. +Vor einem Sprint wird genau geplant welche Issues das sind und ggf. werden diese durch weitere Issues ergänzt. + +[Hier](Issues) wird erklärt wie Sie Issues erstellen. + +Der Sprint besteht aus einem [Meilenstein](milestone) und einem [Projekt](project). Issues werden dem Sprint bei Meilenstein & Projekt zugewiesen. +Jedes Issues muss angemessen Sortiert werden, dazu werden entsprechende Tags vergeben. + +Am Ende eines Sprints muss eine Besprechung mit dem gesamten Team stattfinden, um letzte Probleme und Fragen zu besprechen. + +## Meetings + +Meetings werden vom [Scrum Master](Team#leitung) geplant und Umgesetzt. + +Die Besprechungen finden [hier](talk) statt + +### Wöchentliche Besprechung + +Einmal in der Woche sollte ein Meeting stattfinden. + +Es können alle Teammitglieder an diesem Meeting teilnehmen. + +In diesem Meeting muss von allen Teilnehmern angesprochen werden, was man in der Woche erreicht hat, wo man Fragen hat und ob man Probleme hat. + +Das Meeting darf jedoch nicht länger als ca. 15 gehen, 20 Minuten wäre so ziemlich die Obergrenze. +Der Scrum Master bestimmt die Reihenfolge in denen die Teilnehmer sprechen. + +### Monatliche Besprechung + +Einmal im Monat sollte eine Besprechung stattfinden. + +An dieser Besprechung können alle Teilnehmen, die Leitung ist hingegen dazu verpflichtet. + +Teil dieser Besprechung ist es der Stand des Projektes angesichts des laufenden Sprints. Es muss besprochen werden, ob die Stories angemessen aufgebaut sind und ob es angemessen Fortschritt gibt. +Ebenso wird über neue Isssues Diskutiert um einen laufenden Prozess zu schaffen, in dem auch zukünfitge Sprint vorbereitet werden. +Issues, die schonmal für die nächsten Sprint geplant werden bekommen den Tag ```next-version```. + +## Tests + +Inhalte kommen bald. + + +[clockify]: https://clockify.me/tracker +[milestone]: https://git.sh-edraft.de/sh-edraft.de/sh_gismo/milestones +[project]: https://git.sh-edraft.de/sh-edraft.de/sh_gismo/projects +[talk]: https://cloud.sh-edraft.de/index.php/call/iqa9afxf diff --git a/Startseite.md b/Startseite.md index 918bed8..2601a82 100644 --- a/Startseite.md +++ b/Startseite.md @@ -12,8 +12,10 @@ Dabei bietet er viele Funktionen: ## Erkunden -1. [Startseite](Startseite) -2. [Fehler melden](Issues#fehler-melden) -3. [Neue Funktion vorschlagen](Issues#neue-funktion-vorschlagen) -4. [Befehle](Befehle) -5. [Einstieg in die Entwicklung](Entwicklung) +* [Startseite](Startseite) +* [Fehler melden](Issues#fehler-melden) +* [Neue Funktion vorschlagen](Issues#neue-funktion-vorschlagen) +* [Team](Team) +* [Mitarbeiten](Mitarbeit) +* [Befehle](Befehle) +* [Einstieg in die Entwicklung](Entwicklung) diff --git a/Team.md b/Team.md new file mode 100644 index 0000000..7ea6c47 --- /dev/null +++ b/Team.md @@ -0,0 +1,29 @@ +# Das Team + +* [Leitung](leitung) +* [Entwicklung](leitung) +* [Test](leitung) + +## Leitung + +* Projektleiter + * Nicht vergeben +* Scrum Master + * [Craft_Mac](https://git.sh-edraft.de/CraftMac) +* Berater + * [DaosYeager](https://git.sh-edraft.de/DaosYeager) + +## Entwicklung + +* Leitender Entwickler + * [edraft](https://git.sh-edraft.de/edraft) +* Entwickler + * [bianyx](https://git.sh-edraft.de/bianyx) + +## Test + +* Leitender Tester + * Nicht vergeben +* Tester + * Kükchen + * Momo Sato