-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update release schema to be coherent with merging specification #330
Comments
It's also worth noting that whilst the merging rules guidance states that the We should fix this as when we update the docs as part of the upgrade |
@kindly Your current code drops |
Just discussed with @kindly why dropping |
The issues that @kindly and @duncandewhurst reported haven't been fixed. |
Starting to document differences between release-schema.json and proposed compiled-release-schema.json:
|
Basic question: why do compiled releases currently have |
Tags are not cumulative. The semantics of That said, |
Hi @jpmckinney , |
@ErinClark Until this issue is resolved, it makes sense to add an additional field as you suggest. |
This would be useful for implementations that use the EU profile because it would be possible to check, using only the compiled release, if both a tender and award release had been published. For the UK, which has issues with linking tenders and awards, currently, you need to check individual releases. |
Based on #1160 (comment), +1 to accumulating tags in compiled releases. |
It's been a few years since the initial list of differences was made in #330 (comment), the following is the updated version based on the outcome of previously mentioned issues and further discussion in this and related threads.
|
@jpmckinney I've manually created a file
Is this schema what you had in mind? If it is then I can move onto making it automatable by manage.py as part of the pre-commit step |
@duncandewhurst please see latest comments, do you think this is the way forward? |
Yep, I think the next step is to add this to the pre-commit command. Let me know if you want me to do that. The compiled release schema looks good to me, except I don't think In the release schema, we'll need to remove references to compiled releases from the descriptions of |
given that 'compiled' is an option in the Good catch on updating the schema title and description, I'll do that in the draft PR. If you could add this to the pre-commit command that would be great! |
Good catch on backwards incompatibility. I think we will have to leave "null" as a possible type and Similarly, we will have to leave 'compiled' as a possible code, since existing OCDS data does use that tag. (OCDS Merge uses it.) In the time since this issue was created, we basically solved it by changing the descriptions of the problematic fields.
As such, it looks like we don't need a new schema, and given the backwards-compatibility constraints, the new schema would basically be identical anyway. What's left to do:
I think this means we leave I was debating whether to deprecate the 'compiled' code. As-is, that code is used to determine whether a release is a compiled release. In principle, the rule is that a compiled release is anything that appears under |
@jpmckinney Could you clarify these two points as they seem to be contradictory?
vs
|
Does this mean we want to replace "omitWhenMerged" with "wholeListMerge"? Or I am right in thinking this wouldn't work as what we're wanting is to merge the whole list but also add an additional tag? So leave it as is and just explain what's needed in the merging docs and |
The strict schema allows us to "break" backwards compatibility, because conformance to the strict schema is optional. For the strict schema, we can have a separate compiled release schema that has more restrictions than the release schema.
No, wholeListMerge means "make a copy of the list from the most recent release of this contracting process" (which might be only "implementation" if that release only describes and changes the implementation). Tag's new semantics are "accumulate all unique values from all releases for this contracting process". We will not be adding a keyword to JSON Schema about this – we will just describe the rule in docs and field description. |
The example data in https://standard.open-contracting.org/staging/1.2-dev/en/schema/merging/#merging-specification only includes |
As mentioned in #284 a compiledRelease in an OCDS record has the same schema as a standard OCDS release.
However, some of the fields, most notably the release ID and date, make no sense once compiled and they are also mandatory. This means it is not possible to make a compiled release that makes sense and validates.
The best approach would be to make a new sightly modified version of the OCDS release to take this into account. Naming possibly merged-release-scema.json
The text was updated successfully, but these errors were encountered: