[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: version tracking plans?

On Fri, Aug 01, 2003 at 11:40:34AM +1000, Anthony Towns wrote:
> ] package foo
> ] reopen 123456 1.2.3-1

> ] Source: foo
> ] Version: 1
> ] Packages:
> ]   foo (1x)
> ]   bar (3.14x)

Soo. Some discussion on IRC with Colin resulted in the following.

reopen should be done away with entirely. submitter replaces one aspect of
it's functionality but better (dealing with merged bugs). A new command,
open, should replace the other half, functioning like:

	open <bug#> [<version>]

Possibly multiple versions could be accepted. Possibly <version> could be
optional precisely when the bug is filed against a pseudo package.

This command definitely doesn't let you change the submitter. (Maybe
when/if the .status format ever changes this could happen)

Version: processing needs to be added to -done processing. Eventually a
pseudo-header should be required for emails to -done to avoid bugs being
closed by spam, or accident.

Add two lines to .status, containing space separated versions. One line
has fixed versions. The other line found versions. "open" adds to one
line. "close" adds to the other. Likewise submit@ and -done. The done line
in the .status file is used for pseudopackages, which don't have any version
information stored. Otherwise it's either empty, or it matches the email
of the person who made the most recent close. The sequence:
	close 123 1.0 by ajt@debian.org
	close 123 1.1 by cjwatson@debian.org
	open 123 1.0
leaves the bug closed by cjwatson. The sequence:
	close 123 1.0 by ajt@debian.org
	close 123 1.1 by cjwatson@debian.org
	open 123 1.0
leaves the done field empty. The done field is cleared precisely when
an open command is received for the rightmost version in the fixed-in line.
It's changed everytime a close or -done mail is received.

Pseudopackages are precisely those packages that don't have a version tree.

To sets of version info need to be stored for each package. One is the version
tree, based on the changelog information, for each source package. The other
is the historical binary <-> source version and package name mapping. This
is a many to one relation -- each binary package/version has a single source
package/version; but a single source may have many packages/versions. So:

	foo.deb 1.0 -> bar.dsc 1a
	foo.deb 1.1 -> bar.dsc 1a  (on a different architecture)
	bar.deb 1.1 -> bar.dsc 1a
	foo.deb 1.2 -> foo.dsc 1.2 (split out)
	foo.deb 1.2 X> bar.dsc 1a  (not allowed, even across arches)

Not sure it's clear how to cope with all these possibilities. Does
this mean versions in the .status file should always be source
versions? Probably not. What happens when a package splits? Do the
bugs belong to the old source? The new source? How's the connection
made? Automatically? Manually by maintaining good changelogs? Manually
by telling the BTS which bugs to carry forward, and letting the others
automagically disappear?

We don't have all the historical information for deb/dsc mappings, but
that shouldn't matter too much. We might be able to get much of it from
snapshot.debian.org though?

katie/dak/dinstall/ftp.debian.org needs to send debbugs the changelog
on every source upload; and the binary mappings (from the .katie files)
on every binary upload. "send" means dump in a directory somewhere and
either run a script to trigger debbugs, or just let debbugs rsync it.

katie also needs to include version information in her -done messages. What
version information exactly? Is:
	Source-Package: foo
	Source-Version: 1.0
enough? Can debbugs use the triggered stuff above to work out the
rest? Should it? (That'd be slightly easier to implement in katie than
the Packages: header hypothesised above)

Colin'll probably roll out the CGI's this weekend -- that'll be a
non-event hopefully, since the .status files haven't changed, but will
get us moving.

BTW, there's a fixed-in-experimental tag now, which is set by katie for
uploads to experimental. Hopefully it'll be obsoleted RSN.

Think that's it.


Anthony Towns <aj@humbug.org.au> <http://azure.humbug.org.au/~aj/>
I don't speak for anyone save myself. GPG signed mail preferred.

       ``Is this some kind of psych test?
                      Am I getting paid for this?''

Attachment: pgp28kM7zcRxG.pgp
Description: PGP signature

Reply to: