Hausaufgabe: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Langenfeld (Diskussion | Beiträge)
Dejan (Diskussion | Beiträge)
 
(14 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 25: Zeile 25:
===Gitea vorbereiten===
===Gitea vorbereiten===
Um Gitea in Verbindung mit Scrum verwenden zu können, müssen vorher bestimmte Labels (siehe Abb. 1) für die Issues im Backlog eingerichtet werden. Prüfen Sie, ob diese bereits angelegt wurden. Fall nicht, legen Sie diese an:
Um Gitea in Verbindung mit Scrum verwenden zu können, müssen vorher bestimmte Labels (siehe Abb. 1) für die Issues im Backlog eingerichtet werden. Prüfen Sie, ob diese bereits angelegt wurden. Fall nicht, legen Sie diese an:
*Klicken Sie auf <code>Issues -> Labels</code>.
*Klicken Sie auf <code>Issues -> Label</code>.
*Wenn noch keine Labels eingerichtet wurden, werden Sie gefragt ob ein bereits vorkonfiguriertes Labelset verwendet werden soll. Wählen Sie hier das Set <code>Sopra</code>.
*Wenn noch keine Labels eingerichtet wurden, werden Sie gefragt ob ein bereits vorkonfiguriertes Labelset verwendet werden soll. Wählen Sie hier das Set <code>Sopra</code>.
*Prüfen sie ob Labels für Priorität und Zeitabschätzung vorhanden sind, wie auf dem Bild zu sehen (Details können variieren). Wenn keine Labels zur Zeitabschätzung und Priorisierung vorhanden sind, löschen Sie alle Labels. Wählen Sie dann wie oben beschrieben das vorkonfigurierte Labelset für das Sopra.
*Prüfen sie ob Labels für Priorität und Zeitabschätzung vorhanden sind, wie auf dem Bild zu sehen (Details können variieren). Wenn keine Labels zur Zeitabschätzung und Priorisierung vorhanden sind, löschen Sie alle Labels. Wählen Sie dann wie oben beschrieben das vorkonfigurierte Labelset für das Sopra.
Zeile 34: Zeile 34:
Prüfen sie ob in Gitea ein Sprint für die Hausaufgabe angelegt wurde. Falls nicht, legen Sie den entsprechenden Sprint (Milestone in Gitea) an:
Prüfen sie ob in Gitea ein Sprint für die Hausaufgabe angelegt wurde. Falls nicht, legen Sie den entsprechenden Sprint (Milestone in Gitea) an:
*Klicken Sie auf den Reiter <code>Issues -> Meilensteine</code>.
*Klicken Sie auf den Reiter <code>Issues -> Meilensteine</code>.
*Falls kein Sprint (Milestone) für die Hausaufgabe angezeigt wird (siehe Abb. 2), legen Sie einen Milesstone mit dem Namen <code>Sprint 00 (Hausaufgabe)</code> an.
*Falls kein Sprint (Meilenstein) für die Hausaufgabe angezeigt wird (siehe Abb. 2), legen Sie einen Milesstone mit dem Namen <code>Sprint 00 (Hausaufgabe)</code> an.
**Verwenden Sie das Datum für das Ende des Sprints das Abgabedatum auf der [[Hauptseite]].
**Verwenden Sie das Datum für das Ende des Sprints das Abgabedatum auf der [[Hauptseite]].
<br clear="all">
<br clear="all">
Zeile 62: Zeile 62:
{{RefImg|gitea_hausaufgabe_tasks_assigned.png|500px|4|Issues für die Hausaufgabe, vom Studenten akzeptiert und mit Zeitschätzung.}}
{{RefImg|gitea_hausaufgabe_tasks_assigned.png|500px|4|Issues für die Hausaufgabe, vom Studenten akzeptiert und mit Zeitschätzung.}}
Bevor Sie mit den Aufgaben beginnen, sollten Sie sich die entsprechenden Issues zuweisen (siehe Abb. 4).
Bevor Sie mit den Aufgaben beginnen, sollten Sie sich die entsprechenden Issues zuweisen (siehe Abb. 4).
*Wählen Sie eines ihrer Issues aus dem Sprintbacklog (<code>Issues -> Milestones -> Sprint 00 (Hausaufgabe)</code>) aus, indem Sie auf den Titel des Issues klicken.
*Wählen Sie eines ihrer Issues aus dem Sprintbacklog (<code>Issues -> Meilensteine -> Sprint 00 (Hausaufgabe)</code>) aus, indem Sie auf den Titel des Issues klicken.
*Geben sie eine Abschätzung wie lange Sie benötigen werden um den Issue nach der Definition of Done umzusetzten. Weisen Sie das Label <code>est: 1</code> um die Abschätzung zu geben, dass es insgesamt eine Stunde Arbeit benötigt wird. Wenn sie vermuten, dass Sie mehr als eine Stunde benötigen, wählen Sie einen entsprechend höheren Wert aus.
*Geben sie eine Abschätzung wie lange Sie benötigen werden um den Issue nach der Definition of Done umzusetzten. Weisen Sie das Label <code>est: 1</code> um die Abschätzung zu geben, dass es insgesamt eine Stunde Arbeit benötigt wird. Wenn sie vermuten, dass Sie mehr als eine Stunde benötigen, wählen Sie einen entsprechend höheren Wert aus.
* Weisen Sie sich dem Issue zu, indem Sie auf das Zahnrad neben dem Schriftzug ''Zuständig'' klicken, und ihren Benutzernamen auswählen.
* Weisen Sie sich dem Issue zu, indem Sie auf das Zahnrad neben dem Schriftzug ''Zuständig'' klicken, und ihren Benutzernamen auswählen.
Zeile 88: Zeile 88:
**[[Git#Änderungen an einer Datei| Committen]] sie ihre Änderungen: Benutzen sie die Commitnachricht <code>Added name to README.md (closes #<issue-nummer>)</code> um das entsprechende Issue in Gitea [[Git#Git und Gitea | per Commitnachricht zu schließen]].
**[[Git#Änderungen an einer Datei| Committen]] sie ihre Änderungen: Benutzen sie die Commitnachricht <code>Added name to README.md (closes #<issue-nummer>)</code> um das entsprechende Issue in Gitea [[Git#Git und Gitea | per Commitnachricht zu schließen]].
**[[Git#Änderungen in das remote Repository laden (pushen)| Synchronisieren]] sie ihre Änderungen mit dem Server. Halten Sie sich dabei and [[GitWorkflow#Tägliche Arbeit Synchronisieren| den empfohlenen Git-Workflow]]. Es it gut möglich, dass durch den Commit konflikte entstehen: Beachten sie hierzu [[Git#Konflikte lösen| die Anleitung zum Konflikte lösen in Git]], und lösen Sie die entstehenden Konflikte sinvoll auf.
**[[Git#Änderungen in das remote Repository laden (pushen)| Synchronisieren]] sie ihre Änderungen mit dem Server. Halten Sie sich dabei and [[GitWorkflow#Tägliche Arbeit Synchronisieren| den empfohlenen Git-Workflow]]. Es it gut möglich, dass durch den Commit konflikte entstehen: Beachten sie hierzu [[Git#Konflikte lösen| die Anleitung zum Konflikte lösen in Git]], und lösen Sie die entstehenden Konflikte sinvoll auf.
*Sollte es noch keine <code>.gitignore</code>-Datei in Ihrem Repository geben, erstellen Sie in ihrem Repository eine entsprechende Datei ([[Git#Dateien Ignorieren]]), sodass temporäre Dateien von Visual Stuidio und Verzeichnisse für den Compileroutput von Git ignoriert werden. Comitten Sie diese Datei und pushen Sie diese ebenfalls. Eine gute Vorlage finden Sie unter [https://github.com/github/gitignore/blob/master/VisualStudio.gitignore Github].
*Sollte es noch keine <code>.gitignore</code>-Datei in Ihrem Repository geben, erstellen Sie eine entsprechende Datei ([[Git#Dateien Ignorieren]]), sodass benutzerspezifische Dateien (z.B. *.suo, *.user, .idea/, .vscode/) und kompilierte Dateien von Git ignoriert werden. Committen Sie die .gitignore-Datei und pushen Sie diese damit sie für alle Mitarbeitenden übernommen wird. Um die .gitignore-Datei nicht manuell zusammenstellen zu müssen, gibt es Vorlagen von z.B Monogame, JetBrains oder GitHub, passen Sie diese bei Bedarf an.
** [https://github.com/MonoGame/MonoGame/blob/develop/.gitignore Monogame],
** [https://github.com/JetBrains/resharper-rider-samples/blob/master/.gitignore JetBrains IDEs]
** [https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore GitHub]
 
*Wenn Sie mit der Aufgabe fertig sind tragen Sie die Zeit, die sie für die Bearbeitung benötigt haben, unter Zeiterfassung ein und schließen sie das Issue.


'''Hinweis''': Achten Sie darauf, dass die in ihrem [[Git]] eingestellte Emailadresse mit der in Gitea eingestellten Emailadesse übereinstimmt, da Ihnen sonst keine Commits zugeordnet werden können (siehe [[Formalien]]).
'''Hinweis''': Achten Sie darauf, dass die in ihrem [[Git]] eingestellte Emailadresse mit der in Gitea eingestellten Emailadesse übereinstimmt, da Ihnen sonst keine Commits zugeordnet werden können (siehe [[Formalien]]).


'''Hinweis:''' Prüfen sie ihre Änderungen bevor sie diese per push mit dem server synchronisieren: prüfen Sie ob sie ausversehen ungewollte Dateien in den Commit aufgenommen haben und ob die Commitnachricht auch dem Inhalt entspricht. Sollten Sie im Verlauf des Projekts Codedateien mergen, prüfen Sie immer, ob das Programm nach dem Merge noch kompiliert/funktioniert.
'''Hinweis:''' Prüfen sie ihre Änderungen bevor sie diese per push mit dem server synchronisieren: prüfen Sie ob sie ausversehen ungewollte Dateien in den Commit aufgenommen haben und ob die Commitnachricht auch dem Inhalt entspricht. Sollten Sie im Verlauf des Projekts Codedateien mergen, prüfen Sie immer, ob das Programm nach dem Merge noch kompiliert/funktioniert.


==Aufgabe 4: Texte lesen==  
==Aufgabe 4: Texte lesen==  
Zeile 103: Zeile 109:


===Issues bearbeiten===
===Issues bearbeiten===
Bearbeiten sie die Aufgaben und tragen Sie entsprechende Zeiten in die Issues in Gitea ein (im Menü rechts, <code>Zeiterfassung starten</code>). Besonders bei Programmieraufgaben ist dies sinnvoll, da so eine Historie der Bearbeitung und der verbrauchten Zeit erstellt wird. Dies hilft nicht nur Ihnen bei der Planung weiterer Aufgaben und Abschätzung der dafür benötigten Zeit, sondern dient auch als Nachweis für Ihre kontinuierliche Mitarbeit (siehe [[Formalien]]).
Bearbeiten sie die Aufgaben und tragen Sie entsprechende Zeiten in die Issues in Gitea ein (im Menü rechts, <code>Zeiterfassung -> Timer starten</code>). Besonders bei Programmieraufgaben ist dies sinnvoll, da so eine Historie der Bearbeitung und der verbrauchten Zeit erstellt wird. Dies hilft nicht nur Ihnen bei der Planung weiterer Aufgaben und Abschätzung der dafür benötigten Zeit, sondern dient auch als Nachweis für Ihre kontinuierliche Mitarbeit (siehe [[Formalien]]).


===Issues schließen===
===Issues schließen===
Zeile 139: Zeile 145:


===Abgabe===
===Abgabe===
Bitte verwenden Sie zur finalen [[Abgabe#Hausaufgabe|Abgabe]] der Hausaufgabe das [[GIT|Git]]-Repository ihrer Gruppe. Der Programmier-Teil der Hausaufgabe muss als komplettes [[Visual Studio]] Projekt abgegeben werden. Sie sollten dazu einfach das Projekt in das Gruppenrepository unter <code>/abgabe/hausaufgabe/<username>/</code> comitten.
Bitte verwenden Sie zur finalen [[Abgabe#Hausaufgabe|Abgabe]] der Hausaufgabe das [[GIT|Git]]-Repository ihrer Gruppe. Der Programmier-Teil der Hausaufgabe muss der komplette Projektordner (ab dem Verzeichnis, das die Projektdatei  <code>*.sln</code>  enthält) abgegeben werden. Sie sollten dazu einfach das Projekt in das Gruppenrepository unter <code>/abgabe/hausaufgabe/<username>/</code> comitten.


Bitte vergewissern Sie sich vorher noch einmal, ob eine entsprechende [[Git#Dateien Ignorieren|.gitignore Datei]] angelegt ist, damit auschließlich relevante Projektdateien (z.B.: die Solution und Codedateien) aber keine temporären Dateien im Repository eingecheckt werden.
Bitte vergewissern Sie sich vorher noch einmal, ob eine entsprechende [[Git#Dateien Ignorieren|.gitignore Datei]] angelegt ist, damit auschließlich relevante Projektdateien (z.B.: die Solution und Codedateien) aber keine temporären Dateien im Repository eingecheckt werden.
Zeile 145: Zeile 151:
==Aufgabe 6: Abgabe finalisieren==
==Aufgabe 6: Abgabe finalisieren==


Wenn Sie in Ihrer Gruppe die Aufgaben als letztes abschließen (d.h. Sie den letzten Issue im Sprintbacklog schließen) fällt Ihnen die Aufgabe zu, den Sprit für Ihre Gruppe abzuschießen ([[GitWorkflow#Sprint Abschließen|vgl. Sprint Abschließen]]):  
Wenn Sie in Ihrer Gruppe die Aufgaben als letztes abschließen (d.h. Sie den letzten Issue im Sprintbacklog schließen) fällt Ihnen die Aufgabe zu, den Sprint für Ihre Gruppe abzuschießen ([[GitWorkflow#Sprint abschließen|vgl. Sprint Abschließen]]):  




Zeile 151: Zeile 157:
Der Fortschritt der während des Sprints erzielt wurde (Inkrement) muss auf den <code>release</code> branch übertragen werden, damit trotz weiterer Arbeit immer eine auslieferbare Version verfügbar ist. In den auf die Hausaufgabe folgenden Sprints gehört dies zu den aufgaben des Product owners.  
Der Fortschritt der während des Sprints erzielt wurde (Inkrement) muss auf den <code>release</code> branch übertragen werden, damit trotz weiterer Arbeit immer eine auslieferbare Version verfügbar ist. In den auf die Hausaufgabe folgenden Sprints gehört dies zu den aufgaben des Product owners.  
*Schließen Sie das Sprintbacklog (<code>Issues -> Meilensteine -> Sprint 00 (Hausaufgabe) -> Schießen</code>).
*Schließen Sie das Sprintbacklog (<code>Issues -> Meilensteine -> Sprint 00 (Hausaufgabe) -> Schießen</code>).
*Erstellen sie einen [[Gitea#Pullrequest|Pullrequest]] (siehe Abb. 8), sodass der aktuelle Stand von <code>main</code> nach <code>release</code> übertragen werden kann.  Gehen Sie wie folgt vor:
*Erstellen sie einen [[Gitea#Pull Request|Pullrequest]] (siehe Abb. 8), sodass der aktuelle Stand von <code>main</code> nach <code>release</code> übertragen werden kann.  Gehen Sie wie folgt vor:
**Klicken Sie in Gitea auf den Reiter <code>Code -> Branch: main</code>.
**Klicken Sie in Gitea auf den Reiter <code>Code -> Branch: main</code>.
**Drücken Sie auf den Button <code>Neuer Pull-Request</code>.
**Drücken Sie auf den Button <code>Neuer Pull-Request</code>.
Zeile 159: Zeile 165:


Die Änderungen die Sie und ihre Gruppe während des Hausaufgabensprints gemacht haben, befinden sich nun auch auf dem <code>release</code>-Branch.
Die Änderungen die Sie und ihre Gruppe während des Hausaufgabensprints gemacht haben, befinden sich nun auch auf dem <code>release</code>-Branch.
===Hinweise===
*Falls Sie Probleme beim Starten der Anwendung haben, schauen Sie zuerst in die [[FAQ]] und in das [https://discourse.sopranium.de Discourse].
*Möglicherweise wird bei Ihnen kein Sound abgespielt, obwohl dies Ihrer Einschätzung nach eigentlich der Fall sein sollte. Prüfen Sie in diesem Fall, ob die Installation der [https://www.microsoft.com/en-us/download/details.aspx?id=35 DirectX Runtime] das Problem behebt.


[[Kategorie:Organisation]]
[[Kategorie:Organisation]]
[[Kategorie:Entwurf]]
[[Kategorie:Entwurf]]