Standard for Public Code

Welcome contributions

Requirements

  • The codebase MUST have a public issue tracker that allows suggestions from anyone
  • The codebase MUST allow anyone to submit suggestions for changes to the codebase
  • The documentation MUST link to both the public issue tracker and submitted codebase changes
  • The codebase MUST include an email address for security issues and responsible disclosure
  • The codebase MUST include contribution guidelines explaining how contributors can get involved
  • The codebase SHOULD have a publicly available roadmap
  • The codebase SHOULD advertise the committed engagement of involved organizations in the development and maintenance
  • The codebase MAY include a code of conduct for contributors
  • The codebase MAY document the governance of the codebase, contributions and its community, for example in a GOVERNANCE file

Why this is important

  • Allows collaborative uptake of shared digital infrastructure
  • Prevents forks of codebases, in which a community that works on a project splits because there is no shared progress
  • Helps users decide to use one codebase over another
  • Enables users to fix problems and add features to the shared codebase leading to better, more reliable and feature rich software

What this does not do

  • Guarantee others will reuse the codebase

How to test

  • There’s a public issue tracker.
  • It’s possible to submit suggestions for changes to the codebase.
  • There are contribution guidelines.

Policy makers: what you need to do

  • Add a list to the codebase of any other resources, policy experts, non-governmental organizations and academics would find useful for understanding and reusing your policy.
  • Track policy issues in the codebase, so that a relevant external policy expert can volunteer help.
  • Consider adding contact details so that other policy makers considering reuse can ask you for advice.

Management: what you need to do

  • Add to the documentation: how your organization is involved in the project, what resources it has available for it and for how long
  • Track management issues in the codebase, so that external managers with relevant experience can volunteer help.
  • Support your experienced policy makers, developers and designers to keep contributing to the codebase for as long as possible.

Developers and designers: what you need to do

  • Respond promptly to requests

Further reading