About

Governance & name usage

ICF is maintained deliberately small. This page makes the process visible and predictable: who decides, how changes happen, what compatibility promises hold, and how the name may be used.

Who maintains ICF

The ICF and ICX specifications and the official implementations are created and maintained by Edison Williams, publishing as ICFormat.org. All source lives under the icformat GitHub organization. There is no standards committee; the maintainer approves specification releases.

How changes are proposed

Open an issue (or pull request) on the relevant repository — icfj, icfpy, icf.js, icfeditor, icfmcp. Specification questions and proposals are welcome on any of them. Substantive language changes are batched into a new specification version rather than applied piecemeal.

How specifications are released

A specification version moves through Working Draft → Release Candidate → Stable and is published at a permanent version-specific URL (see the version history and policy). Once Stable, the text is frozen: corrections are published as errata or as a new patch version, never as silent edits. Each release is accompanied by matching releases of the three official implementations, which are kept in behavioral parity (identical diagnostics across Java, Python and JavaScript).

Compatibility policy

Minor versions are backward compatible: documents valid under an earlier 1.x remain valid and mean the same thing. Parsers encountering a document with a newer minor version than they implement continue best-effort with a warning; a newer major version is an error. The full rules are normative in the specification (§74) and summarized on the versions page.

Third-party implementations

Independent implementations are welcome and require no permission. The published specification is the normative definition of the language — the official libraries are implementations of it, not its definition, and someone should be able to implement ICF from the specification alone. The official implementations are MIT-licensed, so consulting or reusing their source is also fine. Conformance is checked with the official conformance test suite; a claim of the form “Passes icf-conformance 0.1.0 (ICF 1.1): 44/44” states the suite version and result.

Name and logo usage

  • “ICF”, “Indent Comma Format”, “ICX” and “Indent Comma Index” may be used freely to describe the formats, and to state truthfully that software reads, writes or implements them.
  • Do not name a product in a way that implies it is published or endorsed by ICFormat.org — “official” is reserved for the projects in the icformat GitHub organization.
  • Third-party implementations should use their own distinct names (e.g. fooicf) and are encouraged to state the specification version they target.
  • The ICFormat.org logo identifies this site and its official projects; ask before using it to represent third-party software.

The names are currently descriptive, not registered trademarks; the intent of this policy is clarity, not enforcement.

Licenses

The specifications are published under CC BY 4.0; the official implementations under the MIT License.