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

OpenAIRE_Service_Compatibility for version 1.1.1 #160

Open
spyroukostas opened this issue Sep 19, 2024 · 8 comments
Open

OpenAIRE_Service_Compatibility for version 1.1.1 #160

spyroukostas opened this issue Sep 19, 2024 · 8 comments

Comments

@spyroukostas
Copy link

spyroukostas commented Sep 19, 2024

The OpenAIRE Guidelines for CRIS have the following versions:

  • 1.0
  • 1.1
  • 1.1.1
  • 1.2

Most of the registered CRIS are compatible with the 1.1.1 version. But this version has been removed from the Service Compatibility enum under schemas/vocabularies/openaire_service_compatibilities.xsd since the commit c336f34.

Is this correct?
Thank you in advance.

@jdvorak001
Copy link
Collaborator

While working towards 1.2.0 we had a bit of a dilemma with this vocabulary: the vocabulary didn't contain an entry for compatibility with the 1.1.0 version. The question was: so should it?

Any micro-level updates are extensions only (if they need to touch any of the XML schemas, that is). We took the more coarse-grained way and only declared compatibilities down to the minor version. This currently means 1.0, 1.1 and 1.2. This is also the level of granularity that a harvester can use for selecting the OAI-PMH metadata schema (based on the XML namespace). Thus, if 1.2.1 is released, it will only extend 1.2.0 and will use the same XML namespace (https://www.openaire.eu/cerif-profile/1.2/) as 1.2.0 does.

I believe that on the consumer side, the best approach is to consider the 1.1.1 compatibility level as equivalent to the 1.1 one. Just make sure you use the latest XML schemas of any of the minor release branches.

@spyroukostas
Copy link
Author

Thank you for clarifying. The issue is that this compatibility was introduced five years ago and remained in the documentation for four years. Many registered CRIS had already adopted it before it was removed.

I believe version 1.1.1 shouldn't be removed. Instead, it should be marked as deprecated, with version 1.1 encouraged for use in its place.

What are your thoughts?

@jdvorak001
Copy link
Collaborator

Yes, had we wanted to keep backwards compatibility, we should have deprecated the 1.1.1 compatibility level entry instead of removing it. But that would have to happen in a tentative 1.1.2 release.

Since 1.2 is not backwards compatible with 1.1, it was o.k. to remove it altogether.

@pispis
Copy link

pispis commented Sep 20, 2024

Thank you Jan.

The issue here is that the customers have been using the 1.1.1 guidelines for several years and this should remain as is because we cannot mark it as deprecated and encourage them to use the 1.1 version. Let's not complicate things with another release here as you should take into mind that we are not talking only for the validator here but also for the guidelines. And the customers do not differentiate them as we do technically.

We are going to release version 1.2 in the next months but version 1.1.1 should remain accessible in the guidelines as most of the registered CRIS follow this version as it was mentioned until June 2023.

@spyroukostas
Copy link
Author

I just came across this issue about the Service Compatibility.

I understand that the option for Service Compatibility version 1.1.1 was introduced after the publishing of the version 1.1.1 of the guidelines. At this point you were working for the version 1.2.0 of the guidelines and you decided to remove the Compatibility 1.1.1 option. Did I get it right?

However, while you were working on version 1.2.0, the Compatibility version 1.1.1 option existed in the documentation and it was later removed (e4b8803).

My question is, was this option publicly mentioned in the docs v1.2.0 and was later removed, or was it never mentioned publicly?

Thank you.

@jdvorak001
Copy link
Collaborator

You're right. We didn't have the 1.1.1 compatibility level in the 1.1.1 release itself. Nor was it present in the 1.2.0 release.

It was present in the development branch for some time (commits e64a251 to c336f34 for the schema, e64a251 to e4b8803 for the documentation) between these two releases. It was displayed on the ReadTheDocs site.

@jdvorak001
Copy link
Collaborator

It looks like the easiest way out of this trap would be to make a technical 1.1.2 release that would include the 1.1.1 compatibility level as deprecated one. That would give us a XML schema in the 1.1 namespace that would include this compatibility level. What do you think, @spyroukostas?

@spyroukostas
Copy link
Author

I understand this is a difficult situation, as the releases have already been published. One option, as you mentioned, is to create another technical release (1.1.2) and possibly a 1.2.1 release to include the deprecated Compatibility version in the guidelines 1.2 docs.

But the problem I see in this option is that the versions of the guidelines may be confused with the release versions of the repository by the users. So isn't it going to appear that new guidelines have been introduced and further confuse the users?

Nevertheless, I don't think I should decide on this matter, and we certainly shouldn't rush into anything that could complicate matters further.

Probably you have to hear to what @pispis believes to be better.

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

No branches or pull requests

3 participants