|
Create separate package objects for the binary and source packages. This
is generally a simplification to the data model.
One slight wrinkle is that stale file detection needs to be aware that
.hint files may now be used by both a binary and source packages, and so
should only be removed if both packages are stale. (Since the source
package cannot be stale if the binary package isn't, we solve this by
making the source package control the staleness of the hint, in that
case [except for archives which are sourceless for permitted reasons,
which we now explicitly annotate as such]).
'external-source' is now always followed, rather than checking for the
source for a given version in the current package first. This exposes a
handful of (migrated) hints which contain an unnecessary
external-source.
Write separate package summary pages for source packages
Always create binary packages when uploading to allow replacement hints,
otherwise, only create a package if there's archives for it to contain
to avoid creating empty packages from the relarea.
Note: since we don't put source packages into a separate namespace,
there is a potential collision if both 'foo' (source package 'foo-src'),
and 'foo-src' (source package 'foo-src-src') exist. That would be daft,
and there aren't currently any examples of this. Forbid package names
ending in '-src' to avoid such problems.
|