-
-
Notifications
You must be signed in to change notification settings - Fork 209
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
Enhancing Performance and Reliability of AsyncAPI CLI #1657
Comments
Hi @AceTheCreator , @AayushSaini101 and team Research and Findings regarding testing of interactive mode in some commands -
However, the current codebase lacks proper testing for this interactive mode, making it difficult to ensure reliability and consistency. After research, a method was identified to test multiple calls to ux.prompt without requiring any additional external libraries, apart from the default @oclif/core. The ux.prompt method can be effectively stubbed using Sinon.JS , which is integrated within @oclif/test. Sinon.JS stubs can be used to mock responses for multiple prompts. |
Hi @AceTheCreator, @AayushSaini101, and team, I have started working on this project and analyzed the generate command’s performance. It currently takes ~73s to execute, highlighting the need for optimization. I’ll be working on improving execution speed and overall CLI efficiency. Key Focus Areas: |
Hey @AceTheCreator @AayushSaini101 , 👋 I’ve been exploring the AsyncAPI CLI and am really excited to contribute! After reviewing the project goals, I’d love to start by addressing the outdated dependencies to improve test reliability and reduce flakiness. Updating the dependencies would:
I can start by auditing the current dependencies, categorizing updates (minor/major), and running tests to catch any regressions. If you’d like, I can split this into smaller PRs for easier review. Would this be a good place to begin, or would you prefer me to prioritize a different aspect of the CLI improvements? Let me know — happy to align with the team’s direction! 🚀 Best, |
Hello. What's the expected size of this project? |
hey @AceTheCreator @AayushSaini101 and team |
Overview
The AsyncAPI CLI is nearly feature-complete, but its performance, testing reliability, and usability need significant improvements. This project focuses on optimizing command execution speed, enhancing test reliability, and introducing much-requested features such as publishing and syncing AsyncAPI files with remote repositories.
Why This is Needed
Performance Issues: Some CLI commands, such as generate, take too long to execute.
Flaky Testing & Outdated Dependencies: Running test cases locally is challenging due to outdated dependencies, leading to debugging issues.
Long-Standing Feature Gaps: The community has requested a way to publish and sync AsyncAPI files with repositories.
Slow Installation: The CLI installation process is inefficient; migrating to Bun or pnpm could speed this up.
Lack of Custom Validation Rules: Users cannot currently validate AsyncAPI files against their own Spectral rules.
Project Goals
✅ Performance Optimization:
✅ Test & Debugging Improvements:
✅ New Features:
✅ Logging & Documentation Improvements:
Expected Outcome
By the end of GSoC 2025, the AsyncAPI CLI should be significantly faster, more reliable, and equipped with features that improve usability and debugging. The improvements will make contributing to the project easier while also enhancing the developer experience for end users.
Skills Required
JavaScript/TypeScript
Node.js
Performance Optimization (e.g., profiling, dependency management)
Testing Libraries
APIs
Difficulty Level
🟡 Medium to High
Resources
AsyncAPI CLI Repository
AsyncAPI Generator Issue #538
Bun.sh
pnpm
Spectral Rules for API Validation
The text was updated successfully, but these errors were encountered: