Ansgar 🙀 <ans...@43-1.org> writes:
> On Wed, 2024-06-19 at 14:43 -0700, Russ Allbery wrote:

>> I don't think it's bad in any inherent way, but it's not tag2upload. 
>> It's not the thing that the developers have been working on, it doesn't
>> solve the problems they're trying to solve, and it doesn't let people
>> use the workflows that they want to support.

> You basically say "nothing would work at all".

> Is any change a hard blocker from the tag2upload team perspective?  Or
> is there some room for changes, even though it would be a design that is
> not identical to the one currently proposed by the tag2upload
> developers?

The piece that the tag2upload developers are asking for is the ability to
move the source package build step to a project server so that the
uploader doesn't have to do it.  This requires that dak accept a *.changes
and *.dsc file signed by tag2upload, and it requires that the uploader not
have to do the source package build step locally.  I think we're now past
the first part, but we're still stuck on the second part.

(Or at least you and I still are, and maybe Joerg is okay with this?  I'm
not 100% sure.)

Not having to build the source package locally, and that includes building
the tree of files that go into the source package locally, is what makes
the whole thing useful.  Without being able to do this, it doesn't really
have a point.  We already have a system that lets the uploader build the
source package locally.  The point of tag2upload is to not do that.

I appreciate that you're trying really hard to find a way to represent the
Git tree directly in a source package so that no build step is required
and building the tree of files locally is trivial.  I understand that you
truly think that this accomplishes the same goal with some acceptable
lossage around the edges.  But it doesn't; it's missing the point.  The
point is that there are a wide variety of potential transformations
between the Git tree and the source package required to accomodate the
range of Git workflows used in Debian today *and tomorrow*.  Having a
source package build system in the middle is what allows us to *decouple*
the workflow from the build output so that people can use the workflow
that works best for them and we get standardized Debian source packages
out the other end.

I think we've found potential compromises to a number of other things
already:

* The most recent design had tag2upload as the only verifier of the
  signature on the Git tag, and I think we found a plan for that to not be
  the case that everyone is happy with.

* It sounded like you might want more metadata in the tag.  I don't think
  that will be a problem if it's metadata that's easy for the uploader to
  add, like the target suite.

* There was an objection to the object signed by the uploader not being in
  the archive.  I think that's solvable if you are okay with publishing
  the signed Git tag object in some form in the archive.

I suggested a bunch of other things earlier that were already changed in
the design.  If we go back to the 2019 discussion, there have been more
changes.  There's a lot of willingness to adjust here.

But the key design point has always been that tag2upload builds the source
package and the uploader doesn't have to.  I think we're now at "well,
that's fine as long as the uploader can build the source package file tree
locally."  That *is* a compromise, absolutely!  We've at least gotten the
*.dsc file construction out of the picture.  But the number of workflows
that can be supported under that restriction is extremely limited without
making the uploader build the source package locally, still.  It might be
useful for some relatively simple cases, but it doesn't move the source
package build step to a Debian project infrastructure system and it still
requires that the uploader build the source package file tree locally.

At the risk of trying to argue by analogy, it feels akin to saying "okay,
you can have a binary buildd, but only if it doesn't use a compiler and
only copies files around."  Yes, that's a compromise compared to no binary
buildds, but in a way that makes the whole picture more complicated and
doesn't achieve the point of the design.

> Because from my perspective it mostly looks like us like ftp-master
> willing to find some compromise, but the tag2upload side hard blocking
> on any possible change.

Well, first, I don't think this is true, but second, the designs proposed
so far that you've said that you would accept (maybe not including Joerg's
message?) all involve not doing exactly the thing thing that tag2upload is
designed to do.

I'm not assuming that this is how you are thinking of it.  I think there
has been a lot of confusion about what the point of tag2upload is, and
that's why I keep explaining it in different words because sometimes it
really is hard to grasp the essence of what someone is asking for.
(That's also why I'm trying to do a lot of the writing here; I have a lot
of patience and it's easier for me to do this because I'm not personally
invested.)

But some features of a system really are integral.  You can't compromise
absolutely anything and still have a coherent design that does something
useful.  "I think a bicycle should have no wheels and you think a bicycle
should have two wheels, so let's compromise and give it one wheel" does
not produce a bicycle.  It produces a unicycle.  This might be a useful
device, but it's not a compromise bicycle.

-- 
Russ Allbery (r...@debian.org)              <https://www.eyrie.org/~eagle/>

Reply via email to