FamilySearch / GEDCOM-registries

2 stars 3 forks source link

A registry of GEDCOM concepts, as proposed in GEDCOM issue #204

Repository organization

The repository is primarily made up of YAML files organized as documented at https://gedcom.io/terms/format.

If you know the URI of the extension you want, you can look up its YAML file path in registry_path.tsv. Other files in the generated_files/ directory may also be of interest to GEDCOM tool developers.

YAML files are placed in this repository in subdirectories type/subtype/name.yaml where

The registry_tools/ directory contains various files and stripts for assisting in maintaining this repository. Notably, that includes a YAML schema validator that should be used by any new or edited YAML before it is pushed to the repository.

Proposing changes or new files

To propose a new entry or change to an existing entry,

  1. Fork this repo
  2. Modify the YAML file, or create the YAML file in the right directory
  3. Check it using the schema checker from the registry_tools/ directory of this repo
  4. Make a pull request

If the change is to a standard term, the change needs to be made to the specification itself instead; changes to standard terms here will be overwritten on the next patch release of the FamilySearch GEDCOM spec.

If you are unsure if your proposed change is appropriate or are uncomfortable directly editing YAML files and making pull requests, submit an issue instead.

If you have questions or suggestions about this repository or its contents, please direct those to the main GEDCOM Discussions page.

Registering extensions

There are two types of extensions whose files appear in the same 'extension' subdirectories, allowing for two paths for standardization of additions:

In either case, once an extension meets the Valuable, Absent, and Used criteria then a standard tag/URI can be added into the 'v7.1' branch of the FamilySearch/GEDCOM repository for inclusion into a future release.

Updating extensions

Three kinds of updates might be made to an extension.

The first two (patches and minor updates) of these changes can be made by updating the existing YAML file, leaving the extension's URI unchanged. The third (major updates) should be made by registering a new YAML file with a new URI.

Note that this is a different set of criteria than are applied to standard structures, where both major and minor updates are also given new URIs and YAML files. Extensions provide the same flexibility as would a new minor version GEDCOM, and hence new URIs for minor changes to them are not needed. That said, if an extension author wishes to provide a new URI and YAML file for a minor update, that is permitted with the subsumes entry in the YAML file providing a way to indicate the previous minor version.