Standard for Public Code

Glossary

Code

Any explicitly described system of rules. This includes laws, policy and ordinances, as well as source code that is used to build software. Both of these are rules, some executed by humans and others by machines.

Codebase

Any discrete package of code (both source and policy), the tests and the documentation required to implement a piece of policy or software.

This can be – for example – a document or a version-control repository.

Continuous integration

In software engineering, continuous integration (CI) is the practice of merging all developers’ working copies to a development branch of a codebase as frequently as reasonable.

General public

The public at large: end users of the code and the services based upon it.

For example, a city’s residents are considered end users of a city’s services and of all code that powers these services.

Open source

Open source is defined by the Open Source Initiative in their Open Source Definition.

Open standard

An open standard is any standard that meets the Open Source Initiative’s Open Standard Requirements.

Policy

A policy is a deliberate system of principles to guide decisions and achieve rational outcomes. A policy is a statement of intent, and is implemented as a procedure or protocol. Policies are generally adopted by a governance body within an organization. Policies can assist in both subjective and objective decision making.

Public policy is the process by which governments translate their political vision into programs and actions to deliver outcomes.

At the national level, policy and legislation (the law) are usually separate. The distinction is often more blurred in local government.

In the Standard the word ‘policy’ refers to policy created and adopted by public organizations such as governments and municipalities.

Public code

Public code is both computer source code (such as software and algorithms) and public policy executed in a public context, by humans or machines.

Because public code serves the public interest, it should be open, legible, accountable, accessible and sustainable.

By developing public code independently from but still implementable in the local context for which it was developed, as well as documenting the development process openly, public code can provide a building block for others to:

  • re-implement in their local context
  • take as a starting point to continue development
  • use as a basis for learning

To facilitate re-use, public code should be either released into the public domain or licensed with an open license that permits others to view and reuse the work freely and to produce derivative works.

Repository

In revision (or version) control systems, a repository is a data structure which stores metadata for a set of files or directory structure. (source: SVNBook)

Version control

Version control is the management of changes to source code and the files associated with it. Changes are usually identified by a code, termed the revision number (or similar). Each revision is associated with the time it was made and the person making the change thus making it easier to retrace the evolution of the code. Revisions of code can be compared with each other and it makes it easy to restore previous versions.