Skip to content

Commit

Permalink
Merge branch 'main' into feature/TED-1302
Browse files Browse the repository at this point in the history
  • Loading branch information
csnyulas committed Jun 13, 2023
2 parents 862eca5 + 189f3e4 commit a855665
Show file tree
Hide file tree
Showing 506 changed files with 1,567,914 additions and 2 deletions.
1 change: 1 addition & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ jobs:
python-version: 3.8
- name: Install dependencies
run: |
sudo apt-get install -y libssl-dev libcurl4-openssl-dev
python -m pip install --upgrade setuptools pip wheel
make install-dev
- name: Run Tests
Expand Down
23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ The following table indicates the implementation status of TED Standard Forms, s
| can-social | **Yes** | **F21** | **F23** | **F22** |
| can-desg | **Yes** | **F13** | **na** | **F13** |
| can-modif | | F20 | F20 | F20 |
| corr (eforms excel treats this as a change to a notice but implementation treats as new form) | | F14 | F14 | F14 |
| corr | | F14 | F14 | F14 |
| pin-tran | | na | na | na |
| can-tran | | na | na | na |

Expand Down Expand Up @@ -78,6 +78,27 @@ When contributing to this repository, please first discuss the change you wish t

Please note we adhere to [Apache code of conduct](https://www.apache.org/foundation/policies/conduct), please follow it in all your interactions with the project.

## Milestones

Each milestone corresponds to a foreseen release of the ontology.

## Issue labels

The issues are classified based on for classification dimensions:
* type label
* bug - something implemented incorrectly in a release
* missing feature - something expected but missing from a release
* feature request - something requested to be implemented in a future release
* implementation question - something needs clarified, refined or decided before the implementation can continue
* release question - something needs clarified before a release is considered accepted
* action label
* for implementation - it can be implemented and closed, all is clear
* for closing - it can be closed but an additional confirmation is needed
* auxiliary label
* ppds - it is related to the PPDS project
* bdti - it is related to the BDTI project


# Licence

The documents, such as reports and specifications are licenced under a [CC BY 4.0 licence](https://creativecommons.org/licenses/by/4.0/deed.en).
Expand Down
1 change: 1 addition & 0 deletions docs/antora/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
* xref:cli-toolchain.adoc[Toolchain]
* xref:preparing-test-data.adoc[Data samples]
* xref:mapping-priorities.adoc[Mapping priorities]
* xref:versioning.adoc[Versioning]
73 changes: 73 additions & 0 deletions docs/antora/modules/ROOT/pages/versioning.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
= Mapping Suite Versioning Rules

This section presents the versioning rules for mapping suites which considers the mapping suite structure, the conceptual and technical mappings (which impact the structure of the output), and the metadata. These rules play a crucial role in maintaining compatibility and ensuring smooth transitions between different mapping suite versions, especially when considering the potential impact on SPARQL queries on the transformation output.

=== Semantic versioning in a nutshell

“Dependency hell” plagues software management and impacts models, architecture and documentation. As a project expands, the complexity of changes and dependencies increase, complicating the release of new work packages. Version lock and version promiscuity impede progress, making it difficult to move projects forward safely and efficiently.

Semantic Versioning offers a solution by providing a set of rules for assigning and incrementing version numbers. It clearly communicates changes in artefacts through version number increments and change notes, using the *X.Y.Z (Major.Minor.Patch)* format:

* Bug fixes increment the patch version,
* Backwards-compatible changes increment the minor version, and
* Backwards-incompatible changes increment the major version.

This approach provides numerous benefits:

* Precise artefact version identification
* Traceable artefact evolution for governance
* Minimised client-side impact from artefact changes
* Prevention of accidental semantic-level compatibility breaks
* Effortless detection of version incompatibility
* Clear differentiation of impact and compatibility levels for changes
* Transparent artefact evolution timeline
* Manageable artefact version governance (e.g., approval processes, quality gates, parallel versions, branches)


=== Backwards compatibility

A new version of the mapping suite is considered to be backwards compatible if it can be read directly by the same software that was able to read the previous version without requiring any modifications in its code.

=== Major version increment

* The mapping suite structure or metadata structure changes.

_Implications:_

* Applications must be aware of major releases and should not use them unless specifically designed to support them. Otherwise, a mapping suite with a major change cannot be read by an existing application (e.g. TED-SWS pipeline, Toolchain, etc.)
* An example of a change that would break backwards compatibility is renaming, moving, or removing a file in the mapping suite. Another example would be changing the format of the contents of a file in the mapping suite, e.g., switching from RML to YARRML. A more concrete example would be altering the structure of objects inside the metadata file, renaming or removing some properties, or altering the column structure in the conceptual mapping file.

=== Minor version increment

* When the output of the mapping execution produces different results for the same input.
** Mapping to a new version of the ontology.
** Changes in mapping rules that would impact SPARQL queries on output data.
** Deletion of a mapping rule that would impact SPARQL queries on output data.
* The structure of the mapping suite is extended to accommodate new software features

_Implications:_

* If the output of the mappings impacts a SPARQL query, it is considered a minor change in the mapping suite, even if the impact on the query is major.
* At first glance, these types of changes may appear quite substantial and potentially incompatible with previous versions. However, it's important to note the definition of backward compatibility we discussed earlier in this section. Backward compatibility is considered broken only when developers are required to make modifications to enable an application to read the new version while still being able to interpret the previous version. Fortunately, in the rules mentioned above, none of the changes require any adjustments within the application itself. Hence, these modifications can be seamlessly adopted without any impact on the application's functionality.
* The RDF metadata in the output should indicate the ontology version it is compliant with, and the mapping suite version used to generate them, specifying only the major and minor versions (without the patch).

=== Patch version increment

* Variation in the source structure of the mapping that does not affect the output data
** Mapping to a new XSD version of the source XML schema.
** Mapping to a new version of the eForms SDK (XSD + JSON).
* Adding new mapping rules to make the mapping suite more complete.
* Editorial changes in mapping rules including comments, notes, and remarks.

=== Release labelling

* Pre-release (unstable) versions should be labelled with the suffix "-beta.#" (where # stands for a number e.g. 1,2,3).
* Release candidate (stable) versions should be labelled with the suffix “-rc.#” (where # stands for a number e.g. 1,2,3). Release candidate versions are issued to allow stakeholders to test and provide final remarks.

_Implications:_

* This helps track unstable, in-development and release candidate versions, but does not impact precedence.

=== Conclussion

By adhering to the versioning rules outlined in this section, developers and maintainers can effectively manage versioning for mapping suites, ensuring compatibility and smooth transitions between different versions. These rules provide clear guidelines for when to increment major, minor and patch versions, considering the potential impact on SPARQL queries on the transformation output. Following these rules will help maintain consistency and compatibility across various systems that rely on the mapping suites.
Loading

0 comments on commit a855665

Please sign in to comment.