Skip to content

Conversation

@dimovpetar
Copy link
Member

No description provided.

@dimovpetar dimovpetar marked this pull request as draft October 21, 2025 11:50
@dimovpetar dimovpetar force-pushed the feat_run_manifest_validation branch 4 times, most recently from c0f9c6b to 85d48a7 Compare October 28, 2025 13:56
@dimovpetar dimovpetar force-pushed the feat_run_manifest_validation branch 2 times, most recently from 9ee721e to b1ed71b Compare October 30, 2025 08:30
@coveralls
Copy link

coveralls commented Oct 30, 2025

Pull Request Test Coverage Report for Build 19666892989

Details

  • 110 of 112 (98.21%) changed or added relevant lines in 5 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.9%) to 82.266%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/utils/ui5Manifest.ts 47 49 95.92%
Totals Coverage Status
Change from base Build 19648105994: 0.9%
Covered Lines: 1111
Relevant Lines: 1255

💛 - Coveralls

@dimovpetar dimovpetar marked this pull request as ready for review October 30, 2025 14:16
@alexandar-mitsev
Copy link
Member

Looks good to me

@dimovpetar dimovpetar force-pushed the feat_run_manifest_validation branch from 6ee3a30 to 0f4d9df Compare November 3, 2025 12:11
Copy link
Member

@alexandar-mitsev alexandar-mitsev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • now I often get "The MCP validation tool timed out". Seems that it happens mainly if I ask to validate a manifest, complete the task, then edit the manifest and ask to validate again.
    Maybe it is related to the mutex log and cache. Or to the ajv tool itself
    If I restart VS code, the tool can run again without a timeout. Also it runs smoothly couple of times in the same task. But fails with timeout if it runs in two different tasks in the same window.

  • every time when I validate manifest _version: "1.60.0" - I get an error
    Error:
    Failed to create UI5 manifest validate function: items value must be ["object","boolean"]

  • some older manifests are in the mapping, but have no tag for them, e.g. 1.50.0, 1.45.0
    we should think of how to improve the tool to handle this. Maybe suggest an upgrade in that case as well?

  • there are many logs for format "uri" ignored and format "uri-reference" ignored in the console, but this is not an error. Can be resolved with later update

@dimovpetar
Copy link
Member Author

now I often get "The MCP validation tool timed out". Seems that it happens mainly if I ask to validate a manifest, complete the task, then edit the manifest and ask to validate again.
Maybe it is related to the mutex log and cache. Or to the ajv tool itself
If I restart VS code, the tool can run again without a timeout. Also it runs smoothly couple of times in the same task. But fails with timeout if it runs in two different tasks in the same window.

Fixed it, it was caused by not releasing the mutex when fetching external schemas, particularly the Adaptive cards schema.

every time when I validate manifest _version: "1.60.0" - I get an error
Error:
Failed to create UI5 manifest validate function: items value must be ["object","boolean"]

The reason behind that is that UI5 Manifest schemas prior 1.68.0 are using older version of the meta schema. Our setup doesn't support it. I have added an error and hint whenever such old version of manifest is encountered, to suggest upgrade to a newer one.

some older manifests are in the mapping, but have no tag for them, e.g. 1.50.0, 1.45.0
we should think of how to improve the tool to handle this. Maybe suggest an upgrade in that case as well?

Now, upgrade is suggested if version lower than 1.68.0 is encountered.

There are many logs for format "uri" ignored and format "uri-reference" ignored in the console, but this is not an error. Can be resolved with later update

Resolved it. There is dedicated package that contains those formats, called "ajv-formats".

Copy link
Member

@alexandar-mitsev alexandar-mitsev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

@RandomByte
Copy link
Member

every time when I validate manifest _version: "1.60.0" - I get an error
Error:
Failed to create UI5 manifest validate function: items value must be ["object","boolean"]

The reason behind that is that UI5 Manifest schemas prior 1.68.0 are using older version of the meta schema. Our setup doesn't support it. I have added an error and hint whenever such old version of manifest is encountered, to suggest upgrade to a newer one.

some older manifests are in the mapping, but have no tag for them, e.g. 1.50.0, 1.45.0
we should think of how to improve the tool to handle this. Maybe suggest an upgrade in that case as well?

Now, upgrade is suggested if version lower than 1.68.0 is encountered.

@MatthiasSchmalz fyi, in case you have any comments or suggestions we would highly appreciate it. Otherwise we will go forward with this setup

CC: @codeworrior

@MatthiasSchmalz
Copy link

@RandomByte
I think it is ok to not support old legacy versions, but the error messages should be understandable.
"Failed to create UI5 manifest validate function: items value must be ["object","boolean"]" is not understandable.
"Can't validate manifest, because schema version < 1.68.0 is not supported" would be understandable.

However 1.67.0 is not very old, so a lot of consumers might still use it.
Do you want to suggest updating the schema but keeping an older minUI5Version? That doesn't feel so good as it can cause invalid combinations (at least Fiori Pipelines could complain about this).
Is the effort to support the old meta version that big?

Copy link
Member

@matz3 matz3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The architecture document should also be updated to reflect the new changes, especially the new dependencies to external services.

@dimovpetar
Copy link
Member Author

@RandomByte I think it is ok to not support old legacy versions, but the error messages should be understandable. "Failed to create UI5 manifest validate function: items value must be ["object","boolean"]" is not understandable. "Can't validate manifest, because schema version < 1.68.0 is not supported" would be understandable.

However 1.67.0 is not very old, so a lot of consumers might still use it. Do you want to suggest updating the schema but keeping an older minUI5Version? That doesn't feel so good as it can cause invalid combinations (at least Fiori Pipelines could complain about this). Is the effort to support the old meta version that big?

Hello @MatthiasSchmalz ,

The error now looks like
"Manifest version '1.67.2' is not supported. Please upgrade to a newer one.
Supported versions are: 1.81.0, 1.81.0, 1.80.0, 1.79.0, 1.78.0, 1.77.0, 1.76.0, 1.75.1, 1.73.1, 1.72.3, 1.72.0, 1.70.1, 1.69.0, 1.68.0."

This tool focuses on performing validation based on concrete schema. minUI5Version value does not differ per schema. It is something that we can discuss to add on top, but not in the initial release. Same goes for supporting versions < 1.68.0.

@dimovpetar dimovpetar force-pushed the feat_run_manifest_validation branch from 7673deb to 6c7eae5 Compare November 25, 2025 09:42
@dimovpetar dimovpetar force-pushed the feat_run_manifest_validation branch from 286fbe7 to e41177c Compare December 18, 2025 14:56
Copy link
Member

@matz3 matz3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, apart from one detail.

I've also updated the URLs to use the new GitHub repo, after the recent move from SAP to UI5.

@matz3 matz3 requested a review from KlattG December 19, 2025 12:37
@dimovpetar dimovpetar requested a review from matz3 December 19, 2025 13:52
Copy link
Member

@matz3 matz3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.
UA review is pending, and I'd like to give @RandomByte also the chance for another look.

Copy link
Contributor

@KlattG KlattG left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some very minor suggestions, but overall looking really good

@dimovpetar dimovpetar requested a review from KlattG December 19, 2025 18:01
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.

9 participants