Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add convenience check if customised ROBOT report config is out of date and update default config #998

Merged
merged 4 commits into from
Feb 25, 2024

Conversation

matentzn
Copy link
Contributor

@matentzn matentzn commented Feb 24, 2024

Fixes #552

This PR:

sh run.sh make check_for_robot_updates
....
Missing tests:
equivalent_class_axiom_no_genus
illegal_use_of_built_in_vocabulary
invalid_entity_uri
missing_subset_declaration
missing_synonymtype_declaration
misused_replaced_by
multiple_equivalent_class_definitions

This adds a convenience script to check if the ROBOT report config is missing anything added to ROBOT since.
This should have happened earlier.
@gouttegd
Copy link
Contributor

I don’t understand the point of this.

Let’s say a new test is added to the ROBOT’s master branch. What good does it do to ODK users to know that a new test is available in a version of ROBOT that is not the version that is included in the ODK, and that may not even be published yet?

@matentzn
Copy link
Contributor Author

Hmm, it's true that there could be a small lag between master and release, didn't think of that. But I was hoping to make it easier for people who use a custom profile to get notified if ROBOT supports new tests. Already many ontologies I work with use custom profile.txt files, and are 2-6 tests behind what robot has to offer.. maybe you have a better idea of how to make it easy for a user to understand when there are new tests available?

@gouttegd
Copy link
Contributor

Given the current frequencies of ROBOT releases, the lag is likely to be quite substantial (a few months at least).

What I would suggest is to bundle the ROBOT default profile at build time. That is, we store somewhere in the ODK a copy of the ROBOT profile (let’s say in /tools/robot/default_profile.txt), and we compare the profile actually used in the ontology to that.

No need to download anything from the Internet, and this will let people know if there are any tests that are supported by the version of ROBOT available in the ODK that their custom profile does not include.

Of course, when we update ROBOT in the ODK (as we do in point releases), we update the profile accordingly, so that /tools/robot/default_profile always contain the up-to-date list of all the tests that are supported by the version of ROBOT provided with the ODK.

@gouttegd
Copy link
Contributor

Is this what you mean?

Yes, exactly.

@matentzn matentzn merged commit fd139a8 into master Feb 25, 2024
1 check passed
@matentzn matentzn deleted the issue552-custom-robot-reports-check branch February 25, 2024 06:02
gouttegd added a commit that referenced this pull request Feb 20, 2025
For now, when building the image, we download the ROBOT report profile
for the current version of ROBOT (the version used in the ODK) and put
it in /tools/robot_report_profile.txt. We do that so that we can check,
as part of the standard workflow, whether the custom profile that the
project may be using is not lacking any new tests that are available in
the current version of ROBOT (see #998).

Here, we simply move the location of the profile file within the image,
from

  /tools/robot_report_profile.txt

to

  /tools/templates/src/ontology/profile.txt

This does not change how the check mentioned above works (we just update
the path involved in that check), but this will have the benefit of
automatically installing the ROBOT profile when seeding a repository,
since the file is now within the template directory used by the seeding
system.

Therefore, we can remove the 'src/ontology/profile.txt' block from the
dynamic template pack (which needed to be manually updated by us
whenever we updated ROBOT -- something I don't think we have really been
doing).

But we do not want to _always_ install this profile.txt file in a seeded
repository -- we only need to do that when the use of a custom profile
is enabled in the configuration (that was the reason why the profile was
part of the dynamic template pack). To avoid installing the file when a
custom profile is _not_ enabled, we use the recently introduced
per-template policies system: we set the policy for the
'src/ontology/profile.txt' template to NEVER if a custom profile is not
enabled.

closes #999
gouttegd added a commit that referenced this pull request Feb 24, 2025
For now, when building the image, we download the ROBOT report profile
for the current version of ROBOT (the version used in the ODK) and put
it in /tools/robot_report_profile.txt. We do that so that we can check,
as part of the standard workflow, whether the custom profile that the
project may be using is not lacking any new tests that are available in
the current version of ROBOT (see #998).

Here, we simply move the location of the profile file within the image,
from

  /tools/robot_report_profile.txt

to

  /tools/templates/src/ontology/profile.txt

This does not change how the check mentioned above works (we just update
the path involved in that check), but this will have the benefit of
automatically installing the ROBOT profile when seeding a repository,
since the file is now within the template directory used by the seeding
system.

Therefore, we can remove the 'src/ontology/profile.txt' block from the
dynamic template pack (which needed to be manually updated by us
whenever we updated ROBOT -- something I don't think we have really been
doing).

But we do not want to _always_ install this profile.txt file in a seeded
repository -- we only need to do that when the use of a custom profile
is enabled in the configuration (that was the reason why the profile was
part of the dynamic template pack). To avoid installing the file when a
custom profile is _not_ enabled, we use the recently introduced
per-template policies system: we set the policy for the
'src/ontology/profile.txt' template to NEVER if a custom profile is not
enabled.

closes #999
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

We do not sync customised ROBOT reports
2 participants