[ 
https://issues.apache.org/jira/browse/THRIFT-6077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18093733#comment-18093733
 ] 

Jens Geyer commented on THRIFT-6077:
------------------------------------

PR: https://github.com/apache/thrift/pull/3622

> improve CHANGES.md generator section assignment
> -----------------------------------------------
>
>                 Key: THRIFT-6077
>                 URL: https://issues.apache.org/jira/browse/THRIFT-6077
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Build Process
>            Reporter: Jens Geyer
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> build/generate-changes.py filed several classes of entries under "(No 
> Section)" in the generated CHANGES.md draft even though a usable signal was 
> available:
> 1. dependabot and CI/workflow PRs whose only GitHub labels are 
> github_actions, dependencies, testsuite or doc were unmapped and fell through 
> to (No Section).
> 2. Rebase-merged PRs land several commits under one PR number. The PR->label 
> write-back keyed a dict by PR number, so only one commit of such a PR 
> received the fetched label section; the other commits fell through to (No 
> Section), and a sibling commit's Client: trailer section could be overwritten.
> 3. JIRA tickets referenced by an in-range commit but carrying no component 
> were filed under (No Section) even though the commit's Client: trailer named 
> the correct section.
> Changes to build/generate-changes.py:
> - Map github_actions, dependencies, testsuite -> Build Process and doc -> 
> Documentation.
> - Propagate a PR's labels to every section-less commit that shares the PR 
> number, and stop clobbering commits that already carry a Client: trailer 
> section.
> - Fall back to the commit Client: trailer when a JIRA ticket has no usable 
> component.
> On the current master draft, items 1 and 2 reduce the (No Section) list from 
> 28 entries to 3 (the remaining three carry neither a label nor a Client: 
> trailer, e.g. CODEOWNERS edits). Item 3 (the Client: trailer fallback) does 
> not change today's output because every referenced ticket currently has a 
> JIRA component; it is a robustness change that prevents componentless tickets 
> from landing in (No Section), as happened in earlier drafts.
> Where a PR carries both a CI label and a language label it is listed under 
> both sections (deduplicated).
> Adds build/test_generate_changes.py with unit tests for the 
> section-assignment helpers (no network access required). flake8 excludes 
> build/ and Thrift's Python test suite lives under lib/py, so no CI job 
> currently collects this module; it is intended to be run directly (python3 -m 
> unittest build.test_generate_changes). No functional/library code is affected.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to