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

Jonathan
WebKit Continuous Integration

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to