This is the roadmap document of the IntelliJ version of Saros.
Status: in progress
The first Alpha of Saros/I will have the following features and limitations:
- Using already configured XMPP-accounts (from a Saros/E setup; accounts are stored in ~/.saros/).
- Entering credentials of accounts that already exist on an XMPP-server.
- Missing: Adding new XMPP-contacts to the roster.
- Missing: Creating new XMPP-accounts from within Saros/I.
Starting a Session
- Starting a new session by sharing a single module from your project.
- Accepting an invitation by reusing an existing module (local differences will be overridden).
- Accepting an invitation by creating a new module.
Working on Source Code together
- Editing shared files concurrently.
- Missing: Adding or deleting files from the share project. (Stopping and restarting the session is required to reflect such changes.)
- Missing: Consistency watchdog and recovery.
Awareness Information and Follow Mode
- Missing: Follow Mode (mirroring a session partner's navigation and scrolling).
- Missing: Selection and Contribution annotations (highlighting of remote text selections and recent changes of session partners).
Patches go to the branch
release/intellij-0.1.0 in our Gerrit review system. The current build can be installed from this custom Intellij plugin repository: https://get-saros.herokuapp.com/intellij-alpha/updatePlugins.xml
In order to mirror filesystem actitivies properly, e.g., adding and deleting files (see next milestone), the current Core filesystem interfaces need to be simplified. This affects all parts of Saros, including the Eclipse plugin. For instance, the Eclipse plugin uses IProject instances to represent both a container with Saros-shared resources as well as units in the Eclipse workspace. The correct Saros abstraction would be some arbitraty Root which both Host and Non-Hosts locate in their local filesystem and under which Saros synchronizes all files and folders.
Properly handling the creation and deletion of files in a Saros session requires a proper implementation of the SharedResourceManager, which in turn will be much easier with a clean abstraction from the respective IDE's filesystem.
Requires a working management of shared resources.
The Follow Mode should be implemented using the FollowModeManager.