Skip to content

Commit

Permalink
Merge branch 'master' into essential-building-blocks-wg
Browse files Browse the repository at this point in the history
  • Loading branch information
jonaslagoni authored Mar 22, 2024
2 parents 480866c + ef901d3 commit 8fc0dd5
Show file tree
Hide file tree
Showing 7 changed files with 270 additions and 10 deletions.
90 changes: 90 additions & 0 deletions .github/workflows/bounty-program-commands.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# This workflow is centrally managed at https://github.com/asyncapi/.github/
# Don't make changes to this file in this repository, as they will be overwritten with
# changes made to the same file in the abovementioned repository.

# The purpose of this workflow is to allow Bounty Team members
# (https://github.com/orgs/asyncapi/teams/bounty_team) to issue commands to the
# organization's global AsyncAPI bot related to the Bounty Program, while at the
# same time preventing unauthorized users from misusing them.

name: Bounty Program commands

on:
issue_comment:
types:
- created

jobs:
guard-against-unauthorized-use:
if: >
github.actor != ('aeworxet' || 'thulieblack') &&
(
contains(github.event.comment.body, '/bounty' )
)
runs-on: ubuntu-latest

steps:
- name: ❌ @${{github.actor}} made an unauthorized attempt to use a Bounty Program's command
uses: actions/github-script@v6

with:
github-token: ${{ secrets.GH_TOKEN }}
script: |
const commentText = `❌ @${{github.actor}} is not authorized to use the Bounty Program's commands.
These commands can only be used by members of the [Bounty Team](https://github.com/orgs/asyncapi/teams/bounty_team).`;
console.log(`❌ @${{github.actor}} made an unauthorized attempt to use a Bounty Program's command.`);
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: commentText
})
add-label-bounty:
if: >
github.actor == ('aeworxet' || 'thulieblack') &&
(
contains(github.event.comment.body, '/bounty' )
)
runs-on: ubuntu-latest
env:
BOUNTY_PROGRAM_LABELS_JSON: |
[
{"name": "bounty", "color": "0e8a16", "description": "Participation in the Bounty Program"}
]
steps:
- name: Add label `bounty`
uses: actions/github-script@v6

with:
github-token: ${{ secrets.GH_TOKEN }}
script: |
const BOUNTY_PROGRAM_LABELS = JSON.parse(process.env.BOUNTY_PROGRAM_LABELS_JSON);
let LIST_OF_LABELS_FOR_REPO = await github.rest.issues.listLabelsForRepo({
owner: context.repo.owner,
repo: context.repo.repo,
});
LIST_OF_LABELS_FOR_REPO = LIST_OF_LABELS_FOR_REPO.data.map(key => key.name);
if (!LIST_OF_LABELS_FOR_REPO.includes(BOUNTY_PROGRAM_LABELS[0].name)) {
await github.rest.issues.createLabel({
owner: context.repo.owner,
repo: context.repo.repo,
name: BOUNTY_PROGRAM_LABELS[0].name,
color: BOUNTY_PROGRAM_LABELS[0].color,
description: BOUNTY_PROGRAM_LABELS[0].description
});
}
console.log('Adding label `bounty`...');
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: [BOUNTY_PROGRAM_LABELS[0].name]
})
49 changes: 49 additions & 0 deletions AMBASSADORS_MEMBERS.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,55 @@
}
]
},
{
"name": "Giri Venkatesan",
"github": "gvensan",
"twitter": "giri_venkatesan",
"country": "🇮🇳",
"bio": "Giri Venkatesan, a follower and proponent of AsyncAPI and teams up with companies & SIs to design event-driven architecture and asynchronous APIs. To guide those discussions, I draw upon years of integration and implementation experience, particularly with Solace platforms. I've been a follower of AsyncAPI since 2022, and written blogs and delivered talks at conferences and AsyncAPI confrence tours.",
"linkedin": "girivenkatesan",
"company": "Solace",
"title": "Developer Advocate, Office of the CTO at Solace",
"img": "https://avatars.githubusercontent.com/u/4477169?s=96&v=4",
"contributions": [
{
"type": "article",
"title": "Bridging Design and Runtime Gaps: AsyncAPI in Event-Driven Architecture",
"date": {
"year": 2024,
"month": "February"
},
"link": "https://www.linux.com/news/bridging-design-and-runtime-gaps-asyncapi-in-event-driven-architecture/"
},
{
"type": "talk",
"title": "Bridging the Gap between Design and Runtime in EDA with AsyncAPI and CI/CD",
"date": {
"year": 2023,
"month": "November"
},
"link": "https://www.youtube.com/watch?v=CXt-fy82PCk"
},
{
"type": "talk",
"title": "Bridging the Gap between Design and Runtime in EDA with AsyncAPI",
"date": {
"year": 2023,
"month": "August"
},
"link": "https://www.youtube.com/watch?v=ewpADLeLNE4"
},
{
"type": "article",
"title": "AsyncAPI + Spring Cloud Stream = Event-Driven Microservices Made Easy",
"date": {
"year": 2021,
"month": "November"
},
"link": "https://www.youtube.com/watch?v=3EeMHhbwyOQ&t=4142s"
}
]
},
{
"name": "Hugo Guerrero",
"img": "https://avatars.githubusercontent.com/u/1001939?v=4",
Expand Down
20 changes: 10 additions & 10 deletions mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ Improve the [AsyncAPI website](https://github.com/asyncapi/website)'s robustness
- 👩🏿‍🏫 **Mentor(s):** [@akshatnema](https://github.com/akshatnema), [@anshgoyalevil](https://github.com/anshgoyalevil)
-**Length:** 350 Hours

## 3) [Integration Testing Library for Code Generators](https://github.com/asyncapi/generator/issues/752)
Enhance the [Generator tool](https://github.com/asyncapi/generator) by introducing a feature or creating a new library to simplify integration testing for code generation templates. This solution facilitates the activation of integration tests, ensuring reliability and robustness with our code generators.
## 3) [AsyncAPI Generator Maintainership](https://github.com/asyncapi/generator/issues/1145)
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.

- 🎯 **Outcome:** Enable template maintainers to easily validate and improve the quality of code-generating templates.
- 🎯 **Outcome:** Taking responsibility for the project's future and continuous improvement.
- 🛠️ **Skills:** JavaScript/TypeScript, testing libraries, Docker, virtualization, and test automation.
- 🧩 **Difficulty:** Medium/Hard
- 👩🏿‍🏫 **Mentor(s):** [@derberg](https://github.com/derberg)
-**Length:** 175 Hours
-**Length:** 350 Hours

## 4) [Markdown and MermaidJS Diagrams Preview: VS Code Extension](https://github.com/asyncapi/vs-asyncapi-preview/issues/161)
Upgrade the [AsyncAPI Preview](https://github.com/asyncapi/vs-asyncapi-preview) VS Code extension to include a feature for visualizing message payloads through Markdown and MermaidJS Class Diagrams. It also incorporates an export feature for the Markdown preview to facilitate its use in external documentation. This enhancement will work with both AsyncAPI schemas and Avro (.avsc) files to offer a dynamic and interactive view of message structures.
Expand Down Expand Up @@ -55,14 +55,14 @@ Improve social sharing for [AsyncAPI Studio](https://studio.asyncapi.com/) by im
- 👩🏿‍🏫 **Mentor(s):** [@smoya](https://github.com/smoya)
-**Length:** 175 Hours

## 7) [Real-time Collaboration in AsyncAPI Studio](https://github.com/asyncapi/studio/issues/619)
Upgrade [AsyncAPI Studio](https://studio.asyncapi.com/) to support real-time collaborative editing. This enhancement will introduce features for simultaneous document editing, version control, and integrated communication tools, streamlining teamwork on AsyncAPI specifications.
## 7) [Conference Website Maintainance](https://github.com/asyncapi/conference-website/issues/284)
Ensure our conference website remains a dynamic and user-friendly for the upcoming 2024 AsyncAPI Conference.

- 🎯 **Outcome:** Enable efficient, real-time collaboration among users on AsyncAPI documents, improving the co-editing experience.
- 🛠️ **Skills:** TypeScript/JavaScript, React, and WebSocket.
- 🎯 **Outcome:** Improve the website's efficiency and user-friendliness for an improved user experience.
- 🛠️ **Skills:** JavaScript, Tailwind, and any testing framework.
- 🧩 **Difficulty:** Easy/Medium
- 👩🏿‍🏫 **Mentor(s):** [@fmvilas](https://github.com/fmvilas)
-**Length:** 175 Hours
- 👩🏿‍🏫 **Mentor(s):** [@acethecreator](https://github.com/acethecreator) [@mayaleeeee](https://github.com/Mayaleeeee)
-**Length:** 350 Hours

## Contact AsyncAPI Mentors
- Join [our Slack workspace](https://www.asyncapi.com/slack-invite). Observe our [Slack etiquette](https://github.com/asyncapi/.github/blob/master/slack-etiquette.md) and [AsyncAPI code of conduct](https://github.com/asyncapi/.github/blob/master/CODE_OF_CONDUCT.md).
Expand Down
43 changes: 43 additions & 0 deletions mentorship/summerofcode/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Google Summer of Code - Getting Started

###### Introduction

Google Summer of Code (GSoC) is an annual program sponsored by Google that offers stipends to contributors for working on open-source projects during the summer. Contributors gain real-world software development experience by working with mentors from participating organizations. The goal is to encourage developers to contribute to open-source projects and improve their coding skills. If you want to develop open-source software, this program is for you!

AsyncAPI is looking for contributors who are eager to learn, have good coding abilities, and, most importantly, have a strong passion for APIs and open-source development.


### Requirement

Successful GSoC contributors will receive [compensation](https://developers.google.com/open-source/gsoc/help/student-stipends) for their contributions.

To be eligible as a contributor, you must be at least 18 years old at the time of registration and be new to open-source projects. Group applications are not permitted.

Please verify your eligibility by visiting the [Google Summer of Code (GSoC) website.](https://summerofcode.withgoogle.com/get-started)

TL;DR: GSoC exclusively focuses on coding projects. While initiatives like documentation or design are valuable, they are not permitted within the scope of GSoC. You can check out the AsyncAPI Mentorship Program or GSoD for other noncoding-related projects.

### First Steps

- **The ideal starting point is [Google's Student Guide](https://google.github.io/gsocguides/student)**!
Carefully read through the guide to familiarize yourself with the initiative. The guide provides a comprehensive program overview and offers valuable advice on starting communication, proposal writing, and beginning your work. Additionally, [refer to Google's FAQ](https://developers.google.com/open-source/gsoc/faq) for more information.

- **Get familiar with the AsyncAPI project.**
Please be sure to familiarize yourself with the AsyncAPI initiative and its mission and [get involved in the community](https://asyncapi.com/slack-invite). Explore the [AsyncAPI projects](https://github.com/asyncapi), get an idea of the project of your interest, and explore the source code and organization of the project.

- **Write your project proposal.**
Visit the [ideas page](https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md) to choose a topic that catches your interest. You can also draw inspiration from projects from [previous years](https://github.com/asyncapi/community/tree/master/mentorship/summerofcode).

We recommend reading [Google's guide for writing a proposal](https://google.github.io/gsocguides/student/writing-a-proposal).

For feedback, submit your work early! However, due to the influx of applications, feedback may only be available during the final week after the deadline.

### Getting Started with AsyncAPI
- New to AsyncAPI? Visit the [AsyncAPI website](asyncapi.com) to learn more about the initiative.
- Visit the [Community section](https://www.asyncapi.com/community) of the website to learn about the community behind AsyncAPI.
- Explore all the active projects in the organization by visiting our [GitHub org](https://github.com/asyncapi).
- Consider tackling one of the good first issues, resolving a bug, or enhancing existing features by visiting our [Issues Dashboard](https://www.asyncapi.com/community/dashboard). Include links to your past contributions to AsyncAPI in your proposal. Stay calm! If you're new to navigating a large codebase, we are here to help you 😊.

### Thanks!

We appreciate your interest in choosing AsyncAPI for your Google Summer of Code project!
45 changes: 45 additions & 0 deletions mentorship/summerofcode/application-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# GSoC Application Template

This is the AsyncAPI Project's Google Summer of Code Application Template. We made it to assist contributors in crafting impressive proposals that will impress us. You can submit a draft proposal early to get feedback and iterate early. Be sure to read [Google's guide to writing a proposal](https://google.github.io/gsocguides/student/writing-a-proposal)

Here's what we want to hear from you:

### Contact information

Please provide your most basic contact information, such as:
- Full name
- Email address
- GitHub handle
- Contact Number(include your country code)

### Project Information

This section is for you to provide all your understanding of the project, such as:
- What is the aim of your project, and what problem does it aim to address?
- Providing a detailed description of the proposed project. Here's where to add technical explanations, architectural diagrams, or design mockups.
- What will the outcome of your project be at the end of the program?
- How do you plan to finish the project on schedule? For instance, what are the important milestones, and what is your approximate timeline for reaching them?
- What qualities should a suitable mentor for your project possess?
- What are your plans for the project after completion?

### Your Understanding of AsyncAPI

AsyncAPI is an initiative with many projects and design patterns. In this section, we assess your familiarity with AsyncAPI. We encourage seasoned users and newcomers to explore and understand AsyncAPI during the application phase.

- Please share your background as an AsyncAPI user or contributor, or if you're new to AsyncAPI, outline your intentions for learning AsyncAPI.
- If you've submitted bug fixes or patches to any of our projects before, please provide links to the repositories for one or more examples of your work with AsyncAPI.
- Please explain your knowledge of the AsyncAPI development infrastructure and Git(a plus if it's for your chosen project). If you're unfamiliar with them, what do you plan to learn? We'd like to encourage you to use the application period to familiarize yourself with these tools.
- Include or share links to a sample of code unrelated to AsyncAPI demonstrating your development abilities(Optional).

### Your Involvement with the AsyncAPI community

We welcome applications from folks new to AsyncAPI. If you have previous experience with the AsyncAPI community, please share it. We encourage newcomers to use this application period to get involved with the AsyncAPI community.

- How long have you been engaged with the AsyncAPI community? For instance, have you attended community meetings, contributed to the website, or participated in AsyncAPI events in any capacity?
- Have you developed and released any project or offered support or services (voluntary or commercial) to AsyncAPI users independently from the official AsyncAPI project?
- If you have not engaged with the AsyncAPI community, what are your plans for getting involved?
- What are your intentions for contributing to AsyncAPI besides your project work? Do you anticipate continuing your involvement with AsyncAPI after finishing your project? If yes, how do you plan to do so?

### Bio

Share a bit about yourself. What are you studying and where? What activities do you enjoy? Why are you the right person for this project?
26 changes: 26 additions & 0 deletions mentorship/summerofcode/mentors-guideline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# GSoC Mentor's Guideline

##### Introduction

Hey there! Welcome to the Google Summer of Code (GSoC) mentors' guideline. As a mentor, you are crucial in guiding and supporting contributors throughout their GSoC journey. This guideline outlines key responsibilities, best practices, and tips to ensure a successful mentoring experience.

### Key Responsibilities

To participate in the Program, mentors must be contributors or maintainers to any project run by AsyncAPI and not be a participant in the Program. Here are some key responsibilities we expect from our mentors.

- You'll need to provide guidance, support, and direction to your GSoC contributors throughout the project timeline. It's important to encourage collaboration among GSoC contributors and mentors as well. You'll also need to set reasonable expectations and clearly define project goals, milestones, and expectations at the beginning of the Program.

- Regular communication is also essential. You'll need to communicate effectively with your contributors through preferred channels such as email, Slack, or video calls. Be readily available and responsive to GSoC contributors' questions, concerns, and requests for assistance. Remember to review code submissions, provide constructive feedback, and help contributors improve their coding skills.

- Please also encourage contributors to engage with the AsyncAPI community, attend meetings, seek help from fellow community members, and encourage them to share their achievements and milestones with the rest of the community. Make sure that project documentation is up-to-date and accessible for reference to interested contributors.
### Contributors Selection Process

When it comes to selecting contributors for GSoC, there are a few things you should consider as a mentor:

- You must ensure their proposal aligns well with the project goals, objectives, and requirements. Assess their technical skills and proficiency in relevant programming languages, tools, and technologies required for the project. And don't hesitate to interview candidates if you need to be more convinced by their proposals.

- You'll need to assess communication skills, responsiveness, and the ability to collaborate effectively with mentors and the community. These are also important points to consider. You should also evaluate the interested GSoC contributor's commitment level, availability, and willingness to dedicate time and effort to the project throughout the Program. Look at past contributions, code submissions, or involvement in open-source projects to scale the GSoC contributor's experience and dedication to the community.

### Conclusion

Thank you for your dedication and commitment as a GSoC mentor. Your guidance and support are invaluable in helping contributors succeed and contribute to AsyncAPI. Best of luck for a productive and rewarding GSoC mentoring experience!
7 changes: 7 additions & 0 deletions tweets/recurring-slack-link/2024-03-16.tweet
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
✨ Did you know #AsyncAPI is on Slack? ✨

Join our Slack workspace to chat with anyone from our Open-Source community!

🔗 asyncapi.com/slack-invite

Ask for help and help others too. 💪🏿💪🏽🦾

0 comments on commit 8fc0dd5

Please sign in to comment.