[webkit-dev] ChangeLog Deprecation Plan

Jonathan Bedard jbedard at apple.com
Tue Apr 19 09:33:01 PDT 2022

> Message: 2
> Date: Mon, 18 Apr 2022 10:33:03 -0700
> From: Ryosuke Niwa <rniwa at webkit.org>
> 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.

> 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.

> 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.

> 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.

The COMMIT_MESSAGE approach, I believe, supports both --amend and amend workflows quite well.

> I like the COMMIT_MESSAGE and hooks proposals because they are opt-in.
>> Contributors who wish to use native git tooling to contribute and interact
>> with the project do not have to use either tool, but the tools are
>> compatible enough with native git workflows that contributors who find
>> editing and viewing commit messages primarily in a text editor
> I don't think COMMIT_MESSAGE can be opt-in for the aforementioned reasons.
> - R. Niwa

More information about the webkit-dev mailing list