[webkit-dev] ChangeLog Deprecation in WebKit

Jonathan Bedard jbedard at apple.com
Mon May 16 13:46:15 PDT 2022

Starting tomorrow, Tuesday May 17th, WebKit will no longer be using ChangeLogs and will instead require commit messages in new commits. These were the norm when we started the project, but now they are unusual, antiquated, and get in the way of common git tooling.

This means that we need a commit message in every patch or PR that's submitted for review. From prior discussion, it is very clear that there are legitimate downsides too, and I want to take this opportunity to suggest recommended paths forward.

You will need to take action if you:
- Have a pure-Subversion checkout
- Draft patches without making local commits
- Draft patches from multiple local commits
- Have patches with ChangeLogs already in bugzilla
- Have pull requests with ChangeLogs

https://github.com/WebKit/WebKit/wiki/Migration <https://github.com/WebKit/WebKit/wiki/Migration> covers migration to GitHub workflows in general, but Tuesday’s change is quite a bit more narrow in its effects. Below I’ve listed the actions you may need to take

- Have a pure-Subversion checkout

Follow https://github.com/WebKit/WebKit/wiki/Migration#subversion <https://github.com/WebKit/WebKit/wiki/Migration#subversion> to clone github.com/WebKit/WebKit <http://github.com/WebKit/WebKit> and start developing from a GitHub checkout. The patch workflow works just as well from a GitHub checkout. One significant difference is that it's not possible to commit directly, but this is going away soon as GitHub becomes the source of truth, so it is probably not worth migrating to git-svn for. Also, some people find git-svn handy to convert between revision formats; we have `git webkit find` as a replacement.

- Draft patches without making local commits

Run `git-webkit setup` to configure your local git hooks to provide a WebKit commit-message template. Before running `webkit-patch upload`, run `git commit -a` to create a local commit with all local changes. To amend that commit, run `git commit -a —amend`.

- Draft patches from multiple local commits

EWS will test patches with multiple commits in them, but Commit-Queue will not land those patches. If you have a multi-commit patch (or branch) applied locally, you need to squash them. I’d recommend `git rebase -i <base>`. To do this, run `git rebase -i HEAD~3`, git will then open your editor and offer to `pick` the last 3 commits. Keep `pick` for the first listed commit, but use  `squash` for the other two and close your editor, the last 3 commits will be squashed into a single commit.

- Have patches with ChangeLogs

Apply your patch with `webkit-patch apply-from-bug <bug-number>`. If we’ve already removed the ChangeLog files from the repository, this patch application will fail. Resolve the conflicts, and commit your local changes and draft a commit message.

If we haven’t yet removed the ChangeLog files, your patch should apply. In that case, make sure you’ve run `git-webkit setup` and commit your local changes include the ChangeLog. This will create a commit message derived from your ChangeLogs. Then, remove the ChangeLog edits locally, amend your previous commit with `git commit -a —amend` and re-upload your ChangeLog free patch.

- Have pull requests with ChangeLogs

Check out your pull request, remove any ChangeLog edits locally and run `git-webkit pr --amend`.

WebKit Continuous Integration

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20220516/47eeded6/attachment.htm>

More information about the webkit-dev mailing list