The current interfaces for creating a new tool and managing the maintainer list are about as bare bones as they could possibly be. We can do better.
Problems with tool creation:
- "What's a service group? I thought I was making a tool?"
- No ajax check for tool name availability
- Generic "Failed to create service group." error message for all errors including name collision
- No metadata about the tool's intended purpose and implementation collected
- No ability to add additional maintainers at tool creation time
What might be better:
- Collect metadata about the tool at time of creation:
- name (make sure that it is obvious that this will be part of the URL for any webservices)
- type (webservice, bot, both, ???)
- description (For showing on interfaces like https://tools.wmflabs.org/hay/directory/. Not a replacement for a wiki page.)
- default software license (should be required)
- primary implementation language
- Use terminology that is consistent with the documentation and expectations and not necessarily the implementation (i.e. never, ever say "service group")
- Descriptive error messages
- Form validation both client and server side
- Similar interfaces for editing metadata for existing tools
- Allow public editing of the keywords and possibly the description
- public edits should be logged and easily revertible
The collected metadata should be stored somewhere that is accessible outside of Striker to allow others to experiment with different interfaces for searching. Ideally this exposed storage would be in Elasticsearch which provides a lot of features for filtering and other aggregate operations.