13.08.2018

Aktivitäten

zwei Eclipse Instanzen mit Saros auf 1 PC, Session gestartet (einmal mit und einmal ohne VCS Support zu aktivieren (Screenshot1000)), Commit erstellt auf einer Instanz

Ergebnisse

VCS Support Einstellung ändert nichts, zweite Instanz verhält sich so als gebe es keine VCS

Nächste Schritte

kann man VCS Support aktivieren ohne das eins benutzt wird

14.08.18

Aktivitäten

Neues Projekt ohne Git mit Saros übertragen, Projekt übertragen wobei Inhalt "Derived" ist, Architektur für Sessions gelesen JTour Basics, JTour Invitation, JTour Architektur, probiert HTML GUI zu starten, Plan für Refactoring überflogen https://github.com/saros-project/saros/issues/177

Ergebnisse und Probleme

Saros unterstützt SVN (Subversion, ein anderes VCS System) und es wird auch bei Projekten gefragt die SVN nicht nutzen, Dateien mit "Derived" werden nicht per Saros geteilt und alle Unterordner ebenfalls nicht, dpp.filesystem, SarosSession und SarosSessionManager wird benutzt zum teilen des Projekts, von mir benutzes Saros besitzt keine Pull-Requests, Neues HTML GUI nicht möglich zu starten (auch nicht mit http://www.saros-project.org/html-gui)

Nächste Schritte

Abstrakten Workflow mit VCS für DPP beschreiben und hochladen zur Diskussion Git Pull Requests lösen zum sammeln von Credits von Nutzern und Erfahrung mit Saros

15-22.08.18

Aktivitäten

Ergebnisse

  • Pull-Requests wurden von anderen Nutzern diskutiert aber nicht gemerged
  • Scenario ist nach Meinung von Christian Dohnert nachvollziehbar
  • Christian Dohnert erwähnt das das Zugreifen auf das Repository des anderen die größte Schwierigkeit bereiten wird
  • Es gibt ein Erfolgsszenario um Saros und Git zu nutzen smile

Nächste Schritte

  • neue Version zum laufen bringen und Erfolgsszenario mit neuer Saros Version verifizieren
  • Anwendungsfall "Share Project … und Git?" erstellen und diskutieren

22.08

Aktivitäten

  • versucht neue Verison zum laufen zu bringen
  • Anwendungsfall "Share Project … und Git?" angefangen
  • Testfälle für "Share Project … und Git?" angefangen
  • Einarbeitung in Git Plumbing (Verständinis von .git ordner)

Ergebnisse

  • Neue Version zum Laufen zu bringen ist nicht möglich bzw. ich habe noch keine möglichkeit gefunden
  • Testfälle sind nützlicher als Anwendungsfall
  • Verständnis über Bedeutung von Inhalten .git Directory benötigt um erwartetes Verhalten zu bestimmen

Nächste Schritte

  • Lesen von git Pro / Plumbing

23-24.08

Aktivitäten

  • Lesen und Anwenden von git Pro / Plumbing
  • Angefangen Bachelorarbeit zu schreiben. Themen: Testfälle für "Session starten mit Git" und Ergebnisse, Filetransfer mit Git und Saros vergleichen

Ergebnisse

  • .git Directory verstanden
  • Transfer von Daten bei git sehr oberflächlich verstanden
  • Transfer von Saros unklar

Nächste Schritte

  • Übertragung von Daten mit Saros nachvollziehen
  • Aktuellen Stand von Saros für die Bachelorarbeit schreiben

27-28.08

Aktivitäten

  • diskutieren über UseCase für "Start new session with Git"
  • schreiben an Bachelorarbeit Themen: Aktueller Systemzustand,Sollzustand mithilfe der Diskussionen, Filetransfer bei sessionstart
  • Prototyp : Versenden einer statischen GitHub URL bei Sessionstart
  • lesen git pro / stashing

Ergebnisse

  • Prototyp hat ergeben das Debug Nachrichten nicht funktionieren und das das hinzufügen von einem Attribut bei der Klasse InvitationOfferingExtension nicht Zielstellung (Versenden einer statischen GitHub URL bei Sessionstart) erreicht

Nächste Schritte

  • Soll-Zustand (Anforderungen) in die Bachelorarbeit schreiben

Probleme

  • Filetransfer bei sessionstart nicht gut dokumentiert

bis 10.09.2018

Aktivitäten

  • Soll-Zustand in Bachelor-Arbeit
  • Verständnis von Saros Invitation

Ergebnisse

  • Bachelor-Arbeit enthält Ist und Soll Zustand für das starten einer session und File Transfer
  • Sequenzdiagramm für Saros invitation (nicht beendet)

Nächste Schritte

  • Sequenzdiagramm für Saros invitation

bis 18.09

Aktivitäten

  • Sequenzdiagramm für Saros invitation erstellt

Ergebnisse

  • Bau eines Prototyp für initialisierung einer Session mit Git Support ist Ziel der Arbeit

Nächste Schritte

  • .git Directory teilen ?
  • Prototyp für initialisierung einer Session mit Git Support

bis 01.10.18

Aktivitäten

  • Rechersche über Inhalt von .git Directory und ob es möglich und sinvoll ist ihn zu teilen
  • Bau des Prototypen (Schicken einer eigenen Nachricht mithilfe von Saros)
  • Zeitplan Bachelorarbeit

Ergebnisse

  • Keine Contra Argumente für das teilen von .git Ordner

Nächste Schritte

  • Rechersche weiterführen (u.a. Diskussion führen mit Saros und Git Entwicklern)
  • Rechersche erweitern um Alternativen zu finden (u.a. Nutzung von Git API)
  • Kontakt zu Developern von Saros um Probleme zu beheben

Probleme

  • Erstellen von Prototyp gescheitert (Fehlermeldung trotz Benutztung der Anleitung aus JBusTour)

10.10.18

Aktivitäten

  • Rechersche
  • Prototyp
  • Abwägung von Implementierungsart (Welche Tools verwende ich?)
  • Implementierung mit git bundle

Ergebnisse

  • .git Directory sollte nicht verschickt werden. Die Inhalte der Directory sind zum Teil nur lokal und würden nach dem teilen auf einem anderen System nicht mehr anwendbar sein. Die API von Git stellt die Funktionalität bereit diese Dateien automatisch für das neue System anzupassen bzw. neue Dateien zu erstellen.
  • git bundle bietet die Funktionalität ein Repository in eine Datei zu bundeln, damit sie anschließend mit beliebigen Mitteln verschickt werden kann.
  • JGit wird für die Implementierung benutzt. Es muss jedoch eine nicht-aktuelle Version genutzt werden weil die aktuellste Verison Java 1.8 benötigt aber Saros dies noch nicht unterstützt
  • Der Prototyp benötigt demnach das verschicken von Nachrichten nicht. Die Benutzung von diesen wird deshalb fallen gelassen.
  • Die Implementierung ist im core

Nächste Schritte

  • JGit für bundlen nutzen

22.10.18

Probleme

Nächste Schritte

  • JGit für bundlen nutzen

05.11.2018

Aktivitäten

Ergebnisse

  • Prototyp erlaubt das Nutzen der Befehle bundle und unbundel mithilfe von JGit

Nächste Schritte

bundeln bei Invitation implementieren
  • JGit Libary in Saros einbinden
  • Implementierungsort ausdiskutieren
  • UI für Git Support
  • Einhalten/Überprüfen der constrains
  • bundeln implementieren
  • Senden von bundle-Datei mithilfe von Saros Protokoll
unbundeln bei Invitation implementieren
  • Implementierungsort ausdiskutieren
  • unbundeln implementieren

06.11.2018

Aktivitäten

  • Abwägung von Implementierung von constrain:_gesamtes Workspace muss commitet sein_
  • Bau von Prototyp zur Implementierung von constrain:_gesamtes Workspace muss commitet sein_ mit bundeln und manuellem unbundeln dieses
  • (nicht abgeschlossen)Abwägung von Implementierungsort für das erstellen und senden von bundle

Ergebnisse und Probleme

  • constrain:_gesamtes Workspace muss commitet sein_ wird mithilfe von JGit's git status äquivalent überprüft und bei Verletzung durchgeführt
  • Implementierungsort für das erstellen und senden von bundle ist entweder im SarosSessionManager oder zuvor.
  • Versenden von Dateinen wird durch invite(user) im SarosSessionManager aufgerufen
  • Schwierigkeiten bei Vergleich von Inhalten von Workspace in Eclipse mit selctedResources von Saros

Nächste Schritte

Abwägung von Implementierungsort
  • Abwägung/Diskussion über Hinzufügen von Dateien innerhalb bundle zusätzlich zum bundle file notwendig

Ansonsten siehe 05.11

12.11.19

Aktivitäten

  • Einarbeitung in JGit: bundeln und unbundlen , JGit innerhalb von Saros
  • Besprechung mit Betreuer über Anforderung

Ergebnisse

  • Wichtigstes Feature soll das verschicken von Commits über Saros sein. Das heißt bundle soll nur Differenz zwischen Usern enthalten.
  • Zur Implementierung dürfen zunächst starke constrains über den Zustand vom Host und Client getroffen werden (z.B. Beide User besitzen einen .git Ordner, Der Host hat keine Dateien die ungestaged sind etc.). Nach einer ersten funktionierenden Version sollen diese abgeschwächt werden.

Nächste Schritte

bundeln implementieren
  • JGit Libary in Saros einbinden
  • Implementierungsort ausdiskutieren
  • UI für Git Support
  • Einhalten/Überprüfen der constrains
  • bundeln implementieren
  • Senden von bundle-Datei mithilfe von Saros Protokoll
unbundeln implementieren
  • Implementierungsort ausdiskutieren
  • Listener ausschalten

19.11

Aktivitäten

  • Schreiben von Test für bundeln (einarbeitung in TDD)
  • Implementierung von bundeln (noch nicht beendet)
  • Recherche wie erstelle ich ein kleines bundle (bundle-file enthält nur Differenz der User)

Wichtige Entscheidungen

  • Zeitaufwand beobachten für Bachelorarbeit und Seminar Professionelle SWT/ Einarbeitung in Methoden. Verhältnis ist in Ordnung
  • Unit Test vor STF Test
  • Tests unabhängig von System schreiben. D.h. die Tests sollten einen automatischen Set Up für Host und Client enthalten.

Nächste Schritte

  • JGit in Saros testen

20.11

Aktivitäten

  • Bauen von Test mit initialisierung von temporären Ordner und initialiserung von Git in diesem
  • Schreiben: Einleitung Git

Probleme

Nächste Schritte

  • Betreuer um Hilfe beim Problem "Wie kann ich JGit in Saros build integrieren" bitten
  • Bauen von Test für "erstellen von bundle mit JGit in Saros"
  • Bachelorarbeitanmeldung am 29.11

27.11.2018

Aktivitäten

  • JGit erfolgreich in Saros integriert (mithilfe von Betreuer smile )
  • Implementierung von bundeln
  • Implementierung von Set Up für Host und Client (Mit TDD)

Probleme

  • Erstellen von Tests für Set Up ist kompliziert

Wichtige Entscheidungen

  • Eigene Klasse /Facede für Nutzung von JGit erstellen. Passenden Namen wählen (Konventionen beachten).
  • Implementierung des wichtigesten Feature hat vorrang vor erstellen der Tests und dieses sollte Ende Dezember stehen.

Nächste Schritte

  • Neue Version von Eclipse und Saros und JGit auf mein System bringen
  • Github Issue mit Entwurf schreiben
  • siehe 12.11

09.12.2018

Aktivitäten

  • Nach Gespräch mit Prof. Prechelt und Betreuer Kelvin Glaß : Expose und diese Seite um grundlegende und erweiterte Funktionalität ergänzt mit Betonung welche Funktionen beim Abschluss der Arbeit in Saros enthalten sein sollen.
  • Neues Development Environment eingerichtet

Implementierung von "_Bundle_ erstellen"

  • Pull Request erstellt und nach Review überarbeitet
  • überarbeitete Version darf nicht Dateien enthalten die nicht gebraucht werden und soll deswegen erneut überarbeitet werden

Implementierung von "_Bundle_ senden"

Nächste Schritte (bis 14.12.2018)

  • Implementierung von "_Bundle_ unbundeln"

17.12.2018

Aktivitäten

Nächste Schritte (bis 21.12.2018)

Implementierung von "_Bundle_ erstellen"

Implementierung von "_Bundle_ senden"

  • Erstellen PR für die Implementierung
  • Implementieren von "Berechnung und Versenden der Differenz"

Implementierung von "_Bundle_ unbundeln"

  • Erstellen PR für die Implementierung

Implementierung von "Ignoriere Git Verzeichnisse"

  • Implementieren

12.01.2019

Aktivitäten

Implementierung von " Bundle erstellen" und "fetch von Bundle "

Implementierung von " Bundle senden"

  • Nach Antwort von Stefan Moll und Diskussion mit Betreuer entschieden das Versenden über Activity gewählt wird, weil die erwartete Transfergröße klein (< 1kB) ist.
  • Pull Request (und weitere Versuche 368 369) für Implementierung. Status: checks failed. Probleme mit formatter.
  • Implementierung von Prototyp damit nur Differenz zwischen Sender und Empfänger versendet wird. Status: Bei Nutzung der Bibliothek JGit außerhalb der Testklasse kommt es zu noclassdeffounderror

Implementierung von "Ignoriere Git Verzeichnisse"

  • Nach Diskussion im Github und anschließender Diskussion im Stand-Up ist Priorität für automatische Ignorierung des Git Verzeichnisses gesunken aufgrund des Aufwandes. Zwischenlösung: Benachrichtigung an Nutzer: Setzen sie ihr Git Verzeichnis auf "derived"(Eclipse) bzw. "excluded"(Inteliij) damit dieses nicht geteilt werden kann. Implementierung der Benachrichtigung ist Teil der Grundfunktionalität besitzt aber niedrige Priorität.

Anforderungserhebung

  • Nach Diskussion mit Betreuer ist Erhebung von Meinung von Saros Nutzern zum Git Support sinnvoll aber im Rahmen der Arbeit zu Aufwendig.

Nächste Schritte

Implementierung von " JGitFacade"

Implementierung von "_Bundle_ senden"

  • PR mit "Status: checks failed. Probleme mit formatter" überarbeiten. Fork updaten, merge mit topic branch, pull, erneut build lokal ausführen und hochladen.
  • Betreuer für Probleme bei Prototyp fragen

Implementierung von "Ignoriere Git Verzeichnisse"

PR Reviews machen

  • Mit Betreuer abwägen ob sammeln von Kudos sinnvoll(für eigene Reviews/Aufwand/genug Erfahrung).

19.01.2019

Aktivitäten

  • Im Team mit Oliver Hanßen über sein Projekt gesprochen damit ich am Reviews arbeiten kann. Refactoring Filesystem
  • Termin mit Prof. Prechelt am 07.02.2019 damit Zeitplan besprochen wird

Implementierung von " Bundle erstellen" und "fetch von Bundle "

  • Facade überarbeitet. Veränderung der Exceptionbehandlung (siehe 12.01). Entfernung von Tests der Fehler enthalten hat(siehe nächsten Punkt). Statische Methoden werden benutzt (Einfache Nutzung soll damit ermöglicht werden). Lesbarkeit erhöht durch Leerzeilen, hinzufügen von Nachrichten bei Exceptions, zusätzlichen Kommentaren und Umsortierung der Tests.
  • Mein JGit Bug Report führte zu einem Pull Request der Developer Darauf habe ich bereits geantwortet. Der Test in JGit enthält nun einen neuen Fall den ich aufgedeckt habe smile .

Implementierung von " Bundle senden"

  • Saros Developer nach der Anzahl der zu erstellenden Activitys gefragt
  • Prototyp enthält: Bundle senden und fetch beim Empfänger, Manager, Benutzer kann workDir selber auswählen mit Explorer, Ersteller des bundle-file benutzt nun seinen HEAD, Verhandlung zwischen Sender und Empfänger damit Empfänger seinen HEAD vor der erstellung an dem Ersteller übergibt damit das bundle-file klein bleibt

Nächste Schritte

  • Betreuer um Review bitten
  • (anschließend) Prototyp in PR
  • UI für Prototyp

PR Reviews machen

  • sobald Olivers PR's hochgeladen sind, daran (in maßen) arbeiten