Skip to content

JSON comments for automation ‐ Experimental

John Waller edited this page Sep 23, 2024 · 9 revisions

Introduction

This document describes an experimental effort to describe backbone issues in a structured way with as little ambiguity as possible. The structure of the json comments is very likely to change. If you want describe your backbone-feedback using one of the structures here, feel free. Also feel free to ignore the comment altogether.

We are starting to describe simple changes using json. See some examples below. Not all issues are possible to describe in a clear way and some are too complex to describe or it unclear what the right solution is.

A github action script could then be written to periodically (after a backbone build), to scan the issues to see if the changes have been applied.

FYI these json descriptions are only for describing the problem in an structured clear way, and do not have any effect on what actual gets changed in the backbone.

Why isn't the issue closed even though it is fixed at source?

The GBIF backbone is usually only updated 1 or 2 times per year. Therefore, issues that are fixed at source can often remain unchanged in the backbone for many months. Also there can be complexities in the backbone building process (such as checklist priority or COL updates), which means a given source might not make into a new build even though it was updated.

JSON comment working examples

Below are some working examples (subject to change) of ways to capture various backbone issues in a succinct, structured way. These are not meant to be a full description of the problem, but give just enough information to check if it has been fixed.

If multiple proposed changes are found in one issue, one can use a json array.

Name Change

// json for auto-checking
{
"currentName": "Paradohertya triphasia Bethune-Baker, 1904",
"proposedName": "Paradohertya trifascia Bethune-Baker, 1904"
}

why is this here?

bad name

Name should not exist at all.

// json for auto-checking
{
"badName": ""
}

why is this here?

missing name

Name should exist

// json for auto-checking
{
"missingName": ""
}

why is this here?

rank change

// json for auto-checking
{
"name": "Alphocoris spec Linnavuori, 1984",
"wrongRank": "KINGDOM",
"rightRank": null
}

why is this here?

wrong group

// json for auto-checking
{
"name": "Alphocoris spec Linnavuori, 1984",
"wrongGroup": "Plumbaginaceae",
"rightGroup": null
}

why is this here?

syn issues

Still working on some good tags for synonym related issues. Will put some ideas here.

wrong status

// json for auto-checking
{
"name": "",
"wrongParent": null,
"rightParent" : null, 
"wrongStatus": "SYNONYM",
"rightStatus": "ACCEPTED"
}

why is this here?