Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions config/edit-page-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,41 @@
{
"value": "community/styleguide",
"href": "https://github.com/asyncapi/community/tree/master/docs/styleguide"
},
{
"value": "community/000-onboarding",
"href": "https://github.com/asyncapi/community/tree/master/docs/000-onboarding"
},
{
"value": "community/010-contribution-guidelines",
"href": "https://github.com/asyncapi/community/tree/master/docs/010-contribution-guidelines"
},
{
"value": "community/011-styleguide",
"href": "https://github.com/asyncapi/community/tree/master/docs/011-styleguide"
},
{
"value": "community/020-governance-and-policies",
"href": "https://github.com/asyncapi/community/tree/master/docs/020-governance-and-policies"
},
{
"value": "community/030-project-vision-strategy-goals",
"href": "https://github.com/asyncapi/community/tree/master/docs/030-project-vision-strategy-goals"
},
{
"value": "community/040-guides",
"href": "https://github.com/asyncapi/community/tree/master/docs/040-guides"
},
{
"value": "community/050-mentorship-program",
"href": "https://github.com/asyncapi/community/tree/master/docs/050-mentorship-program"
},
{
"value": "community/060-meetings-and-communication",
"href": "https://github.com/asyncapi/community/tree/master/docs/060-meetings-and-communication"
},
{
"value": "community/070-marketing",
"href": "https://github.com/asyncapi/community/tree/master/docs/070-marketing"
}
]
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ Complete in order the following onboarding tasks:
- [ ] Read the [AsyncAPI Slack etiquette](https://github.com/asyncapi/community/blob/master/slack-etiquette.md).
- [ ] Join [the AsyncAPI Slack workspace](https://asyncapi.com/slack-invite).
- [ ] Add the AsyncAPI calendar found in [the AsyncAPI events page](https://www.asyncapi.com/community/events).
- [ ] Read the list of [technical writer contributor responsibilities](technical-writer-contributor-responsibilities).
- [ ] Read and familiarize yourself with the [prerequisite knowledge topics](prerequisite-knowledge).
- [ ] Read the list of [technical writer contributor responsibilities](../010-contribution-guidelines/technical-writer-contributor-responsibilities).
- [ ] Read and familiarize yourself with the [prerequisite knowledge topics](../010-contribution-guidelines/prerequisite-knowledge).
- [ ] Familiarize yourself with the _work-in-progress_ [AsyncAPI Style Guide](https://github.com/asyncapi/community/pulls?q=is%3Apr+is%3Aopen+style+guide).
- [ ] Read all docs under the following content buckets: `Concepts`, `Tutorials`, `Reference`. (Take the time to go through each tutorial.)
- [ ] Set up your local environment following our instructions for the [AsyncAPI git workflow](https://github.com/asyncapi/community/blob/master/git-workflow.md).
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
🚧 This document is under construction.

Please be patient as we work on it. Thank you. 🫶
Comment on lines +1 to +3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Add front-matter and accessibility-friendly placeholder

The page lacks the front-matter block (---, title, description, etc.) used throughout the docs site. Without it, Hugo will render the page with default metadata or may exclude it from menus.
Additionally, consider replacing the emoji-only “🚧” with a short text alternative (e.g., “Under construction”) so screen-reader users get the message.

[ draft: true ] in the front-matter is the common pattern for unfinished pages.

🤖 Prompt for AI Agents
In markdown/docs/community/000-onboarding/documentarian-onboarding-guide.md at
lines 1 to 3, add a front-matter block at the top of the file including keys
like `title`, `description`, and `draft: true` to ensure proper metadata and
site integration. Replace the emoji-only "🚧" placeholder with a short text
alternative such as "Under construction" to improve accessibility for
screen-reader users.

3 changes: 3 additions & 0 deletions markdown/docs/community/000-onboarding/how-to-contribute.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
🚧 This document is under construction.

Please be patient as we work on it. Thank you. 🫶
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
🚧 This document is under construction.

Please be patient as we work on it. Thank you. 🫶
Comment on lines +1 to +3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Missing front-matter; add draft flag

Same concern as the previous onboarding doc: include a standard front-matter header and mark the page as draft while content is in progress. This keeps the build clean and avoids surfacing half-finished pages in navigation.

🤖 Prompt for AI Agents
In markdown/docs/community/000-onboarding/where-to-contribute.md at the
beginning of the file (lines 1 to 3), add a standard front-matter block with a
draft flag to indicate the document is under construction. This front-matter
should include metadata such as title and draft: true to prevent the page from
appearing in navigation and keep the build clean while the content is
incomplete.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
### Become Maintainer in Existing Project

We know you are nervous about making your first contribution. In this section, we guide you on the steps towards becoming a TSC member:

1. Pick an issue
2. Open a pull request
3. Get pull request merged
4. Receive an invitation to become a code owner
5. Become a TSC member

**Step 1: Pick an Issue**

Here's how to select an issue to contribute to:
* Join existing PR reviews
* Look for issues with a [**good first issue** label](https://github.com/issues?page=1&q=is%3Aopen+org%3Aasyncapi+sort%3Aupdated-desc+label%3A%22good+first+issue%22)
* Join the [AsyncAPI Slack community workspace](https://asyncapi.com/slack-invite) and the `#11_how-to-contribute` channel
* Ask maintainers to do a public live stream called **Let's talk about contributing** where they can explain a specific part of the project where you want to contribute.

**Step 2: Open a Pull Request**

To open a pull request successfully, follow our [Git workflows contributors guide](https://github.com/asyncapi/community/blob/master/git-workflow.md).

Use the following steps to open your pull request:
1. Configure a fork
2. Work on it locally
3. Write an appropriate PR title using the [conventional commits specification](https://github.com/asyncapi/.github/blob/master/CONTRIBUTING.md#conventional-commits)
4. Test your PR against GitHub checks to ensure they all pass

**Step 3: Get Pull Request Merged**

After making a pull request, allow the maintainers to review your PR. If no one is alerted to review your PR, feel free to bring the issue to the maintainer's attention by pinging them on Slack or GitHub. We sometimes delay in response for many reasons; no one intends to ignore you 🙏🏼 .

Make sure all your PR checks pass (turn green) to ensure your PR is merged quickly.

**Step 4: Invitation to Become a Maintainer**

After making several contributions to AsyncAPI, maintainers will recognize you. You will then receive an invitation to join the TSC. Look at this [maintainer invitation example from the website repository](https://github.com/asyncapi/website/pull/890). If you feel that you contributed enough to become a maintainer, but maintainers did not recognize it, please open a GitHub issue in a related repository and indicate what you contributed so far and ask what else is needed to become a maintainer.

**Step 5: Become a TSC Member**

Once you become a maintainer in one of the repositories, you can apply to join a group of [TSC members](https://www.asyncapi.com/community/tsc).

Open a PR in the **community** repository to add your name to the [list of TSC members](https://github.com/asyncapi/community/blob/master/TSC_MEMBERS.json). Specify your name, repositories that you maintain, and if you are sponsored by some company. For example [see this PR that introduced one of the new TSC members](https://github.com/asyncapi/community/pull/277).
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ That's it! You've successfully submitted your first Pull Request.
- If needed, respond to their comments and make changes.
- Once approved, a maintainer will merge your PR into the official AsyncAPI repository!

Every contribution matters, no matter how small. Dive in and let’s build something amazing together!
Every contribution matters, no matter how small. Dive in and let’s build something amazing together!
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Contribute AsyncAPI blog posts

The AsyncAPI blog is open to everyone; any contribution is allowed, including reposting. You can share use cases, projects, or tools in the form of a blog post to reach out to the entire AsyncAPI community.

Posting on the AsyncAPI blog has many advantages. We'll ask on the community Slack to help promote it whenever it is released.
We'll also share it on the official AsyncAPI Twitter, LinkedIn, Hacker News, and Reddit accounts.

Steps to submit an AsyncAPI blog post:
1. Open an [AsyncAPI blog post issue](https://github.com/asyncapi/website/issues/new?template=blog.md).
1. Open a PR with your blog post.
1. Address all PR feedback until it gains approval from maintainers.

# Blog post requirements
Please observe the following requirements for all AsyncAPI blog post contributions:
- [Fork the AsyncAPI `website` repo](https://github.com/asyncapi/website)
- [Add a new markdown file](https://github.com/asyncapi/website/tree/master/pages/blog) with proper metadata (front matter) and the blog post content. The blog post content is up to you; it just needs to feature "AsyncAPI."
- [Place all images in our blog assets folder](https://github.com/asyncapi/website/tree/master/public/img/posts).
- Compress the image as much as possible; we recommend using the following tool: https://squoosh.app.
- The output format needs to be `.webp`.
- Include detailed `alt` descriptions for screenreader users.

- [Run our website locally or with Gitpod](https://github.com/asyncapi/website#usage) to test changes.
- Open a PR with your blog post and review your changes with the Netlify preview link.
- Address all PR feedback left by Maintainers reviewing your blog post.
- When merged, your blog post will immediately become live in production!

We encourage you to write a blog post and share it with the community. We can't wait to read it!
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ At AsyncAPI, we value **quality over quantity**. This guide will help you make m
3. When you find one, comment on your interest and share the approach to solving the issue (please don't ask to be assigned, as it could be flagged as spam).
4. If you noticed a bug, typo, or needed improvement, feel free to create an issue.
5. **Make a PR only after a maintainer assigned the issue to you or asks you to work on it** even if you created the issue yourself.
6. Follow the [conventional commits guide](conventional-commits) to write a good PR title.
6. Follow the [conventional commits guide](https://github.com/asyncapi/community/blob/master/docs/010-contribution-guidelines/conventional-commits.md) to write a good PR title.
7. Follow the [git workflow document](/asyncapi/community/blob/master/git-workflow.md) when working on your changes and making a PR.
8. After making a PR, patiently wait for reviews.
9. Make sure all your PR checks pass (turn green) to speed up the merging process.
Expand Down
129 changes: 129 additions & 0 deletions markdown/docs/community/010-contribution-guidelines/git-workflow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Git Workflow

This document is the best practice guide that contains the rules to follow when working with AsyncAPI repositories.

## Overview

AsyncAPI uses a fork model for all community members, including maintainers. In this model, you push changes to your own working copy of the original (`upstream`) repository, and then create one or more pull requests (PRs) to incorporate changes from your fork to `upstream`. This unified workflow allows both members and external contributors to contribute through the same process, keeping the main repository branches clean.

### Rules

Each contributor and maintainer in AsyncAPI must follow this workflow:

- Work on forked repositories.
- Create branches on the fork.
- Avoid working directly on the `master` branch of the fork.
- Create pull requests from the fork to the upstream repository.

## Fork a repository

1. On GitHub, navigate to the AsyncAPI repository you want to fork.
2. In the top-right corner of the page, click **Fork**.
3. Under **Owner**, select the dropdown menu and click an owner for the forked repository.
4. Ensure that the **Copy the `DEFAULT` branch only** is selected.
5. Click **Create fork**.

## Clone the forked repository

1. On GitHub, navigate to the forked repository.
2. Click the **Code** button.
3. Copy the URL.
4. In the terminal, navigate to the directory where you want to clone the repository.
5. Run the following command:

```bash
# Command syntax
git clone URL

# Examples
git clone https://github.com/YOUR-USERNAME/asyncapi-community.git
git clone git@github.com:YOUR-USERNAME/asyncapi-community.git
```

## Configure your fork

Configure a remote repository that points to the `upstream` repository (from which you forked). This allows you to synchronize changes you make on the fork with the original repository. Configuration can be done manually or using the GitHub UI.

> [!TIP]
> If you perform fork configuration for the first time, it is recommended to do it manually to understand all the steps.
>
> Next time you can write a script to synchronize master branch of your fork with the master branch of upstream git repository. Check [this script](https://gist.github.com/derberg/87319e9c486e4a6c9bef5b629ab0d386) as an example to get started.

### Manual configuration

In the terminal, navigate to your fork's location and perform the following steps:

1. Check the current list of remotes:

```bash
# Command
git remote -v

# Output
origin https://github.com/YOUR-USERNAME/FORK-NAME.git (fetch)
origin https://github.com/YOUR-USERNAME/FORK-NAME.git (push)
```

2. Add the `upstream` repository. In other words, point to the main project located in the AsyncAPI GitHub organization:

```bash
# Command
git remote add upstream https://ORIGINAL-OWNER/ORIGINAL-REPOSITORY-NAME.git

# Example
git remote add upstream https://github.com/asyncapi/community.git
```
Comment on lines +71 to +75
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Remote URL example is missing the domain

https://ORIGINAL-OWNER/ORIGINAL-REPOSITORY-NAME.git lacks github.com and will fail if copied. Insert the full host, e.g. https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY-NAME.git.

🤖 Prompt for AI Agents
In markdown/docs/community/010-contribution-guidelines/git-workflow.md around
lines 71 to 75, the example remote URL is missing the domain github.com, which
will cause errors if copied directly. Update the URL to include the full domain
by changing https://ORIGINAL-OWNER/ORIGINAL-REPOSITORY-NAME.git to
https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY-NAME.git to ensure it is a
valid remote URL.


Verify that the `upstream` has been added:

```bash
git remote -v

# Output
origin https://github.com/YOUR-USERNAME/FORK-NAME.git (fetch)
origin https://github.com/YOUR-USERNAME/FORK-NAME.git (push)
upstream git@github.com:asyncapi/asyncapi-community.git (fetch)
upstream git@github.com:asyncapi/asyncapi-community.git (push)
```

3. Fetch changes from the `upstream`:

```bash
# Command
git fetch upstream master
```

4. Set the `master` branch of your fork to track the `master` branch of the `upstream` repository:

```bash
git branch -u upstream/master master
```

Verify with `git branch -vv`:
```bash
* master c2226e0 [upstream/master] Update the README.md document
```

By setting the `upstream` branch, you can simplify your workflow. For example, you can use `git pull` and `git push` without specifying the remote and branch names, as Git will automatically use the `upstream` branch you have set. This is particularly useful when you frequently need to synchronize your local branch with a remote branch.

### Using GitHub UI

You can follow the steps from the [GitHub documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) to sync your fork and keep it up-to-date with the `upstream` repository.

## Start Contributing

1. Create a branch on your fork.
2. Commit changes with clear messages. Use the [Conventional Commits](https://github.com/asyncapi/community/pull/1733) format.
3. Push changes to your fork:

```bash
git push -u origin BRANCH-NAME
```

For subsequent pushes, use the shorthand:

```bash
git push
```

4. Create a pull request from your branch of the fork repository to the `master` branch of the `upstream` repository and await review.
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,4 @@ Keep these best practices in mind as you mentor and lead:

- [AsyncAPI Maintainer Guide](https://www.asyncapi.com/docs/community/onboarding-guide/maintainer-guide)
- [GSoC Mentor Guide](https://google.github.io/gsocguides/mentor/)
- [Open Source Best Practices](https://opensource.guide/best-practices/)
- [Open Source Best Practices](https://opensource.guide/best-practices/)
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Recognize Contributors

We do our best to recognize every contribution to the project. We do it individually in every repository from the AsyncAPI GitHub organization.

There should always be a **Contributors** section in the readme, like [this one](https://github.com/asyncapi/asyncapi/blob/master/README.md#contributors). We use [All Contributors](https://allcontributors.org/docs/en/specification) specification to handle recognitions.

Remember, not only code matters! You can contribute to AsyncAPI in different ways. You can:
- Report a well-written issue that explains a bug or a feature that later is fixed/implemented.
- Share with us feedback on [slack](https://asyncapi.com/slack-invite) or some other channel. You come up with the idea that we used to do something great with the project.
- Improve documentation.
- Help with a review of pull requests. You are a language expert and can review docs or an expert in a specific programming language. As a result, you can review pull requests for a template written for a particular language.
- Write a blog post on the AsyncAPI blog.
- Answer to questions under issues or in Slack

You can help us out in many different ways. Just check out [this](https://allcontributors.org/docs/en/emoji-key) list of possible contributions. All of this is a contribution!

> We apologize in advance if we failed in recognizing your work. Feel free to contact us on [slack](https://asyncapi.com/slack-invite), and we will fix it immediately, or talk to All Contributors bot directly.

## All Contributors cheat sheet

To recognize work, after it is done, in closed issue or pull request, add a proper comment. The comment must look like this:

`@all-contributors please add @{GITHUB_USERNAME} for {EMOJI_KEY}`.

Check out a full list of [emoji keys](https://allcontributors.org/docs/en/emoji-key) although here you can find a shortlist of the most popular one:

Emoji/Type | Represents |
:---: | :---:
🐛 <br /> `bug` | Bug reports |
📝 <br /> `blog` | Blogposts |
💻 <br /> `code` | Code |
📖 <br /> `doc` | Documentation |
🎨 <br /> `design` | Design |
💡 <br /> `example` | Examples |
🤔 <br /> `ideas` | Ideas & Planning |
🚧 <br /> `maintenance` | Maintenance |
💬 <br /> `question` | Answering Questions |
👀 <br /> `review` | Reviewed Pull Requests |
📢 <br /> `talk` | Talks |
📹 <br /> `video` | Videos |

For example:
* `@all-contributors please add @derberg for doc`
* `@all-contributors please add @derberg for talk, video`
Loading
Loading