This documents the versioning policy for extensions and vocabularies hosted on http://rs.gbif.org. It also provides detailed instructions on how to create new versions of extensions and vocabularies.
An extension is immutable by design and software tools confidently rely on this fact.
To avoid breaking tools such as the IPT, authors are encouraged to produce new versions of extensions and vocabularies as per these guidelines.
The IPT automatically detects when new versions of installed extensions become available. When an IPT administrator upgrades an extension to a newer version, the IPT ensures that existing mappings to this extension don't break. It does this by safely removing or migrating mappings to terms that have been removed or replaced. In addition, it will ensure that any new terms that have been added to the extension are made available to map to.
- Adding or removing properties. Note properties are no longer marked as deprecated, they are simply removed from the new version.
- Modifying the vocabulary or vocabulary version for a property
- Changing a property from being non-required to being required
- Modifying a property's data type
- Modifying a property's description
- Modifying a property's translations
- Modifying a property's examples
- Modifying a property's group
- Changing a property from being required to being non-required
New versions are first quarantined in the sandbox. This allows the new version to be tested and undergo additional modifications prior to release. The version will be moved to production at the discretion of the GBIF Development team. To create a new version of an extension, please follow the instructions below. Don't worry, the GBIF Development team will remove all traces of the sandbox when moving an extension to production.
- Set the
<extension>
elementdc:issued
attribute to the date of release. The date format must be YYYY-MM-DD, e.g. 2015-04-24. - The file name must include the issued date. The date format must by YYYY-MM-DD, e.g. dwc_event_2015-04-24.xml.
- Update the
<extension>
elementdc:description
attribute, appending a change summary of what is new in this version. - Remove all properties that have been deprecated since the last version.
- Ensure the extension XML validates against the latest version of the GBIF extension schema http://rs.gbif.org/schema/extension.xsd
Example command on Linux:
for i in extension/**/*.xml sandbox/extension/**/*.xml; do xmllint --noout --schema schema/extension.xsd $i; echo; done
- Update the
<property>
thesaurus attribute with the new vocabulary version URL (if its version was updated). Chances are new vocabulary versions will be in the sandbox also, e.g. http://rs.gbif.org/sandbox/vocabulary/gbif/rank_2015-04-24.xml
- Adding or removing concepts. Note concepts are no longer marked as deprecated, they are simply removed from the new version.
- Modifying a concept's description
- Modifying a concept's translations
New versions are first quarantined in the sandbox. This allows the new version to be tested and undergo additional modifications prior to release. The version will be moved to production at the discretion of the GBIF Development team. To create a new version of a vocabulary, please follow the instructions below. Don't worry, the GBIF Development team will remove all traces of the sandbox when moving a vocabulary to production.
- Set the
<thesaurus>
elementdc:issued
attribute to the date of release. The date format must be YYYY-MM-DD, e.g. 2015-04-24. - The file name must include the issued date. The date format must by YYYY-MM-DD, e.g. quantity_type_2015-04-24.xml.
- Update the
<thesaurus>
elementdc:description
attribute, appending a change summary of what is new in this version. - Remove all concepts that have been deprecated since the last version.
- Ensure the extension XML validates against the latest version of the GBIF thesaurus schema, http://rs.gbif.org/schema/thesaurus.xsd
Example command on Linux:
for i in vocabulary/**/*.xml sandbox/vocabulary/**/*.xml; do xmllint --noout --schema schema/thesaurus.xsd $i; echo; done
- Update the
<thesaurus>
elementdc:URI
attribute with the accurate unique address URL, e.g. http://rs.gbif.org/sandbox/vocabulary/gbif/quantityType20150424/