From d08cfde4d479cd5d7546eb15ebf26b75a2d64707 Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sun, 13 Apr 2025 10:28:29 +0200 Subject: [PATCH 1/7] Add scoring prompt for Commit Messages --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index b765cb0..68219a8 100644 --- a/README.md +++ b/README.md @@ -1 +1,13 @@ # 03_LLM_Assignments + +## Prompt +Du bist ein Experte für Softwareentwicklung und Git. Deine Aufgabe ist es, Git-Commit-Nachrichten nach ihrer Qualität zu bewerten. Orientiere dich an den Best Practices von Chris Beams: +1. Verwendung des Imperativs: Der Titel (erste Zeile) beginnt mit einem Befehlswort (z. B. „Fix“, „Add“, „Update“). Kein „Fixed“ oder „Added“. +2. Länge des Titels: Der Titel ist maximal 50 Zeichen lang. +3. Trennung von Titel und Body: Titel und Body sind durch eine Leerzeile getrennt. +4. Erklärung im Body: Der Body erklärt, warum die Änderung gemacht wurde (nicht nur was geändert wurde). +5. Klarheit: Die Nachricht ist klar und einfach zu verstehen, ohne unnötige Worte. +6. Keine vagen Aussagen: Die Nachricht enthält keine vagen oder nicht hilfreichen Begriffe wie „Fix“ oder „Update“ ohne weitere Erklärung. +7. Details zur Änderung: Die Nachricht beschreibt, was genau geändert wurde und wie die Änderung das Projekt verbessert. + +Für jede der oben genannten Regeln erhält die Commit-Nachricht maximal einen Punkt. Bewerte die Nachricht entsprechend, ob sie der jeweiligen Regel entspricht (1 Punkt) oder nicht (0 Punkte). Das maximale Bewertungsergebnis sind 7 Punkte. \ No newline at end of file -- GitLab From d32ddfba1aceac782eb802bbe66f7f1caf7bb0ef Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sun, 13 Apr 2025 10:36:49 +0200 Subject: [PATCH 2/7] Add ChatGPT scoring results for 5 commits from the Excel sheet 'Good' --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 68219a8..b583ecf 100644 --- a/README.md +++ b/README.md @@ -10,4 +10,13 @@ Du bist ein Experte für Softwareentwicklung und Git. Deine Aufgabe ist es, Git- 6. Keine vagen Aussagen: Die Nachricht enthält keine vagen oder nicht hilfreichen Begriffe wie „Fix“ oder „Update“ ohne weitere Erklärung. 7. Details zur Änderung: Die Nachricht beschreibt, was genau geändert wurde und wie die Änderung das Projekt verbessert. -Für jede der oben genannten Regeln erhält die Commit-Nachricht maximal einen Punkt. Bewerte die Nachricht entsprechend, ob sie der jeweiligen Regel entspricht (1 Punkt) oder nicht (0 Punkte). Das maximale Bewertungsergebnis sind 7 Punkte. \ No newline at end of file +Für jede der oben genannten Regeln erhält die Commit-Nachricht maximal einen Punkt. Bewerte die Nachricht entsprechend, ob sie der jeweiligen Regel entspricht (1 Punkt) oder nicht (0 Punkte). Das maximale Bewertungsergebnis sind 7 Punkte. + +## Bewertung von 5 Git Commit Messages (Excel-Tabelle "Good") +| Commit Message | Score by ChatGPT | Score by Copilot | +|-----------------|-------------------|-------------------| +| Fix crash on login due to null user token | 4 | | +| Rework the @PropertySource parsing logic recently changed in commit 7c608886 to deal with the same source appearing on a @Configuration class and an @Import class | 4 | | +| Issue: SPR-12059 | 1 | | +| Update HierarchicalUriComponents.toUri() to only prepend a missing '/' when the scheme, user info, host or port are specified. This makes the toUri() method behave in the same way as .toUriString() and allows relative URIs to be created. | 5 | | +| UriComponentsBuilder supports query without value | 4 | | \ No newline at end of file -- GitLab From 2f2679126b5c525229c1425a2b84c811b44644d3 Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sun, 13 Apr 2025 10:39:14 +0200 Subject: [PATCH 3/7] Add Copilot scoring results for 5 commits from the Excel sheet 'Good' --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b583ecf..0320672 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ Für jede der oben genannten Regeln erhält die Commit-Nachricht maximal einen P ## Bewertung von 5 Git Commit Messages (Excel-Tabelle "Good") | Commit Message | Score by ChatGPT | Score by Copilot | |-----------------|-------------------|-------------------| -| Fix crash on login due to null user token | 4 | | -| Rework the @PropertySource parsing logic recently changed in commit 7c608886 to deal with the same source appearing on a @Configuration class and an @Import class | 4 | | -| Issue: SPR-12059 | 1 | | -| Update HierarchicalUriComponents.toUri() to only prepend a missing '/' when the scheme, user info, host or port are specified. This makes the toUri() method behave in the same way as .toUriString() and allows relative URIs to be created. | 5 | | -| UriComponentsBuilder supports query without value | 4 | | \ No newline at end of file +| Fix crash on login due to null user token | 4 | 4 | +| Rework the @PropertySource parsing logic recently changed in commit 7c608886 to deal with the same source appearing on a @Configuration class and an @Import class | 4 | 4 | +| Issue: SPR-12059 | 1 | 1 | +| Update HierarchicalUriComponents.toUri() to only prepend a missing '/' when the scheme, user info, host or port are specified. This makes the toUri() method behave in the same way as .toUriString() and allows relative URIs to be created. | 5 | 4 | +| UriComponentsBuilder supports query without value | 1 | 1 | \ No newline at end of file -- GitLab From 600597fa4aba29c799e6d25bce71fafeea240299 Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sun, 13 Apr 2025 10:48:31 +0200 Subject: [PATCH 4/7] Add ChatGPT scoring results for 5 commits from the Excel sheet 'Bad' --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0320672..8589d6a 100644 --- a/README.md +++ b/README.md @@ -19,4 +19,14 @@ Für jede der oben genannten Regeln erhält die Commit-Nachricht maximal einen P | Rework the @PropertySource parsing logic recently changed in commit 7c608886 to deal with the same source appearing on a @Configuration class and an @Import class | 4 | 4 | | Issue: SPR-12059 | 1 | 1 | | Update HierarchicalUriComponents.toUri() to only prepend a missing '/' when the scheme, user info, host or port are specified. This makes the toUri() method behave in the same way as .toUriString() and allows relative URIs to be created. | 5 | 4 | -| UriComponentsBuilder supports query without value | 1 | 1 | \ No newline at end of file +| UriComponentsBuilder supports query without value | 1 | 1 | + +## Bewertung von 5 Git Commit Messages (Excel-Tabelle "Bad") +| Commit Message | Score by ChatGPT | Score by Copilot | +|-----------------|-------------------|-------------------| +| refactoring .testsuite .aop.aspectj tests in preparation for migration to .context | 3 | | +| re-adding mock.jndi.* artifacts to .orm test codebase eliminated after moving away from svn:externals | 4 | | +| IN PROGRESS - issue SPR-5599: Hook @Configuration class processing into <context:component-scan/> and <context:annotation-config/> through AnnotationConfigUtils#registerAnnotationConfigProcessors | 3 | | +| + Adding POC tooling integration points, namely AbstractConfigurationPostProcessor and allowing for tooling-specified ClassLoader for use with ASM parsing ++ Eliminated ModelMethod in favor of BeanMethod throughout | 6 | | +| polishing | 2 | | \ No newline at end of file -- GitLab From 53ed2dee04d1364af059e82d5c9539fc0d487838 Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sun, 13 Apr 2025 11:21:15 +0200 Subject: [PATCH 5/7] Add Copilot scoring results for 5 commits from the Excel sheet 'Bad' --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8589d6a..1163701 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,8 @@ Für jede der oben genannten Regeln erhält die Commit-Nachricht maximal einen P ## Bewertung von 5 Git Commit Messages (Excel-Tabelle "Bad") | Commit Message | Score by ChatGPT | Score by Copilot | |-----------------|-------------------|-------------------| -| refactoring .testsuite .aop.aspectj tests in preparation for migration to .context | 3 | | -| re-adding mock.jndi.* artifacts to .orm test codebase eliminated after moving away from svn:externals | 4 | | -| IN PROGRESS - issue SPR-5599: Hook @Configuration class processing into <context:component-scan/> and <context:annotation-config/> through AnnotationConfigUtils#registerAnnotationConfigProcessors | 3 | | -| + Adding POC tooling integration points, namely AbstractConfigurationPostProcessor and allowing for tooling-specified ClassLoader for use with ASM parsing -+ Eliminated ModelMethod in favor of BeanMethod throughout | 6 | | -| polishing | 2 | | \ No newline at end of file +| refactoring .testsuite .aop.aspectj tests in preparation for migration to .context | 3 | 3 | +| re-adding mock.jndi.* artifacts to .orm test codebase eliminated after moving away from svn:externals | 4 | 4 | +| IN PROGRESS - issue SPR-5599: Hook @Configuration class processing into <context:component-scan/> and <context:annotation-config/> through AnnotationConfigUtils#registerAnnotationConfigProcessors | 3 | 3 | +| + Adding POC tooling integration points, namely AbstractConfigurationPostProcessor and allowing for tooling-specified ClassLoader for use with ASM parsing + Eliminated ModelMethod in favor of BeanMethod throughout | 6 | 4 | +| polishing | 2 | 2 | \ No newline at end of file -- GitLab From 3c796908097cae13a2c15ab3344a23f40c9e96b8 Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sun, 13 Apr 2025 12:16:25 +0200 Subject: [PATCH 6/7] Add README.md with Meta-Prompt --- README.md | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1163701..98488cf 100644 --- a/README.md +++ b/README.md @@ -28,4 +28,70 @@ Für jede der oben genannten Regeln erhält die Commit-Nachricht maximal einen P | re-adding mock.jndi.* artifacts to .orm test codebase eliminated after moving away from svn:externals | 4 | 4 | | IN PROGRESS - issue SPR-5599: Hook @Configuration class processing into <context:component-scan/> and <context:annotation-config/> through AnnotationConfigUtils#registerAnnotationConfigProcessors | 3 | 3 | | + Adding POC tooling integration points, namely AbstractConfigurationPostProcessor and allowing for tooling-specified ClassLoader for use with ASM parsing + Eliminated ModelMethod in favor of BeanMethod throughout | 6 | 4 | -| polishing | 2 | 2 | \ No newline at end of file +| polishing | 2 | 2 | + +# Optional Assignment - Let an LLM create the Scoring Prompt + +## Meta-Prompt: +Du bist dazu bestimmt, Git-Commit-Nachrichten gemäß den 7 Regeln von Chris Beams zu bewerten. Deine Aufgabe ist es, einen Bewertungsprompt zu erstellen, der Commit-Nachrichten nach der Reihe der folgenden 7 Regeln prüft, ob sie diese Regeln einhalten: + +https://cbea.ms/git-commit/#seven-rules + +Dein Ziel ist es, einen Bewertungsprompt zu erstellen, der die Commit-Nachricht nach diesen 7 Regeln prüft. Die Punktzahl wird wie folgt vergeben: + +- 1 Punkt: Wenn die Commit-Nachricht der Regel entspricht. +- 0 Punkte: Wenn die Commit-Nachricht nicht der Regel entspricht. + +Am Ende der Bewertung addierst du die Punkte aus jeder Regel und gibst die Gesamtnote auf einer Skala von 0 bis 7 an. + +## Bewertungsprompt (vom Meta-Prompt erzeugt): + +Bitte bewerte die folgende Commit-Nachricht anhand der 7 Regeln aus Chris Beams' Blogpost. +Jede Regel sollte einzeln bewertet werden. Gib zu jeder Regel eine Punktzahl von 0 oder 1 und eine kurze Begründung, warum die Commit-Nachricht der jeweiligen Regel entspricht oder nicht. Am Ende addiere die Punktzahlen und gib eine Gesamtbewertung von 0 bis 7 an. + +1. Trenne Betreff und Textkörper mit einer Leerzeile: + + Hat die Commit-Nachricht Betreff und Textkörper durch eine Leerzeile getrennt? + + Punktzahl (0 oder 1): [Begründung] + +2. Begrenze den Betreff auf 50 Zeichen: + + Hat der Betreff maximal 50 Zeichen? + + Punktzahl (0 oder 1): [Begründung] + +3. Setze den Betreff groß: + + Ist der Betreff großgeschrieben? + + Punktzahl (0 oder 1): [Begründung] + +4. Verwende den Imperativ im Betreff: + + Wird der Imperativ verwendet (z. B. „Füge hinzu“, „Verbessere“, „Entferne“) im Betreff? + + Punktzahl (0 oder 1): [Begründung] + +5. Beende den Betreff nicht mit einem Punkt: + + Endet der Betreff nicht mit einem Punkt? + + Punktzahl (0 oder 1): [Begründung] + +6. Wickele den Textkörper bei 72 Zeichen: + + Wird der Textkörper bei 72 Zeichen umgebrochen? + + Punktzahl (0 oder 1): [Begründung] + +7. Erkläre im Textkörper was und warum, nicht wie: + + Wird im Textkörper erklärt, was getan wurde und warum, ohne detaillierte Anweisungen zum „Wie“? + + Punktzahl (0 oder 1): [Begründung] + + +Addiere die Punktzahlen aus den einzelnen Regeln. Die maximale Punktzahl ist 7, wenn alle Regeln vollständig eingehalten wurden. + + Gesamtbewertung (0–7) \ No newline at end of file -- GitLab From 330b7ff57fae769c0e127f079685d2a291396177 Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sun, 13 Apr 2025 20:13:48 +0200 Subject: [PATCH 7/7] Add prompts for TDD implementation and testing in Assignment 02 Designs a prompt that generates a well-formulated commit message based on a given task description. The prompt follows Chris Beams' 7 rules for meaningful commit messages and ensures clarity, structure, and consistency when documenting code changes. --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 98488cf..8a4ed6e 100644 --- a/README.md +++ b/README.md @@ -94,4 +94,14 @@ Jede Regel sollte einzeln bewertet werden. Gib zu jeder Regel eine Punktzahl von Addiere die Punktzahlen aus den einzelnen Regeln. Die maximale Punktzahl ist 7, wenn alle Regeln vollständig eingehalten wurden. - Gesamtbewertung (0–7) \ No newline at end of file + Gesamtbewertung (0–7) + +# Optional Assignment - Create a Commit Message using Prompt Engineering + +## Promt: +| Commit-Promt | Commit-Nachricht | Bewertung | +|-------------------------------------------------------------|--------------------------------|-----------| +| Erstelle eine Git-Commit-Nachricht für die folgende Aufgabe:"Schreibe Methode convert(n: int) -> str, die eine Zahl in einen String umwandelt." Die Commit-Nachricht soll den 7 Regeln für gute Git-Commit-Nachrichten von Chris Beams folgen: https://cbea.ms/git-commit/#seven-rules | Schreibe Methode convert(n: int) -> str zur Umwandlung einer Zahl in String <br> <br> Dieser Commit fügt die Methode convert(n: int) -> str hinzu, die eine ganzzahlige Eingabe in eine String-Repräsentation der Zahl umwandelt. Die Methode bietet eine einfache Möglichkeit, Zahlen in einen für Ausgaben geeigneten Format zu konvertieren.<br> <br> Diese Implementierung deckt die grundlegende Umwandlung ab und ist auf erweiterbare Anforderungen ausgelegt. | 6 | +| Erstelle eine Git-Commit-Nachricht für die folgende Aufgabe:"Implementiere Calculator.add(a, b)-Methode und schreibe dazu einen Unit-Test." Die Commit-Nachricht soll den 7 Regeln für gute Git-Commit-Nachrichten von Chris Beams folgen: https://cbea.ms/git-commit/#seven-rules | Implementiere Methode add(a, b) in Calculator mit Unit-Test <br> <br> Dieser Commit fügt die Methode add(a, b) zur Calculator-Klasse hinzu und ergänzt einen zugehörigen Unit-Test. Die Methode gibt die Summe der beiden übergebenen Zahlen zurück. <br> <br> Der Test stellt sicher, dass die Addition korrekte Ergebnisse für typische Eingabewerte liefert und die grundlegende Funktionalität abgedeckt ist. | 7 | +| Erstelle eine Git-Commit-Nachricht für die folgende Aufgabe:"Füge Test für andere Studenten-Implementierungen hinzu (other.student.Calculator)" Die Commit-Nachricht soll den 7 Regeln für gute Git-Commit-Nachrichten von Chris Beams folgen: https://cbea.ms/git-commit/#seven-rules | Füge Test für andere Studenten-Implementierungen hinzu <br> <br> Dieser Commit ergänzt einen Test, der gezielt die Implementierungen anderer Studierender testet, insbesondere die Klasse other.student.Calculator. Ziel ist es, die Kompatibilität und Korrektheit der eigenen Lösung im Vergleich zu alternativen Implementierungen sicherzustellen. <br> <br> Der Testlauf kann bei der Validierung im Rahmen von Übungen oder Abgabenprozessen eingesetzt werden.| 6 | +| Erstelle eine Git-Commit-Nachricht für die folgende Aufgabe:"Füge Testlauf hinzu, bei dem andere Tests gegen deine Implementierung laufen" Die Commit-Nachricht soll den 7 Regeln für gute Git-Commit-Nachrichten von Chris Beams folgen: https://cbea.ms/git-commit/#seven-rules | Füge Testlauf hinzu für Ausführung anderer Tests gegen eigene Lösung <br> <br> Dieser Commit ergänzt einen Testlauf, bei dem vorhandene Tests gegen die eigene Implementierung ausgeführt werden. Dadurch kann sichergestellt werden, dass die Lösung mit den bestehenden Erwartungen übereinstimmt und korrekt funktioniert. <br> <br> Der Testlauf kann sowohl manuell als auch im Rahmen automatisierter Testprozesse verwendet werden.| 6 | \ No newline at end of file -- GitLab