Ubuntu Moves Towards More Docs, A Stable API

Posted by Michael Larabel on November 01, 2011

One of the sessions held on Tuesday during the Ubuntu Developer Summit in Orlando was concerning Ubuntu developer documentation and the need for a stable desktop API.

One of the interesting sessions held this morning was entitled "Defining a stable API and docs for desktop development", in planning for the Ubuntu 12.04 LTS release next April. The official notes from this documentation / stable API session can be found on this web-page, but key items include:

- Improving the current developer.ubuntu.com portal so that it's more visually integrated and attempt to make more of the generated documentation in a standardized format, especially for the intermediate data.

- Provide better Ubuntu API documentation by publishing new coding standards and that all API documentation should have included code examples. API documentation should also move out of Wikis and into source packages so that they can be included on the Ubuntu developer web-site. To further demand greater documentation, they're also looking at generating a list of undocumented public methods/classes/functions and then to automatically file bug reports about these undocumented interfaces.

- Defined as part of the Ubuntu platform APIs are GNOME 3, GObject, libunity, libappindicator, GSettings, and Ubuntu One.

- In terms of a stable API, Canonical is looking at defining a stable API for desktop libraries and to keep that stable for API calls. "Don't think only to amateur developers, think also to professional companies. If you've investigated a little, you'll know that one of the reasons why they don't develop for Linux is why the libraries and API often changes from a distribution to another and from a release of a distribution to another." (Of course, if Canonical tried for a stable Linux kernel API or any other low-level APIs, they would have a hell of a time making that happen. This is mostly about the highest-level desktop APIs.)

- At a bare minimum for a stable API, they are looking at having developers announce whether their API are highly unstable and that no backwards compatibility is broken without "a long, known deprecation period."

- When releasing new libraries, Ubuntu plans to ensure there are API bindings available for languages such as C/Vala, C++/Qt, and Python.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Linux Desktop Security Could Be A Whole Lot Better
  2. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  3. New NVIDIA Linux Driver Supports The GeForce GTX 780
  4. Chrome 28 To Offer More Speed Improvements
  5. Digia Announces "Boot To Qt" Project
  6. X.Org Libraries Hit By Round Of Security Issues
  7. Wayland's Weston Gets Output Scaling Support
  8. Raspberry Pi Gets New Wayland Weston Renderer
  9. Debian GNU/Hurd 2013 Release Brings New Packages
  10. Intel Ultrabook Performance Is Faster With Mesa 9.2
  11. Hot Relocation HDD To SSD Support For Btrfs
Latest Forum Talk
  1. X.Org Libraries Hit By Round Of Security Issues
  2. Fedora 18 Comes To ARMv6, Raspberry Pi
  3. Linux Desktop Security Could Be A Whole Lot Better
  4. ubuntu and intel
  5. What Would You Like To See Next?
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite