This is an archive of the discontinued LLVM Phabricator instance.

Update the developer policy to mention release notes
ClosedPublic

Authored by aaron.ballman on Apr 18 2022, 1:06 PM.

Details

Summary

As a project, Clang has gotten negative public feedback about our lack of communicating changes to users. There are comments on places like Hacker News or Reddit where users have (rightfully) been confused as to what changes happen in a given release, leading to misinformation like Clang not adding support for C++20 features: https://news.ycombinator.com/item?id=28761464.

This documents the expectation that changes which impact users should have release notes, and it's normal for code reviewers to ask an author to add a release note for a given change.

This addresses: https://github.com/llvm/llvm-project/issues/54965

Diff Detail

Event Timeline

aaron.ballman created this revision.Apr 18 2022, 1:06 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 18 2022, 1:06 PM
aaron.ballman requested review of this revision.Apr 18 2022, 1:06 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 18 2022, 1:06 PM
tstellar accepted this revision.Apr 18 2022, 4:25 PM
tstellar added a subscriber: tstellar.

LGTM.

This revision is now accepted and ready to land.Apr 18 2022, 4:25 PM
hans added a subscriber: hans.Apr 19 2022, 1:26 AM

If it's possible, maybe this could be worded in a way that strongly suggests the release notes should ideally be updated in the same patch as the code change?
I think we're generally good at doing this for tests. It would be great if we could treat release notes the same.

jhenderson accepted this revision.Apr 19 2022, 2:12 AM
jhenderson added a subscriber: jhenderson.

LGTM, with suggested nits.

llvm/docs/DeveloperPolicy.rst
188
192

I think official coding documentation style guides say to use "command-line" - at least, that's what our internal docs team has told me in the past.

aaron.ballman marked 2 inline comments as done.

Updating based on review feedback.

Fixed some grammar issues, added a bullet for fixing bugs, modified the bullet about diagnostics to include regrouping under a new diagnostic name.

Something went funny during a rebase, so this is the full update, not just changes since last time.

If it's possible, maybe this could be worded in a way that strongly suggests the release notes should ideally be updated in the same patch as the code change?
I think we're generally good at doing this for tests. It would be great if we could treat release notes the same.

That's a good idea! This was also independently suggested by @xbolva00 on the RFC thread.

hans added a comment.Apr 19 2022, 4:32 AM

Looks great to me!

nikic requested changes to this revision.Apr 19 2022, 5:32 AM
nikic added a subscriber: nikic.
nikic added inline comments.
llvm/docs/DeveloperPolicy.rst
195

I disagree with this point. Bug fixes should not make it into the release notes as a matter of course -- there may be specific high-impact bug fixes that may be worth mentioning, but bug fixes should not be included in the release notes as a matter of policy.

I agree that release notes for Clang/LLVM are currently insufficient, but we should also be careful not to over-compensate in the other direction, but including too much irrelevant noise.

This revision now requires changes to proceed.Apr 19 2022, 5:32 AM
aaron.ballman added inline comments.Apr 19 2022, 5:39 AM
llvm/docs/DeveloperPolicy.rst
195

I disagree with this point. Bug fixes should not make it into the release notes as a matter of course -- there may be specific high-impact bug fixes that may be worth mentioning, but bug fixes should not be included in the release notes as a matter of policy.

I disagree (quite strongly) with this and would point out that users have explicitly requested this information be included: https://discourse.llvm.org/t/rfc-update-developer-policy-on-release-notes/61856/3

I agree that release notes for Clang/LLVM are currently insufficient, but we should also be careful not to over-compensate in the other direction, but including too much irrelevant noise.

Bug fixes are generally far from irrelevant, but I agree that reviewer and author discretion is advised (as with any release note). For example, if you introduce a bug in version N and fix the bug in version N, there's no need for a release note in that situation because there's no user-facing change as far as users care about. But I don't want to try to spell that out in precise detail because there will always be edge cases.

This is awesome, I agree completely we should curate release notes better. That said, I think this should make it more clear that there is a "difference in kind" between user-facing tools like clang/lldb etc and other libraries in LLVM. We don't want release note burden (or noise) for every little thing going into the optimizer or codegen. Do you think it would make sense to point out that this is about user-facing tools?

llvm/docs/DeveloperPolicy.rst
195

I agree with both of you - listing every bug report would be too noisy and pretty irrelevant for most users, but there are high impact ones that are important and valuable to list. How about wording this bullet something like:

  • Fixing high impact bugs, e.g. ones that get discussed on hackernews or comparable forums (please link to the issue fixed in the bug database).
196

This is also too broad IMO, we don't want every new instcombine listed. I'd recommend making this more user-centric, e.g. "Adding or removing optimizations that have widespread impact or enables new programming paradigms"

Also, when this lands, we should post on the forum about it. Every change to the developer policy warrants broader visibility than just a phab discussion IMO.

This is awesome, I agree completely we should curate release notes better. That said, I think this should make it more clear that there is a "difference in kind" between user-facing tools like clang/lldb etc and other libraries in LLVM. We don't want release note burden (or noise) for every little thing going into the optimizer or codegen. Do you think it would make sense to point out that this is about user-facing tools?

Oh! I see now where the disconnect was, thanks! That's a good point about user-facing vs not. I'll try to clarify.

Also, when this lands, we should post on the forum about it. Every change to the developer policy warrants broader visibility than just a phab discussion IMO.

Heh, I linked to the phab patch from the RFC but forgot to link to the RFC from the phab patch. Sorry about that! You can find the RFC discussion here: https://discourse.llvm.org/t/rfc-update-developer-policy-on-release-notes/

llvm/docs/DeveloperPolicy.rst
195

Thanks for clarifying where I was misunderstanding before. I agree there needs to be a change to my wording, but I'd prefer if we went with something more like:

  • Fixing a bug that potentially has significant user-facing impact (please link to the issue fixed in the bug database).

(I mostly want to avoid making it sound like the bug has to be a stop-the-world bug in order to warrant a release note. Functionally, I think fixing a bug in Clang should almost always have a release note, but the same may not be true for fixing a bug in LLVM where the difference in behavior may not be particularly observable to users.)

Would this address your concerns @nikic?

196

+1, good suggestion!

aaron.ballman marked 3 inline comments as done.

Updated based on review feedback.

  • Made it more clear that adding a release note is discretionary rather than mandatory
  • Clarified that bug fix release notes should be for user-facing impacts rather than any bug fix
  • Clarified that optimization pass release notes should be for user-facing impacts rather than any change
nikic accepted this revision.Apr 19 2022, 12:07 PM
nikic added inline comments.
llvm/docs/DeveloperPolicy.rst
195

The new wording looks good to me, thanks!

This revision is now accepted and ready to land.Apr 19 2022, 12:07 PM

Can you please add link to RFC to commit message?

Otherwise looks good

LGTM and thanks.

Feel free to ignore my comment. Maybe sort entries by importance. I have problems reading longish texts and documents.

lattner accepted this revision.Apr 19 2022, 1:27 PM

Nice, LGTM!

This revision was landed with ongoing or failed builds.Apr 20 2022, 8:36 AM
This revision was automatically updated to reflect the committed changes.

Thank you to everyone for the great feedback!

Can you please add link to RFC to commit message?

Good call, I added that when landing.