On Wed, Jul 7, 2021 at 1:54 PM Jakub Jelinek via Gcc <gcc@gcc.gnu.org> wrote:
> On Tue, Jul 06, 2021 at 03:20:26PM -0600, Martin Sebor via Gcc wrote: > > I came away from the recent discussion of ChangeLogs requirements > > with the impression that the PRnnnn bit should be in the subject > > (first) line and also above the ChangeLog part but doesn't need > > to be repeated again in the ChangeLog entries. But my commit > > below was rejected last Friday with the subsequent error. Adding > > PR middle-end/98871 to the ChangeLog entry let me push the change: > > > > https://gcc.gnu.org/g:6feb628a706e86eb3f303aff388c74bdb29e7381 > > > > I just had the same error happen now, again with what seems like > > a valid commit message. Did I misunderstand something or has > > something changed recently? > > > > Martin > > > > commit 8a6d08bb49c2b9585c2a2adbb3121f6d9347b780 (HEAD -> master) > > Author: Martin Sebor <mse...@redhat.com> > > Date: Fri Jul 2 16:16:31 2021 -0600 > > > > Improve warning suppression for inlined functions [PR98512]. > > This states a PR number on the first line > > > > Resolves: > > PR middle-end/98871 - Cannot silence -Wmaybe-uninitialized at > > declaration si > > te > > PR middle-end/98512 - #pragma GCC diagnostic ignored ineffective in > > conjunct > > ion with alias attribute > > but these are intentionally not considered part of the ChangeLog entry, > so it isn't specified anywhere and that is why it has been rejected. > > The ChangeLog entry must be in a rigid form so that random text in the > middle > of the commit message isn't mistaken for start of the ChangeLog entry. > > contrib/gcc-changelog/git_commit.py > has > author_line_regex = \ > re.compile(r'^(?P<datetime>\d{4}-\d{2}-\d{2})\ {2}(?P<name>.* > <.*>)') > changelog_regex = re.compile(r'^(?:[fF]or +)?([a-z0-9+-/]*)ChangeLog:?') > pr_regex = re.compile(r'\tPR (?P<component>[a-z+-]+\/)?([0-9]+)$') > dr_regex = re.compile(r'\tDR ([0-9]+)$') > star_prefix_regex = re.compile(r'\t\*(?P<spaces>\ *)(?P<content>.*)') > and will consider as first line of the ChangeLog part: > if (changelog_regex.match(b) or self.find_changelog_location(b) > or star_prefix_regex.match(b) or pr_regex.match(b) > or dr_regex.match(b) or author_line_regex.match(b) > or b.lower().startswith(CO_AUTHORED_BY_PREFIX)): > self.changes = body[i:] > return > Once something is considered a ChangeLog part, everything after it has > to be a valid ChangeLog entry format. > Matching just PR component/NNNNN with random text afterwards at the start > of line or even somewhere in the middle would trigger any time one talks > about some > PR in the description. > But this *could* accept ^PR comp/NNNNN - descr$ , it just doesn't currently. There's certainly a lot of precedent for including the description in the PR line in ChangeLog files. I agree we don't want to match a PR number in the middle of the line, or without the dash. Jason