|| <>|| == General == * Our focus is on lightweight apps. To give you a general idea, we're looking for the kind of apps that could be reviewed for functionality and security in about an hour reading through the code. We'll also do a licensing and packaging review. * Submissions should be applications, not stand-alone documentation or media (image bundles, fonts, movies). * Apps should not be forks or updates of existing applications in the Ubuntu archive (main/universe/etc). * Apps should be well integrated into the desktop, working well with the Dash and Launcher. The ARB reviews graphical apps, not command-line apps. == Content == * Content must be suitable under the terms of the Ubuntu Code Of Conduct * Applications must be Free/Libre/Open Source software. We follow the [[http://people.canonical.com/~cjwatson/ubuntu-policy/policy.html/ch-archive.html#s-ulp|Ubuntu Licensing Policy]]. * Apps should be useful or interesting to a general audience. == Code == * You can include any libraries that are part of your app. For example, if you're writing a Python game, and you've written a Python library to store character data, it's fine to include that with your app. * If your app depends on external libraries, please make sure that your app runs on the current versions shipped in Ubuntu. (We're open to considering dependencies on backported libraries, on a case-by-case basis, but only if the backport is a new library and not an updated version of an existing library.) * No other software can depend on the application being submitted (e.g. development libraries should be submitted to main/universe or upstream to Debian instead). * Applications must be able to be built with tools & libraries in the Ubuntu archive. Apps may bundle additional libraries they depend on, but may not include new versions of already packaged libraries. * Applications are allowed to write to an app-specific directory in the user's home directory and can use gconf/gsettings to affect desktop settings if that's the result of a user's direct action in the UI and is revertable. * Unity Lenses should follow the guidelines at [[https://wiki.ubuntu.com/Unity/Lenses/Guidelines|Unity Lens Guidelines]] == Packaging == * We greatly prefer source tarballs with a standard versioning scheme, such as foobar-1.2.3.tar.gz or foobar_1.2.3.orig.tar.gz, that unpacks into a directory named foobar-1.2.3. See Debian's [[http://wiki.debian.org/UpstreamGuide#Releases_and_Versions|Upstream Guide]] for more details. * The version for your package in debian/changelog should use the format -0extras. where packagerev starts at 1 with the first upload. Example: 1.2.3-0extras11.10.1 for the first upload of a package with the upstream version 1.2.3. [Note: This is different from the standard requirements for Debian/Ubuntu packages, and will produce a lintian warnings 'binary-nmu-debian-revision-in-source' or 'binary-nmu-uses-old-version-style', which you can ignore.] You can add ~ppa1 to the end of the version for test package uploads to your own PPA. * Don't include the full package history in debian/changelog, just one entry for each version that's published to Extras. (You might have made several versions of the package in between, just merge those changes into one entry.) * Make sure the target distro in debian/changelog is the current release of Ubuntu, not an older version, or the development version that hasn't been released yet. * Your package should install most files in /opt/extras.ubuntu.com/. This includes all libraries, binaries, and configuration files. [Note: This is different from the standard requirements for Debian/Ubuntu packages, and will produce several lintian warnings for 'dir-or-file-in-opt', which you can ignore.] There are several exceptions to this general rule: * The standard files in /usr/share/doc/ are permitted, such as copyright, changelog, and examples. * The .desktop file is installed in the standard location /usr/share/applications, but must have the prefix 'extras-' added to its name. Example: extras-foobar.desktop for a package named foobar. * Lenses and scopes are installed in the standard locations, but must have the prefix 'extras-' added to their names. Example: extras-unity-lens-foobar.lens for a package named unity-lens-foobar. * Apparmor profiles under /etc/apparmor.d, the name should match the path under /opt (opt.extras.ubuntu...) * Use a debhelper and debian/compat version of 8 (this is the currently recommended version in Oneiric). * Use a Standards-Version of * 3.9.2 for oneiric (11.10) * 3.9.3 for precise (12.04) * For Python packages, python-support and python-central are deprecated. Please use dh_python2 instead. See the Debian [[http://wiki.debian.org/Python/TransitionToDHPython2|transition guide]] for more details.