Skip to content

Guidance around extending subschema (building blocks) #606

@jpmckinney

Description

@jpmckinney

If an extension extends the Period building block with a new field, because the publisher wants to add a detail or nuance to awardPeriod, that extension will also effectively make that new field available to all other Period objects (tenderPeriod, enquiryPeriod, contractPeriod, award/contractPeriod, contract/period). However, that new field may be meaningless or incoherent in those other contexts.

We should author guidance about when to extend building blocks, to avoid this scenario. In general, building blocks should only be extended if those changes make sense for all fields/objects using the building block.

Alternately, if we want to allow people to extend the awardPeriod object without affecting other Period objects, then we may need to abandon the idea of reusable building blocks at least as currently implemented (or severely diminish their value and create new challenges, if e.g. a publisher changes the $ref of awardPeriod to point to a new, encapsulated Period object), but that may be 2.0.

Follow-up from #593 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Focus - DocumentationIncludes corrections, clarifications, new guidance, and UI/UX issuesFocus - ExtensionsRelating to new or proposed extensions, or the governance and maintenance of extensionsblockedWe can't merge this yet

    Type

    No type

    Projects

    Status

    To do

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions