Skip to content

Release 2.7.0 - #921

Merged
derek73 merged 14 commits into
masterfrom
release/v2.7.0
Oct 28, 2026
Merged

derek73 merged 14 commits into
masterfrom
release/v2.7.0

Conversation

@derek73

@derek73 derek73 commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Ships nameparser 2.7.0, vocabulary phase 2 (#752). It adds the title phrase (rules/H9, a title that is also a given name is a title only inside a title phrase), credentials written joined, split, in capitals or in brackets, given names written short, and Ambiguity.alternative. Facade DeprecationWarnings wait for 2.8, as decided.

Release checklist, steps 0–3

  • Step 1. snapshot.py --since v2.6.0: 420 entries differ, 2 of them held only by corpus_cldr.jsonl. 304 are names new to the corpus and 15 were removed, which leaves 101 moved readings; 57 of those move only an ambiguity. Every move traces to a release-log bullet (H9 and phase 2j, S6 capitals, S13 brackets, Should John Smith, MD - PhD split its suffixes without a declared delimiter, and can suffix_delimiter be deprecated? #889, Should John Smith VI MD read like John Smith III MD? #784 numerals, Should John Smith Ph. D. Jones read like John Smith PhD Jones, or is the split spelling's reading the better one? #827, S11 agnomens). The v2.6.0 snapshot carries the case views (Has case repair now earned a column in the snapshot, as initials() did? #826), so they are compared there and need no separate compare.py --baseline 2.6.0 run.
  • Release log
    • Merged bullets. The eight phase-2j given-name-title bullets are now one. The Shaikh bullet still said "Sheikh and Shekh are still titles", which Read the name Sheikh and its spellings as names outside a title phrase (#752 phase 2j, #853) #912 had reversed.
    • Order. The title phrase leads, and the entry opens with a summary and highlights.
    • Checked against the 2.6.0 wheel. I ran every example in every bullet (about 120 names) on the 2.6.0 wheel and on the tree. All of them hold.
    • Pickle bullet. I pickled every public type under 2.6.0 and loaded it in the tree. Lexicon, Parser and locale packs raise, Policy, ParsedName, Ambiguity and HumanName load. The bullet had missed locale packs; it now names them. The new fields, from a dataclasses.fields diff against v2.6.0: Lexicon gains agnomens, given_name_abbreviations, suffix_words_ambiguous, title_modifiers, title_phrases, title_styles and titles_ambiguous. Ambiguity.alternative carries ADDED_IN, so those pickles still load.
  • migrate.rst "Changed in 2.3 through 2.7"
    • New entries. Eleven 2.7 entries, each with a doctest, every "1.4 read X" checked against the 1.4.0 wheel. They cover the phase-2j words (King, Prince, Princess, Sultan, Sultana, Sheikh and its spellings, Mahdi, Bard, Buddha, Siddha, Gyani, Wing, Grand), title phrases, Chas./Ma., numerals VI to X, MD/PhD and Pharm D, Ph. D. Jones, MA Jones, Filho and fils, (JD), and the existing / and Bon/Herren entries, which moved to the end.
    • Not listed: Dean Koontz and Major Harris. They read the same through HumanName on 1.4.0, 2.6.0 and 2.7; only the 2.0 API's new title-or-name report changed.
    • Prince and the v1 knob. The 2.3 Prince entry gets a 2.7 qualifier. A note explains that Constants().titles cannot restore a moved title: the word is still listed there, so adding it is a no-op. The 1.4 dean recipe still works.
    • Pickle break added to the list of 2.x breaks.
  • User docs audit (docs/AGENTS.md style)
    • customize.rst. A new "Titles that are also given names" section covers H9, the title-or-name report and its alternative. The marker-field paragraph is now a table, which fixes a claim that given_name_titles, title_modifiers and title_styles sit over titles only. The post-nominal separator section is split by task, with Pharm D doctested. A wrong claim is fixed: declaring " - " does not drop a glued hyphen.
    • usage.rst and concepts.rst. Both gain the title phrase.
  • Code-side prose
  • Design docs and AGENTS.md (read, not grepped)
  • README.rst leads with 2.7. python -m doctest README.rst passes and readme_renderer renders it.
  • Dependabot: no open PRs, no open security alerts.
  • Milestone 2.7 (Update LICENSE to be a bit more explicit #47): 52 closed, 0 open. No issue or PR closed since 2.6.0's publish is missing from it.
  • Steps 2–3. PRE_RELEASE = "", CITATION.cff 2.7.0, release log stamped October 27, 2026. Restamp it if the tag lands on a later day.
  • AGENTS.md checklist. It gains the pickle-break check that found the locale-pack gap.

Review

  • First round, design docs. The new C2 and S8 clauses dropped H9's phrase limit: past the second comma, Dean of Students is still a title, while a bare Dean stays a suffix. AGENTS.md still claimed GIVEN_NAME_TITLES ⊆ TITLES at two more sites. Both fixed in 9e1b297.
  • First round, claims. I checked about 90 names against the 1.4.0 wheel, the 2.6.0 wheel and the tree, and found no false history claim. One defect: the merged phase-2j bullet let "a bare one reverses after a comma" cover Vice and Grand, which stay titles there, and it had dropped the Wing. clause. Smaller fixes: README said King "keeps" a first name, and the first highlight had two before/after pairs. All fixed in e27aff9, and AGENTS.md's release-log guidance now says to carry a merged bullet's limits over.
  • Second round, on the fix commits. A double comma left by the highlight trim, fixed. The rest of the fix commits checked clean, including the comma reversal for every listed word and the phrase/bare split in the C2 and S8 slots.
  • Derek's edits. The 2.7.0 section's summary now introduces 2.7 as the first release towards the vocabulary model RFC, and README's announcement follows it. The section names the fields given and family rather than first and last. The title-phrase highlight now shows the contrast case, Justice Smith giving given Justice.

Local checks:

  • full suite on 3.11 and on 3.15: 32,127 passed each
  • -n0 -m serial: 43 passed
  • mypy and ruff
  • build.py --check
  • Sphinx doctest: 477 tests, 0 failures
  • Sphinx HTML with -W

After merge: tag v2.7.0 on the squash commit, gh release create, approve the pypi environment, close milestone 2.7. Then a PR for steps 8–9: DEFAULT_BASELINE 2.7.0, VERSION 2.8.0 with PRE_RELEASE = "dev". No "Next Release" milestone unless Derek asks for one.

🤖 Generated with Claude Code

derek73 and others added 8 commits October 27, 2026 16:49
Merge phase 2j's eight given-name-title bullets into one (the Shaikh
bullet still said Sheikh and Shekh were titles, which #912 reversed),
lead with the title phrase, add a summary and highlights, and name
locale packs among the pickles that no longer load (measured: a 2.6.0
pickle of locales.ZH raises the Lexicon field error).

migrate.rst gains one entry per 2.7 shape whose 1.4 reading moved,
each with a doctest, moves the two 2.7 entries that sat among the 2.6
ones to the end, and gives the 2.3 Prince entry its 2.7 qualifier.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Reads: lines

Steps 2-3 of the release checklist, and two stage Reads: lines that
this cycle's reads outgrew, found by comparing each module's Reads:
block against its lexicon./policy. accesses: _extract's _suffix_shaped
reads suffix_words_ambiguous (#890), and _assign reads
given_name_titles for an alternative's P5 licence (#902/#905).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e a moved title

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
TITLE_STYLES and Lexicon.title_styles said a style is a title and is
never consulted outside titles; seven styles (grace, sheikh and its
spellings) sit in titles_ambiguous and are consulted there (removing
'sheikh' from title_styles moves 'Grand Sheikh Dean Smith'). The
Lexicon docstring named two multi-word-exempt fields; title_phrases is
a third. GIVEN_NAME_TITLES is a subset of the title readings, not of
TITLES: king, prince, sheikh and six more compile to TITLES_AMBIGUOUS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
customize.rst: a 'Titles that are also given names' section (rules/H9,
the title-or-name report and its alternative), the marker-field
paragraph turned into a table (given_name_titles, title_modifiers and
title_styles sit over titles or titles_ambiguous), the post-nominal
separator section split by task with Pharm D doctested, and a wrong
claim fixed: declaring ' - ' does not drop a glued hyphen. usage.rst
and concepts.rst gain the title phrase where ambiguities and roles are
explained.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…names (#784)

Since #784 a numeral VI to X reads as a suffix on both sides of
tail_reading, so rules/P5's Accepted clause, AGENTS.md's tail_reading
gotcha and decisions/H5's standing line cited examples that now read
title 'Prof.', suffix 'VI'. Each now shows the shape that remains, V
before a third comma part (Smith, John Mc Prof. V, Jr. -> suffix
'Mc, Jr.', middle 'Prof. V'); the dated log entries keep the old
spelling as history. generational-words' Open line drops #843, closed
and decided in decisions/S11. rules_budget re-recorded: P5's Accepted
words 198 -> 192, from this edit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
C2 and S8 read a title word past the second comma or after a
credential as a title; a word that may also be a given name is not one
there (John Smith, Jr., Dean keeps suffix 'Jr., Dean'). The suffixes
Background named two multi-word-exempt fields; title_phrases (#894) is
a third. AGENTS.md's honorific caution no longer cites Prince and
Sheikh, which 2.7 moved to TITLES_AMBIGUOUS, or marshal as still out.
rules_budget re-recorded for C2 and S8's grown Then lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s pickles

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73 derek73 added the docs Documentation fixes and updates label Oct 27, 2026
@derek73 derek73 self-assigned this Oct 27, 2026
derek73 and others added 3 commits October 27, 2026 17:01
From the design-docs review of this PR: the new C2 and S8 clauses said
a word that may also be a given name is never a title there, but a
phrase still is (John Smith, Jr., Dean of Students -> title 'Dean of
Students'); only the bare word stays a suffix. AGENTS.md still claimed
GIVEN_NAME_TITLES is a subset of TITLES at two more sites; the extension
recipe now uses AFTER_GIVEN_TITLES as its example, and the warning note
names the union (titles_ambiguous warns per word too, checked).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er a comma

From the claims review of this PR: the merged given-name-title bullet
let 'a bare one after a comma reverses it' cover the qualifiers Vice and
Grand, which stay titles there (John Smith, Grand -> title 'Grand'), and
dropped the Wing. clause the Wing bullet carried. The first highlight
had two before/after pairs, and README said King Curtis 'keeps' a first
name 2.6 did not give it. AGENTS.md's release-log guidance gains the
lesson beside its merge rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73 derek73 added this to the 2.7 milestone Oct 28, 2026
derek73 and others added 3 commits October 27, 2026 18:48
…, and given/family for field names

The 2.7.0 section names the fields given and family rather than first
and last, the summary introduces 2.7 as the first release towards the
vocabulary model RFC, and the title-phrase highlight shows the contrast
(Dean Smith gives given 'Dean'). README's announcement follows the new
summary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ler trips on

1,690 words to 1,139 across the 2.7.0 section, no bullet over 110: the
secondary examples, word lists and version history that the issues and
decisions/ already hold are cut, and every limit a caller would meet is
kept. Each kept or reworded reading was re-run on the tree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73
derek73 merged commit 0462403 into master Oct 28, 2026
12 checks passed
@derek73
derek73 deleted the release/v2.7.0 branch October 28, 2026 01:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation fixes and updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant