Open main menu

Gramps β

User:Eduralph/Sandbox/Gramps 6.0 Wiki Manual - Addon Development - What's New

< User:Eduralph

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.py covering 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

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 | None instead of Optional[X], list[X] instead of typing.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

 

This article's content is incomplete or a placeholder stub.
Please update or expand this section.