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

OpenAPI Hub diffing tools take too long #3110

Closed
heaths opened this issue Apr 8, 2022 · 6 comments
Closed

OpenAPI Hub diffing tools take too long #3110

heaths opened this issue Apr 8, 2022 · 6 comments
Assignees
Labels
Spec PR Tools Tooling that runs in azure-rest-api-specs repo.

Comments

@heaths
Copy link
Member

heaths commented Apr 8, 2022

When using https://portal.azure-devex-tools.com/tools/diff that I have to nearly every day for diffing changes across different release branches in Azure/azure-rest-api-specs, the diffing takes too long and I have to shift focus away for significant time. Even for a small swagger of ~6 models and no endpoints, it can take 20 minutes or more. Across numerous PRs and multiple files in each, this takes up a significant portion of my day.

I'm using 2 URLs to raw swagger JSON files because I need to diff two separate files (different api-versions) across branches, one of which isn't always main. Using the readme.md from those branches doesn't seem to offer any benefit since I know exactly what files I want to review, and want to see the changes between them separate since, in this case, specification/cognitiveservices/data-plane/Language isn't a true RP and different api-versions may ship different swaggers.

Could the diffing be sped up somehow? I wouldn't expect that building a graph of nodes for endpoints, models, parameters, etc. and diffing them would take 20+ minutes.

@weshaggard weshaggard added the Spec PR Tools Tooling that runs in azure-rest-api-specs repo. label Apr 8, 2022
@akning-ms
Copy link

Thanks, @heaths, We know the diff tool has some performance issue sometime due to github api threshold , but 20+min is too long, can you share us the 2 URL you are testing for us triage?

@akning-ms akning-ms assigned honghr and unassigned akning-ms Apr 11, 2022
@heaths
Copy link
Member Author

heaths commented Apr 11, 2022

Here's a few, but this has been consistent on any swagger-to-swagger diff:

@honghr
Copy link

honghr commented Apr 13, 2022

It work fine now. I just tested it and it took about 5 mins. Could you please try again?

@heaths
Copy link
Member Author

heaths commented Apr 13, 2022

Even that seems too long. Devs can diff 3GB+ repos in under a second. I get more processing for a semantic diff is necessary, but how is this taking minutes as opposed to seconds? I've heard from a few people that they often hit refresh several times before giving up using the tool.

@akning-ms
Copy link

@jianyexi to try whether there is other space to improve performance in tooling service

@akning-ms akning-ms assigned jianyexi and unassigned honghr Apr 14, 2022
@jianyexi
Copy link

Since it's perf issue about the oad, create an issue Azure/openapi-diff#227 to track

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Spec PR Tools Tooling that runs in azure-rest-api-specs repo.
Projects
None yet
Development

No branches or pull requests

5 participants