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. 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. Lastly, ChangeLogs are uncommon in git based projects, so new 
contributors will find them difficult to manage.

Currently, our git tooling makes very little effort to either support 
ChangeLogs or to provide alternatives. I have listed bellow some of the reasons 
I understand folks to like ChangeLogs along with possible git-based solutions, 
if necessary.

1) Subversion commit messages are stored server side, local development needs a 
copy
        git doesn’t have this problem. We have a local record of commit 
messages in every checkout.
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
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
4) Using git commands to view commit messages is hard
        There don’t seem to be many projects which have a solution for this. In 
practice, it seems that reducing the scope of messages shown by restricting 
history to a specific directory or even file is one solution, another is 
shorter commit messages
        Proposal: Have Tools/Scripts/git-webkit setup configure hooks in 
contributors local git repositories to lay down CommitMessages.history files on 
merge, checkout and commit which contain the last 5000 commit messages. We can 
put these in similar places to where ChangeLogs are today, although we would 
likely want them in fewer places because this will increase local compute time 
on many git operations. We could also make this a configurable setting so that 
engineers who are more comfortable with the raw command line tooling do not 
have to deal with slower git operations.

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

Looking forward to the discussion,

Jonathan Bedard
WebKit Continuous Integration
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to