-
-
Notifications
You must be signed in to change notification settings - Fork 310
Description
Overview:
This initiative aims to guide you on a journey from being a contributor to becoming a maintainer of the project. You'll gain insight into the responsibilities of a maintainer, involving tasks beyond mere coding.
Being a maintainer entails:
- Defining potential enhancements as GitHub issues
- Actively triaging incoming requests and bug fixes
- Resolving bugs or providing guidance to others
- Shifting focus from creating code to reviewing it at the pull request level
- Occasionally writing documentation
- Improvement refactors, writing tests - still very important
- And yes, sometimes coding new features
- It's about taking responsibility for the project's future and continuous improvement. It's less about the brilliance of the code you produce. All of the activities described above will be part of the mentorship journey.
Why is this an interesting project?
To secure a job, you need experience. Completing a single project or contributing code for one feature isn't substantial experience. However, becoming a maintainer—now, that's something you can proudly showcase in an interview. I can't guarantee that completing this mentorship will immediately qualify you to become a project maintainer. Your performance, attitude, and motivation will determine that. However, I can promise to support you throughout the journey and provide honest feedback on your strengths and areas needing improvement. Even if you're not yet ready to become a maintainer, I'll outline a plan for your next steps towards achieving that goal. I would highly recommend to read the blog post written by Lukasz Gornicki (@derberg) - https://www.brainfart.dev/blog/maintainership for more details about Maintainership.
Project Description:
The AsyncAPI CLI is a cornerstone of the AsyncAPI ecosystem and is close to feature completeness. However, its performance bottlenecks, test instability, and growing maintenance overhead currently limit both contributor productivity and end-user experience.
This project focuses on optimising command execution, improving test reliability, and enhancing overall usability and debuggability of the CLI. Addressing these issues will significantly reduce friction for developers, improve CI reliability, and ensure the CLI scales effectively as the AsyncAPI ecosystem continues to grow.
The CLI currently has multiple open maintenance and performance-related issues that directly impact daily usage and contributor confidence, making this work both timely and high-impact for the community.
Problem Statement & Scope
Key areas of focus include:
- Profiling and optimising slow CLI commands, with particular emphasis on the generate command, which is one of the most frequently used and performance-critical workflows.
Reference: Overarching issue for tracking progress #1929 - Improving test stability and reliability by identifying flaky tests, optimising test setup, and reducing dependency-related failures.
- Evaluating and potentially migrating the package manager/runtime (e.g., Bun or pnpm) to reduce installation time, improve dependency resolution, and speed up CI pipelines.
- Reducing long-term maintenance burden by simplifying command execution paths, improving internal abstractions, and strengthening debugging support.
- Package size reduction of the CLI currently, the CLI is very heavy while installing, need to optimise it properly
Expected Outcomes
- By the end of GSoC 2026, the AsyncAPI CLI will:
- Deliver significantly faster command execution, especially for generation workflows.
- Have more reliable and deterministic test suites, reducing CI failures and maintenance effort.
- Offer faster installation and setup times, improving first-time contributor experience.
- Provide better debugging and usability features, making the CLI easier to use, extend, and maintain.
- Enable higher contributor confidence and smoother onboarding for new developers.
- These improvements will directly enhance both end-user developer experience and long-term project sustainability.
Skills Required
- JavaScript / TypeScript
- Node.js ecosystem
- Performance optimisation (profiling, dependency management, runtime analysis)
- Testing frameworks and tooling
- API design and integration
Difficulty Level
High (350 hours)
Mentors: @AayushSaini101 @Shurtu-gal @Souvikns
Resources
- AsyncAPI CLI Repository: https://github.com/asyncapi/cli
- AsyncAPI Generator Performance Discussion: Generator doesn't pull template from private repo generator#538
- Bun: https://bun.sh/
- pnpm: https://pnpm.io/
- Spectral Rules for API Validation: https://docs.stoplight.io/docs/spectral/
Metadata
Metadata
Assignees
Labels
Type
Projects
Status