Repository navigation
Trim the 2.4.0 release notes to index bullets and link issues - #646
Merged
Merged
Conversation
Each 2.4.0 bullet is now a bold lead, one before/after example and :issue: links; the mechanism, boundary cases and measurements stay in the issues and docs/design/decisions.md. Bullets a user sees as one change are merged. 10,765 words and 45 bullets become 1,491 and 32. Add sphinx.ext.extlinks with an :issue: role and convert the older entries' #N references (223 of them; the 21 inside bold leads stay plain, since RST markup does not nest). Fix a `()#147)` typo and a bold lead that rendered raw backticks. AGENTS.md's release-log instructions describe the new bullet shape. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #646 +/- ##
=======================================
Coverage 99.02% 99.02%
=======================================
Files 46 46
Lines 4513 4513
=======================================
Hits 4469 4469
Misses 44 44 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
The 2.4.0 entry opens with a summary and six highlights. Examples that showed a cost (PhD Jones) or used placeholders (X.Y.Z., x.y.z.) are replaced by real credentials (LEED AP, N.C.C., r.d.n.) and names (Jane Smith, PhD MA; Eric H. Holder Jr. Attorney General); MA vs Ma is shown on one name. Every example was checked against the 2.3.0 wheel and the tree. The performance bullet's "make parsing faster" lead is dropped: measured on py3.11, ordinary names parse in the same time as 2.3.0 (about 68 us/name for parse() over 866 corpus names); the 25% fewer calls per parse do not show on the clock. Sentences ending in an example that ends in a period no longer render a double period. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fourteen 2.4.0 bullets now end with "See <section>." pointing at the usage or customize section that documents the behavior or its knob (CapsSuffixes.OFF lives under customize's "All-caps words"). Six headings gain labels for this: trailing-titles, parser-guesses and credentials-also-surnames in usage.rst; connectives-also-initials, dotted-credentials and all-caps-credentials in customize.rst. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…case
The 2.4.0 release note says a caller's capitalization_exceptions entry
now outranks the lowercase case repair gives a particle, but the docs
witnessed the rule only with the shipped Irish masks. Add a doctest
with a ("van", "Van") entry: Martin Van Buren keeps his capital, and
Ludwig Van Beethoven shows the cost, since a mask applies wherever its
word stands.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…section Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Summary
2.4.0 entry rewritten as an index. Each bullet is a bold lead, one before/after example naming the releases it differs from, a limit sentence only where a caller would trip on it, and issue links. The details stay in the issues and
docs/design/decisions.md. 10,765 words / 45 bullets → 1,491 words / 32 bullets.Merged bullets a user sees as one change: performance (perf(pipeline): copy stage state without dataclasses.replace #546, Parsing slows quadratically for a long given part after a family comma (
Doe, Jane …) #553, Parsing slows quadratically when titles and credentials alternate at the end of a name #558, Many leading titles plus many surname particles slow parsing quadratically #559), v1Constantsentries (AConstantsset entry with edge whitespace raisesValueErrorat the first parse:c.suffix_not_acronyms.add('ma ')thenHumanName('John Smith', c)#541, A v1Constantsentry that is only a CJK full stop raisesValueErrorat the first parse:c.titles.add('。')thenHumanName('john smith', c)#582), decomposed accents (capitalize()breaks a decomposed (NFD) word at its combining mark:josé garcíatyped NFD givesJosé GarcíA#542,initials()drops the accent from a decomposed (NFD) name:émile zolagivese. z.#585), credential runs (Should a name word after a credential join the suffix?John Smith PhD Jonesreads middleSmith PhD#602/Should a comma part opening with a credential be a suffix comma?John Smith, PhD Jonesreads familyJohn Smith#603/Rethink the suffix-comma rule (C1): decide the comma's structure once, after the words are tagged #613 and Should a credential run after a comma keep its comma when the last word is an ambiguous acronym?John Smith, PhD MEngreads firstPhD, lastJohn Smith#544/Why doesJohn Smith, PhD DO DOread given 'PhD' and family 'DO DO John Smith'? #562), ambiguity reports (Use letter case to disambiguate suffix vs. surname: "Jack MA" vs "Jack Ma" #289, Should a credential run after a comma keep its comma when the last word is an ambiguous acronym?John Smith, PhD MEngreads firstPhD, lastJohn Smith#544,Kim Min Dounder FAMILY_FIRST is told 'Do' was "read as a middle name" when it lands in the family #626), case repair of credentials (Case repair: letter masks for the exceptions map (phd → PhD, bsc → BSc), md leaves the map, and roman numerals past iv (john smith xi → Xi) #459), initials (rules.md#R3's "a conjunction never initials" is unqualified:Juan de yhas baseyand initialsJ.#461,HumanName.initials()re-derives the conjunction decision instead of honoring the parse's tags:john e smithgivesj. s.from the facade andj. e. s.fromparse()#528).Issue links:
sphinx.ext.extlinksadds an:issue:role (GitHub redirects/issues/Nto/pull/Nfor PRs). 223 older#Nreferences are converted; the 21 inside bold leads stay plain text, since RST markup does not nest.Fixes: a
()#147)typo in the 1.x log, and a bold lead that rendered raw backticks.Doc links: 14 bullets end with "See
trailing-titles,parser-guesses,credentials-also-surnames,connectives-also-initials,dotted-credentials,all-caps-credentials).AGENTS.md: the release-log instructions in Commands describe the new bullet shape.
Summary and highlights: the entry opens with a one-sentence summary and six highlights. Examples use real names and credentials (
Jane Smith, PhD MA,LEED AP,N.C.C.), andMAvsMais shown on one name (Jack MA/Jack Ma).No speed claim: measured on py3.11, ordinary names parse in the same time as 2.3.0 (about 68 µs per name for
parse()over 866 corpus names), though each parse makes about 25% fewer calls. The performance bullet now covers only the three quadratic-time fixes.Test plan
sphinx-build -q -b htmland-b doctestprint nothing; rendered page has no raw:issue:or**uv run pytest tests/v2 -k docpasses🤖 Generated with Claude Code