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 test to automate the detection/documentation of Admin API changes #742

Closed
swcurran opened this issue Oct 2, 2020 · 5 comments
Closed
Assignees

Comments

@swcurran
Copy link
Contributor

swcurran commented Oct 2, 2020

@jcourt562 mentioned that he is detecting changes in the Admin API by using the swagger definition to generate a client for the API and then looking for changes from previous generations. ACA-Py has been updated to make the generated swagger definition predictably ordered to make such comparisons easier.

It would be nice to have such a mechanism added to the repo for detecting expected and unexpected changes to the API. Have a way to run the process, generate the client and then diff the result with the last known good version of the client. Ideally, the test would be in the CI/CD pipeline (forcing developer to account for and document their changes), but it could also be just a manual process we run before each release to make sure that the release notes sufficiently document the API changes.

By having the expected result in the repo, we can also provide a URL for a GitHub tag-to-tag comparison of the generated client code.

@swcurran
Copy link
Contributor Author

swcurran commented Oct 2, 2020

@jcourt562 -- interested in helping with this one? :-)

@jcourt562
Copy link
Contributor

Let me look into this and see what I can do.

Cheers

John

@jcourt562
Copy link
Contributor

Hey Stephen, you can assign this one to me. I have a script (yeah ok its only bash but hey), it runs up the ACA-py docker, and then runs the swagger-cogegen docker image against it to create an openapi.json file, so its not language specific. We should be able to use that with maybe a little bit of change from what we do afterwards for specific language generation. One issue is that doing this in the CI/CD only really works (at least we have it working that way) with the "shell" executor since it needs to share the fs for input output. I might submit it as a manual script for now until I understand your CI/CD a little better.

@swcurran
Copy link
Contributor Author

swcurran commented Oct 8, 2020

That works. Now that we have merged all of the configuration systems for ACA-Py into a unified system (#739 ) we should also have a "usage" run as part of this that we also check for changes on a merge by merge basis. Don't feel obligated to do that as well, but I assume we'll piggyback on what you do.

@WadeBarnes can help with any CI/CD questions, and can take what you produce to move into CI/CD.

Thanks!

@sklump
Copy link
Contributor

sklump commented Oct 8, 2020

bash is way underrated as a scripting language. Minimal external dependencies!

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