Apps and gems on GOV.UK have history followed different naming schemes. Recently we've established a pattern we're quite happy with, but we've never written that down.
This RFC is an attempt to write down the current conventions.
Firstly, the service manual has good guidance on naming things.
The most important rules:
- The name should be self-descriptive. No branding or puns (like Rummager, Needotron and Maslow)
- Use dashes for the URL and GitHub repo
- The name of the app should be the same on GitHub, Puppet and hostname
Applications that publish things are named x-publisher.
Good:
- specialist-publisher
- manuals-publisher
Not so good:
- publisher (too generic)
- contacts-admin (could be contacts-publisher)
Applications that render content to end users on GOV.UK are named x-frontend
Good:
- government-frontend
- email-alert-frontend
Not so good:
- collections (could be collections-frontend)
- frontend (too generic)
Applications that just expose an API are named x-api.
Good:
- publishing-api
- email-alert-api
- router-api
Not so good:
- rummager (should be search-api)
Applications that "manage" things can be called x-manager or x-admin or thing-doer.
Good:
- search-admin
- local-links-manager
- content-tagger
No so good:
- signonotron2000
- maslow (needs-manager)
- Use the official Rubygems naming convention
- Use underscores for multiple words
- Use
govuk_
prefix if the gem is only interesting to projects within GOV.UK
Good:
- govuk_sidekiq
- govuk_content_models
- govuk_admin_template
- vcloud-edge_gateway
Not so good:
- slimmer
- plek
- gds-sso (should be gds_sso, or govuk_sso)