KarmicFusa

Revision 7 as of 2009-07-28 22:06:52

Clear message
  • Launchpad Entry: dx-karmic-fusa

  • Packages affected: gnome-panel, gdm, ubuntu-desktop

Summary

The FUSA applet in Jaunty is tied closely to the GDM that is shipped in Jaunty. There are several large patches that Ubuntu has shipped as distro patches to add functionality into the FUSA applet including status switching for IM applications and session management support. These functionalities must be combined with the ability to switch users on the new GDM in Karmic to ensure that users do not see a regression when using the Ubuntu Desktop in Karmic.

Release Note

  • FUSA applet was replaced with a new applet enabling the same functionality but working with the upgraded infrastructure elsewhere in the release.

Rationale

  • Updated GDM changes the control interface greatly

User stories

  • Jim is getting ready for lunch and he wants to signal to his colleagues and friends that he's not at his desk. He quickly reaches for the menu and sets his status to "Away."
  • Jacque has a friend that would like to use her computer. Her settings are specific to her, but she doesn't want to close all her applications. She goes to the menu and chooses "Guest Session" in order to let her friend use her computer for a little while.
  • Alvin is done for the day and would like to shutdown his computer. He reaches for the menu, but because he has just played a mind numbing game of solitaire selects "Restart." He realizes this as the dialog pops up, which he closes and then properly selects "Shutdown."
  • It's Billy's turn on the computer but his brother was working in his homework. He selects his name from the menu so that he can use his Superman background while he's playing games without messing with his brother's session (which would get him in BIG trouble).
  • Jean is working at a customer's site which frankly she doesn't trust that much. She needs to go get a drink of water and uses the menu to quickly lock her screen before leaving her desk.
  • Future: Jerry would like to tell his friends about how he really likes the hamburger that he's eating. He flips open the menu, logs his message in the status field and rest assured that everyone knows about this great hamburger.

  • Future: Mary doesn't really like maintaining her computer, but she realizes that she has to do it sometime. After putting off all day and when shutting down her computer she sees the ability to install updates and then shutdown. She selects the feature and then leaves work happy that her computer didn't interrupt her but will be up to date in the morning when she gets back.

Assumptions

  • Empathy will be the default IM client, thus interfacing with Telepathy and Mission Control
  • gnome-session will allow for shutting down and restarting with session support
  • Rebooting into another OS is not a required feature
  • Updates on shutdown is currently not part of FUSA.
  • Microblogging support is not currently a feature required of the applet.

Design

Architecture Diagram: PNG | DOT

The design consists of making three smaller modules that implement each set of fuctionality. Mostly these smaller modules will translate them into a set of menu items that will be then communicated to the small visual element that is in the panel.

Implementation

UI Changes

Besides small tweeks the UI will remain stable.

Note: Further changes will be required if software updates on shutdown or microblogging intergration is added to the feature set. Currently that is not the plan, but may create some changes in the future if it is changed.

Code Changes

The development will reuse the current libraries and infrastructure that was developed as part of the messaging indicator project. This includes a mechanism for loading the applet and also the dbusmenu project for passing simple menus over DBus. It will then build on these adding the specific functionality required for the functionality. Hopefully, the patches already built for FUSA can be pillaged for the majority of this functionality.

In the case of having to doing microblogging functionality or software updates on shutdown those will be integrated into the appropriate modules. This would be entirely new code.

Migration

The largest migration issue with the new applet will be handling GNOME Panel settings. Previous development on the FUSA applet used the same namespace, as it was patches to an existing applet. This made it difficult for the vanilla-GNOME effort as it was difficult to excise the new features from the applet itself. It is then desirable to use a new namespace, which leads to panel configuration issues.

Fortunately, in this case, the applets should be interchangable visually. So it is only a matter of replacing the applet's settings with a pointer to a new applet. As soon as the new applet is available this migration should be attempted to figure out any possible issues with the migration. The migration will be done with a packaging script similar to other gnome-panel settings migrations that have been done in the past.

Test/Demo Plan

Testing will occur at multiple levels using different techniques. To test the individual logic components unit tests will be written using dbus-test-runner to allow for testing them in an isolated testing environment. Further tests will be integrated into the mago project for UI testing. This also includes some IM stubs for testing networking related protocols.

Unresolved issues

  • Details of the migration
  • How possible updates on shutdown will be handled
  • If microblogging is a feature, how it'll look/work
  • Migration of gnome-panel patch removing System settings


CategorySpec