Huge rewrite of package classification system. This adds two new major features:
Devel version class now exists in addition to newest.
The idea is to track stable and devel/unstable version independently, e.g. if some repository packages 2.0alpha1 version of some package, it no longer makes 1.234 (which is latest known stable version) outdated in other repositories. Any repository may have newest and devel version at the same time, and is considered up to date if either is present. Devel versions may still become outdated as soon as newer devel version is available.
Note that devel status is set through rule system, so this feature is not available for too many packages yet. Reports on packages which have unstable branches are appreciated. We're also considering enabling this globally for all alpha/beta/pre versions.
To see this feature in action, check out glib metapackage.
Legacy version class now exists in addition to outdated.
The idea here is that if multiple versions of the same package exist in a repository, older ones are specifically preserved for purposes of compatibility and user convenience and are not meant to be updated. So, instead of outdated, they are now marked as legacy and are not accounted for outdated counts and metapackage lists.
To see this feature in action, check out phrack metapackage.
Here's an example set of package versions to demonstrate these new features:
- Repository A: 2.0beta1 1.1 (latest devel and latest normal versions)
- Repository B: 2.0alpha1 1.0 (both devel and normal versions outdated)
- Repository C: 1.1 1.0 0.5 (latest version and a set of legacy versions)
This change introduced additional minor improvements, such as more accurate statistics counting (no more discrepancy between statistics and number of actual items in e.g. outdated metapackages list) and better badges rendering (ignored versions are no longer shown on the badge as long as there are other correct verions).