Changelog

These release notes describe what's new in each version. OCDS adheres to Semantic Versioning.

Iterative improvements

Per the normative and non-normative content and changes policy, iterative improvements to non-normative content can be made outside the release cycle.

Documentation

  • Primer:

  • Guidance:

    • #986 Add implementation guidance from OCP website.

    • #1386 Add link to OCDS Implementation Checklist.

    • Map:

    • Build:

      • Add pages:

      • #963 Remove guidance on web discovery.

      • #986 Merge Registration page into Build page.

      • #1150 Align language in Build phase with language in Map phase.

      • #1414 Remove the planning section from Easy releases and Change history.

      • #1494 Add guidance on preparing test data to Check your data section.

    • Publish:

      • Merge Publication policy and Licensing pages into Publish page #986 #1012.

      • Replace guidance on publication levels #980 #1013 #1045.

    • #1427 Add guidance about recommended extensions.

    • Various minor improvements #1051 #1080 #1083 #1085 #1091 #1130 #1227 #1299 #1337 #1384.

  • #908 Rename Validator to Data Review Tool.

  • #955 Split the Guidance section into sub-sections. Add a new History section, and move the Changelog, Credits, and History and Development pages to it.

  • #958 Governance page: Change responsibility for prioritization review to OCP's Head of Data Products & Services. Change "technical team" to "standard development team".

  • #959 #979 History section: Merge Credits and History of OCDS pages into Development and Appreciation page. Update history from present perspective.

  • #960 Support section: Merge Tools page into Support page.

  • Re-organize non-normative content (milestone).

  • Copy-edit non-normative pages and fix broken links (milestone).

  • Change how the documentation is built (milestone).

  • Update translations (milestone)

  • Update the changelog #932 #976.

  • #1444 Governance page: OCP is now a 501(c)(3) organization, and FCNY is no longer its fiscal sponsor.

[1.1.5] - 2020-08-20

  • #1054 The Translation and localization policy is amended to read "normative content will be translated into all core supported languages as soon as possible" instead of "before the release". A Spanish translation is ready for release, and a French translation will be ready as soon as possible.

Codelists

  • itemClassificationScheme.csv:

    • #998 Add 'NAICS', 'PSC' and 'HS' codes.

    • #967 Remove the discouragement of the 'UNSPSC' code.

    • #1033 Add a Category column to indicate the context in which the classification scheme is used.

  • milestoneType.csv:

    • #1000 Update description of 'financing' code, and add 'payment' code.

Schema

  • #969 Clarify the instruction for setting the Unit.id field.

  • #995 Clarify the instruction for setting the Release.date field.

  • #996 Fix a typo in the versionedRelease field.

Documentation

  • #966 Move Governance and Deprecation pages to new Governance section.

  • #968 #1032 Use "field" to refer to OCDS fields and "property" to refer to JSON Schema properties.

  • #970 Add links to access the release schema as a CSV spreadsheet and via the Field-Level Mapping Template. Add notes to describe the alternatives for browsing the schemas.

  • #965 Release Reference page: Add extensions list for the Transaction object.

  • #970 Release Schema page: Correct the description of compiled releases.

  • #996 Record Reference page: Rewrite page to improve clarity.

  • #1010 Identifiers page: Add link to organization identifiers example.

  • Codelists page:

    • #978 #1032 Remove the suggestion to use X prefixes, for the reasons expressed by the IETF.

    • #972 Clarify the norms around open and closed codelists.

    • #973 Describe the openCodelist and codelist JSON Schema properties.

    • #1036 Add instruction for OCDS publishers to contact the Data Support Team to add list codes to org-id.guide.

Extensions

See the changelogs for:

[1.1.4] - 2019-06-25

Advisories

  • OCDS 1.0 uses the whole-list merge strategy for Award.suppliers, whereas OCDS 1.1 uses the identifier merge strategy. As a consequence, the OCDS 1.1 versioned release schema is not backward compatible with OCDS 1.0.

    • Action: Versioned releases respecting the OCDS 1.0 schema that set Award.suppliers will need to be re-created to validate against the OCDS 1.1 schema.

  • #780 All extensions authored by the Open Contracting Partnership have been moved to the open-contracting-extensions organization.

    • Action: No change is required, but we recommend that publishers update the URLs of these extensions in their release packages and record packages.

  • #738 1.1.3 changed the merging and versioning behaviors of Item.unit, such that it could be removed by setting it to null, and such that it was versioned as a whole. 1.1.4 restores the behaviors from 1.1.2, such that only its sub-fields can be removed by setting them to null, and such that its sub-fields are versioned individually.

    • Action: If you had upgraded to OCDS 1.1.3, then compiled releases and versioned releases that set Item.unit will likely need to be re-created to validate against the OCDS 1.1.4 schema.

  • #810 buyer.id, Tender.procuringEntity.id, Contract.implementation.payer.id Contract.implementation.payee.id, Budget.id, Identifier.id, and Classification.id are now versioned, consistent with the documentation.

    • Action: Versioned releases that set these fields will likely need to be re-created to validate against the OCDS 1.1.4 schema.

  • #831 OCDS now has a Normative and non-normative content and changes policy.

  • #744 OCDS now has a Translation and localization policy.

  • #717 #734 The OCDS documentation website now has a privacy notice.

  • The documentation is now available in Italian.

Codelists

  • #824 Canonical codelist files are available at URLs like https://standard.open-contracting.org/schema/1__1__5/codelists/, and translations are available at URLs like https://standard.open-contracting.org/1.1/en/codelists/, for OCDS 1.1.4 and up.

  • #746 #842 Update the currency codelist for ISO4217 amendments 166, 167, 168 and 169.

  • #725 Add a 'plannedProcurementNotice' code to the documentType codelist, 'CUCOP' to itemClassificationScheme, 'interestedParty' to partyRole.

  • #725 Update the descriptions of the 'tenderNotice' and 'technicalSpecifications' codes in the documentType codelist to align with the text of the Agreement on Government Procurement (GPA) of the World Trade Organization (WTO).

  • #725 Apply the style guide and OCDS glossary to the 'procuringEntity' and 'supplier' codes in the partyRole codelist.

  • #725 Add examples to the description of the 'environmentalImpact' code in the documentType codelist.

  • #829 Use sentence case for code titles and end code descriptions with periods.

  • #852 Use the correct normative keywords in code descriptions.

Schema

  • #712 #715 Add missing titles for publisher and url and description for record in the record package schema, and missing description for releases in release package schema.

  • #769 The versioned release schema now matches the release schema in: having a minLength validation property for OrganizationReference.name; having codelist and openCodelist properties for Tender.awardCriteria, Tender.awardCriteriaDetails, Document.documentType, Item.unit.scheme, Classification.scheme, and RelatedProcess.scheme; and having a deprecated property for Budget.source. All title and description metadata properties are removed from the versioned release schema.

  • #838 Eliminate the conflicting rule that release identifiers must be unique within release packages. Uniqueness within the scope of a release package either implies that release identifiers must be globally unique, or imposes an arbitrary restriction on the contents of release packages, as there is no rule preventing release packages from containing releases from different contracting processes. Release identifiers are only required to be locally unique within the scope of a contracting process. The ocid and id values of a release can be used together to disambiguate releases within a release package.

  • Clarify the uniqueness of release identifiers in the release schema #838 and release package schema #831.

  • #810 tag is now omitWhenMerged, consistent with the reference implementation in OCDS Merge.

  • #810 Add a dereferenced release schema to ease the implementation of the merge routine.

  • #810 Add "versionId": true hint to Identifier and Classification.

  • #845 Remove a reference to a closed issue and a note about a field name.

  • #855 Use the correct normative keywords in field descriptions.

  • #855 Rephrase field descriptions as definitions rather than instructions.

  • #855 Align the descriptions of the license fields in the release package schema and record package schema.

Documentation

  • #772 #810 #831 Clarify the merge rules for compiled releases and versioned releases.

  • #797 Fix examples of versioned releases.

  • #831 Use the correct normative keywords in the documentation.

  • #869 Move normative statements into normative sections.

  • #835 Display the canonical schema URLs in the documentation.

  • #838 Clarify the uniqueness of release, award and contract identifiers.

  • #831 Improve the description of iterating the release id.

  • #822 Integrate the Extension Explorer.

  • #783 Add missing email address for the standard governance working group.

  • Replace ambiguous or incorrect terms:

    • #831 Use "release id" and "release date", instead of "releaseID" and "releaseDate"

    • #831 Use "ocid prefix", instead of "publisher prefix"

    • #840 Use "release package and record package", instead of "data package", to avoid confusion with Frictionless Data's Data Package specification

    • #831 Use "minor versions", instead of "decimal versions" on deprecation page

    • #823 Fix incorrect uses of "records", "codelists" and "gazetteers" on identifiers and codelists pages

  • Fix out-of-date content:

    • #831 Remove sentence implying non-existence of unit classification scheme codelist on release schema reference page

    • #831 Remove sentence using non-existent 'notice' code on release schema reference page

    • #831 Remove reference to closed issue in API section

  • Add links to:

    • #783 Community extensions relating to party details

    • #837 OCDS profiles

Extensions

See the changelogs for:

[1.1.3] - 2018-04-16

Schema

  • #646 Disallow use of null as an entry in the array for Tender.additionalProcurementCategories.

  • #639 Make name field optional for OrganizationReference.

  • #630 Allow optional field Item.unit to be null. (Reverted in 1.1.4)

  • #663 Add "type": "object" to objects in the versioned release schema.

  • a75c1c5 Make record-package-schema.json use the codelist property to reference releaseTag.csv, and update the enum accordingly.

Codelists

  • Update the currency codelist for ISO4217 amendment 165 (2017-12-14).

Schema

  • #603, #645 Add definitions to Release, planning.budget, Milestone, Organization.address, Organization.contactPoint, Classification, Identifier, Value and Period.

  • #578 Update the definition of the buyer field to cover goods, works and services, and multiple buyers.

Documentation

  • #633 Update schema reference page to display Release.relatedProcesses, Planning.documents and Contract.relatedProcesses.

  • #634 Clarify definitions of core, community and local extensions.

  • Old and unused scripts have been removed from the documentation repository, and a number of script dependencies have been updated.

Extensions

  • #40, #43, #47 Add missing definitions, codelists and enums to core extensions, correct typos in codelist filenames, disallow use of null as an item in arrays, disallow required fields from being set to null, allow optional fields to be null, use OrganizationReference instead of Organization.

[1.1.2] - 2017-11-10

Codelists

  • #609 Update the currency codelist for ISO4217 amendment 163 (2017-06-09). XBT (Bitcoin) is removed from the codelist as it is not part of ISO4217.

Documentation

  • #565 Add explanatory text for the schema browser.

  • #590 #591 Add 1.0.1 and 1.0.3 to the changelog.

[1.1.1] - 2017-07-31

Schema

  • #251 Allow optional field parties.role to be null.

  • #479 Remove releases as a required field in record-package-schema.json.

  • #475 Add an enum property to every field in the schema with a closed codelist.

Codelists

  • #422 Include a currency codelist in the documentation and schema.

  • #471 Update the milestoneType codelist, replacing 'planning' with 'preProcurement' and 'adjudication' with 'assessment', and introducing 'approval' and 'financing'. This is an open codelist, so the old codes remain valid, but publishers able to update to the new codes should do so.

  • #473 Update the definition of the 'contractSchedule' code in the documentType codelist.

Documentation

  • #457 List all registered extensions.

  • #480 Align the tables and text in the publication levels guidance.

  • #489 Change the milestone documents extension to a core extension. This extension is only needed by publishers with legacy data containing documents within milestones.

  • #612 Update the description of the Organization Identifier Scheme codelist, to reflect that it is now maintained by org-id.guide.

  • #506 Remove make_field_definitions.py from the utility scripts, as it is no longer required.

[1.1.0] - 2017-05-01

Policy changes

  • #401 Deprecation policy - The deprecation policy has been updated to support deprecation in decimal upgrades.

Changed

Structural updates

  • #368 Updates to organization handling in OCDS - We have updated the approach to include organization information in the standard from having embedded blocks of organization information, to using embedded cross-references to a top-level 'parties' array where full organization details are stored. This change reduces duplication of organization information, and enables more flexible disclosure of information on all the parties to a contracting process, including multiple buyers.

  • #357 Amendment handling - We have replace amendment with an array of amendments, and have updated schema and guidance to remove the option of providing semi-structured changes in an amendment object. Changes between amendments should now be provided using multiple releases, with the option to explicitly declare how releases relate to an amendment included in the new amendments array.

Schema validation updates

Schema definition updates

Closed codelist updates

Open codelist updates

Added

Extensions

  • #335 #411 Core and community extensions - We have introduced widespread use of extensions throughout the standard. An extension provides fields and data structures that are optional, either because (a) they are only relevant in particular contexts or contracting processes; or (b) they represent a 'stretch goal' for most data publishers, and so are not currently suitable for inclusion in the main standard. We divide these extensions into 'core extensions' which have wide enough relevance, and technical maturity to be included in the main standard documentation (and which are versioned along with the standard documentation), and 'community extensions' which may have less technical maturity, or which might be versioned independently of the main standard.

  • #259 Enquiries - We have introduced a core enquiries extension for providing information on enquiries received during the tender stage.

  • #342 Overall contracting process description - We have introduced a new top-level title and description for the contracting process as a core extension.

  • #274 New property of contract: extendsContractID - We have introduced a new field 'extendsContractID' to the Contract block to support contract cross-referencing between contracts.

  • #381 Lots - We have introduced a core extension to provide a model for contracting processes which are divided into lots.

  • #379 Bids and Bid Statistics - We have introduced a core extension which provides a top level Bids section, with BidStatistics and Bid building blocks for detailed information on individual bids. This supersedes the current tender/tenderers section.

  • #250 Location extension - We have moved the location extensions to become a core extension

  • #33 Participation fees (bid document and submission costs) - We have introduced a core extension for declaring the participation fees related to a contracting process.

  • #249 Extend contract with a supplier array - We have introduced a core extension to allow inclusion of supplier information at the contract level.

Deprecated

[1.0.3] - 2017-07-31

Schema

  • #329 Update Item.quantity to allow decimal values.

  • #253 Update Value.amount to allow negative values.

[1.0.2] - 2016-11-22

Schema

  • #362 Add a title property to all fields.

  • #221 Add the missing procurementMethodDetails field.

  • #391 Fix typo in description property of releaseTag field.

  • #271 Fix link to Fiscal Data Package.

  • #314 Add a description property to the numberOfTenderers field.

  • #244 Fix the description property of the changes field.

Documentation

  • #228 Update the documentation to use "Object" not "Reference" in Format column of field tables.

  • #331 Add a Governance page.

  • #332 Replace the license.

  • #332 Add a Contributor Licence Agreement.

  • #360 Clarify the CSV serialization guidance.

  • Add CSV download links for registered ocids and publication levels. Update the publication levels spreadsheet accordingly.

[1.0.1] - 2016-03-14

Codelists

  • #267 Rename codes in the documentType codelist: 'Tender notice' to 'tenderNotice', 'Award notice' to 'awardNotice', and 'Contract notice' to 'contractNotice'.

  • #307 Remove a reference to a non-existent statusDescription field in the awardStatus codelist.

Schema

  • #283 Remove "mergeStrategy": "ocdsVersion" from the planning.budget field.

  • #295 Allow the optional fields Award.status and Contract.status to be null.

  • #300 Remove "format": "uri" from the publisher.scheme field.

  • #304 Fix the versioning of arrays in the versioned release schema.

  • #305 Add title and description properties and fix typos.

Documentation

  • Restructure the documentation, including: expanding the Getting Started section and adding more examples.

[1.0.0] - 2015-07-29

Codelists

  • Update documentType and organizationIdentifierRegistrationAgency_iati codelists.

Schema

  • #188 Add the tender.numberOfTenderers and tender.tenderers fields.

  • #199 Add the Award.contractPeriod field, to disclose the anticipated contract period without creating a Contract object.

  • Update the description property of the Award.date field.

Documentation

  • Add changelog.

[1.0.RC] - 2014-11-18

Changes prior to this release are not covered here. Please see the overview of changes between the beta and 1.0.RC releases.