From: Laszlo Ersek <lersek@redhat.com>
To: Rebecca Cran <rebecca@bluestop.org>
Cc: "Brian J. Johnson" <brian.johnson@hpe.com>,
Jeremiah Cox <jerecox@microsoft.com>,
stephano <stephano.cetola@linux.intel.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: my Phabricator findings [was: Research Request]
Date: Fri, 7 Dec 2018 13:00:55 +0100 [thread overview]
Message-ID: <a3bc783a-3c2b-40ea-806c-27fe85876138@redhat.com> (raw)
In-Reply-To: <3111298.gzUHUCRiql@photon.int.bluestop.org>
Hi,
I'd like to conclude my Phabricator investigation now. Indeed I have
spent a lot less time on it than on GitHub, however my reason for this
earlier finish is not bias or exhaustion. I believe to have found some
pretty critical functionality gaps in Phabricator, which make it
"secondary" how the emails it sends look and such.
(The URLs we used for investigation are:
https://code.bluestop.org/D1
https://code.bluestop.org/D2
https://code.bluestop.org/D3
https://code.bluestop.org/D4
)
Namely: Phabricator doesn't integrate natively with git topic branches,
or with "git" itself, for that matter.
Submitting a series of commits (a topic branch) for review seems to
require a tool called "arcanist" (or "arc" for short), which from my
perspective is a very unwelcome requirement. (Earlier I expressed my
hope that it would be an optional tool.) Rebecca pointed me to the
following article:
https://smacleod.ca/posts/commit-series-with-phabricator/
and while the method described might technically work, I think it's a
large step back in usability if we need to dance around the system with
an extra tool (which isn't even packaged by several Linux distributions
currently), just for submitting a topic branch for review.
In addition, the way a commit series is represented in a Phabricator
(for the purposes of comprehensive review), AIUI, is a chain of
inter-dependent, but *separate* review requests. While the article above
describes a method for interleaving a local "git rebase -i" procedure
with re-stacking the patches / review requests on the Phabricator
server, it strongly feels like a workaround for a system for which a
*series* of patches is only an afterthought, not the core idea. (In git,
branches are the core idea -- creating them is very cheap, and merging
them is actually possible.)
In other words, even though setting up the local commit messages as
required by Phabricator, and running "arc diff" in a loop basically,
might obviate a manual struggle on the WebUI, for stacking multiple
review requests (one per patch) into a series, I don't see how it could
work in any sensible way with the size of the patch sets that we
regularly post. 10-20 patches in an edk2 series are totally normal, and
50+ patches in a series are not unheard of.
Yes, 50+ patches in a series are not frequent, but long series are
*exactly* when you need your tooling to support you the most. I can't
see myself integrating an external tool with "git rebase" (esp. one that
might call out over the network, such as "arc diff") when I'm trying to
move code hunks between patches in a 20+ part series.
When polishing a large series, it's not uncommon to rebase the whole
thing multiple tens of times.
Yet further, according to Rebecca's explanation in
<https://code.bluestop.org/D1>, fetching a patch under review for local
testing again requires "arc". This is not native to git, and I think it
causes more problems than it solves.
Also, what about fetching a series of patches, i.e. a series of
dependent review requests... The local git command line works *already*
(once we're given a remote URL and a branch or tag), so let's not mess
with that please.
To be honest, I'm stumped how Mozilla could adopt (according to the
article linked at the top) "Phabricator as the primary code review
system for Firefox".
Out of this exercise, I'd like to suggest a hard requirement for all
future candidates: native integration with "git" is a must, and the
system must not require additional command line tools for basic git
operations (such as push, fetch, rebase), and basic participation in
development.
Thanks,
Laszlo
next prev parent reply other threads:[~2018-12-07 12:00 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-14 18:34 [edk2-announce] Research Request stephano
2018-11-20 23:47 ` Jeremiah Cox
2018-11-21 0:58 ` stephano
2018-11-26 21:43 ` Jeremiah Cox
2018-11-26 22:27 ` stephano
2018-11-27 9:33 ` Knop, Ryszard
2018-11-27 21:16 ` Jeremiah Cox
2018-11-27 22:23 ` Rebecca Cran
2018-11-28 18:19 ` Jeremiah Cox
2018-11-28 19:21 ` Rebecca Cran
2018-11-27 12:53 ` Laszlo Ersek
2018-11-27 21:55 ` Brian J. Johnson
2018-11-28 11:07 ` Laszlo Ersek
2018-11-28 18:31 ` Jeremiah Cox
2018-11-28 22:01 ` Laszlo Ersek
2018-11-29 1:07 ` Jeremiah Cox
2018-11-29 9:48 ` Laszlo Ersek
2018-11-29 21:20 ` Rebecca Cran
2018-12-03 9:29 ` Laszlo Ersek
2018-12-03 21:39 ` Rebecca Cran
2018-12-04 18:00 ` Laszlo Ersek
2018-12-05 12:55 ` Laszlo Ersek
2018-12-05 17:26 ` Rebecca Cran
2018-12-06 14:05 ` Laszlo Ersek
2018-12-06 14:07 ` Laszlo Ersek
2018-12-06 14:13 ` Laszlo Ersek
2018-12-06 15:25 ` Rebecca Cran
2018-12-07 6:10 ` Rebecca Cran
2018-12-07 12:00 ` Laszlo Ersek [this message]
2018-12-07 13:11 ` my Phabricator findings [was: Research Request] Rebecca Cran
2018-12-05 17:31 ` [edk2-announce] Research Request Rebecca Cran
2018-12-06 13:51 ` Laszlo Ersek
2018-12-03 17:22 ` Jeremiah Cox
2018-12-04 18:26 ` Laszlo Ersek
2018-12-05 19:09 ` Jeremiah Cox
2018-12-06 13:33 ` Laszlo Ersek
2018-11-28 5:54 ` Desimone, Nathaniel L
2018-11-28 6:22 ` Stephano Cetola
2018-12-04 18:20 ` Philippe Mathieu-Daudé
2018-12-05 16:03 ` stephano
2018-12-12 13:20 ` GitLab results from my POV [was: Research Request] Laszlo Ersek
2018-12-20 17:46 ` Rebecca Cran
2019-01-10 20:17 ` about 'sr.ht' " Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a3bc783a-3c2b-40ea-806c-27fe85876138@redhat.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox