What are the requirements for featuring a package?

I maintain the featured page to provide a guide to great tweaks, utilities, and other software packages available from default sources. Yay!

This list of criteria explains how I select featured packages for the Featured Extensions and Tweaks sections. I may update this list later.

(Note that Sponsoring Products placement is paid for by developers instead of selected by Cydia staff, but those products should still generally correspond to this list to be eligible.)

—Britta

1) It Is Very Popular

This list is a compilation of packages that many people already recommend to each other as favorites and must-haves, as seen in discussions on many forums, blogs, and more.

In order to be on this list, a package has to be very popular, widespread, and well-liked already. Packages that have just been released are unlikely to be featured, but maybe someday!

2) It Is Generally Interesting

These packages must be of interest to the majority of the user community. Featured packages cannot, for example, be a language support package, or modify an annoyance that a minority of users run into.

3) It Is Clearly Explained

Each description should carefully describe what the package does and how to make it work, including screenshots as appropriate. If using the package depends on configuring Settings, Activator, or SBSettings, the description should mention this.

4) It Works on Many Firmwares

Packages should be useful for the majority of users with current versions of the iOS firmware, but they should also work reasonably everywhere, including on somewhat older firmwares and devices.

Packages should also not have any glaring "this couldn't possibly work on a new firmware" features. For the inevitable change, the packagers need to be on their game for matching Apple's new revisions.

5) It Does not "Patch" Files

If a package does any modifications to the code of any other process this modification must be done using techniques from MobileSubstrate (runtime code modification) rather than directly patching the file.

6) It Has No Backup/Restore Steps

Under no circumstance should a package backup/restore an existing file from disk and replace it with a different file during installation, uninstallation, or during normal usage.

7) It Supports Mobile Safe Mode

If the package injects any code what-so-ever into SpringBoard it must be loaded by MobileSubstrate so that, in case of instability, Mobile Safe Mode can unload the extension and return the device to a usable state.

This particular requirement may be lifted, but only if it is a requirement of the fundamental functionality of the application: that it couldn't possibly be implemented in a way that didn't (this is very rare: typically supporting Mobile Safe Mode takes 5 minutes, even if you weren't previously using MobileSubstrate at all for anything).

8) It Is Generally Not Annoying

A package may include ads in its interface, but these ads should not be intrusive or overly irritating.