On Wed, 2016-03-09 at 00:05 +0100, Laszlo Ersek wrote:
> (1) The submitter is himself/herself responsible for picking up review
> tags, and then for posting a final (fully reviewed) PULL that can be
> merged without *any* kind of rebase by the pulling maintainer.
> 
> Corollary: since the first submission never has any reviews, the first
> submission should never be a PULL.

If submissions *require* review, the first submission isn't intended to
be merged anyway. So it's meaningless to say *either* that the first
submission is to be merged by applying patches, *or* that it's to be
merged as a pull. This is fairly much a non-sequitur.

> It seems to me that the extra trust for a pull request is needed because
> it's possible to post patches to the list (for review) that *differ*
> from the commits that *actually* lead up to the hash that is presented
> in the pull request. An attacker can prepare two patch sets, an innocent
> and a malicious one; post one series for review, but include the final
> commit hash of the other series in the pull request.
>
> Whereas when the maintainer applies patches from the list (i.e., at that
> point: from his own mailbox) directly, then the maintainer can be
> (reasonably) sure that those are exactly the patches the community
> reviewed (not counting mailbox break-ins etc).

Nonsense. If I go through seven rounds of posting patches to the list,
and I gather a series of acks from the first six but you apply the
seventh, you have *no* good reason to believe that my final submission
doesn't contain the trojan horse. You have to *look* before you apply
it.

And it's *just* the same if my final submission is actually in the form
of a pull request. Sure, the signed tag means you know it comes from
*me*, which can be achieved by signed email too (like this one). But
you still have to trust *me* just the same.

Or actually do a final review on the code you're actually *merging*.
Whether it be in email patches or in a pull request, that's just the
same.

Really, from the trust point of view there is *not* a difference
between pull requests and patches. Look at what you merge, or trust the
submitter. It's as simple as that.

> ... So, I dunno what to do about this. I trust you, but I wouldn't want
> to open up the possibility of *any* maintainer pulling from *any*
> contributor.
>
> * How about an alternative.
> 
> (a) Contributors are encouraged to name the fork-off point (commit hash)
> of their topic branch, from which they post their patches.
> 
> (b) For a large series, the maintainer is expected to apply the patches
> on a local, temporary branch, forked off of exactly the named commit of
> the master branch. Review tags are also added on this branch.
> 
> (c) Maintainer merges topic into master locally.
> 
> (d) Maintainer pushes the merge commit to his or her personal repo.
> 
> (e) Submitter fetches maintainer's personal repo, and confirms (in
> email, stating the hash of the merge commit) that it's fine.
> 
> (f) Maintainer pushes the merge commit (and its dependencies of course)
> to upstream master.
> 
> Now, steps (d) and (e) add a round-trip that can make the merge commit
> prepared in step (c) obsolete, by the time the confirmation arrives. So
> perhaps we can drop (d) and (e).
> 
> The point is, your history would be precisely reconstructed, and you
> could get to say the final OK.

No, this is pointless complexity.

Again, just *look* at what you merge. Whether it means a proper read
through the seventh round of patches, or actually looking at the
contents of a pull request, there's *no* difference.

> * There is another alternative. You should become an official
> co-maintainer of CryptoPkg (using your Intel email address), and then
> you could push your merges directly, after review. As I said, I trust
> you, but I don't trust a setup where any maintainer can pull from any
> contributor.

That's a band-aid for the one issue. I'm trying to make things better
for *everyone*.

-- 
dwmw2

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to