Open Contracting for Infrastructure Data Standards#

This profile is developed and maintained by the Open Contracting Partnership on GitHub. It is deployed with the standard documentation. It was previously deployed to https://open-contracting.github.io/infrastructure/, which uses meta refresh to redirect to the current deployment.

Maintenance#

Copy schema and codelists from OCDS for PPPs#

For each new release of OCDS for PPPs, run:

make update

Review the changes. If there were updates to the OC4IDS copy of shared fields and codelists since the last release of OCDS for PPPs, you may need to update the update function in manage.py accordingly.

To use a pre-release of OCDS for PPPs, run:

./manage.py update --ppp-base-url https://standard.open-contracting.org/staging/profiles/ppp/1.0-dev/en/_static/patched/

Update blank.json#

Install json-schema-random:

npm install git+https://github.com/open-contracting/json-schema-random.git#opencontracting

Update blank.json:

node_modules/json-schema-random/cli.js --no-random --no-additional schema/project-level/project-schema.json > docs/examples/blank.json

Create a workbook with a sheet for each mapping CSV file#

If you are making many changes to the mapping CSV files, you might want to create a workbook containing a sheet for each CSV file.

Install gnumeric on Ubuntu:

sudo apt install gnumeric

Or, on macOS:

brew install gnumeric

Create a workbook with one sheet per mapping CSV file:

ssconvert --merge-to=output.xlsx mapping/*.csv

You can then:

  • Edit the workbook in your preferred spreadsheet software

  • Export each sheet as a CSV file to the mapping directory

Update sustainability.yaml#

For each change to the CoST IDS sustainability elements, update mapping/sustainability.yaml:

./manage.py update-sustainability-elements

For each changed element, check and update its mapping, example and fields. If you edit many examples, you can use the following command to update the associated fields:

./manage.py update-sustainability-fields

Next, Update sustainability.md.

Update sustainability.md#

For each change to mapping/sustainability.yaml:

  1. Lint it, and link any field names to the schema reference documentation:

./manage.py lint -l mapping/sustainability.yaml
  1. Update docs/cost/ids/sustainability.md:

./manage.py update-sustainability-docs