Skip to content

Commit

Permalink
Merge pull request #1618 from open-contracting/small-issues
Browse files Browse the repository at this point in the history
Fix various small issues
  • Loading branch information
jpmckinney authored Jun 7, 2023
2 parents 4ca1335 + 49c8d38 commit 94e518f
Show file tree
Hide file tree
Showing 15 changed files with 339 additions and 115 deletions.
22 changes: 13 additions & 9 deletions common-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ babel==2.9.1
# via
# sphinx
# sphinx-intl
build==0.10.0
# via pip-tools
certifi==2022.12.7
# via
# elastic-transport
Expand All @@ -30,15 +32,15 @@ cffi==1.15.0
# via cryptography
charset-normalizer==3.1.0
# via requests
click==7.1.2
click==8.1.3
# via
# -r common-requirements.in
# ocdsindex
# pip-tools
# sphinx-intl
colorama==0.4.4
# via sphinx-autobuild
cryptography==39.0.1
cryptography==41.0.1
# via
# pyopenssl
# urllib3
Expand Down Expand Up @@ -99,11 +101,10 @@ outcome==1.1.0
# via trio
packaging==21.3
# via
# build
# pytest
# sphinx
pep517==0.10.0
# via pip-tools
pip-tools==6.6.0
pip-tools==6.13.0
# via -r common-requirements.in
pluggy==0.13.1
# via pytest
Expand All @@ -115,6 +116,8 @@ pyopenssl==22.0.0
# via urllib3
pyparsing==2.4.7
# via packaging
pyproject-hooks==1.0.0
# via build
pysocks==1.7.1
# via urllib3
pytest==7.2.0
Expand Down Expand Up @@ -163,11 +166,12 @@ sphinxcontrib-qthelp==1.0.3
# via sphinx
sphinxcontrib-serializinghtml==1.1.5
# via sphinx
toml==0.10.2
# via pep517
tomli==2.0.1
# via pytest
tornado==6.1
# via
# build
# pyproject-hooks
# pytest
tornado==6.3.2
# via livereload
trio==0.20.0
# via
Expand Down
2 changes: 2 additions & 0 deletions docs/governance/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,4 +200,6 @@ Changes to core extensions between standard versions may be staged with labels (
:hidden:
deprecation
normative
translation
```
170 changes: 170 additions & 0 deletions docs/governance/normative.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
# Normative and non-normative content and changes

```{admonition} Summary
This document contains our policy on normative and non-normative content and changes within the standard's documentation.
```

## Key concepts

**Normative**: [Normative content](https://en.wikipedia.org/wiki/Normative#Standards_documents) is the prescriptive part of a standard. It sets the rules to be followed in order to be evaluated as compliant with the standard, and from which no deviation is permitted.

**Non-normative**: Non-normative content is the non-prescriptive, or "descriptive", part of a standard. This may include analogies, synonyms, explanations, illustrations, context, and examples. In the event non-normative content contradicts normative content, the normative content is to be followed. (For examples of non-normative content, see [Non-normative content](#non-normative-content).)

**Compliant**: Something that is evaluated as fulfilling the criteria (i.e. following the rules) set by the normative content of a standard. It is synonymous with **conformant**.

**Open Contracting Data Standard (OCDS)**: The Open Contracting Data Standard is the normative content at [standard.open-contracting.org](https://standard.open-contracting.org). (For a list of normative content, see [Normative content](#normative-content).)

**OCDS data**: Data that complies with OCDS.

**Content**: Content is anything meaningful, whether it is text (e.g. a sentence on a web page or in a Markdown file; a JSON fragment; a CSV field), an image or otherwise.

## Which content is covered?

### Normative content

As stated in the [Translation and localization policy](translation), "The authoritative language for the standard is English. All translations into other languages are provided for the convenience of users, and in case of conflict or ambiguity, the English text supersedes all translations." In other words, the content listed below is normative within each translation, but must be consistent with the English source.

Hyperlinks from normative content to non-normative content should be audited to ensure that the destinations do not, in fact, contain normative content that is not found elsewhere.

The following content is considered normative:

#### JSON Schema files

Specifically:

* `release-schema.json`
* `release-package-schema.json`
* `record-package-schema.json`
* `versioned-release-validation-schema.json`

These files are presently:

* Accessible at [https://standard.open-contracting.org/schema/](https://standard.open-contracting.org/schema/)
* Accessible under [https://standard.open-contracting.org/latest/en/](../index) ([example](../../build/current_lang/release-schema.json))
* Rendered as tables and using Docson under [Reference](../schema/index) ([example](../schema/release))
* Located in the [`schema` directory](https://github.com/open-contracting/standard/tree/HEAD/schema)

These files link to web pages, including:

* Non-normative documentation pages ([Finalize your publication policy](../guidance/publish.md#finalize-your-publication-policy))
* External codelists ([BCP47](https://www.w3.org/International/articles/language-tags/))
* Normative links ([Open Definition Conformant Licenses](https://opendefinition.org/licenses/))
* Non-normative links ([Fiscal Data Package](https://specs.frictionlessdata.io/fiscal-data-package/), [IATI Transactions](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/), [OpenCorporates](https://opencorporates.com))

#### Codelist CSV files

These files are presently:

* Rendered as tables under, and including, the [Codelists page](../schema/codelists)
* Located in the [`schema/codelists` directory](https://github.com/open-contracting/standard/tree/HEAD/schema/codelists)

The JSON Schema files determine whether a codelist is closed or open.

#### Schema reference Markdown files

These files are presently:

* Rendered as web pages under, and including, the [Reference page](../schema/index)
* Located in the [`docs/schema` directory](https://github.com/open-contracting/standard/tree/HEAD/docs/schema)

These files link to non-normative documentation pages, including:

* [Guidance](../guidance/index) pages
* [Support](../support/index) page

#### Other Markdown files

The [Governance page](index) ([in repository](https://github.com/open-contracting/standard/blob/HEAD/docs/governance/index.md)), except the [upgrade_process.png](https://github.com/open-contracting/standard/blob/HEAD/docs/_static/png/upgrade_process.png) image, which is superseded by accompanying text in case of conflict or ambiguity.

#### License files

`LICENSE` or `LICENSE.md`.

#### Core extensions

The same JSON Schema files, codelist CSV files and license files as described above are normative within each unlabelled (i.e. X.X.X but not X.X.X-alpha) release of each core extension.

### Non-normative content

Non-normative content may describe any concepts not described by the standard, for example: [data licensing](../guidance/publish.md#license-your-data) and [alternative serializations](../guidance/build/serialization.md#csv). It may support the standard's implementation and the use of standardized data in different contexts or scenarios, for example: [framework agreements](../guidance/map/framework_agreements).

It is useful to explicitly list some of the non-normative content, to be clear that it was not omitted in error from the "normative content" section above:

* `extension.json` in any extension
* All images in the standard repository
* The [extension registry](https://github.com/open-contracting/extension_registry)
* The [Extension Explorer](https://extensions.open-contracting.org/en/)
* The [extension template](https://github.com/open-contracting/standard_extension_template)
* Unregistered extensions

The following may become normative content in future versions. If so, it should be moved to the standard repository, distributed at [standard.open-contracting.org](https://standard.open-contracting.org), and rendered as part of the documentation:

* [extension-schema.json](https://raw.githubusercontent.com/open-contracting/standard-maintenance-scripts/master/schema/extension-schema.json)
* [codelist-schema.json](https://raw.githubusercontent.com/open-contracting/standard-maintenance-scripts/master/schema/codelist-schema.json)

## Normative and non-normative changes

### Normative changes

Normative changes are changes to normative content, except:

* Changes that produce no visible changes to outputs, the outputs being:
* [standard.open-contracting.org](https://standard.open-contracting.org) HTML pages. If a change to a Markdown file results in no change to translations, then it is considered invisible.
* Codelist CSV files
* JSON Schema files
* `release-schema.json`
* `release-package-schema.json`
* `record-package-schema.json`
* `versioned-release-validation-schema.json`
* Extension metadata file (`extension.json`)
* `LICENSE` and `LICENSE.md` files
* Whitespace changes that produce no non-whitespace changes to outputs. Indentation changes in JSON files are allowed.
* Fixes of typographical and markup errors that result in no change to meaning or behavior. For example, fixing a typo in a code in a codelist CSV file, or in a field name like `uniqueItems` in a JSON Schema file, would change behavior. Fixing typos in `description` columns or `description` fields wouldn't change behavior.
* Changes to markup that result in no change to meaning or behavior. For example, moving a normative statement into a "hint" admonition would change meaning. Using a monospace font for a field's name wouldn't change meaning.
* Corrections of links broken by changes in the structure of the documentation or of third-party sites. If a broken link is within a normative statement, or if the target of a broken link is normative content, either the new target must make no normative changes to the old target, or the new target should be an archived copy of the old target, to avoid changing the meaning of the link.

### Non-normative changes

All other changes are non-normative changes.

## Change management

Normative content must not change without a clear process and sufficient notice, to ensure relevant stakeholders are involved. Changes to normative content, and the impact on stakeholders, must be communicated. The [governance process](index) presently assures this.

On the other hand, it should be possible to add or improve non-normative content based on implementation experience on an ongoing basis, without triggering the governance process, which may stall these changes.

Whether a change requires a PATCH, MINOR or MAJOR version is described in the [Versions](index.md#versions) section of the Governance page.

The pull requests for all changes, regardless of the process they follow, SHOULD be approved by at least one person knowledgeable of the standard, other than the author.

### Non-normative changes

Non-normative changes are permitted at any time, whether in a new version or a released version. Pull requests SHOULD still be approved as above to ensure that the changes are indeed non-normative and do not conflict with normative content.

### Normative changes

#### JSON Schema files

* All normative changes to these files MUST be made in a new version.

#### Codelist CSV files

* The [currency codelist](../schema/codelists.md#currency) is closed, but mirrors the [ISO 4217 currency codes](https://www.iso.org/iso-4217-currency-codes.html), and therefore MAY be updated to mirror those codes in a PATCH version.
* A code MAY be added to, or removed from, an open codelist in a PATCH version.
* Any other normative changes to these files MUST be made in a new version.

#### Schema reference Markdown files

* All normative changes to these files MUST be made in a new version.

#### Other Markdown files

The change management process for the [Governance page](index) is not yet defined.

#### License files

The change management process for the [standard's LICENSE file](https://github.com/open-contracting/standard/blob/HEAD/LICENSE) is not yet defined.

#### Core extensions

* All normative changes to these files MUST be made in a new version.
54 changes: 54 additions & 0 deletions docs/governance/translation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Translation and localization

```{admonition} Summary
This document contains our translation and localization policy.
```

## Key concepts

To make sure the OCDS is accessible around the world, we pay attention to a number of areas:

* **Internationalization (i18n)**: The process of designing a standard, and the tools associated with it, so that it can be localized across different contexts.
* **Translation**: The process of making a standard and its associated tools and documentation available in more than one language.
* **Localization (l10n)**: Going beyond a generic language translation to also consider how a standard and its documentation will be interpreted within a particular local and cultural context.

In general, internationalization is a task during the development of the schema and documentation. Translation for _supported_ languages takes place as part of the [core development process](index). In addition, _community_ translations are accepted. Localization takes place as part of implementation support in particular countries and contexts.

To ensure readers have a clear understanding of the nature of translations, the documentation and schema descriptions will include a clear note explaining the status of any translation.

## Principles

Our approach to supported translations will be:

1. **Deliberate.** We will be clear on the purpose of translation, and whose needs it should meet.
2. **Accurate.** We will engage local reviewers for languages, and work with reviewers with subject matter expertise to ensure the quality of translation.
3. **Consistent.** We will identify and define key terms, and make sure that whenever they occur in the same context they are translated in the same way.
4. **Accessible.** We will design translation practices around user needs and will consider the audience, their language skills and technical qualifications, and their specific needs for translation.
5. **Usable.** We will honor the work we are asking the reader or user of our translations to do by making sure translations are fit for purpose.
6. **Iterative.** We will listen to user feedback and make sure there is a way to capture and act on it.
7. **Transparent.** We will provide access to the translation process and decision making, accounting for the translations decisions we make.

## Policy

### Language support

* The authoritative language for the standard is English. All translations into other languages are provided for the convenience of users, and in case of conflict or ambiguity, the English text supersedes all translations.
* Our core **supported translations** are listed on the standard website. Translations in these languages will be reviewed by subject matter and language experts.

The standard governance group will approve or remove supported languages, taking note of where there is wide community interest expressed through issues and community discussion spaces, ongoing implementation of OCDS, and resources available for ongoing translation.
* **Supported translations** will be actively maintained by the OCDS technical team, kept up to date when the standard is updated. For supported translations we will have a well-managed glossary of key terms, reviewed by language and subject matter experts.
* We welcome **community translations** in other languages. We do not assess or review the accuracy of community translations.
* **Community translations** are contributed by volunteers. There is no commitment to keep these updated when the standard changes.
* **Community translations** will only be linked from the documentation when the schema is fully translated, and at least 50% of other documentation pages are translated. Community translations may be removed if they appear to be abandoned, misleading, inaccurate or detrimental to the standard, by the OCDS technical team at any time.

### Draft and release process

* **Draft** translations (supported or community) may be made available within the documentation, but only with the addition of a suitable warning notice.
* When a translation is judged by the OCDS technical team to be stable and unlikely to see major changes, it will be flagged as a **release** version, and this clearly indicated.

### Update process

* Whenever a major, minor or patch version of the standard is released, normative content will be translated into all core supported languages as soon as possible.
* Minor, non-normative, documentation updates will be translated promptly, but may not always be translated before the updates are released.
* The documentation will clearly display when the English documentation is 'ahead' of translations for a particular version.
* Community translators will be notified of updates, and encouraged to update their translations.
6 changes: 6 additions & 0 deletions docs/history/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ Per the [normative and non-normative content and changes policy](https://docs.go
* [#1416](https://github.com/open-contracting/standard/pull/1416) Change "interested supplier" to "potential supplier".
* [#1464](https://github.com/open-contracting/standard/pull/1464) Deprecate 'eligibilityCriteria', add 'exclusionGrounds' and 'selectionCriteria'.
* [#1508](https://github.com/open-contracting/standard/pull/1508) Clarify that "evaluation" in 'evaluationCriteria' and 'evaluationReports' covers exclusion grounds, selection criteria and award criteria. Add a document type for 'awardCriteria'.
* [#1618](https://github.com/open-contracting/standard/pull/1618) Remove non-existent sections from `Section` column.

* `method.csv`:
* [#1353](https://github.com/open-contracting/standard/pull/1353) Replace "submit a tender" with "submit a bid".
Expand Down Expand Up @@ -207,6 +208,8 @@ Per the [normative and non-normative content and changes policy](https://docs.go
* [#1335](https://github.com/open-contracting/standard/pull/1335) Standardize the descriptions of `planning`, `planning.rationale`, `planning.budget`, `planning.documents`, and `planning.milestones`.
* [#1530](https://github.com/open-contracting/standard/pull/1530) `Buyer`, `tender.items`, `awards.items`, `contracts.items`, `Item`, `Item.description`, `Item.unit`, `Unit`, `transaction.providerOrganization`, `transaction.receiverOrganization` to use consistent wording for "goods, services and/or works".
* [#1528](https://github.com/open-contracting/standard/pull/1528) `tender.id`, `tender.hasEnquiries`, to reduce ambiguity and use consistent wording in the description of procurement stages.
* [#1618](https://github.com/open-contracting/standard/pull/1618) `tender.enquiryPeriod`, to remove the suggestion to use `tender.submissionMethodDetails` for information about how to submit enquiries.
* [#1618](https://github.com/open-contracting/standard/pull/1618) Normalize field descriptions according to a style guide.

* Remove confusing terminology:
* [#1487](https://github.com/open-contracting/standard/pull/1487) `planning.budget.project`, to remove sentence about translation options.
Expand Down Expand Up @@ -267,6 +270,9 @@ Per the [normative and non-normative content and changes policy](https://docs.go
* [#1375](https://github.com/open-contracting/standard/pull/1375) Update guidance for empty fields in the merging documentation.
* [#1466](https://github.com/open-contracting/standard/pull/1466) Reference worked examples in release and record reference documentation.
* [#1466](https://github.com/open-contracting/standard/pull/1482) Add examples in release reference documentation.
* [#1618](https://github.com/open-contracting/standard/pull/1618) Add conformance rule about normative statements.
* [#1618](https://github.com/open-contracting/standard/pull/1618) Remove validator and application conformance rules.
* [#1618](https://github.com/open-contracting/standard/pull/1618) Move governance policies from Google Docs, updating references for OCDS 1.1.5 and OCDS 1.2.0, and removing references to GitHub issues.

## [1.1.5] - 2020-08-20

Expand Down
4 changes: 2 additions & 2 deletions docs/locale/es/LC_MESSAGES/codelists.po
Original file line number Diff line number Diff line change
Expand Up @@ -2075,8 +2075,8 @@ msgstr "Ontologías de Cantidades, Unidades, Dimensiones y Tipos de Datos"
#. Description
#: schema/codelists/unitClassificationScheme.csv:2
msgid ""
"Use the [QUDT Code](https://www.qudt.org/qudt/owl/1.0.0/unit/Instances.html)"
"Use the [QUDT Code](https://www.qudt.org)"
" value."
msgstr ""
"Usa el valor del [QUDT "
"Code](https://www.qudt.org/qudt/owl/1.0.0/unit/Instances.html)."
"Code](https://www.qudt.org)."
Loading

0 comments on commit 94e518f

Please sign in to comment.