INCATools / INCATools/ontology-development-kit

Coordination on project YAML schema

Open
#328 17 comments 0 reactions 0 assignees View on GitHub
Dominant language
Dockerfile
Stars
375
Forks
69
Avg merge
3d 5h
Merged PRs (30d)
7

Description

Can we converge on a common `project.yml` file schema?

Background: As discussed in #298, I'm very keen to follow ODK's lead on lots of things, even though I usually want only a subset of ODK features for my ontology projects.

Immediate use case: My team is working on a script for reserving term IDs, which needs to know GitHub repo coordinates, IDSPACE, and ID pattern stuff. https://github.com/ontodev/gizmos/pull/2

ODK uses YAML config files, many of which are here in [`configs/`](https://github.com/INCATools/ontology-development-kit/tree/master/configs). They already contain most of what that script needs (IDSPACE, GitHub coordinates), plus other useful stuff (dependencies, products, etc.)

Across OBO we have a few other project YAML files:

- OBO registry YAML files, with lots of project metadata, now including some build and dependency information
- PURL config files, which have the IDSPACE but are specialized

We also use or could use project configuration data for DROID, ROBOT, and Protege. And in working on the OBO Dashboard I realized that if I knew that a project was using the GitHub release mechanism, then the dashboard code could look there for new releases. I can think of many more use cases, and there may be relevant open issues already.

I'm not asking for one config file to rule them all. I think the separation between OBO registry and PURL config files is ultimately more helpful than it is annoying. On the other hand, the line between ODK config and OBO registry is not clear to me.

I don't know the right way to go with this. Maybe it won't work at all. But I'll pitch two ideas. First idea:

1. Draw a sharper line between OBO registry and ODK configs
- e.g. maybe move GitHub coordinates to OBO registry
- ODK repositories would still keep local copies of both files
2. Update code to read both OBO registry and ODK configs and work with the merged results
3. Expand the scope of ODK configs to include stuff other tools need, e.g. ID patterns, term reservation branch name
4. Define a schema for ODK configs

Second idea: Shove all this stuff into the OBO registry.

Contributor guide

Open the contributing guide

Research direction

Start by reading the discussion in #298 and comparing the ODK files in configs/ with OBO registry YAML and PURL config files. Review the immediate use case in ontodev/gizmos#2 and identify the project metadata the proposed tools need. Done would require an agreed boundary or merged schema direction, including how ODK configs and registry data should interact.

Written by the indexing model from the issue text.

Assessment

Tech stack
yaml
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.