Hi.  Thanks for the explanations.  I guess that our beta phase is
precisely when you should be carrying out experiments like this...

Simon Josefsson writes ("Bug#1121367: tag2upload-obtain-origs: Needs to ask 
git-deborig for .gz compression"):
> Please consider the following before touching code: What happened where
> was that I push the limits of tag2upload a bit, in particular:
> 
> 1) I did 'git-debpush' for a NEW upload, causing something not in the
> Debian archive at all to show up on dgit, but the source-ful upload from
> tag2upload succeding on your side but failing on the upload queue side.

In the dgit data model, this is an acceptable out-of-course situation.
Unfortunately, we must work with the existing archive machinery which
is very asynchronous and hard to deal with.  So skew like this cannot
be entirely prevented.

This skew *is* undesirable so we try to minimise it.  Sadly I don't
think there is a reasonable way for git-debpush to detect this
particular situation, without having it query the archive API, which
we don't want it to do because it's supposed to be a pure git tool.

(I would be open to reconsidering this principle TBH.  A call to the
ftpmaster API service wouldn't be a lot of code nor a lot of data
transfer, and it would jsut be part of the checks, not entangled with
the tag creation functionality.)

> I upload my amd64 build at the same time as I do the git-debpush, and
> since gbp defaults to *.gz and tag2upload defaults to *.xz there is no
> filename clash in the upload, so my amd64 upload "wins" and the
> source-only upload gets discarded eventually.

Why did you make these two uploads at the same time?  You explain what
you did but not whether you did it deliberately :-).

Our recommendation for NEW is to use dgit.  "dgit push-built",
specifically.  This fits roughly ito the same space as git-debpush,
except that of course you have to build binaries.  "dgit sbuild" and
"dgit pbuilder" will do that for you.  Presumably you have a suitable
chroot setup.

(We don't like that we need wrappers for these build commands, but
they're quite shallow wrappers.)

> 2) This package was ACCEPTED by ftp-masters into the archive, and BEFORE
> the orig.tar file appeared on deb.debian.org etc I did a source-only -2
> upload of the package.  That failed below, and I was somewhat ready for
> this to fail, because I wanted to see how things behaved in this
> situation.

I think if we did what Sean suggests in this bug report, this would
work (at least, almost all of the time) - because t2u would be able to
reproduce the gbp-generated .orig.tar.gz.


You make a couple of other points about handling of NEW in *.dgit.d.o:

> Re 1) I have used this a couple of times now.  It leads to things not in
> the archive showing up on browse.dgit.debian.org.

Was this package wholly-NEW, or only NEW due to new binary packages?
The system is supposed to hide wholly-NEW packages from the public git
view on browse.dgit.d.o and git.dgit.d.o until they are ACCEPTed.
If that isn't working it needs fixing.

>  This is open for abuse, any DD could

TBH I think this would be an attack that we expect a DD not to
conduct.  So that's outside our threat model.  If it were to happen,
we would manually delete the bullshit and get DAM to eject the
perpetrator.

That the -1 upload is visible to authorised users, while in NEW, via
push.dgit.d.o, is deliberate, for the reasons you gave and that I've
snipped.

HTH.

Ian.

-- 
Ian Jackson <[email protected]>   These opinions are my own.  

Pronouns: they/he.  If I emailed you from @fyvzl.net or @evade.org.uk,
that is a private address which bypasses my fierce spamfilter.

Reply via email to