As we are getting close to the release of Gramps 6.1, you may also be interested in what awaits for you in the Gramps 6.1 addons. As always, big thank you to @GaryGriffin for maintaining the addons!
New Addons
PR
Addon
Description
#846, #904, #923
PDFForms(new)
New addon for filling and exporting PDF census/record forms
New and updated, waiting for review
PR
Addon
Description
#962
Filter Rules
Add role field to the “person has event” filter rule, so users can filter by participant role (e.g. witness, bride, etc.)
#960
Gramps Assistant(new)
AI-powered chat interface for querying a Gramps family tree. Supports Anthropic Claude, OpenAI-compatible APIs, and local models (Ollama). Includes 20+ Gramps tools: person lookup, view switching, filtering, relationship finding
#959
Gram.py Script
Adds features to operate with Gramps Assistant
#954
SQLite
Rewrites export to use the raw DataDict API (get_raw_*_data()), fixing round-trip breakage caused by new fields in Gramps 6.1
Updated/Fixed Addons
PR(s)
Addon
Description
#943
PostgreSQL
Replace _hack_query() with proper SQL dialect translation methods; fix BLOB→BYTEA schema creation; add unit tests
#856
PostgreSQLEnhanced
Fix missing import time
#917, #862
TMGimporter
Fix unittest import ordering; silence F821 on short-circuit-guarded tmg_dataset; skip DB-backed tests on Windows (#930); move DB tests to Linux-only module (#952)
#890, #847
EditExifMetadata
Declare Pillow dependency; use != to compare against empty-list literal
Clean up references on close; add DbTxn and typing.Any imports
#871
JSON
Log repr(obj) on unrecognized object instead of undefined data
#872
LifeLineChartView
Fix tuple-in-if outer condition for tooltip cache
#865, #873
libaccess
Import fixes
#861
TimelinePedigreeView
Use Python 3 except syntax
#858
RelID
Import ErrorDialog
#860
DescendantBooks
Import ErrorDialog
#859
AttachSourceTool
Remove unreachable code after return
#854
PersonEverything
Import ReportError
#855
PlaceUpdate
Import EditDate
#852
LinesOfDescendency
Import ReportError; guard write_path against missing spouse_handle (bug 12913) (#905)
#866
CombinedView
Add missing gramps.gen imports; clear view on DB close (bug 12572) (#911)
#867
GrampsWebSync
Add DbTxn and typing.Any imports
#849
DescendantsLines
Import reduce from functools
#848
DenominoViso
Import reduce from functools
#843
AnniversariesGramplet
Import WindowActiveError
#836
Themes
Use raw string for Windows registry path with backslash; add Integrations panel (#937)
#835
HouseTimelineGramplet
Escape backslash in ASCII-art string
#851
Form
Import display_help in selectform; guard save against mid-edit deletion of referenced objects (bug 11054) (#926); add IE form (#842); detect empty definition files and fix malformed XML crash
#850
DynamicWeb
Drop Python 2 compatibility branches; use OL public feature.get('name') in OsmPointStyle (bug 12544) (#925)
#828
GetGOV
Fix xgettext syntax (bug 14197); add Internet GOV reference to place records (#927)
#908
HasTagSubstr
New filter addon — matches objects whose tags contain a given substring (all object namespaces)
#909, #940
WebSearch
Update to v1.10.18; add FinalNotes obituary research link
#912
GenealogyTree
Add compact-template option for the Sandclock report (bug 10512)
#913
PrerequisitesCheckerGramplet
Guard active_page on tree close (bug 13966)
#914
DetailedDescendantBookReport
Pin Ref to first encounter; fix index crash with omit-duplicates off (bug 14051)
#916
PluginManager Enhanced
Fix IndexError when addon declares empty requires_exe (bug 13979)
#919
FRWebConnectPack
Update Geneanet search URL to current form (bug 14145)
#921
ImportGramplet
Pin death-fallback contract for clean XML import (bug 13420)
#924
ChatWithTree
Lock foreground colour for dark-theme contrast (bug 14143)
#928, #951
GraphView
Quote handles in Graphviz output; fix import when GooCanvas or GraphViz is absent
#920, #929
RepositoriesReport
Write repository URLs when “include URLs” is enabled
I’d really love to see the architecture refactoring of the Addons approach.
Namely, to turn the addons into proper Python packages.
IMO, that will remove 90% of the confusion for contributors, standardize packaging, and possibly even reuse Python package managers. From my experience building an addon using MVCS architecture, I bent my brain backwards trying to figure out what happens with addon namespaces.
I’m sure there is a reason for this approach, or some history I don’t know, but it may be worth a discussion.
Good point, I missed the 6.2 thread! heh heh, I have a few things for the future versions as well, unrelated to addons.
Yes, @eduralph has some things in motion there already. We’d discussed the modular addons.
To wrap it up, IMO, addons as real Python modules is the most impactful feature to improve contributors’ experience. Everything else, including my localization proposal, is secondary.