Unity2D

Revision 21 as of 2011-12-11 15:15:26

Clear message

Unity 2D

Unity 2D's goal is to provide the Unity desktop shell on hardware platforms that cannot currently support Unity's OpenGL requirements (see Hardware Requirements for Unity for more details).

Its architecture is very close to Unity's as it only replaces the user interface elements but still shares all the same backend components. Specifically, Unity 2D replaces the panel, launcher and places components as defined in Unity's architecture overview. Moreover it does not enforce the use of Compiz as a window manager but instead uses a slightly tweaked version of Metacity.

Testing

The most current version of Unity 2D is published every day in the unity-2d-daily PPA. To add it, type the following commands in a terminal:

 sudo add-apt-repository ppa:unity-2d-team/unity-2d-daily
 sudo apt-get update
 sudo apt-get install unity-2d

To try it out, log out and log back in choosing the "Unity 2D" session in the drop-down menu at the bottom of the login screen.

Reporting Issues

Unity 2D uses Launchpad's bug tracker. Useful links:

Coding

Unity 2D's code is published on Launchpad using Bazaar.

In order to retrieve the latest code and compile it, type the following commands in a terminal:

 sudo apt-get build-dep unity-2d
 bzr branch lp:unity-2d
 cd unity-2d
 cmake .
 make

Once compiled, each Unity 2D's component (panel, launcher, places and spread) is runnable separately. In order to run the binary you just built, you first need to kill the running instances: since they are auto-restarted by default, you first need to disable this auto-restart behaviour by running the attached unity-2d-disable-restart.sh script with root privileges, and then kill the running process. For example, to run the launcher, type the following:

 sudo unity-2d-disable-restart.sh
 pkill unity-2d-launcher
 ./launcher/app/unity-2d-launcher

We recommend to use Qt Creator to hack on Unity 2D. Please note that you can open the CMakeList.txt as a QtCreator project and you will take advantage of syntax higlight, build from the IDE ecc...

Once happy with your changes, it is time to send them to the team for review and inclusion.

 bzr commit
 bzr push lp:~`bzr lp-login`/unity-2d/NAME_OF_THE_FEATURE
 bzr lp-propose-merge

You will find coding guidelines in the CODING file together with the code. The README file can be helpful to learn more about Unity 2D.

Familiarity with Bazaar is very useful in order to contribute code to Unity 2D. The Bazaar in five minutes tutorial is a great place to start learning.

Code Review Policy

A code review by a member of the Unity2D team is required for any non-trivial changes to be applied to the trunk.

Trivial changes are:

  • fixing typos in comments
  • removing unnecessary whitespace
  • adjusting bzr ignore rules

Everything else must be reviewed!

For bug fixes, additional features and graphical adjustments, a bug must be filed in Launchpad and the branch linked to this bug report before requesting the merge.

Review Flow

0. Before you start, note that any community member wishing to contribute code to Unity 2D must sign the Canonical Contributor Licence Agreement.

1. Developer uploads their branch to Launchpad and fills out the Merge Request form, detailing the changes and bug(s) fixed if applicable. Developer should select review by unity-2d-team or specific member of that team.

2. A member of the Unity 2D team will review the branch.

  • If acceptable, merge request will be set as Approved and will be automatically compiled and tested by the buildbot before merged to trunk. Should merge fail, Developer will be informed.

  • If not acceptable, reviewer will reject merge request with detailed comments explaining why. Developer can respond to these comments and apply fixes to branch, and return to step 1.

Translating

Translations are maintained on Launchpad at:

https://translations.launchpad.net/ubuntu/oneiric/+source/unity-2d/+pots/unity-2d