Page MenuHomePhabricator

[Toolhub Milestone 1] Define updated toolinfo standard
Closed, ResolvedPublic

Description

The toolinfo standard defined by @Husky's tool directory is the current de-facto standard for tool metadata. It has a number of limitations, including:

  • Not enough information compared to what people want
  • Difficult to present in multiple languages
  • Uses a freeform keyword system, which can't effectively be internationalized and readily leads to keyword duplication (image vs. images vs. media vs. multimedia).

The goal of this task is to define an updated toolinfo standard that is fully backwards compatible with the current standard. This is Version 1. Optionally we could create a Version 2 that breaks backwards compatibility, but both would need to be supported.

Event Timeline

Harej created this task.Feb 3 2018, 3:53 AM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptFeb 3 2018, 3:53 AM
Krinkle added a subscriber: Krinkle.Feb 3 2018, 4:12 AM
Legoktm added a subscriber: Legoktm.Feb 3 2018, 6:29 AM

Maybe this is doable via tags, but I'd like to see a way to specify which projects a tool is designed for. Sometimes a tool is designed for a specific project, e.g. Commons, other times a family of projects, e.g. all Wikisources or any wiki.

Harej renamed this task from Define updated toolinfo standard to [Milestone] Define updated toolinfo standard.Feb 7 2018, 2:33 AM
Harej renamed this task from [Milestone] Define updated toolinfo standard to [Milestone 1] Define updated toolinfo standard.Feb 7 2018, 3:15 AM
Husky added a comment.Feb 7 2018, 1:45 PM

Note that the current spec is available here:

https://tools.wmflabs.org/hay/directory/#addtool

Harej added a comment.Mar 11 2018, 5:44 AM

I have now codified the current spec used by @Husky's directory as version 1.0.0 of the Wikimedia Tool JSON schema:

{
	"$schema": "http://json-schema.org/draft-07/schema#",
	"title": "Wikimedia Tool",
	"description": "A tool is a piece of software that helps facilitate contribution toward, or consumption of, a Wikimedia project, not including the core wiki software and its extensions",
	"version": "1.0.0",
	"authors": ["Hay Kranen", "James Hare"],
	"definitions": {
		"tool": {
			"type": "object",
			"properties": {
				"name": {
					"type": "string"
				},
				"title": {
					"type": "string"
				},
				"description": {
					"type": "string"
				},
				"url": {
					"type": "string"
				},
				"keywords": {
					"type": "string"
				},
				"author": {
					"type": "string"
				},
				"repository": {
					"type": "string"
				}
			},
			"required": ["name", "title", "description", "url"]
		}
	},
	"oneOf": [{
			"type": "array",
			"items": {
				"$ref": "#/definitions/tool"
			}
		},
		{
			"type": "object",
			"$ref": "#/definitions/tool"
		}
	]
}

As I research tool discoverability needs, I will be releasing an updated version of this standard that is totally backwards compatible with the current standard. That will be version 1.1.0. Either at the same time or shortly after, I will be working on a non-backwards compatible version. This will be version 2.0.0.

Krinkle removed a subscriber: Krinkle.
Harej renamed this task from [Milestone 1] Define updated toolinfo standard to [Catalog Milestone 1] Define updated toolinfo standard.Mar 19 2018, 10:21 PM
Harej moved this task from Backlog to In Progress on the Toolhub board.Mar 20 2018, 5:44 AM
Harej moved this task from In Progress to Backlog on the Toolhub board.
Harej renamed this task from [Catalog Milestone 1] Define updated toolinfo standard to [Toolhub Milestone 1] Define updated toolinfo standard.Mar 29 2018, 12:30 AM
Harej moved this task from Backlog to In Progress on the Toolhub board.Mar 31 2018, 11:26 PM
Harej added a project: cloud-services-team.
Harej moved this task from In Progress to Review on the Toolhub board.May 1 2018, 10:14 PM
Harej closed this task as Resolved.Jul 16 2018, 8:24 PM