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. Raspberry Pi Gets New Wayland Weston Renderer
  2. Debian GNU/Hurd 2013 Release Brings New Packages
  3. Intel Ultrabook Performance Is Faster With Mesa 9.2
  4. Hot Relocation HDD To SSD Support For Btrfs
  5. Phoronix Test Suite 4.6.0 "Utsira" Released
  6. New Intel X.Org Driver Supports All Of Haswell
  7. SQLite Now Faster With Memory Mapped I/O
  8. Microsoft Releases Skype For Linux 4.2, Has Bug-Fixes
  9. Qt For Tizen Launches, Based On Qt 5.1
  10. KTAP Released For Linux Kernel Dynamic Tracing
  11. Linux 3.10-rc2 Kernel Takes In A Few Extra Pulls
Latest Forum Talk
  1. Humble Indie Bundle Finally Sells Out
  2. Linux's "Ondemand" Governor Is No...
  3. Hot Relocation HDD To SSD Support For Btrfs
  4. Kubuntu, KDE Has Little Hope For Ubuntu's Mir
  5. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  6. Debian GNU/Hurd 2013 Release Brings New Packages
  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