# Running an "Importer dialect" development experiment

**URL:** <https://gramps.discourse.group/t/running-an-importer-dialect-development-experiment/9246>\
**Category:** Beta Testing\
**Created:** [March 22, 2026, 2:50pm UTC](https://gramps.discourse.group/t/running-an-importer-dialect-development-experiment/9246 "2026-03-22T14:50:35Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [March 22, 2026, 2:50pm UTC](https://gramps.discourse.group/t/running-an-importer-dialect-development-experiment/9246/1 "2026-03-22T14:50:35Z")

</div>

One of the imminent changes is the [GEDCOM7 addon by @DavidMStraub](https://github.com/gramps-project/addons-source/pull/744).

But there were problems where the built-in filetype autodetect sees the `.ged` and overrides manually chosen GEDCOM7 Addon.

> As mentioned in [Feature Request 14071](https://gramps-project.org/bugs/view.php?id=14071), I’d been wanting a vCard importer that supports v2.1 (which my smart phone uses) in addition to the v3. _(Given that one of the fairly common assignments in primary school “Social Studies” class is to create a Family Tree, it seemed like students could import their contact list as a starting point with immediate family.)_ So expanding support to import/export all versions of vCard… but no new data types… seemed an obvious, simple task for an AI. And it would be a good test of issues when an Addon competes with a core plug-in.  
> This experiment was run because my hope to enhance the vCard import had not caught the interest of developer when mentioned in several Discourse postings since 2020:
> 
> - May 2020 [Simple Starter question about data input - how? - #27 by emyoulation](https://gramps.discourse.group/t/simple-starter-question-about-data-input-how/421/27)
> - Oct 2020 [Import sources in bulk - #5 by emyoulation](https://gramps.discourse.group/t/import-sources-in-bulk/860/5)
> - Sep 2021 [Novice user UX proposed solution - #6 by emyoulation](https://gramps.discourse.group/t/novice-user-ux-proposed-solution/1832/6)
> - Sep 2021 [Diagramming a family tree for the absolute novice](https://gramps.discourse.group/t/diagramming-a-family-tree-for-the-absolute-novice/1792)
> - Apr 2023 [GEDCOM Character encoding mismatch](https://gramps.discourse.group/t/gedcom-character-encoding-mismatch/3551)
> - Aug 2023 [Researcher meta-data record - #2 by emyoulation](https://gramps.discourse.group/t/researcher-meta-data-record/4016/2)
> - Aug 2024 [Using Gramps as Task App - #19 by emyoulation](https://gramps.discourse.group/t/using-gramps-as-task-app/4022/19)
> - Sep 2024 [Import Text Gramplet (Unrecognized imported Death) - #2 by emyoulation](https://gramps.discourse.group/t/import-text-gramplet-unrecognized-imported-death/6001/2)
> - Oct 2024 [Conflicts when register several imports with the same extension - #3 by emyoulation](https://gramps.discourse.group/t/conflicts-when-register-several-imports-with-the-same-extension/6353/3)
> - Nov 2024 [What are the Guidelines for Importer/Exporter dialects?](https://gramps.discourse.group/t/what-are-the-guidelines-for-importer-exporter-dialects/6472)
> - Feb 2025 [Quickest and easiest way to start a Tree](https://gramps.discourse.group/t/quickest-and-easiest-way-to-start-a-tree/7123)
> - Dec 2025 [Do Importers plugins allow fallbacks? - #8 by emyoulation](https://gramps.discourse.group/t/do-importers-plugins-allow-fallbacks/3652/8)

So, after prompting Claude to assess the issues and possible options. We generated [**GEPS 048** : Format Negotiation Layer for Import-Export Plugins](https://gramps-project.org/wiki/index.php/GEPS_048:_Format_Negotiation_Layer_for_Import-Export_Plugins#Workaround_.2F_Interim_Approaches)

I pushed to consider some [possible workarounds](https://gramps-project.org/wiki/index.php/GEPS_048:_Format_Negotiation_Layer_for_Import-Export_Plugins#Workaround_.2F_Interim_Approaches) for while the core was being modified or if the GEPS was rejected.

- Claude came up with a complex idea of a “Meta-Importer” plug-in. It seemed like a plumber’s nightmare and probably too fragile.
- I suggested a low-investment option: fork the built-in plugin, enhance it as an addon, then manually “hide” the original with [Plugin Manager _enhanced_](http://gramps-project.org/wiki/index.php?title=Addon%3APlugin_ManagerV2).

Forking the built-in vCard3.0 importer and export plugins was fussy but straight-forward. And I fed to Claude to enhance, stressing that this was a test of the issues related to GEPS 048 and the “forking” workaround approach.

The enhanced version was generated and tested. (available in [my GitHub repository](https://github.com/emyoulation/CuratedGrampsPlugins) of experimental addons. **Warning:** the enhanced vCard’s .gpr.py has some questionable code.) Using the addon had the _ **expected problem** _: where the Import Wizard overrode the manual selection of the addon importer and export plugins; using autodetect and the original plug-ins instead.

# _Result:_ Manually hiding the original vCard Plugins proved to be a viable workaround.

 ![image](https://global.discourse-cdn.com/free1/uploads/gramps/original/2X/d/d9daa7490657494afb520e60c8583acbfadc70fe.png)  
This is a lightly hacked Plugin Manager Enhanced. Extra diagnostics, extra filters, more searchable registration fields.

* * *

_See also:_  
Discourse thread: [Do Importers plugins allow fallbacks?](https://gramps.discourse.group/t/do-importers-plugins-allow-fallbacks/3652)

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [March 22, 2026, 2:55pm UTC](https://gramps.discourse.group/t/running-an-importer-dialect-development-experiment/9246/2 "2026-03-22T14:55:28Z")

</div>

# A lesson learned:

When Claude built the enhanced addon with an awareness of the GEPS 048 issues, it opted to get entirely too fancy with the Gramps Plugin Registration (`.gpr.py`) file. It added some code to attempt to _automatically_ hide the built-in vCard plugins during registration. (That remains in the downloadable `.tgz` file.)

This code apparently did not work. And I am glad of that.

Code that is executable during registration seems like an unnecessary security risk of malware.

Now that JSON is a required library of Gramps, perhaps then Gramps should switch to a JSON based registration file?

Staying JSON might make building the Addon&nbsp;Manager’s `addons-`_xx_`.json` file easier too?

---

<div class="post-metadata">

**Author:** ![Nick-Hall](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/nick-hall/32/95_2.png) [@Nick-Hall](https://gramps.discourse.group/u/Nick-Hall)\
**Post date:** [March 22, 2026, 5:27pm UTC](https://gramps.discourse.group/t/running-an-importer-dialect-development-experiment/9246/3 "2026-03-22T17:27:04Z")

</div>

> [@emyoulation](#):
>
> Now that JSON is a required library of Gramps, perhaps the Gramps should switch to a JSON based registration file?

Yes. That is quite a good idea.

The executable code isn’t really a security issue since we can review it at the same time as the addon code. However, we don’t really want to have extra code in the registration files. Most of it should have been removed when I created the [Addon Manager](https://gramps-project.org/wiki/index.php/Gramps_Glossary#addon).

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [March 22, 2026, 9:22pm UTC](https://gramps.discourse.group/t/running-an-importer-dialect-development-experiment/9246/4 "2026-03-22T21:22:59Z")

</div>

> [@Nick-Hall](#):
>
> since we can review it at the same time as the addon code

That’s true. Gary has been doing a _ **great** _ job vetting submissions to the addons-source repository.

But the concern is about other external projects, publishing Addons outside the purview of the gramps-project. Yes, there is still a similar risk of malware being concealed inside the main module. But the code insertion point is way further down the line. The plugin registrations happen before the main interface presents.
