← Previous · Index · Next →
Overview
API and convention changes that affect addon authors, per Gramps minor release. The audience is someone with a working addon on the previous version asking "what do I need to know before I bump gramps_target_version?"
This page is the addon-author slice of the change log. It's not the full release notes — those live on the wiki proper. Entries here are filtered for things that affect:
- the
gramps.gen.*import surface, - the plugin-registration surface (
_pluginreg.py), - the docgen and report APIs,
- per-addon translation / locale plumbing,
- the addon discovery and loading mechanism.
For the practical how to port guidance — what to check on a cross-version port, when to maintain parallel branches — see [13-compatibilityL-compatibility.md). This page is the inventory; 13-compatibility is the procedure.
Gramps 6.1
Targeted from maintenance/gramps61; master until the 6.1.0 release.
Added
- Plugin discovery follows symlinks. Symlinking a working-tree addon folder into the user plugin directory now works, with realpath-based dedup so cycles terminate. Commit
9443dcbb30, with_manager_symlinks_test.pycovering both the scan-via-symlink case and loop termination. The dev loop on Linux/macOS becomes symlink once, edit in place. (See 02-get-started → Where addons live.)
Changed
- Windows toolchain migrated from MINGW64 to MSYS2 UCRT64. Gramps' Windows build moved in PR #2198 (merged 2026-04-19). MINGW64's Python target triple is rejected by orjson's
maturinbackend; the migration was forced.- Impact on addon authors: Windows addon testing targets
maintenance/gramps61andmasteronly — Windows on 6.0 is not upstream-tested. See [13-compatibility → Windows toolchain migrated to UCRT64L-compatibility.md#windows-toolchain-migrated-to-ucrt64).
- Impact on addon authors: Windows addon testing targets
- GExiv2 version handling rewritten. addons-source PR 829 rewrote how GExiv2's version is read and pinned. An addon's
requires_gi=[("GExiv2", "0.10")]declaration may need adjustment; read the EditExifMetadata addon's GExiv2 code on the target branch before assuming a 6.0 pin transfers. See 13-compatibility → GExiv2 version handling rewrittenL-compatibility.md#gexiv2-version-handling-rewritten). - **BSDDB-on-Windows test skip.** A skip rule for BSDDB on Windows landed on `maintenance/gramps61`. Addons exercising the BSDDB backend in tests need to account for its absence on Windows 6.1 (use `@unittest.skipUnless(...)`; see [08-testing → Skip cleanly).
Deprecated
None tracked here yet. The authoritative reference for runtime deprecations is the source — search gramps/gen/**/*.py on the target branch for DeprecationWarning. See [13-compatibility → Reading the deprecation signalL-compatibility.md#reading-the-deprecation-signal) for the recipe.
Removed
None tracked here yet.
Gramps 6.0
The manual's baseline target. Addons declaring gramps_target_version="6.0" run on 6.0.x and are not loaded by 6.1 or later (and vice versa); see [13-compatibility → gramps_target_version semanticsL-compatibility.md#gramps_target_version-semantics).
Added
- SQLite became the default database backend. New trees are SQLite-backed unless the user explicitly chooses BSDDB. Addons that do straight
gramps.gen.db.*reads keep working unchanged — the abstraction holds — but addons that bypassed the abstraction (e.g. reaching into BSDDB-specific cursor APIs) need to migrate to the portable interface.
Changed
- Python 3.10+ minimum. Older Pythons no longer run Gramps 6.0, which means addons can use modern type-hint syntax —
X | Noneinstead ofOptional[X],list[X]instead oftyping.List[X]— without a compatibility shim. See [16-guidelines → Coding styleN-guidelines.md#coding-style).
Deprecated
Verify against the source. DeprecationWarnings on maintenance/gramps60 are the authoritative list.
Removed
None tracked here yet.
Earlier releases
The 5.x → 6.0 transition was a major release; many APIs changed and the maintenance window for addons targeting earlier minors is closing. The authoritative reference for cross-major changes is the Gramps wiki's release-notes pages.
Practical guidance: addons still targeting 5.x should pin gramps_target_version="5.2" (the last 5.x minor) and live on the matching addons-source branch; the cross-major port is a separate exercise from the per-minor deltas this page tracks.
How to read this page
- Each release section is incremental — entries describe what changed from the previous minor, not the cumulative API surface.
- Where an entry has an upstream commit, PR, or addon-side fix, it's cited inline so the change is auditable. Entries without a citation reflect conventions that emerged rather than discrete commits.
- The current surface (what's available right now) lives in 07-api-reference, not here.
See also
- 13-compatibilityL-compatibility.md) — porting an addon across these releases; the practical companion to this inventory.
- [07-api-reference — the current
gramps.gen.*surface. - Portal:Using Gramps → Release notes — upstream release notes (full, not addon-filtered).
gramps/NEWS— the in-tree change log on the target branch.
|
This article's content is incomplete or a placeholder stub. |