Conversation
Client: build The CHANGES draft listed every THRIFT ticket a commit message mentions, without looking at the ticket's Fix Version/s, resolution or status. The 0.25.0 draft therefore carried THRIFT-1337, fixed in 2011, because the THRIFT-6183 commit cites it as history. It also carried other old tickets cited the same way, a Won't Do ticket and tickets that are still open. With --jira-version, the extra lookup of tickets found in git had the same gap. Fetch Fix Version/s, status and resolution with each ticket. Keep a ticket found in git only if JIRA files it under the release version, using the same test as the fixVersion query: the version is among its Fix Version/s, it has a resolution, and it is not Open. The version is --jira-version if given, otherwise --version or configure.ac. A commit whose tickets all fail the test is listed as a commit link under its Client: section instead, and the skipped tickets are named on stderr. The fixVersion query and that test now also leave out tickets resolved without a change, such as Won't Do, Won't Fix, Not A Problem or Cannot Reproduce, even when they carry the fix version. Duplicate still counts. Commit links now also drop a "Patch: Name" or "Autor: Name" trailer from the subject. Such commits used to be hidden behind their ticket. Both JIRA queries now build their entries with one shared helper. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes THRIFT-6277.
The "Generate CHANGES draft" workflow lists every THRIFT ticket that a commit message in the release range mentions, whatever JIRA says about the ticket. The current 0.25.0 draft lists THRIFT-1337 from 2011, because the THRIFT-6183 commit mentions it as history. It also lists other old tickets cited the same way, a Won't Do ticket, and tickets that are still open.
What changes
--jira-versionquery: the release version is among its Fix Version/s, it is resolved, and it is not Open. The version is--jira-versionif given, otherwise--versionorconfigure.ac. The test applies in git-only mode, which CI runs on every push, and to the extra lookup in--jira-versionmode.Client:section. The skipped tickets are named on stderr, so Fix Version/s can be corrected in JIRA where a ticket does belong to the release.Patch: NameorAutor: Nametrailer from the subject. Commits such as 2ae9c11 used to be hidden behind their ticket, so the trailer never showed in the draft.Effect on the current 0.25.0 draft
Git-only run over
v0.24.0..master, as CI does it:21 tickets drop out, in 24 entries because some are filed under several sections:
Their commits now show up as 5 entries: #3749 (Build Process), 79dc86d (D), 2ae9c11 (Dart and Delphi) and #3637 (Rust). Commits that also carry a 0.25.0 ticket, like the THRIFT-6183 one, stay covered by that ticket.
Testing
python3 -m unittest build.test_generate_changes: 38 tests pass on Python 3.13, and on Python 3.10 inthrift:jammy. The new end-to-end tests rungenerate_changes()against a temporary git repository and a fake JIRA that returns only the requested fields. They failed before the change.build/.Related: THRIFT-6278 is a separate, pre-existing problem found while testing. JIRA rejects a whole lookup of 25 keys or fewer when one key does not exist, and a
thrift-0.24.0/...path in a commit body yields THRIFT-0. The--jira-versionrun prints that HTTP 400 today, before and after this change. With this change, that lookup can only add tickets the main query already returns, so nothing is lost.[skip ci]anywhere in the commit message. (n/a, this changes a script)🤖 Generated with Claude Code