You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Guidelines for New Contributors](#guidelines-for-new-contributors)
9
+
-[Few Tips for Effective Contributions](#few-tips-for-effective-contributions)
10
+
-[Summary of the Contribution Flow](#summary-of-the-contribution-flow)
11
+
-[Code of Conduct](#code-of-conduct)
12
+
-[Our Development Process](#our-development-process)
13
+
-[Issues](#issues)
14
+
-[Bug Reports and Feature Requests](#bug-reports-and-feature-requests)
15
+
-[Pull Requests](#pull-requests)
16
+
-[Conventional Commits](#conventional-commits)
17
+
-[Maintainer Roles](#maintainer-roles)
18
+
-[Triager](#triager)
19
+
-[Committer](#committer)
20
+
-[Champion](#champion)
21
+
-[Maintainer Role Matrix](#maintainer-role-matrix)
22
+
-[License](#license)
23
+
-[References](#references)
24
+
25
+
---
26
+
27
+
## Contribution Recognition
5
28
6
29
We use [All Contributors](https://allcontributors.org/docs/en/specification) specification to handle recognitions. For more details read [this](https://github.com/asyncapi/community/blob/master/recognize-contributors.md) document.
7
30
8
-
## Guidelines for new contributors
31
+
## Guidelines for New Contributors
9
32
10
33
1. Read the [generator docs](https://www.asyncapi.com/docs/tools/generator) to get an overview of what the project is about.
11
34
2. While reading through the docs one might identify issues (e.g., broken links, text formatting issues, etc.).
@@ -16,7 +39,7 @@ We use [All Contributors](https://allcontributors.org/docs/en/specification) spe
16
39
7. Instead of creating entirely new tests, consider enhancing existing ones by adding more edge cases to include additional test scenarios.
17
40
8. We encourage contributors to help improve code quality by reviewing reported issues on [SonarCloud](https://sonarcloud.io/project/issues?issueStatuses=OPEN%2CCONFIRMED&id=asyncapi_generator) and suggesting improvements, identifying false reported issues that may need to be removed, and proposing fixes for valid issues.
18
41
19
-
## Few tips for effective contributions
42
+
## Few Tips for Effective Contributions
20
43
21
44
1.**Join the AsyncAPI Slack Workspace** - Connect with maintainers and fellow contributors in the `#generator` channel on [AsyncAPI Slack](https://www.asyncapi.com/slack-invite) to ask questions, share ideas, and get help. Also, consider attending the **weekly Knowledge Sharing meetings held every Wednesday**; details are shared in the channel.
22
45
2. Understanding how the Generator works is key to making valuable contributions. You can start by actively following along and executing the steps given in the [generator template tutorial](https://www.asyncapi.com/docs/tools/generator/generator-template). Hands-on practice will provide you with a comprehensive understanding of how the Generator processes templates and allow you to experiment with customization.
@@ -28,7 +51,7 @@ We use [All Contributors](https://allcontributors.org/docs/en/specification) spe
28
51
8. Collaborate with Other Contributors – If someone else has already raised an issue and you are interested in contributing to it, please communicate with them and collaborate instead of raising a separate PR independently. Working together leads to better contributions and avoids duplication of efforts. Open source is driven by **collaboration, not competition**.
29
52
9.**Respond to Maintainer Reviews Promptly** - If a maintainer requests changes or provides feedback on your PR, please try to address them within **7 days**. If you’re unable to respond by then, the PR may be closed. Contributors are always welcome to open a new PR once they’re ready to continue.
30
53
31
-
## Summary of the contribution flow
54
+
## Summary of the Contribution Flow
32
55
33
56
The following is a summary of the ideal contribution flow. Please, note that Pull Requests can also be rejected by the maintainers when appropriate.
34
57
@@ -59,13 +82,17 @@ The following is a summary of the ideal contribution flow. Please, note that Pul
59
82
└───────────────────────┘
60
83
```
61
84
85
+
62
86
## Code of Conduct
87
+
63
88
AsyncAPI has adopted a Code of Conduct that we expect project participants to adhere to. Please [read the full text](./CODE_OF_CONDUCT.md) so that you can understand what sort of behaviour is expected.
64
89
65
90
## Our Development Process
91
+
66
92
We use Github to host code, to track issues and feature requests, as well as accept pull requests.
67
93
68
94
## Issues
95
+
69
96
[Open an issue](https://github.com/asyncapi/asyncapi/issues/new)**only** if you want to report a bug or a feature. Don't open issues for questions or support, instead join our [Slack workspace](https://www.asyncapi.com/slack-invite) and ask there. Don't forget to follow our [Slack Etiquette](https://github.com/asyncapi/community/blob/master/slack-etiquette.md) while interacting with community members! It's more likely you'll get help, and much faster!
70
97
71
98
## Bug Reports and Feature Requests
@@ -76,7 +103,7 @@ Please use our issues templates that provide you with hints on what information
76
103
77
104
**Please, make sure you open an issue before starting with a Pull Request, unless it's a typo or a really obvious error.** Pull requests are the best way to propose changes to the specification. Get familiar with our document that explains [Git workflow](https://github.com/asyncapi/community/blob/master/git-workflow.md) used in our repositories.
78
105
79
-
## Conventional commits
106
+
## Conventional Commits
80
107
81
108
Our repositories follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) specification. Releasing to GitHub and NPM is done with the support of [semantic-release](https://semantic-release.gitbook.io/semantic-release/).
82
109
@@ -93,10 +120,91 @@ What about MAJOR release? just add `!` to the prefix, like `fix!: ` or `refactor
93
120
94
121
Prefix that follows specification is not enough though. Remember that the title must be clear and descriptive with usage of [imperative mood](https://chris.beams.io/posts/git-commit/#imperative).
95
122
96
-
Happy contributing :heart:
123
+
## Maintainer Roles
124
+
125
+
To help scale maintenance of the monorepo, we define three key roles: **Triager**, **Committer**, and **Champion**.
126
+
127
+
### Triager
128
+
129
+
Triagers help manage issues and pull requests (PRs) across the entire project.
130
+
131
+
**Types:**
132
+
-`Code`: A code triager is responsible for triaging code-related topics.
133
+
-`Docs`: A docs triager is responsible for triaging documentation-related topics.
134
+
135
+
One person can be both a code and docs triager. However, this is not required, as `generator` is a large project with extensive documentation that benefits from having people focused solely on docs.
136
+
137
+
**Responsibilities:**
138
+
- Label issues and PRs
139
+
- Close or reopen issues
140
+
- Provide feedback and reviews
141
+
- Ensure contributor guidelines are followed
142
+
- Ensure PRs are of high quality and fullfil all the requirements
143
+
144
+
**Scope:**
145
+
- Applies to the entire monorepo (not scoped to specific templates)
146
+
147
+
**Notes:**
148
+
- Triagers **cannot** merge pull requests.
149
+
- Being active and consistent as a triager is the first step toward becoming a committer.
150
+
- Even though triagers cannot merge PRs and their approvals do not enable a PR to be merged, it is encouraged that triagers review and approve PRs using GitHub's functionality to indicate that the PR is accepted at the triage level.
151
+
152
+
153
+
### Committer
154
+
155
+
Committers are maintainers who can approve and merge PRs.
156
+
157
+
**Responsibilities:**
158
+
- Review and merge PRs
159
+
- Guide contributors
160
+
- Maintain high code/documentation standards
161
+
162
+
**Scope:**
163
+
- Some committers have access to the full monorepo (`core maintainers`)
164
+
- Others may have scoped access to specific area, like for example templates (`template champions`)
165
+
166
+
**Notes:**
167
+
- Committers play a vital role in onboarding and mentoring other contributors and triagers.
168
+
169
+
### Champion
170
+
171
+
Champions are committers who **own a specific area** of the codebase (e.g., a template, documentation, website). In other words, champions have write access to the repository, but through proper configuration in the `CODEOWNERS` file, their approval counts only for specific areas of the repository.
172
+
173
+
**Types of Champions:**
174
+
-**Template Champion** – Responsible for specific template(s) (e.g., Go, Markdown, Java, etc.).
175
+
-**Docs Champion** – Focuses on improving and maintaining generator's documentation.
176
+
177
+
**Becoming a Champion:**
178
+
- Regular, meaningful contributions in a focused area
179
+
- Active reviews, examples, tests, and documentation
180
+
- No limit to how many champions per area
181
+
182
+
**Notes:**
183
+
- Champions can merge PRs in their area of ownership.
184
+
- All champions are considered committers for their respective areas.
When you submit changes, your submissions are understood to be under the same [Apache 2.0 License](https://github.com/asyncapi/asyncapi/blob/master/LICENSE) that covers the project. Feel free to [contact the maintainers](https://www.asyncapi.com/slack-invite) if that's a concern.
201
+
202
+
By contributing, you agree that your submissions are under the [Apache 2.0 License](https://github.com/asyncapi/asyncapi/blob/master/LICENSE). Contact maintainers if this is a concern.
100
203
101
204
## References
102
-
This document was adapted from the open-source contribution guidelines for [Facebook's Draft](https://github.com/facebook/draft-js/blob/master/CONTRIBUTING.md).
0 commit comments