Copyright © 2022 Named editors. Contributors to the Open Credentialing Initiative.
This section describes the status of this document at the time of its publication. Other documents may supersede this document.
This is a public OCI Working Draft for review by OCI Members and other interested parties. This section describes the status of this document at the time of its publication. It is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use OCI Working Drafts as reference material or to cite as other than "work in progress". A list of current OCI Recommendations and other technical documents can be found here https://github.com/Open-Credentialing-Initiative.
This specification describes the requirements for all OCI Policy and Architecture documentation created through external and internal collaboration. The contribution process is described elsewhere. Please visit Contribution Process.
The following keywords indicate the precedence and general rigidity of a given conformance criterion, and are to be interpreted as:
Various conformance and technical specifications created by OCI rely on each other. Hence, changes to any of such documentation must be managed with care to prevent lack of clarity, failure of services to interoperate or any other consequential disruption to services provided or consumed by external and internal stakeholders who rely on the OCI framework. This policy describes how OCI manages versions and releases of its conformance and technical documentation.
OCI manages versions of its releases at the following two levels:
Versioning on a repository basis may occur when a group of semantically connected documents is published by OCI. Changes in versions in a repository are always reflected via Releases found in the corresponding repository on GitHub. For example: https://github.com/Open-Credentialing-Initiative/schemas/releases.
Versioning on a file basis may occur when stakeholders directly consume a file published by OCI. This is often the case with json-ld schemas, open-api specifications or other programmatically required resources. This is done to avoid breaking existing integrations and dependencies which directly consume these files. Any updates made to them mean that stakeholders have to consciously update a link to a file in order to increment their version as well.
In order to version published work, OCI utilizes a well-established and known versioning mechanism: Semantic Versioning.
Versioning in OCI is largely borrowed from the Semantic Versioning approach.
The core principles are:
Changes in version have to adhere to the following guideline:
To ensure that defined sets of OCI-versioned documents remain interoperable, these must be adjusted and reviewed in lockstep. To this end an overarching entity, called Interoperability Profile, is leveraged. An Interoperability Profile encapsulates multiple OCI-versioned documents that directly relate to each other or functionally rely on each other. An integrator MUST observe the versioning of the complete interoperability profile instead of manually choosing which document versions within such a set to implement.
Increases in single OCI documents will be reflected in appropriate version changes in the connected OCI interoperability profile.