Preparing and Releasing a functioning alpha of Saros/I

worked on by: Tobias Bouschen
due on: 2017-05-26
presentation: 2017-06-29, T9\137, 10:15

thesis: PDF


There has already been a lot of work put into Saros/I, the Saros plugin for IntelliJ. It is nevertheless a long way away from matching its Eclipse counterpart regarding its features and even basic functionalities.

With this bachelors thesis I am now trying to prepare and release a first functioning alpha build of the Saros plugin for IntelliJ. The feature set of this alpha version looks as follows: A user can...
  • create and manage XMPP accounts
  • open or join a session (with another Saros/I instance)
  • share a single module at the beginning of a session (only from host to client)
  • work synchronously on shared files
  • create and share new files and folders during a session

In order to do so I have to fix some of the already implemented features and add a couple of new ones needed for basic usability. After the alpha is completely implemented, the final steps packaging the alpha version and then documenting and releasing it on the Saros homepage.

During this thesis, I discovered other problems with the needed functionality and fundamental designs of Saros/I, which significantly increased the scope of this thesis. This lead to me not reaching the first milestone, as the fixes for the discovered problems were to time consuming. Nevertheless, this thesis set a good base for the future work on Saros/I by providing an overview of the needed fixes and improving the codebase.

Thesis Requirements

Creating a Saros/I alpha version featuring a (stable) basic functionality (see above for the feature set) that can be publicly released.

Milestones and Planning

# Past Date CW Goals Changes
1 - TBD CWXX The basic functionality of Saros/I is working correctly TBD
2 - TBD CWXX The basic functionality of the HTML GUI is implemented and working correctly TBD
3 - TBD CWXX The first alpha is build and released TBD

1 - The basic functionality of Saros/I is working correctly

This means that the defect/s causing problems with the synchronization is/are fixed. After such a fix is implemented, the rest of the functionality is tested (and further fixes are implemented if any other defects are discovered).

2 - The basic functionality of the HTML GUI is implemented and working correctly

This means that it is further determined if any other features are needed to create a basic functionality. The basic set of needed features mainly consist of XMPP account management and the switch to the HTML GUI. If any other needed features are found, they will be added to the list.

3 - The first alpha is build, documented and released

This means that the build plugin is officially released. Such a release consists of making it publicly available for download (for example on the Saros site) and creating a tutorial stating wich features are included as well as how to install and use the alpha version.

To fix:

Synchronization between Saros/I instances
There currently seems to be a defect in the Saros/I implementation which makes the synchronization between Saros instances very inconsistent. This often results in local changes of some or all files in the module not being shared with other users in the session. This failure is noted in the Saros bug tracker entry bug #872. Finding this defect could potentially be very time intensive since there are no obvious signs that point to a defect (like thrown exceptions or logged errors).

Rest of the functionality
After the basic synchronization was fixed, the tests of the rest of the needed functionality revealed that all the functionality dealing with working on files and their contents need fixing as well. An overview of the broken functionality can be viewed in the Saros/I bug tracker.

To implement:

Basic XMPP account management
The currents version of Saros/I only provides the options to add an already existing account. Once added this account could neither be changed nor deleted. Since the old GUI is to be replaced with the HTML GUI, I will add adapters for these features to the HTML GUI (since there is already a working basic API for these features in the Saros core) and configure Saros/I to use the HTML GUI by default.

Problems during this thesis

During my work on a fix that would allow the creation of new shared files during a session, I noticed that the resource management of Saros/I sessions had fundamental issues caused by a faulty design decision on how to handle file paths. This lead to my decision of completely rewriting the resource handling in Saros/I sessions. Due to this taking more time than expected, not all of the basic functionality of Saros/I could not fixed, meaning that the fist milestone was never reached.
Topic revision: r29 - 17 Jul 2017, TobiasBouschen
  • Printable version of this topic (p) Printable version of this topic (p)