[webkit-dev] ChangeLog Deprecation Plan

Ryosuke Niwa rniwa at webkit.org
Tue Apr 19 22:15:57 PDT 2022


On Tue, Apr 19, 2022 at 9:33 AM Jonathan Bedard via webkit-dev <
webkit-dev at lists.webkit.org> wrote:
>
> > To: Jonathan Bedard <jbedard at apple.com>
> > Cc: WebKit Development <webkit-dev at lists.webkit.org>
> > Subject: Re: [webkit-dev] ChangeLog Deprecation Plans
> > Message-ID:
> >       <
CABNRm613onu_8wjXEuhJvOH7vztc3T9r_YLNqgOJ5if5AS04+Q at mail.gmail.com>
> > Content-Type: text/plain; charset="utf-8"
> >
> > On Mon, Apr 18, 2022 at 8:30 AM Jonathan Bedard via webkit-dev <
> > webkit-dev at lists.webkit.org> wrote:
> >
> >> As we migrate WebKit from Subversion to git, I would like to migrate
the
> >> project away from ChangeLogs. The reason for this is that ChangeLogs
make
> >> some of the features of git hard to use, namely, cherry-picking commits
> >> between branches requires conflict resolution every time.
> >>
> >
> > Isn't this something that can be easily resolved with a merge script?
>
> For simple cases, yes. But with something like a multi-commit revert or
rebasing a feature onto a different branch, merge scripts stop working
pretty quickly. It’s usually, It might be possible to write a merge script
to handle these cases, but it’s by no means “easy” in the general case.
It’s also worth noting that the cases that are more complicated also tend
to be the ones with the most urgency attached to them.

It seems to me that you can write a script that just applies a patch while
ignoring changes to each change log file, then separately prepend each
change log entry. I don't see why such a script would behave differently
for reverting multiple commits or rebasing a feature onto a branch. In
those cases where codebase has enough divergence, merge conflicts are
probably more of an issue with the codebase itself, and not change log
entries.

> > Rotating ChangeLogs is also moderately difficult in git with locked down
> >> commit access like our project has, only repository administers would,
in
> >> practice, be able to rotate ChangeLogs.
> >>
> >
> > It seems like we can just automate this by introducing a change log
> > rotating bot, which has the same privilege as commit queue.
>
> Anything that starts with “we can just have a bot which…” is not a simple
or robust solution. Bots need maintenance and intervention, and a bot with
commit access has another set of issues. Repository admins occasionally
rotating ChangeLogs is going to be less expensive than a bot doing it.

Either way, it doesn't seem like this is a higher cost issue compared to
all WebKit contributors having to change their workflows.

> > So these two arguments seem rather weak.
> >
> > Lastly, ChangeLogs are uncommon in git based projects, so new
contributors
> >> will find them difficult to manage.
> >>
> >
> > This might be the strongest argument in favor of deprecating change
logs.
> >
> > 2) We need a way to comment on commit messages in review
> >> Current tooling sets the pull request description as the commit
message,
> >> ?Quote Reply? kind of provides a way to inline comment, although it?s
not
> >> the formal review UI
> >> *Proposal*: Tooling should support a ?COMMIT_MESSAGE? file in each pull
> >> request commit that becomes COMMIT_MESSAGE when a pull request is
landed
> >>
> >
> > This needs to be a mandatory / automatic system, not opt-in. I want to
> > comment on commit messages as a reviewer. As a patch author, I don't
care
> > whether it can be easily commented on or not.
> >
> > But if this is a required thing, then new contributors would have to
learn
> > that this file is auto-generated or needs to be edited manually in some
> > cases so getting rid of change logs may not necessarily reduce the
> > cognitive load in comparison to keeping the status quo (i.e. keeping
change
> > log files).
>
> We can make it automatic for folks using tooling (and in such a way that
folks familiar with git won’t realize what has happened until they see
their PR diff), “mandatory” is a bit tougher because we can’t prevent folks
from filing a pull request without using tooling. At that point, we’re
where we are today with PR template that encourages tool usage, explains
how to craft a PR the ways tools do it and then reviewers acting as a
gate-keeper. The last point is more about project policy than it is tooling.

We should automatically reject such PR requests.


> > 3) Edit commit messages while creating a change, not just when
committing
> >> the change
> >> The ?overwrite? workflow already sort of support this idea by using
amend
> >> commits instead of appending commits to an existing branch
> >> *Proposal*: The above ?COMMIT_MESSAGE? file workflow would allow
> >> iterative building of a commit message before committing
> >>
> >
> > I absolutely despise --amend commits. It's the most annoying thing I
have
> > to do whenever I'm creating patches in a git clone.
>
> I do not think it is the appropriate place for the WebKit project to make
judgments about personal preferences for local development. From my
discussions with folks, it seems that the project is pretty evenly split on
--amend commits, with some contributors preferring them and others
preferring to make multiple commits. My purpose in bringing up --amend
commits is that one of the things I’ve heard folks find useful about
ChangeLogs is the ability to iteratively build them, which is something
that does have a parallel in raw git workflows.

No, my option isn't between amending a commit vs. making multiple commits.
I really don't like making *any local commits* at all. I want to work on a
patch without ever making local commits, and upload whatever change I may
have relative to the main branch's HEAD is.

- R. Niwa
-- 
- R. Niwa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20220419/093f6f1c/attachment.htm>


More information about the webkit-dev mailing list