From 1218da054e2d43c87ee1bf1d0dc294e30288a2b5 Mon Sep 17 00:00:00 2001 From: Yohanna Lisnichuk Date: Wed, 14 Jul 2021 12:04:02 -0400 Subject: [PATCH 01/21] framework agreements guidance: clarify award resulting from a second stage Signed-off-by: Yohanna Lisnichuk --- docs/guidance/map/related_processes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guidance/map/related_processes.md b/docs/guidance/map/related_processes.md index 30b14b63e..0a113a443 100644 --- a/docs/guidance/map/related_processes.md +++ b/docs/guidance/map/related_processes.md @@ -117,7 +117,7 @@ Use the following criteria to determine the procurement method: ### Award of a procurement contract resulting from a second-stage competition -* Create a release with the **same** `ocid` as the tender release *for the second stage*, and add 'award' and 'contract' to the `tag` +* Create a release with the **same** `ocid` as the tender release *for the invitation to participate in a second-stage competition*, and add 'award' and 'contract' to the `tag` * [Add an award, contract and supplier](#add-an-award-contract-and-supplier) ### Updating the contract value, period or items From 29ed96240bea9d603dd963bf09613d924481f125 Mon Sep 17 00:00:00 2001 From: Yohanna Lisnichuk Date: Wed, 14 Jul 2021 12:08:35 -0400 Subject: [PATCH 02/21] framework agreements: move extenstions under FA diagram Signed-off-by: Yohanna Lisnichuk --- docs/guidance/map/related_processes.md | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/docs/guidance/map/related_processes.md b/docs/guidance/map/related_processes.md index 0a113a443..b1a2d57a3 100644 --- a/docs/guidance/map/related_processes.md +++ b/docs/guidance/map/related_processes.md @@ -65,8 +65,18 @@ The following diagram shows how OCDS models a framework agreement procedure with ![OCDS framework agreement model](../../_static/png/framework_agreement_model.png) +### Extensions + +The `tender.techniques.hasFrameworkAgreement` field, from the [Techniques](https://extensions.open-contracting.org/en/extensions/techniques/master/) extension, is used to identify contracting processes that represent the first stage of a framework agreement procedure. More information on the nature of the framework agreement can be provided via the `tender.techniques.frameworkAgreement` object. + The `tender.competitive` field, from the [Competitive](https://extensions.open-contracting.org/en/extensions/competitive/master/) extension, is used to indicate whether the second stage involves competition. +The two extensions should be declared in the package metadata: + +```{literalinclude} ../../examples/frameworks/extensions_block.json +:language: json +``` + The following guidance describes how to model the different stages of a framework agreement procedure in OCDS. ### Invitation to participate in the first stage of a framework agreement procedure @@ -143,18 +153,6 @@ Use the following criteria to determine the procurement method: * Add an `OrganizationReference` object to the award's `.suppliers` array and set `.id` and `.name` to match the supplier's object in the `parties` array. * Populate the award's `.value`, `.contractPeriod` and `.items` with the initial contract value, period and items. -### Extensions - -The `tender.techniques.hasFrameworkAgreement` field, from the [Techniques](https://extensions.open-contracting.org/en/extensions/techniques/master/) extension, is used to identify contracting processes that represent the first stage of a framework agreement procedure. More information on the nature of the framework agreement can be provided via the `tender.techniques.frameworkAgreement` object. - -The `tender.competitive` field, from the [Competitive](https://extensions.open-contracting.org/en/extensions/competitive/master/) extension, is used to indicate whether the second stage involves competition. - -The two extensions should be declared in the package metadata: - -```{literalinclude} ../../examples/frameworks/extensions_block.json -:language: json -``` - ## Worked examples The following examples show how to model two framework agreements, covering a range of characteristics: From 9a804f5affe682117e03e98573ce1e51f86af08f Mon Sep 17 00:00:00 2001 From: Yohanna Lisnichuk Date: Wed, 14 Jul 2021 12:10:06 -0400 Subject: [PATCH 03/21] framework agreements: rename file Signed-off-by: Yohanna Lisnichuk --- docs/guidance/map.md | 2 +- docs/guidance/map/awards_contracts_buyers_suppliers.md | 2 +- ...ocesses.md => framework_agreements_and_related_processes.md} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename docs/guidance/map/{related_processes.md => framework_agreements_and_related_processes.md} (100%) diff --git a/docs/guidance/map.md b/docs/guidance/map.md index 46bdfce84..2d9c2e268 100644 --- a/docs/guidance/map.md +++ b/docs/guidance/map.md @@ -94,6 +94,7 @@ Mapping data to OCDS is not always obvious. Please refer to our how-to guides an map/amendments map/awards_contracts_buyers_suppliers map/beneficial_ownership +map/framework_agreements_and_related_processes map/milestones map/organization_classifications map/organization_identifiers @@ -101,7 +102,6 @@ map/organization_personal_identifiers map/organization_reference map/organizational_units map/pre-qualification -map/related_processes map/unsuccessful_tender ``` diff --git a/docs/guidance/map/awards_contracts_buyers_suppliers.md b/docs/guidance/map/awards_contracts_buyers_suppliers.md index 1769fd576..103aaf919 100644 --- a/docs/guidance/map/awards_contracts_buyers_suppliers.md +++ b/docs/guidance/map/awards_contracts_buyers_suppliers.md @@ -142,6 +142,6 @@ That said, many organizations can be assigned the 'buyer' role in the `parties` award_notices_decisions mapping_awards_contracts consortia -related_processes +framework_agreements_and_related_processes purchase_orders ``` diff --git a/docs/guidance/map/related_processes.md b/docs/guidance/map/framework_agreements_and_related_processes.md similarity index 100% rename from docs/guidance/map/related_processes.md rename to docs/guidance/map/framework_agreements_and_related_processes.md From 40cc280bfc9c08a54cdd5b855789a7f12a6709b4 Mon Sep 17 00:00:00 2001 From: Yohanna Lisnichuk Date: Wed, 14 Jul 2021 12:22:27 -0400 Subject: [PATCH 04/21] framework agreement: add tender.competitive=true guidance Signed-off-by: Yohanna Lisnichuk --- docs/guidance/map/framework_agreements_and_related_processes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guidance/map/framework_agreements_and_related_processes.md b/docs/guidance/map/framework_agreements_and_related_processes.md index b1a2d57a3..06e440d38 100644 --- a/docs/guidance/map/framework_agreements_and_related_processes.md +++ b/docs/guidance/map/framework_agreements_and_related_processes.md @@ -123,7 +123,7 @@ Use the following criteria to determine the procurement method: * Create a release with a **new** `ocid` and add 'tender' to the `.tag` array * [Relate the second stage to the first stage](#relate-the-second-stage-to-the-first-stage) * [Add a buyer](#add-a-buyer) -* Populate the `tender` section, setting `tender.procurementMethod` to the same value as in the first stage +* Populate the `tender` section, setting `tender.procurementMethod` to the same value as in the first stage, and set `tender.competitive` to `true` ### Award of a procurement contract resulting from a second-stage competition From f2ab10ce80727c59586d78cfbfaeed1d77725920 Mon Sep 17 00:00:00 2001 From: Yohanna Lisnichuk Date: Wed, 14 Jul 2021 12:26:05 -0400 Subject: [PATCH 05/21] framework agreement guidance: remove Setting procurement method section Signed-off-by: Yohanna Lisnichuk --- .../map/framework_agreements_and_related_processes.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/docs/guidance/map/framework_agreements_and_related_processes.md b/docs/guidance/map/framework_agreements_and_related_processes.md index 06e440d38..6d209e949 100644 --- a/docs/guidance/map/framework_agreements_and_related_processes.md +++ b/docs/guidance/map/framework_agreements_and_related_processes.md @@ -91,16 +91,6 @@ The following guidance describes how to model the different stages of a framewor * If the framework agreement is closed, set `tender.tenderPeriod.endDate` to the deadline for responses to the invitation. * If the framework agreement is open, set `tender.tenderPeriod.endDate` to the last date that new suppliers can be added. -#### Setting procurement method - -The `tender.procurementMethod` field uses the [method codelist](../../schema/codelists.md#method) to describe the competitive conditions of the framework agreement procedure as a whole, not only the first stage. - -Use the following criteria to determine the procurement method: - -* If the contracting process will establish a framework agreement with a single supplier and if there are no conditions to participate in the contracting process, set `tender.procurementMethod` to 'open'. -* If the contracting process limits the suppliers that can submit a request to participate in the framework agreement, set `tender.procurementMethod` to 'limited'. -* Otherwise, set `tender.procurementMethod` to 'selective'. - ### Addition of a supplier to a framework agreement * Create a release with the **same** `ocid` as the tender release and add 'award' to the `tag` array From ec004641463aa21f75370868f8801782c26f49c2 Mon Sep 17 00:00:00 2001 From: JachymHercher Date: Sat, 17 Jul 2021 11:04:13 +0200 Subject: [PATCH 06/21] Update framework_agreements_and_related_processes.md "set to `true`" replaced with "set to 'true'", as I would treat true/false as standard codelist values and thus in line with https://ocds-standard-development-handbook.readthedocs.io/en/latest/meta/style_guide.html. --- .../map/framework_agreements_and_related_processes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/guidance/map/framework_agreements_and_related_processes.md b/docs/guidance/map/framework_agreements_and_related_processes.md index 6d209e949..0927490bf 100644 --- a/docs/guidance/map/framework_agreements_and_related_processes.md +++ b/docs/guidance/map/framework_agreements_and_related_processes.md @@ -161,7 +161,7 @@ NSS issues a [contract notice](https://ted.europa.eu/udl?uri=TED:NOTICE:478648-2 The notice is modelled as an OCDS release with a `tag` of 'tender' and the following properties: * The techniques extension is declared in the package metadata. -* Since this contracting process is for the set-up of a framework agreement, `tender.techniques.hasFrameworkAgreement` is set to `true`. +* Since this contracting process is for the set-up of a framework agreement, `tender.techniques.hasFrameworkAgreement` is set to 'true'. * Since the framework agreement will be concluded with a single supplier and since any supplier is able to submit a response to the invitation to participate, `tender.procurementMethod` is set to 'open'. * Since the framework agreement is closed, `tender.tenderPeriod` is set to the deadline for responses to the invitation to participate. * Since there is only one buyer, `buyer` is set to reference the buyer's object in the `parties` array. @@ -225,7 +225,7 @@ Chile Compra publishes a [tender notice](https://www.mercadopublico.cl/Procureme The notice is modelled as an OCDS release with a `tag` of 'tender' and the following properties: * The techniques extension is declared in the package metadata. -* Since this contracting process is for the set-up of a framework agreement, `tender.techniques.hasFrameworkAgreement` is set to `true`. +* Since this contracting process is for the set-up of a framework agreement, `tender.techniques.hasFrameworkAgreement` is set to 'true'. * Since the framework agreement will be concluded with multiple suppliers and will involve second-stage competition, `tender.procurementMethod` is set to 'selective'. * Since the framework agreement is open, `tender.tenderPeriod` is set to the end of the framework agreement. * Since there are two buyers, the 'buyer' object is not set, and the buyers are declared in the `parties` array. @@ -265,7 +265,7 @@ The release has the following properties: * A new `ocid` is used. * The `relatedProcesses` section is populated with a reference to the contracting process for the first stage. * The `tag` is set to 'tender'. -* The tender section includes details about the competition, and `tender.competitive` is set to `true`. +* The tender section includes details about the competition, and `tender.competitive` is set to 'true'. * Since this new contracting process has a single buyer, the `buyer` is set to Servicio Local de Educación Pública Puerto Cordillera. ```{jsoninclude} ../../examples/frameworks/open_multiple_second_stage.json From 6a262daf178510637ba473280cb8c49ed2b036a6 Mon Sep 17 00:00:00 2001 From: JachymHercher Date: Sat, 17 Jul 2021 14:29:00 +0200 Subject: [PATCH 07/21] Remove "and related processes" from map TOC --- docs/guidance/map.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guidance/map.md b/docs/guidance/map.md index 2d9c2e268..27041b238 100644 --- a/docs/guidance/map.md +++ b/docs/guidance/map.md @@ -94,7 +94,7 @@ Mapping data to OCDS is not always obvious. Please refer to our how-to guides an map/amendments map/awards_contracts_buyers_suppliers map/beneficial_ownership -map/framework_agreements_and_related_processes +map/framework_agreements map/milestones map/organization_classifications map/organization_identifiers From 2014d42ac171cd1a79ff04c845e51dfeb8340ad2 Mon Sep 17 00:00:00 2001 From: JachymHercher Date: Sat, 17 Jul 2021 14:32:01 +0200 Subject: [PATCH 08/21] Remove "related processes" from heading & filename --- ...eements_and_related_processes.md => framework_agreements.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename docs/guidance/map/{framework_agreements_and_related_processes.md => framework_agreements.md} (99%) diff --git a/docs/guidance/map/framework_agreements_and_related_processes.md b/docs/guidance/map/framework_agreements.md similarity index 99% rename from docs/guidance/map/framework_agreements_and_related_processes.md rename to docs/guidance/map/framework_agreements.md index 0927490bf..bfc1c540e 100644 --- a/docs/guidance/map/framework_agreements_and_related_processes.md +++ b/docs/guidance/map/framework_agreements.md @@ -1,4 +1,4 @@ -# Framework Agreements and Related Processes +# Framework agreements ```{note} In this guidance we defer to the definitions given in the [UNCITRAL Model Law on Public Procurement (2011)](https://uncitral.un.org/en/texts/procurement/modellaw/public_procurement). The model law was developed through extensive consultation and reflects the procurement practices and concepts used in many different jurisdictions. From 050e08032862e73036c02aea8fd206d1af55cd8a Mon Sep 17 00:00:00 2001 From: JachymHercher Date: Sat, 17 Jul 2021 14:33:15 +0200 Subject: [PATCH 09/21] Remove "and related processes" from examples --- docs/guidance/map/awards_contracts_buyers_suppliers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guidance/map/awards_contracts_buyers_suppliers.md b/docs/guidance/map/awards_contracts_buyers_suppliers.md index 103aaf919..3c0d4e883 100644 --- a/docs/guidance/map/awards_contracts_buyers_suppliers.md +++ b/docs/guidance/map/awards_contracts_buyers_suppliers.md @@ -142,6 +142,6 @@ That said, many organizations can be assigned the 'buyer' role in the `parties` award_notices_decisions mapping_awards_contracts consortia -framework_agreements_and_related_processes +framework_agreements purchase_orders ``` From 0edb5d3e39dfcecd4a832efae64293699890c55f Mon Sep 17 00:00:00 2001 From: Yohanna Lisnichuk Date: Tue, 27 Jul 2021 12:48:59 -0400 Subject: [PATCH 10/21] changelog: add framework agreements guidance Signed-off-by: Yohanna Lisnichuk --- docs/history/changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/history/changelog.md b/docs/history/changelog.md index 5a17d9e1f..1cab9f447 100644 --- a/docs/history/changelog.md +++ b/docs/history/changelog.md @@ -24,6 +24,7 @@ Per the [normative and non-normative content and changes policy](https://docs.go * Add worked examples for the Build phase [#951](https://github.com/open-contracting/standard/pull/951) [#997](https://github.com/open-contracting/standard/pull/997). * [#1150](https://github.com/open-contracting/standard/pull/1150) Align language in Build phase with language in Map phase. * [#833](https://github.com/open-contracting/standard/issues/833) Removed language distinguishing "core", "community", and "local" extensions. + * [#1332](https://github.com/open-contracting/standard/pull/1332) Improve guidance on framework agreements * [#960](https://github.com/open-contracting/standard/pull/960) Support section: Merge Tools page into Support page. * [#959](https://github.com/open-contracting/standard/pull/959) History section: Merge Credits and History of OCDS pages into Development and Appreciation page. Update history from present perspective. * [#908](https://github.com/open-contracting/standard/pull/908) Rename Validator to Data Review Tool. From f5318f6eca191de6dff6bd2bdd93d330576f68ca Mon Sep 17 00:00:00 2001 From: Yohanna Lisnichuk Date: Fri, 30 Jul 2021 15:44:14 -0400 Subject: [PATCH 11/21] framework agreements: add titles Signed-off-by: Yohanna Lisnichuk --- docs/guidance/map/framework_agreements.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/guidance/map/framework_agreements.md b/docs/guidance/map/framework_agreements.md index bfc1c540e..dab250c88 100644 --- a/docs/guidance/map/framework_agreements.md +++ b/docs/guidance/map/framework_agreements.md @@ -1,5 +1,7 @@ # Framework agreements +## Definition of framework agreement + ```{note} In this guidance we defer to the definitions given in the [UNCITRAL Model Law on Public Procurement (2011)](https://uncitral.un.org/en/texts/procurement/modellaw/public_procurement). The model law was developed through extensive consultation and reflects the procurement practices and concepts used in many different jurisdictions. ``` @@ -18,6 +20,8 @@ A procurement contract is defined in UNCITRAL as: > Contract concluded between the procuring entity and a supplier (or suppliers) or a contractor (or contractors) at the end of the procurement proceedings. +## Types of framework agreements + Framework agreements can be **open** or **closed**: **Closed framework agreement** From 1671695b274edecbfac3b10ba719d2803aba26ef Mon Sep 17 00:00:00 2001 From: Yohanna Lisnichuk Date: Mon, 2 Aug 2021 13:24:44 -0400 Subject: [PATCH 12/21] framework agreements: guidance improvements - remove FA types image - rename "Addition of a supplier to a framework agreement" section Signed-off-by: Yohanna Lisnichuk --- docs/_static/png/framework_agreement_types.png | Bin 32472 -> 0 bytes docs/guidance/map/framework_agreements.md | 4 +--- 2 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 docs/_static/png/framework_agreement_types.png diff --git a/docs/_static/png/framework_agreement_types.png b/docs/_static/png/framework_agreement_types.png deleted file mode 100644 index 37eb74bfa39ddfffe26d56d09f43aed2c07a8221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32472 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 bsL&m@?JmUufS#T3j;On8+Nwpj%%1)~ho?Hy diff --git a/docs/guidance/map/framework_agreements.md b/docs/guidance/map/framework_agreements.md index dab250c88..4937e781f 100644 --- a/docs/guidance/map/framework_agreements.md +++ b/docs/guidance/map/framework_agreements.md @@ -48,8 +48,6 @@ Competition at the second stage is limited to suppliers that are party to the fr The second stage of a framework agreement procedure is also known as a “call-off.” Non-competitive second stages are also known as “direct call-offs.” Competitive second stages are also known as “mini-competitions.” -![Types of framework agreement](../../_static/png/framework_agreement_types.png) - ## Modelling framework agreements in OCDS In OCDS, a contracting process brings together, under a single identifier, the information that users need to answer questions such as: @@ -95,7 +93,7 @@ The following guidance describes how to model the different stages of a framewor * If the framework agreement is closed, set `tender.tenderPeriod.endDate` to the deadline for responses to the invitation. * If the framework agreement is open, set `tender.tenderPeriod.endDate` to the last date that new suppliers can be added. -### Addition of a supplier to a framework agreement +### First-stage selection and addition of suppliers for the framework agreement * Create a release with the **same** `ocid` as the tender release and add 'award' to the `tag` array * Add an `Award` object to the `awards` array. From 47ce40bd6eaa13fff9c40c0272abf9fac2f7dafe Mon Sep 17 00:00:00 2001 From: Yohanna Lisnichuk Date: Tue, 10 Aug 2021 11:12:50 -0400 Subject: [PATCH 13/21] framework agreements: update framework agreement types figure Signed-off-by: Yohanna Lisnichuk --- docs/_static/png/framework_agreement_types.png | Bin 0 -> 33181 bytes docs/guidance/map/framework_agreements.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 docs/_static/png/framework_agreement_types.png diff --git a/docs/_static/png/framework_agreement_types.png b/docs/_static/png/framework_agreement_types.png new file mode 100644 index 0000000000000000000000000000000000000000..2e17a2ba2cb23fbe4497b84954fa774a2c8625cf GIT binary patch literal 33181 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

obb~anG~}hCr@wUT76+t*1h)ZE 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 literal 0 HcmV?d00001 diff --git a/docs/guidance/map/framework_agreements.md b/docs/guidance/map/framework_agreements.md index 4937e781f..394f56abc 100644 --- a/docs/guidance/map/framework_agreements.md +++ b/docs/guidance/map/framework_agreements.md @@ -22,6 +22,8 @@ A procurement contract is defined in UNCITRAL as: ## Types of framework agreements +![Framework agreement types](../../_static/png/framework_agreement_types.png) + Framework agreements can be **open** or **closed**: **Closed framework agreement** From 36951061cfbc8430077b2c89cb2b2225974ade1d Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 12 Aug 2021 10:22:51 +1200 Subject: [PATCH 14/21] Guidance: Add link to OCDS implementation checklist. --- docs/guidance/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/guidance/index.md b/docs/guidance/index.md index 6822c9f24..7c22d8b80 100644 --- a/docs/guidance/index.md +++ b/docs/guidance/index.md @@ -6,6 +6,8 @@ The four phases of implementation described in this guide have helped implemente Read the guidance to understand the main steps to implement OCDS and to find supporting resources. Detailed guidance on specific topics and tasks is provided in sub-pages. +Use the [OCDS Implementation Checklist](https://www.open-contracting.org/resources/ocds-implementation-checklist) to keep track of your progress. + ```{toctree} :maxdepth: 2 From 4a9ec699b697ddf4cb9995039fbb2e23a918cec1 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 12 Aug 2021 10:24:26 +1200 Subject: [PATCH 15/21] Update changelog. --- docs/history/changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/history/changelog.md b/docs/history/changelog.md index 879ee0589..13788dbd9 100644 --- a/docs/history/changelog.md +++ b/docs/history/changelog.md @@ -26,6 +26,7 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#1193](https://github.com/open-contracting/standard/pull/1193) Removed language distinguishing "core", "community", and "local" extensions. * [#1337](https://github.com/open-contracting/standard/pull/1337) Improve the structure of the Map page. * [#1338](https://github.com/open-contracting/standard/pull/1338) Improve the structure of the worked examples on the Map page. + * [#1386](https://github.com/open-contracting/standard/pull/1386) Add link to OCDS Implementation Checklist. * [#908](https://github.com/open-contracting/standard/pull/908) Rename Validator to Data Review Tool. * [#955](https://github.com/open-contracting/standard/pull/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. From 2e22a287ba420d13e35a8ccfa4a4ef01f089eede Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Wed, 25 Aug 2021 17:26:43 -0400 Subject: [PATCH 16/21] guidance/map/framework_agreements: Fix typos and style booleans correctly --- docs/guidance/map/framework_agreements.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/guidance/map/framework_agreements.md b/docs/guidance/map/framework_agreements.md index 394f56abc..c1d885792 100644 --- a/docs/guidance/map/framework_agreements.md +++ b/docs/guidance/map/framework_agreements.md @@ -1,6 +1,6 @@ # Framework agreements -## Definition of framework agreement +## Definitions ```{note} In this guidance we defer to the definitions given in the [UNCITRAL Model Law on Public Procurement (2011)](https://uncitral.un.org/en/texts/procurement/modellaw/public_procurement). The model law was developed through extensive consultation and reflects the procurement practices and concepts used in many different jurisdictions. @@ -20,7 +20,7 @@ A procurement contract is defined in UNCITRAL as: > Contract concluded between the procuring entity and a supplier (or suppliers) or a contractor (or contractors) at the end of the procurement proceedings. -## Types of framework agreements +## Types of framework agreement ![Framework agreement types](../../_static/png/framework_agreement_types.png) @@ -95,7 +95,7 @@ The following guidance describes how to model the different stages of a framewor * If the framework agreement is closed, set `tender.tenderPeriod.endDate` to the deadline for responses to the invitation. * If the framework agreement is open, set `tender.tenderPeriod.endDate` to the last date that new suppliers can be added. -### First-stage selection and addition of suppliers for the framework agreement +### First-stage selection and addition of suppliers to the framework agreement * Create a release with the **same** `ocid` as the tender release and add 'award' to the `tag` array * Add an `Award` object to the `awards` array. @@ -117,7 +117,7 @@ The following guidance describes how to model the different stages of a framewor * Create a release with a **new** `ocid` and add 'tender' to the `.tag` array * [Relate the second stage to the first stage](#relate-the-second-stage-to-the-first-stage) * [Add a buyer](#add-a-buyer) -* Populate the `tender` section, setting `tender.procurementMethod` to the same value as in the first stage, and set `tender.competitive` to `true` +* Populate the `tender` section, setting `tender.procurementMethod` to the same value as in the first stage, and `tender.competitive` to `true` ### Award of a procurement contract resulting from a second-stage competition @@ -165,7 +165,7 @@ NSS issues a [contract notice](https://ted.europa.eu/udl?uri=TED:NOTICE:478648-2 The notice is modelled as an OCDS release with a `tag` of 'tender' and the following properties: * The techniques extension is declared in the package metadata. -* Since this contracting process is for the set-up of a framework agreement, `tender.techniques.hasFrameworkAgreement` is set to 'true'. +* Since this contracting process is for the set-up of a framework agreement, `tender.techniques.hasFrameworkAgreement` is set to `true`. * Since the framework agreement will be concluded with a single supplier and since any supplier is able to submit a response to the invitation to participate, `tender.procurementMethod` is set to 'open'. * Since the framework agreement is closed, `tender.tenderPeriod` is set to the deadline for responses to the invitation to participate. * Since there is only one buyer, `buyer` is set to reference the buyer's object in the `parties` array. @@ -229,7 +229,7 @@ Chile Compra publishes a [tender notice](https://www.mercadopublico.cl/Procureme The notice is modelled as an OCDS release with a `tag` of 'tender' and the following properties: * The techniques extension is declared in the package metadata. -* Since this contracting process is for the set-up of a framework agreement, `tender.techniques.hasFrameworkAgreement` is set to 'true'. +* Since this contracting process is for the set-up of a framework agreement, `tender.techniques.hasFrameworkAgreement` is set to `true`. * Since the framework agreement will be concluded with multiple suppliers and will involve second-stage competition, `tender.procurementMethod` is set to 'selective'. * Since the framework agreement is open, `tender.tenderPeriod` is set to the end of the framework agreement. * Since there are two buyers, the 'buyer' object is not set, and the buyers are declared in the `parties` array. @@ -269,7 +269,7 @@ The release has the following properties: * A new `ocid` is used. * The `relatedProcesses` section is populated with a reference to the contracting process for the first stage. * The `tag` is set to 'tender'. -* The tender section includes details about the competition, and `tender.competitive` is set to 'true'. +* The tender section includes details about the competition, and `tender.competitive` is set to `true`. * Since this new contracting process has a single buyer, the `buyer` is set to Servicio Local de Educación Pública Puerto Cordillera. ```{jsoninclude} ../../examples/frameworks/open_multiple_second_stage.json From 2e1a79b10546d2ba7fd4679506be1934da6b7b37 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Wed, 25 Aug 2021 17:27:14 -0400 Subject: [PATCH 17/21] guidance/map/organization_classifications: Style booleans correctly --- docs/guidance/map/organization_classifications.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guidance/map/organization_classifications.md b/docs/guidance/map/organization_classifications.md index 0305bf3a9..b23167b9a 100644 --- a/docs/guidance/map/organization_classifications.md +++ b/docs/guidance/map/organization_classifications.md @@ -67,7 +67,7 @@ A third, discouraged, option is for publishers to use local extensions to disclo For example, although tracking women-owned organizations is shown example 2.2 above, this data only provides information on entities that have been registered as women-owned. Organizations without the classification can be not women-owned, women-owned but not registered as such, or the information might not be known. -To disambiguate these cases, a publisher can choose to publish a flag field for the relevant organization classification. In the fictional example below, Dhanghadi has created a local extension so they can publish data in the `parties.details` block on an organization that is `femaleChaired`, with the values of the field being either 'true' or 'false'. The publisher would document the structure of this field and its meaning in the local extension files. +To disambiguate these cases, a publisher can choose to publish a flag field for the relevant organization classification. In the fictional example below, Dhanghadi has created a local extension so they can publish data in the `parties.details` block on an organization that is `femaleChaired`, with the values of the field being either `true` or `false`. The publisher would document the structure of this field and its meaning in the local extension files. ```{jsoninclude} ../../examples/organization-classification/dhangadhi_female_chaired_example.json :jsonpointer: From e84a0f9963c635cd167a5e840696f7c8d97e194d Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 26 Aug 2021 11:23:14 -0400 Subject: [PATCH 18/21] changelog: Re-organize Iterative improvements Guidance section --- docs/history/changelog.md | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/docs/history/changelog.md b/docs/history/changelog.md index 5c7633c47..781339137 100644 --- a/docs/history/changelog.md +++ b/docs/history/changelog.md @@ -13,21 +13,32 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#1017](https://github.com/open-contracting/standard/pull/1017) Add link to bulk downloads in Guidance section. * Guidance section: - * [#1345](https://github.com/open-contracting/standard/pull/1345) Update legal references in pre-gualification guidance. * [#986](https://github.com/open-contracting/standard/pull/986) Add implementation guidance from OCP website. - * Add worked examples for the Map phase [#947](https://github.com/open-contracting/standard/pull/947) [#948](https://github.com/open-contracting/standard/pull/948) [#950](https://github.com/open-contracting/standard/pull/950) [#974](https://github.com/open-contracting/standard/pull/974) [#990](https://github.com/open-contracting/standard/pull/990) [#999](https://github.com/open-contracting/standard/pull/999) [#1007](https://github.com/open-contracting/standard/pull/1007) [#1123](https://github.com/open-contracting/standard/pull/1123). - * Add worked examples for the Build phase [#951](https://github.com/open-contracting/standard/pull/951) [#997](https://github.com/open-contracting/standard/pull/997). - * [#963](https://github.com/open-contracting/standard/pull/963) Remove guidance on web discovery. - * [#986](https://github.com/open-contracting/standard/pull/986) Merge Registration page into Build page. - * [#986](https://github.com/open-contracting/standard/pull/986) [#1012](https://github.com/open-contracting/standard/pull/1012) Merge Publication policy and Licensing pages into Publish page. - * [#1013](https://github.com/open-contracting/standard/pull/1013) Replace guidance on publication levels. - * [#1016](https://github.com/open-contracting/standard/pull/1016) Add links to OCDS profiles and linked standards. - * [#1150](https://github.com/open-contracting/standard/pull/1150) Align language in Build phase with language in Map phase. - * [#1193](https://github.com/open-contracting/standard/pull/1193) Removed language distinguishing "core", "community", and "local" extensions. - * [#1337](https://github.com/open-contracting/standard/pull/1337) Improve the structure of the Map page. - * [#1338](https://github.com/open-contracting/standard/pull/1338) Improve the structure of the worked examples on the Map page. - * [#1332](https://github.com/open-contracting/standard/pull/1332) Improve guidance on framework agreements. * [#1386](https://github.com/open-contracting/standard/pull/1386) Add link to OCDS Implementation Checklist. + * Map: + * Add worked examples: + * [#947](https://github.com/open-contracting/standard/pull/947) Organization references + * [#948](https://github.com/open-contracting/standard/pull/948) Organization identifiers + * [#950](https://github.com/open-contracting/standard/pull/950) Amendments + * [#974](https://github.com/open-contracting/standard/pull/974) Awards and contracts + * [#990](https://github.com/open-contracting/standard/pull/990) Organization classifications + * [#999](https://github.com/open-contracting/standard/pull/999) [#1345](https://github.com/open-contracting/standard/pull/1345) Pre-qualification + * [#1007](https://github.com/open-contracting/standard/pull/1007) Unsuccessful processes + * [#1123](https://github.com/open-contracting/standard/pull/1123) [#1332](https://github.com/open-contracting/standard/pull/1332) Framework agreements + * [#1016](https://github.com/open-contracting/standard/pull/1016) Add links to OCDS profiles and linked standards. + * [#1193](https://github.com/open-contracting/standard/pull/1193) Removed language distinguishing "core", "community", and "local" extensions. + * [#1338](https://github.com/open-contracting/standard/pull/1338) Re-organize the worked examples for the Map page. + * [#1337](https://github.com/open-contracting/standard/pull/1337) Improve the structure of the Map page. + * Build: + * Add worked examples: + * [#951](https://github.com/open-contracting/standard/pull/951) Easy releases + * [#997](https://github.com/open-contracting/standard/pull/997) Change history and System architectures + * [#963](https://github.com/open-contracting/standard/pull/963) Remove guidance on web discovery. + * [#986](https://github.com/open-contracting/standard/pull/986) Merge Registration page into Build page. + * [#1150](https://github.com/open-contracting/standard/pull/1150) Align language in Build phase with language in Map phase. + * Publish: + * [#986](https://github.com/open-contracting/standard/pull/986) [#1012](https://github.com/open-contracting/standard/pull/1012) Merge Publication policy and Licensing pages into Publish page. + * [#1013](https://github.com/open-contracting/standard/pull/1013) Replace guidance on publication levels. * [#908](https://github.com/open-contracting/standard/pull/908) Rename Validator to Data Review Tool. * [#955](https://github.com/open-contracting/standard/pull/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. From f222cabd0c82e38b6d3027fbcd95915530e1d222 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 26 Aug 2021 22:35:06 -0400 Subject: [PATCH 19/21] Update changelog. Add script to check for missing entries. - Add missing changelog entries for 1.0.0, 1.0.2, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.5. - Add links to PRs for 1.0.1, 1.1.0, 1.1.1, 1.1.2, 1.1.5, Iterative Improvement entries. - Remove "Bugs" heading, as all patch releases are addressing bugs. - Link to an issue instead of an unmerged PR. - Replace repetitive changelog entries with links to milestones (translations, moving content, build changes, typos and broken links). --- docs/history/changelog.md | 143 ++++++++++++++++++++------------------ manage.py | 63 +++++++++++++++++ 2 files changed, 139 insertions(+), 67 deletions(-) diff --git a/docs/history/changelog.md b/docs/history/changelog.md index 781339137..51f129028 100644 --- a/docs/history/changelog.md +++ b/docs/history/changelog.md @@ -8,51 +8,61 @@ Per the [normative and non-normative content and changes policy](https://docs.go ### Documentation -* Getting Started section: - * [#980](https://github.com/open-contracting/standard/pull/980) Remove references to ☆ levels. - * [#1017](https://github.com/open-contracting/standard/pull/1017) Add link to bulk downloads in Guidance section. +* Primer: + * Rewrite the Getting Started section as a Primer [#1298](https://github.com/open-contracting/standard/pull/1298) [#1302](https://github.com/open-contracting/standard/pull/1302) [#1365](https://github.com/open-contracting/standard/pull/1365)[#1387](https://github.com/open-contracting/standard/pull/1387). -* Guidance section: +* Guidance: * [#986](https://github.com/open-contracting/standard/pull/986) Add implementation guidance from OCP website. * [#1386](https://github.com/open-contracting/standard/pull/1386) Add link to OCDS Implementation Checklist. * Map: - * Add worked examples: - * [#947](https://github.com/open-contracting/standard/pull/947) Organization references - * [#948](https://github.com/open-contracting/standard/pull/948) Organization identifiers - * [#950](https://github.com/open-contracting/standard/pull/950) Amendments - * [#974](https://github.com/open-contracting/standard/pull/974) Awards and contracts - * [#990](https://github.com/open-contracting/standard/pull/990) Organization classifications - * [#999](https://github.com/open-contracting/standard/pull/999) [#1345](https://github.com/open-contracting/standard/pull/1345) Pre-qualification - * [#1007](https://github.com/open-contracting/standard/pull/1007) Unsuccessful processes - * [#1123](https://github.com/open-contracting/standard/pull/1123) [#1332](https://github.com/open-contracting/standard/pull/1332) Framework agreements - * [#1016](https://github.com/open-contracting/standard/pull/1016) Add links to OCDS profiles and linked standards. + * Add examples [#1338](https://github.com/open-contracting/standard/pull/1338): + * Organization references [#947](https://github.com/open-contracting/standard/pull/947) + * Organization identifiers [#948](https://github.com/open-contracting/standard/pull/948) + * Amendments [#950](https://github.com/open-contracting/standard/pull/950) + * Personal identifiers [#952](https://github.com/open-contracting/standard/pull/952) + * Organizational units [#961](https://github.com/open-contracting/standard/pull/961) + * Awards and contracts [#974](https://github.com/open-contracting/standard/pull/974) + * Organization classifications [#990](https://github.com/open-contracting/standard/pull/990) + * Pre-qualification and pre-selection [#999](https://github.com/open-contracting/standard/pull/999) [#1345](https://github.com/open-contracting/standard/pull/1345) + * Unsuccessful processes [#1007](https://github.com/open-contracting/standard/pull/1007) + * Milestones [#1048](https://github.com/open-contracting/standard/pull/1048) + * Framework agreements [#1123](https://github.com/open-contracting/standard/pull/1123) [#1269](https://github.com/open-contracting/standard/pull/1269) [#1332](https://github.com/open-contracting/standard/pull/1332) + * Electronic catalogs [#1223](https://github.com/open-contracting/standard/pull/1223) + * Beneficial ownership information [#1305](https://github.com/open-contracting/standard/pull/1305) + * Add pages: + * Localizing OCDS [#1043](https://github.com/open-contracting/standard/pull/1043) + * Linked standards [#1278](https://github.com/open-contracting/standard/pull/1278) + * [#1016](https://github.com/open-contracting/standard/pull/1016) [#1140](https://github.com/open-contracting/standard/pull/1140) Add links to OCDS profiles and linked standards. * [#1193](https://github.com/open-contracting/standard/pull/1193) Removed language distinguishing "core", "community", and "local" extensions. - * [#1338](https://github.com/open-contracting/standard/pull/1338) Re-organize the worked examples for the Map page. - * [#1337](https://github.com/open-contracting/standard/pull/1337) Improve the structure of the Map page. * Build: - * Add worked examples: - * [#951](https://github.com/open-contracting/standard/pull/951) Easy releases - * [#997](https://github.com/open-contracting/standard/pull/997) Change history and System architectures + * Add pages: + * "Easy" releases [#951](https://github.com/open-contracting/standard/pull/951) + * Updates and deletions [#985](https://github.com/open-contracting/standard/pull/985) + * Change history [#997](https://github.com/open-contracting/standard/pull/997) [#1047](https://github.com/open-contracting/standard/pull/1047) + * System architectures [#997](https://github.com/open-contracting/standard/pull/997) + * Data collection tools [#1061](https://github.com/open-contracting/standard/pull/1061/files) * [#963](https://github.com/open-contracting/standard/pull/963) Remove guidance on web discovery. * [#986](https://github.com/open-contracting/standard/pull/986) Merge Registration page into Build page. * [#1150](https://github.com/open-contracting/standard/pull/1150) Align language in Build phase with language in Map phase. * Publish: - * [#986](https://github.com/open-contracting/standard/pull/986) [#1012](https://github.com/open-contracting/standard/pull/1012) Merge Publication policy and Licensing pages into Publish page. - * [#1013](https://github.com/open-contracting/standard/pull/1013) Replace guidance on publication levels. + * Merge Publication policy and Licensing pages into Publish page [#986](https://github.com/open-contracting/standard/pull/986) [#1012](https://github.com/open-contracting/standard/pull/1012). + * Replace guidance on publication levels [#980](https://github.com/open-contracting/standard/pull/980) [#1013](https://github.com/open-contracting/standard/pull/1013) [#1045](https://github.com/open-contracting/standard/pull/1045). + * Various minor improvements [#1051](https://github.com/open-contracting/standard/pull/1051) [#1080](https://github.com/open-contracting/standard/pull/1080) [#1083](https://github.com/open-contracting/standard/pull/1083) [#1085](https://github.com/open-contracting/standard/pull/1085) [#1091](https://github.com/open-contracting/standard/pull/1091) [#1130](https://github.com/open-contracting/standard/pull/1130) [#1227](https://github.com/open-contracting/standard/pull/1227) [#1299](https://github.com/open-contracting/standard/pull/1299) [#1337](https://github.com/open-contracting/standard/pull/1337) [#1384](https://github.com/open-contracting/standard/pull/1384). * [#908](https://github.com/open-contracting/standard/pull/908) Rename Validator to Data Review Tool. * [#955](https://github.com/open-contracting/standard/pull/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](https://github.com/open-contracting/standard/pull/958) Governance page: Change responsibility for prioritization review to OCP's Head of Data Products & Services. Change "technical team" to "standard development team". -* [#959](https://github.com/open-contracting/standard/pull/959) History section: Merge Credits and History of OCDS pages into Development and Appreciation page. Update history from present perspective. +* [#959](https://github.com/open-contracting/standard/pull/959) [#979](https://github.com/open-contracting/standard/pull/979) History section: Merge Credits and History of OCDS pages into Development and Appreciation page. Update history from present perspective. * [#960](https://github.com/open-contracting/standard/pull/960) Support section: Merge Tools page into Support page. -* [#975](https://github.com/open-contracting/standard/pull/975) Add a Make target to generate PDFs of the documentation. -* Copy-edit and re-organize non-normative pages [#979](https://github.com/open-contracting/standard/pull/979) [#1018](https://github.com/open-contracting/standard/issues/1018) [#1023](https://github.com/open-contracting/standard/pull/1023). +* Re-organize non-normative content ([milestone](https://github.com/open-contracting/standard/milestone/29?closed=1)). +* Copy-edit non-normative pages and fix broken links ([milestone](https://github.com/open-contracting/standard/milestone/28?closed=1)). +* Change how the documentation is built ([milestone](https://github.com/open-contracting/standard/milestone/26?closed=1)). +* Update translations ([milestone](https://github.com/open-contracting/standard/milestone/27?closed=1)) * Update the changelog [#932](https://github.com/open-contracting/standard/pull/932) [#976](https://github.com/open-contracting/standard/pull/976). -* Make changes to how the documentation is built [#880](https://github.com/open-contracting/standard/pull/880) [#886](https://github.com/open-contracting/standard/pull/886) [#889](https://github.com/open-contracting/standard/pull/889) [#905](https://github.com/open-contracting/standard/pull/905) [#915](https://github.com/open-contracting/standard/pull/915) [#916](https://github.com/open-contracting/standard/pull/916) [#923](https://github.com/open-contracting/standard/pull/923) [#935](https://github.com/open-contracting/standard/pull/935) [#944](https://github.com/open-contracting/standard/pull/944) [#945](https://github.com/open-contracting/standard/pull/945) [#946](https://github.com/open-contracting/standard/pull/946) [#953](https://github.com/open-contracting/standard/pull/953) [#962](https://github.com/open-contracting/standard/pull/962) [#964](https://github.com/open-contracting/standard/pull/964) [#1002](https://github.com/open-contracting/standard/pull/1002) [#1003](https://github.com/open-contracting/standard/pull/1003). ## [1.1.5] - 2020-08-20 -* The [Translation and localization policy](../governance/index.md#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. +* [#1054](https://github.com/open-contracting/standard/pull/1054) The [Translation and localization policy](../governance/index.md#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 @@ -77,8 +87,9 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#965](https://github.com/open-contracting/standard/pull/965) Release Reference page: Add extensions list for the Transaction object. * [#970](https://github.com/open-contracting/standard/pull/970) Release Schema page: Correct the description of compiled releases. * [#996](https://github.com/open-contracting/standard/pull/996) Record Reference page: Rewrite page to improve clarity. +* [#1010](https://github.com/open-contracting/standard/pull/1010) Identifiers page: Add link to organization identifiers example. * Codelists page: - * [#971](https://github.com/open-contracting/standard/pull/971) [#1032](https://github.com/open-contracting/standard/pull/1032) Remove the suggestion to use X prefixes, for the reasons expressed by the [IETF](https://tools.ietf.org/html/rfc6648#appendix-B). + * [#978](https://github.com/open-contracting/standard/pull/978) [#1032](https://github.com/open-contracting/standard/pull/1032) Remove the suggestion to use X prefixes, for the reasons expressed by the [IETF](https://tools.ietf.org/html/rfc6648#appendix-B). * [#972](https://github.com/open-contracting/standard/pull/972) Clarify the norms around open and closed codelists. * [#973](https://github.com/open-contracting/standard/pull/973) Describe the `openCodelist` and `codelist` JSON Schema properties. * [#1036](https://github.com/open-contracting/standard/pull/1036) Add instruction for OCDS publishers to contact the OCDS Helpdesk to add list codes to org-id.guide. @@ -103,19 +114,14 @@ See the changelogs for: * **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](https://github.com/open-contracting/standard/pull/780) All extensions authored by the Open Contracting Partnership have been moved to the [open-contracting-extensions](https://github.com/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. -* [#831](https://github.com/open-contracting/standard/pull/831) OCDS now has a [Normative and non-normative content and changes policy](https://docs.google.com/document/d/1xjlAneqgewZvHh6_hwuQ98hbjxRcA2IUqOTJiNGcOf8/edit). -* [#744](https://github.com/open-contracting/standard/pull/744) OCDS now has a [Translation and localization policy](../governance/index.md#translation-and-localization-policy). -* [#806](https://github.com/open-contracting/standard/pull/806) [#808](https://github.com/open-contracting/standard/pull/808) [#809](https://github.com/open-contracting/standard/pull/809) The documentation is now available in Italian. -* [#717](https://github.com/open-contracting/standard/pull/717) [#734](https://github.com/open-contracting/standard/pull/734) The OCDS documentation website now has a [privacy notice](../privacy-notice). - -### Bugs - * [#738](https://github.com/open-contracting/standard/pull/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](https://github.com/open-contracting/standard/pull/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. -* [#769](https://github.com/open-contracting/standard/pull/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. -* [#810](https://github.com/open-contracting/standard/pull/810) `tag` is now `omitWhenMerged`, consistent with the reference implementation in OCDS Merge. +* [#831](https://github.com/open-contracting/standard/pull/831) OCDS now has a [Normative and non-normative content and changes policy](https://docs.google.com/document/d/1xjlAneqgewZvHh6_hwuQ98hbjxRcA2IUqOTJiNGcOf8/edit). +* [#744](https://github.com/open-contracting/standard/pull/744) OCDS now has a [Translation and localization policy](../governance/index.md#translation-and-localization-policy). +* [#717](https://github.com/open-contracting/standard/pull/717) [#734](https://github.com/open-contracting/standard/pull/734) The OCDS documentation website now has a [privacy notice](../privacy-notice). +* The documentation is now available in Italian. ### Codelists @@ -130,9 +136,11 @@ See the changelogs for: ### Schema -* [#712](https://github.com/open-contracting/standard/pull/712) 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. +* [#712](https://github.com/open-contracting/standard/pull/712) [#715](https://github.com/open-contracting/standard/pull/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](https://github.com/open-contracting/standard/pull/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](https://github.com/open-contracting/standard/pull/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](https://github.com/open-contracting/standard/pull/838) and release package schema [#831](https://github.com/open-contracting/standard/pull/831). +* [#810](https://github.com/open-contracting/standard/pull/810) `tag` is now `omitWhenMerged`, consistent with the reference implementation in OCDS Merge. * [#810](https://github.com/open-contracting/standard/pull/810) Add a dereferenced release schema to ease the implementation of the merge routine. * [#810](https://github.com/open-contracting/standard/pull/810) Add `"versionId": true` hint to `Identifier` and `Classification`. * [#845](https://github.com/open-contracting/standard/pull/845) Remove a reference to a closed issue and a note about a field name. @@ -164,8 +172,6 @@ See the changelogs for: * Add links to: * [#783](https://github.com/open-contracting/standard/pull/783) Community extensions relating to party details * [#837](https://github.com/open-contracting/standard/pull/837) OCDS profiles -* Correct typos in the documentation [#692](https://github.com/open-contracting/standard/pull/692) [#713](https://github.com/open-contracting/standard/pull/713) [#719](https://github.com/open-contracting/standard/pull/719) [#726](https://github.com/open-contracting/standard/pull/726) [#732](https://github.com/open-contracting/standard/pull/732) [#752](https://github.com/open-contracting/standard/pull/752) [#756](https://github.com/open-contracting/standard/pull/756) [#795](https://github.com/open-contracting/standard/pull/795) [#867](https://github.com/open-contracting/standard/pull/867). -* Make changes to how the documentation is built [#666](https://github.com/open-contracting/standard/pull/666) [#698](https://github.com/open-contracting/standard/pull/698) [#708](https://github.com/open-contracting/standard/pull/708) [#709](https://github.com/open-contracting/standard/pull/709) [#721](https://github.com/open-contracting/standard/pull/721) [#724](https://github.com/open-contracting/standard/pull/724) [#727](https://github.com/open-contracting/standard/pull/727) [#729](https://github.com/open-contracting/standard/pull/729) [#733](https://github.com/open-contracting/standard/pull/733) [#740](https://github.com/open-contracting/standard/pull/740) [#747](https://github.com/open-contracting/standard/pull/747) [#753](https://github.com/open-contracting/standard/pull/753) [#762](https://github.com/open-contracting/standard/pull/762) [#767](https://github.com/open-contracting/standard/pull/767) [#783](https://github.com/open-contracting/standard/pull/783) [#787](https://github.com/open-contracting/standard/pull/787) [#796](https://github.com/open-contracting/standard/pull/796) [#813](https://github.com/open-contracting/standard/pull/813) [#836](https://github.com/open-contracting/standard/pull/836) [#875](https://github.com/open-contracting/standard/pull/875). ### Extensions @@ -180,11 +186,12 @@ See the changelogs for: ## [1.1.3] - 2018-04-16 -### Bugs +### Schema * [#646](https://github.com/open-contracting/standard/pull/646) Disallow use of `null` as an entry in the array for `Tender.additionalProcurementCategories`. * [#639](https://github.com/open-contracting/standard/issues/639) Make `name` field optional for `OrganizationReference`. * [#630](https://github.com/open-contracting/standard/issues/630) Allow optional field `Item.unit` to be `null`. **(Reverted in 1.1.4)** +* [#663](https://github.com/open-contracting/standard/pull/663) Add `"type": "object"` to objects in the versioned release schema. * [a75c1c5](https://github.com/open-contracting/standard/pull/667/commits/a75c1c50379881f618df97ed3b9967297ed2edca) Make `record-package-schema.json` use the `codelist` property to reference `releaseTag.csv`, and update the `enum` accordingly. ### Codelists @@ -210,13 +217,18 @@ See the changelogs for: ### Codelists -* [#554](https://github.com/open-contracting/standard/issues/554) 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. +* [#609](https://github.com/open-contracting/standard/pull/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](https://github.com/open-contracting/standard/pull/565) Add explanatory text for the schema browser. +* [#590](https://github.com/open-contracting/standard/pull/590) [#591](https://github.com/open-contracting/standard/pull/591) Add 1.0.1 and 1.0.3 to the changelog. ## [1.1.1] - 2017-07-31 -### Bugs +### Schema -* [#482](https://github.com/open-contracting/standard/pull/482) Allow optional field `parties.role` to be `null`. +* [#251](https://github.com/open-contracting/standard/issues/251) Allow optional field `parties.role` to be `null`. * [#479](https://github.com/open-contracting/standard/issues/479) Remove `releases` as a required field in [`record-package-schema.json`](../schema/record_package). * [#475](https://github.com/open-contracting/standard/issues/475) Add an `enum` property to every field in the schema with a closed codelist. @@ -228,12 +240,11 @@ See the changelogs for: ### Documentation +* [#457](https://github.com/open-contracting/standard/pull/457) List all registered extensions. * [#480](https://github.com/open-contracting/standard/pull/480/commits/c3c41225639a06b0b0552016b32e2fe2e901a8fe) Align the tables and text in the [publication levels](../guidance/publish/quality) guidance. * [#489](https://github.com/open-contracting/standard/issues/489) Change the milestone documents extension to a core extension. This extension is only needed by publishers with legacy data containing documents within milestones. -* [#493](https://github.com/open-contracting/standard/issues/493) Update the description of the [Organization Identifier Scheme codelist](../schema/codelists.md#organization-identifier-scheme), to reflect that it is now maintained by [org-id.guide](http://org-id.guide). +* [#612](https://github.com/open-contracting/standard/pull/612) Update the description of the [Organization Identifier Scheme codelist](../schema/codelists.md#organization-identifier-scheme), to reflect that it is now maintained by [org-id.guide](http://org-id.guide). * [#506](https://github.com/open-contracting/standard/issues/506) Remove `make_field_definitions.py` from the utility scripts, as it is no longer required. -* Fix typographic errors throughout the documentation and codelist descriptions. -* Add docstrings to utility scripts. ## [1.1.0] - 2017-05-01 @@ -256,7 +267,8 @@ See the changelogs for: * [#166](https://github.com/open-contracting/standard/issues/166) **[Indicate encoding for CSV serializations](../guidance/build/serialization.md#multi-table)** - We have added information on CSV encoding to the implementation guidance to recommend UTF-8 or Windows-1252. * [#336](https://github.com/open-contracting/standard/issues/336) **[Codelist properties in schema](https://github.com/open-contracting/standard/commit/ee1db256d7364ee70e3553f4384d9908bff604a6)** - We have included explicit references to the codelist files (CSV versions) in the schema. This will be used in future versions of the validator to support validation against codelists. * [#301](https://github.com/open-contracting/standard/issues/301) **[Specifying versions and extensions in package metadata](../schema/records_reference.md#package-metadata)** - We have updated the package schemas to require that version is declared, and to provide a means of declaring extensions in use. This will be used in future versions of the validator to support validation against extensions. -* [#287](https://github.com/open-contracting/standard/issues/287) **[Remove all ocdsMerge strategies](../schema/merging)** - We have remove all 'merge strategies' from the schema as these are no longer required, now that all objects in arrays contain an id element. +* [#287](https://github.com/open-contracting/standard/issues/287) [#447](https://github.com/open-contracting/standard/pull/447) **[Change how merge strategies are expressed](../schema/merging)** - The `omitWhenMerged` and `wholeListMerge` properties replace the `mergeStrategy` and `mergeOptions` properties, with different semantics. +* [#431](https://github.com/open-contracting/standard/pull/431) **Add `minLength` property to required string fields**. #### Schema definition updates @@ -282,7 +294,7 @@ See the changelogs for: ### Added -* [#371](https://github.com/open-contracting/standard/issues/371) **[Linking related processes](../schema/reference.md#relatedprocess)** - We have introduced a new RelatedProcess block at the release and contract level +* [#371](https://github.com/open-contracting/standard/issues/371) [#439](https://github.com/open-contracting/standard/pull/439) **[Linking related processes](../schema/reference.md#relatedprocess)** - We have introduced a new RelatedProcess block at the release and contract level * [#374](https://github.com/open-contracting/standard/issues/374) **[Duration in periods](../schema/reference.md#period)** - We have introduced fields for duration in days, and maximum extent, to the period building block * [#374](https://github.com/open-contracting/standard/issues/374) **[Contract and Award Periods in Tender](../schema/reference.md#tender)** - We have introduced contract period in tender and updated the definition of award period. * [#376](https://github.com/open-contracting/standard/issues/376) **[Contract type (supplies, works and services)](../schema/codelists.md#procurement-category)** - We have introduced a procurementCategory field to specify whether contracts are for supplies, works, services, consultancyServices or mixed @@ -291,7 +303,7 @@ See the changelogs for: ### Extensions -* [#335](https://github.com/open-contracting/standard/issues/335) **[Core and community extensions](../guidance/map/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. +* [#335](https://github.com/open-contracting/standard/issues/335) [#411](https://github.com/open-contracting/standard/pull/411) **[Core and community extensions](../guidance/map/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](https://github.com/open-contracting/standard/issues/259) **[Enquiries](https://extensions.open-contracting.org/en/extensions/enquiries/)** - We have introduced a core enquiries extension for providing information on enquiries received during the tender stage. * [#342](https://github.com/open-contracting/standard/issues/342) **[Overall contracting process description](../schema/reference.md#release)** - We have introduced a new top-level title and description for the contracting process as a core extension. * [#274](https://github.com/open-contracting/standard/issues/274) **[New property of contract: extendsContractID](../schema/reference.md#contract)** - We have introduced a new field 'extendsContractID' to the Contract block to support contract cross-referencing between contracts. @@ -309,7 +321,7 @@ See the changelogs for: ## [1.0.3] - 2017-07-31 -### Bugs +### Schema * [#329](https://github.com/open-contracting/standard/issues/329) Update `Item.quantity` to allow decimal values. * [#253](https://github.com/open-contracting/standard/issues/253) Update `Value.amount` to allow negative values. @@ -328,33 +340,30 @@ See the changelogs for: ### Documentation * [#228](https://github.com/open-contracting/standard/issues/228) Update the documentation to use "Object" not "Reference" in Format column of field tables. -* Add CSV download links for registered ocids and publication levels. -* Update the publication levels spreadsheet to reflect above changes. -* Remove the old Spanish documentation translations from `standard/docs/es`. +* [#331](https://github.com/open-contracting/standard/pull/331) Add a Governance page. +* [#332](https://github.com/open-contracting/standard/pull/332) Replace the license. +* [#332](https://github.com/open-contracting/standard/pull/332) Add a Contributor Licence Agreement. +* [#360](https://github.com/open-contracting/standard/pull/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 -### Bugs - -* [#300](https://github.com/open-contracting/standard/issues/300) Remove `"format": "uri"` from `publisher.scheme` field. -* [#295](https://github.com/open-contracting/standard/issues/295) Allow optional fields `Award.status` and `Contract.status` to be `null`. -* [#267](https://github.com/open-contracting/standard/issues/267) Rename codes in documentType codelist: 'Tender notice' to 'tenderNotice', 'Award notice' to 'awardNotice', 'Contract notice' to 'contractNotice'. -* Fix bugs in versioned release schema. - ### Codelists -* Remove reference to non-existent `statusDescription` field in awardStatus codelist. +* [#267](https://github.com/open-contracting/standard/issues/267) Rename codes in the `documentType` codelist: 'Tender notice' to 'tenderNotice', 'Award notice' to 'awardNotice', and 'Contract notice' to 'contractNotice'. +* [#307](https://github.com/open-contracting/standard/pull/307) Remove a reference to a non-existent `statusDescription` field in the `awardStatus` codelist. ### Schema -* Add or update `title` and `description` properties. -* [#283](https://github.com/open-contracting/standard/issues/283) Remove `"mergeStrategy": "ocdsVersion"` from `planning.budget` field. +* [#283](https://github.com/open-contracting/standard/issues/283) Remove `"mergeStrategy": "ocdsVersion"` from the `planning.budget` field. +* [#295](https://github.com/open-contracting/standard/issues/295) Allow the optional fields `Award.status` and `Contract.status` to be `null`. +* [#300](https://github.com/open-contracting/standard/issues/300) Remove `"format": "uri"` from the `publisher.scheme` field. +* [#304](https://github.com/open-contracting/standard/pull/304) Fix the versioning of arrays in the versioned release schema. +* [#305](https://github.com/open-contracting/standard/pull/305) Add `title` and `description` properties and fix typos. ### Documentation -* Restructure the documentation, including: expanding Getting Started section, adding more examples. -* Fix broken links. -* Make changes to how the documentation is built, including: improving the translation process, adding some schema tests. +* Restructure the documentation, including: expanding the Getting Started section and adding more examples. ## [1.0.0] - 2015-07-29 @@ -364,12 +373,12 @@ See the changelogs for: ### Schema +* [#188](https://github.com/open-contracting/standard/pull/188) Add the `tender.numberOfTenderers` and `tender.tenderers` fields. * [#199](https://github.com/open-contracting/standard/issues/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 -* Fix typos in Markdown text and JSON examples. * Add changelog. ## [1.0.RC] - 2014-11-18 diff --git a/manage.py b/manage.py index 51327c787..1c55cc6d2 100755 --- a/manage.py +++ b/manage.py @@ -419,6 +419,69 @@ def unused_terms(filename): click.echo(line, nl=False) +@cli.command() +@click.option('--ignore-base', help='A base branch to ignore, e.g. 1.2-dev') +def missing_changelog(ignore_base): + """ + Print pull requests not mentioned in the changelog. + """ + + # Ignore PRs to the ppp-extension branch, which became OCDS for PPPs. + ignore = ['ppp-extension'] + if ignore_base: + ignore.append(ignore_base) + + # Ignore PRs to unmerged branches. + url = f'https://api.github.com/repos/open-contracting/standard/pulls?per_page=100&state=open' + response = requests.get(url) + response.raise_for_status() + ignore.extend(pr['head']['ref'] for pr in response.json()) + + with open(basedir / 'docs' / 'history' / 'changelog.md') as f: + prs = [int(n) for n in re.findall(r'https://github.com/open-contracting/standard/pull/(\d+)', f.read())] + + prs.extend([ + # Reverted + 971, 977, + # Obsoleted by the Primer + 1017, + ]) + + # Ignore PRs that sync branches or that release versions/ + pattern = re.compile(r'^(?:Merge \S+ into \S+|\S+ Release)$') + + count = 0 + + url = f'https://api.github.com/repos/open-contracting/standard/pulls?per_page=100&state=closed' + while url: + response = requests.get(url) + response.raise_for_status() + url = response.links.get('next', {}).get('url') + + for pr in response.json(): + number = pr['number'] + merged_at = pr['merged_at'] + milestone = pr['milestone'] or {} + milestone_number = milestone.get('number') + milestone_title = milestone.get('title') + title = pr['title'] + base_ref = pr['base']['ref'] + + # Include merged PRs, not in the "Minor:" or "1.0-RC" milestones, not syncing branches, and not ignored. + if not merged_at or milestone_number in (26, 27, 28, 29, 2) or pattern.search(title) or base_ref in ignore: + if number in prs: + print(f'WARNING: #{number} should not be in changelog', file=sys.stderr) + continue + + if number not in prs: + count += 1 + print(f"[#{number}](https://github.com/open-contracting/standard/pull/{number}) ({milestone_title}) " + f"{merged_at[:10]}: {title} ({base_ref}:{pr['head']['ref']})") + + if count: + print(count) + + @cli.command() def pre_commit(): """ From 33b7eaaf0c9b98532e4b4d6036f686069c44b0ac Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 26 Aug 2021 23:35:22 -0400 Subject: [PATCH 20/21] flake8 --- manage.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manage.py b/manage.py index 1c55cc6d2..3c7218ea1 100755 --- a/manage.py +++ b/manage.py @@ -432,7 +432,7 @@ def missing_changelog(ignore_base): ignore.append(ignore_base) # Ignore PRs to unmerged branches. - url = f'https://api.github.com/repos/open-contracting/standard/pulls?per_page=100&state=open' + url = 'https://api.github.com/repos/open-contracting/standard/pulls?per_page=100&state=open' response = requests.get(url) response.raise_for_status() ignore.extend(pr['head']['ref'] for pr in response.json()) @@ -452,7 +452,7 @@ def missing_changelog(ignore_base): count = 0 - url = f'https://api.github.com/repos/open-contracting/standard/pulls?per_page=100&state=closed' + url = 'https://api.github.com/repos/open-contracting/standard/pulls?per_page=100&state=closed' while url: response = requests.get(url) response.raise_for_status() From 6034f310c42f1451d48055f45f3426e9827fda54 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 2 Sep 2021 01:33:19 -0400 Subject: [PATCH 21/21] fix: Broken internal link --- docs/guidance/map/contracting_planning_processes.md | 2 +- docs/schema/reference.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guidance/map/contracting_planning_processes.md b/docs/guidance/map/contracting_planning_processes.md index 289f4416b..e700db486 100644 --- a/docs/guidance/map/contracting_planning_processes.md +++ b/docs/guidance/map/contracting_planning_processes.md @@ -25,5 +25,5 @@ We recommend publishing data about planning and contracting processes under sepa ``` ```{note} -In OCDS 1.2 and earlier, it is not possible to publish all information about multi-stage procedures under a single `ocid`. There is guidance on how to deal with this for [framework agreements](related_processes) and for [pre-qualification and pre-selection](pre-qualification). If you want to disclose this type of information (including other types of multi-stage procedures, such as competitive dialogues and innovation partnerships), [contact the OCDS Helpdesk](../../support/index). The approach to modelling multi-stage procedures in a future, backwards-incompatible version of the standard is under discussion on [GitHub](https://github.com/open-contracting/standard/issues/440). +In OCDS 1.2 and earlier, it is not possible to publish all information about multi-stage procedures under a single `ocid`. There is guidance on how to deal with this for [framework agreements](framework_agreements) and for [pre-qualification and pre-selection](pre-qualification). If you want to disclose this type of information (including other types of multi-stage procedures, such as competitive dialogues and innovation partnerships), [contact the OCDS Helpdesk](../../support/index). The approach to modelling multi-stage procedures in a future, backwards-incompatible version of the standard is under discussion on [GitHub](https://github.com/open-contracting/standard/issues/440). ``` diff --git a/docs/schema/reference.md b/docs/schema/reference.md index 778a1c692..a1fd51755 100644 --- a/docs/schema/reference.md +++ b/docs/schema/reference.md @@ -178,7 +178,7 @@ The [Bid statistics and details](https://extensions.open-contracting.org/en/exte ### Award -The award section is used to announce any awards issued for this tender. There can be multiple awards made. Releases can contain all, or a subset, of these awards. A related award block is required for every contract block, as the award contains information on the suppliers. In particular cases there can be multiple suppliers for a single award: for example, in the case of [consortia](../guidance/map/buyers_suppliers.md#consortia-suppliers) and in [framework agreements](../guidance/map/related_processes). +The award section is used to announce any awards issued for this tender. There can be multiple awards made. Releases can contain all, or a subset, of these awards. A related award block is required for every contract block, as the award contains information on the suppliers. In particular cases there can be multiple suppliers for a single award: for example, in the case of [consortia](../guidance/map/buyers_suppliers.md#consortia-suppliers) and in [framework agreements](../guidance/map/framework_agreements). ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Award