diff --git a/.github/workflows/create-event-ad-hoc.yml b/.github/workflows/create-event-ad-hoc.yml index e5f22c8d8..6f232579b 100644 --- a/.github/workflows/create-event-ad-hoc.yml +++ b/.github/workflows/create-event-ad-hoc.yml @@ -30,7 +30,7 @@ jobs: meeting_desc: ${{ github.event.inputs.desc }} meeting_banner: ${{ github.event.inputs.meeting_banner }} host: lpgornicki@gmail.com - alternative_host: "fmvilas@gmail.com,jonas-lt@live.dk,devlopergene@gmail.com,sibanda.thulie@gmail.com,alejandra.olvera.novack@gmail.com,samir.amzani@gmail.com" + alternative_host: "jonas-lt@live.dk,devlopergene@gmail.com,sibanda.thulie@gmail.com,alejandra.olvera.novack@gmail.com,samir.amzani@gmail.com,oluwabamikemi@gmail.com" issue_template_path: .github/workflows/create-event-helpers/issues_templates/ad-hoc.md create_zoom: true secrets: diff --git a/.github/workflows/create-event-community-meeting.yml b/.github/workflows/create-event-community-meeting.yml index f37e3044b..63f2fb3ea 100644 --- a/.github/workflows/create-event-community-meeting.yml +++ b/.github/workflows/create-event-community-meeting.yml @@ -23,7 +23,7 @@ jobs: meeting_name: Community Meeting meeting_desc: This is a community meeting to regularly talk in open about important topics around AsyncAPI Initiative. host: lpgornicki@gmail.com - alternative_host: 'fmvilas@gmail.com,devlopergene@gmail.com,sibanda.thulie@gmail.com' + alternative_host: 'devlopergene@gmail.com,sibanda.thulie@gmail.com' issue_template_path: .github/workflows/create-event-helpers/issues_templates/community.md create_zoom: true secrets: diff --git a/.github/workflows/create-event-lets-talk-about.yml b/.github/workflows/create-event-lets-talk-about.yml index 2942ee8ba..5d6d41756 100644 --- a/.github/workflows/create-event-lets-talk-about.yml +++ b/.github/workflows/create-event-lets-talk-about.yml @@ -27,7 +27,7 @@ jobs: meeting_banner: ${{ github.event.inputs.meeting_banner }} meeting_desc: The purpose of this meeting is to focus on contributors, focus on people that want to contribute to AsyncAPI Initiative but do not know how to do it. host: lpgornicki@gmail.com - alternative_host: 'fmvilas@gmail.com,devlopergene@gmail.com,sibanda.thulie@gmail.com' + alternative_host: 'devlopergene@gmail.com,sibanda.thulie@gmail.com' issue_template_path: .github/workflows/create-event-helpers/issues_templates/lets-talk-about-contrib.md create_zoom: false secrets: diff --git a/.github/workflows/create-event-spec-3-0.yml b/.github/workflows/create-event-spec-3-0.yml index 92da486f6..ff4d7f4cf 100644 --- a/.github/workflows/create-event-spec-3-0.yml +++ b/.github/workflows/create-event-spec-3-0.yml @@ -24,7 +24,7 @@ jobs: meeting_name: Spec 3.0 Meeting meeting_desc: This is the meeting for community member involved in works related to 3.0 release of AsyncAPI Specification. host: jonas-lt@live.dk - alternative_host: fmvilas@gmail.com + alternative_host: lpgornicki@gmail.com issue_template_path: .github/workflows/create-event-helpers/issues_templates/spec-3-0.md create_zoom: true secrets: diff --git a/.github/workflows/create-event-spec-3-docs.yml b/.github/workflows/create-event-spec-3-docs.yml index 4d2bda5b8..176b1e033 100644 --- a/.github/workflows/create-event-spec-3-docs.yml +++ b/.github/workflows/create-event-spec-3-docs.yml @@ -23,7 +23,7 @@ jobs: meeting_name: Spec 3.0 Docs Meeting meeting_desc: This is a open meeting to plan and write Spec 3.0 Docs. host: alejandra.olvera.novack@gmail.com - alternative_host: 'fmvilas@gmail.com,devlopergene@gmail.com,sibanda.thulie@gmail.com,jonas-lt@live.dk,lpgornicki@gmail.com' + alternative_host: 'devlopergene@gmail.com,sibanda.thulie@gmail.com,jonas-lt@live.dk,lpgornicki@gmail.com' issue_template_path: .github/workflows/create-event-helpers/issues_templates/spec-3-docs.md create_zoom: true secrets: diff --git a/.github/workflows/create-event-thinking-out-loud.yml b/.github/workflows/create-event-thinking-out-loud.yml index 656c33760..7b2dc7115 100644 --- a/.github/workflows/create-event-thinking-out-loud.yml +++ b/.github/workflows/create-event-thinking-out-loud.yml @@ -29,7 +29,7 @@ jobs: meeting_name: Thinking Out Loud meeting_desc: ${{ github.event.inputs.desc }} guest: ${{ github.event.inputs.guest }} - host: fmvilas@gmail.com + host: lpgornicki@gmail.com issue_template_path: .github/workflows/create-event-helpers/issues_templates/thinking-out-loud.md create_zoom: true secrets: diff --git a/.github/workflows/issues-prs-notifications.yml b/.github/workflows/issues-prs-notifications.yml index 78ebe9601..b8b20c6ba 100644 --- a/.github/workflows/issues-prs-notifications.yml +++ b/.github/workflows/issues-prs-notifications.yml @@ -20,8 +20,6 @@ jobs: name: Notify slack on every new issue runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v3 - name: Convert markdown to slack markdown for issue uses: asyncapi/.github/.github/actions/slackify-markdown@master id: issuemarkdown @@ -40,8 +38,6 @@ jobs: name: Notify slack on every new pull request runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v3 - name: Convert markdown to slack markdown for pull request uses: asyncapi/.github/.github/actions/slackify-markdown@master id: prmarkdown @@ -60,8 +56,6 @@ jobs: name: Notify slack on every new pull request runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v3 - name: Convert markdown to slack markdown for pull request uses: asyncapi/.github/.github/actions/slackify-markdown@master id: discussionmarkdown diff --git a/.github/workflows/slack/README.md b/.github/workflows/slack/README.md index 44625aa90..c2c373c0f 100644 --- a/.github/workflows/slack/README.md +++ b/.github/workflows/slack/README.md @@ -65,6 +65,10 @@ Three main resources are created using the slack integration: - Use of bot token of the format `xoxo-` is not supported for creating user groups. - The user group should be unique across the workspace (i.e., no channel, user, or user group should have the same handle). - Please [import](#importing-existing-resources) the user groups to terraform state if they already exist in the workspace, as they **cannot be deleted** in Slack 😢. +- **You have to invite the bot to all managed channels to make it work.** + +> [!WARNING] +> **Creation of multitudes of groups leads to a lot of API calls and can lead to rate limiting. Please be cautious while creating groups, otherwise you will get `Error: couldn't get usergroups: slack rate limit exceeded, retry after 30s`**. Related issue (not fixed even thought it is closed): https://github.com/pablovarela/terraform-provider-slack/issues/64 > [!IMPORTANT] > The terraform state will overwrite any description, name, or topic change. It is better to manage the changes in the YAML files and then apply them. However, the terraform state will not affect bookmarks, pinned items, etc. diff --git a/.github/workflows/slack/groups/groups.yaml b/.github/workflows/slack/groups/groups.yaml index 35a5695ef..eeff3e129 100644 --- a/.github/workflows/slack/groups/groups.yaml +++ b/.github/workflows/slack/groups/groups.yaml @@ -22,7 +22,7 @@ - name: "Studio" handle: "studio" - description: "To notify all regular Studio contributors at once. If you don't contribute regularly but want to get notified too, please open a PR to get added." + description: "To notify all regular Studio contributors at once, please open PR to get added" users: - "U01RWDD69PZ" - "U0572R8J927" diff --git a/.github/workflows/vote-verifcation.yml b/.github/workflows/vote-verifcation.yml index 780532d05..dfd592b5c 100644 --- a/.github/workflows/vote-verifcation.yml +++ b/.github/workflows/vote-verifcation.yml @@ -17,7 +17,7 @@ jobs: authorName: "${{github.event.comment.user.login}}" - name: Checking the person authenticity. - if: contains(github.event.comment.body, '/vote') || contains(github.event.comment.body, '/cancel-vote') + if: (github.event.comment.body == '/vote') || (github.event.comment.body == '/cancel-vote') uses: actions/github-script@v6 with: github-token: ${{ secrets.GH_TOKEN_BOT_EVE }} @@ -61,4 +61,4 @@ jobs: fi fi env: - GH_TOKEN: ${{ secrets.GH_TOKEN_BOT_EVE }} \ No newline at end of file + GH_TOKEN: ${{ secrets.GH_TOKEN_BOT_EVE }} diff --git a/AMBASSADORS_MEMBERS.json b/AMBASSADORS_MEMBERS.json index 998e0602e..07e99e7ad 100644 --- a/AMBASSADORS_MEMBERS.json +++ b/AMBASSADORS_MEMBERS.json @@ -1,12 +1,12 @@ [ { - "name": "Alejandra Quetzalli", + "name": "Quetzalli Writes", "img": "https://avatars.githubusercontent.com/u/19964402?v=4", - "bio": "Alejandra Quetzalli is the upcoming author (2023) of the book titled 'Designing Developer Documentation as a Product', which will be published by the Apress Publishing Company. Alejandra has been in tech for 9 years, working with SEO, Paid Search, Full-Stack development, UX, Developer Relations, and Technical Writing (Engineering Documentation). She's currently a core OSS contributor for Docs, DevRel, and Community Building at AsyncAPI Initiative. She's also a member of the AsyncAPI Technical Steering Committee (TSC).", + "bio": "Quetzalli Writes is an author of the book titled 'Docs-as-Ecosystem', which was published by the Apress Publishing Company. Quetzalli has been in tech for 9 years, working with SEO, Paid Search, Full-Stack development, UX, Developer Relations, and Technical Writing (Engineering Documentation). She's currently a core OSS contributor for Docs, DevRel, and Community Building at AsyncAPI Initiative. She's also a member of the AsyncAPI Technical Steering Committee (TSC).", "title": "DevRel & DevDocs @AsyncAPI", - "github": "alequetzalli", - "twitter": "QuetzalliAle", - "linkedin": "alejandra-quetzalli", + "github": "quetzalliwrites", + "twitter": "QuetzalliWrites", + "linkedin": "quetzalli-writes", "company": "Postman", "country": "🇲🇽", "contributions": [ @@ -209,7 +209,7 @@ "twitter": "ivangsa", "bio": "Java Architect with a deep understanding of Java, Spring-Boot, Spring-Cloud technologies, specializing in Domain-Driven Design (DDD) and Event-Driven Architectures creating Software Easy to Understand. Building ZenWave 360º. ZenWave 360º is a set of tools built on the foundations of Domain Driven Design and API-First principles for Event-Driven Architectures, to help you create software easy to understand. https://www.zenwave360.io/", "linkedin": "ivangarciasainzaja", - "company": "SNGULAR", + "company": "IZERTIS", "title": "Java Architect. Speaker. Building ZenWave 360°.", "img": "https://avatars.githubusercontent.com/u/1246876?v=4", "contributions": [ @@ -548,5 +548,67 @@ "link": "https://www.youtube.com/watch?v=6Igp4DhK_hE" } ] + }, + { + "name": "Raphael De Lio", + "github": "raphaeldelio", + "twitter": "raphaeldelio", + "linkedin": "raphaeldelio", + "country": "🇧🇷", + "bio": "Raphael De Lio is a passionate software engineer who loves to think about solutions and ways to improve anything he touches. He was born in Brazil, lived in Portugal for five years, and now works as a consultant in the Netherlands. In his quest for knowledge, Raphael has always valued learning and sharing insights with others. This pursuit not only led him to Xebia, a place where he found a community of engineers who share his enthusiasm for technology and continuous improvement but also to becoming the co-organizer of the Amsterdam Kotlin MeetUp, where he has been able to enable other speakers to share their knowledge as well.", + "company": "Xebia", + "title": "Software Consultant at Xebia", + "img": "https://avatars.githubusercontent.com/u/25641721?v=4", + "contributions": [ + { + "type": "article", + "title": "AsyncAPI — A standard specification for documenting Event-Driven Applications", + "date": { + "year": 2024, + "month": "February" + }, + "link": "https://medium.com/@raphaeldelio/asyncapi-a-standard-for-documenting-event-driven-applications-8ff657119036" + }, + { + "type": "presentation", + "title": "AsyncAPI & Springwolf - Automated documentation (and more)", + "date": { + "year": 2024, + "month": "May" + }, + "link": "https://www.youtube.com/watch?v=DylvTW_ia4Y" + } + ] + }, + { + "name": "Hari Krishnan", + "github": "harikrishnan83", + "twitter": "harikrishnan83", + "linkedin": "harikrishnan83", + "country": "🇮🇳", + "bio": "Co-creator of Specmatic and Perfiz. I also advise organizations, both large and small, on their transformation journey. Apart from bringing ideas to life as working software products, I coach developers, project managers, product owners, and engineering leaders. I have spoken at several conferences, including AACoT 2023, API Specification Conference (#ASC2022), API World, SeleniumConf, Agile2021, Agile India, TestingUY 2021, SREConf, PyCon Singapore, RubyConf India. My areas of interest include distributed systems, concurrency, high-performance application architecture, coaching, and training.", + "company": "Specmatic and Polarizer Technologies", + "title": "Co-founder and CTO at Specmatic, Founder, and CEO at Polarizer Technologies", + "img": "https://raw.githubusercontent.com/harikrishnan83/harikrishnan83/master/HariKrishnan-profile.jpg", + "contributions": [ + { + "type": "talk", + "title": "Kafka and JMS Mocking with AsyncAPI", + "date": { + "year": 2023, + "month": "November" + }, + "link": "https://www.youtube.com/watch?v=9yRf75p_kTU" + }, + { + "type": "talk", + "title": "Unshackling Your System Under Test: Shift-Left Testing Through Dependency Isolation (Kafka Mocks with AsyncAPI specification)", + "date": { + "year": 2024, + "month": "June" + }, + "link": "https://confengine.com/conferences/selenium-conf-2024/proposal/20021/unshackling-your-system-under-test-shift-left-testing-through-dependency-isolation" + } + ] } ] diff --git a/CODEOWNERS b/CODEOWNERS index 98091f50b..aeff70244 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -9,3 +9,6 @@ # All ambassadors related files AMBASSADOR* @thulieblack + +# Code Of Conduct +/code_of_conduct/ @asyncapi/code_of_conduct diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 638f73340..76d5ab213 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,46 +1,87 @@ -# Contributor Covenant Code of Conduct +# AsyncAPI Code of Conduct -## Our Pledge +## Introduction +Welcome to our community! We are a diverse group of individuals united by our passion for open source and commitment to inclusivity. -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. +Our community promotes and supports inclusivity, welcoming individuals from all backgrounds and experiences. We believe that diversity is our strength, and we actively seek participation from those who enhance it. -## Our Standards +Our Code of Conduct governs how we behave publicly or privately when representing the project. It ensures that diverse groups collaborate for mutual advantage and enjoyment and challenges prejudice that could jeopardize anyone's participation in the project. + +We expect everyone in our community to treat each other with kindness, empathy, and respect. We believe fostering a welcoming and respectful environment can create a positive and successful community. + +## Our Pledge -Examples of behavior that contributes to creating a positive environment include: +As members, contributors, and admins of our community, we pledge to ensure that every individual is treated with respect and dignity. We pledge to create a safe, inclusive, and welcoming environment that is free from any form of harassment or discrimination regardless of differences in age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. -- Using welcoming and inclusive language -- Being respectful of differing viewpoints and experiences -- Gracefully accepting constructive criticism -- Focusing on what is best for the community -- Showing empathy towards other community members +We pledge to encourage a diverse, healthy community that celebrates individuality and promotes equality. We will act and interact in ways that promote openness, empathy, understanding, and acceptance of everyone's unique perspectives and experiences. -Examples of unacceptable behavior by participants include: +## Our Standards -- The use of sexualized language or imagery and unwelcome sexual attention or advances -- Trolling, insulting/derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or electronic address, without explicit permission -- Other conduct which could reasonably be considered inappropriate in a professional setting +### Examples of behavior that contributes to a positive environment for our community include: -## Our Responsibilities +- Using welcoming and inclusive language. +- Being respectful of differing viewpoints and experiences. +- Gracefully accepting constructive criticism. +- Focusing on what is best for the community. +- Showing empathy towards other community members. -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. +### Examples of unacceptable behavior include: -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. +- The use of sexualized language or imagery and unwelcome sexual attention or advances. +- Trolling, insulting/derogatory comments, and personal or political attacks. +- Public or private harassment. +- Publishing others' private information, such as a physical or electronic address, without explicit permission. +- Publishing content or comments that promote illegal activities. +- Violence, threats of violence, or violent language. +- Other conduct that could reasonably be considered inappropriate in a professional setting. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. +## Enforce Responsibilities + +The Code of Conduct Committee (CoC Committee) responds to, investigates, and resolves AsyncAPI Incidents. The Committee is responsible for clarifying the standards of acceptable behavior and taking appropriate and fair corrective action in response to unacceptable behavior. + +The Committee has the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that do not align with this Code of Conduct. The Committee may also temporarily or permanently ban any contributor for inappropriate, threatening, offensive, or harmful behaviors to the community. + +For more details, please see the [CoC Committee and Incident Resolution Procedure](https://github.com/asyncapi/community/pull/1013/files). + ## Enforcement -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at fmvilas@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at condcut@asyncapi.io. All complaints will be reviewed and investigated promptly and fairly. -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. +All community leaders are obligated to respect the privacy and security of the reporter of any incident. + +## Enforcement Guidelines +Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction +Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. + +Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. + +### 2. Warning +Community Impact: A violation through a single incident or series of actions. + +Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. + +### 3. Temporary Ban +Community Impact: A serious violation of community standards, including sustained inappropriate behavior. + +Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban +Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. + +Consequence: A permanent ban from any sort of public interaction within the community. ## Attribution -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [http://contributor-covenant.org/version/2/1][version]. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. [homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ +[version]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/inclusion diff --git a/Emeritus.yaml b/Emeritus.yaml index c26c5dccd..c4d2cb040 100644 --- a/Emeritus.yaml +++ b/Emeritus.yaml @@ -6,3 +6,12 @@ emeritus: - arjungarg07 - boyney123 - Barbanio + - mcturco + - damaru-inc + - geraldloeffler + - ron-debajyoti + - char0n + - kieranm1999 + - jefflufc + - lewis-relph + - emilianozublena \ No newline at end of file diff --git a/MAINTAINERS.yaml b/MAINTAINERS.yaml index b7cb8a6f3..c40ed7e68 100644 --- a/MAINTAINERS.yaml +++ b/MAINTAINERS.yaml @@ -1,5 +1,5 @@ - name: Aishat Muibudeen - github: mayaleeeee + github: Mayaleeeee linkedin: aishatmuibudeen slack: U03CNHGEUR1 twitter: maya_ux_ui @@ -87,14 +87,13 @@ linkedin: emilianozublena slack: U01LYC8PW0M availableForHire: false - isTscMember: true + isTscMember: false repos: - asyncapi-php-template - name: Fran Méndez github: fmvilas slack: U34F2JRRS availableForHire: false - company: Postman linkedin: fmvilas isTscMember: true repos: @@ -103,22 +102,17 @@ - openapi-schema-parser - asyncapi-react - glee - - generator - - nodejs-template - nodejs-ws-template - parser-js - - playground - spec - spec-json-schemas - - website - bindings - name: Gerald Loeffler github: geraldloeffler linkedin: geraldloeffler slack: U01P5QDLP0X availableForHire: false - company: Salesforce - isTscMember: true + isTscMember: false repos: - bindings - name: Jonas Lagoni @@ -156,6 +150,7 @@ linkedin: laurentbroudoux slack: U018NLDV5E1 availableForHire: false + company: Postman isTscMember: true repos: - bindings @@ -165,7 +160,7 @@ slack: U01BM49KL3Z twitter: ldussart availableForHire: false - company: Ineat + company: zatsit isTscMember: true repos: - avro-schema-parser @@ -178,37 +173,27 @@ company: Postman isTscMember: true repos: - - avro-schema-parser - - openapi-schema-parser - - chatbot - diff - - cli - generator-filters - generator-hooks - github-action-for-generator - generator - nodejs-template - nodejs-ws-template - - parser-js - - playground - spec - spec-json-schemas - template-for-generator-templates - website - - bundler - name: Maciej Urbańczyk github: magicmatatjahu availableForHire: false linkedin: maciej-urbańczyk-909547164 slack: U01EB02BP7A - company: Postman + company: Travelping GmbH isTscMember: true repos: - asyncapi-react - - chatbot - - cli - converter-go - - event-gateway - generator-react-sdk - generator - html-template @@ -216,7 +201,6 @@ - modelina - parser-js - parser-go - - playground - server-api - template-for-go-projects - website @@ -234,8 +218,7 @@ github: damaru-inc availableForHire: false slack: UH3B166TD - company: Solace - isTscMember: true + isTscMember: false repos: - java-spring-cloud-stream-template - python-paho-template @@ -247,12 +230,9 @@ linkedin: missy-turco-a476a6126 availableForHire: false company: Postman - isTscMember: true + isTscMember: false repos: - brand - - design-system - - studio - - website - name: Nektarios Fifes github: nektariosfifes linkedin: nektarios-fifes-372740220 @@ -339,11 +319,11 @@ - cli - bundler - glee -- name: Alejandra Quetzalli - github: alequetzalli - twitter: QuetzalliAle +- name: Quetzalli Writes + github: quetzalliwrites + twitter: QuetzalliWrites slack: U02AKC14WAJ - linkedin: alejandra-quetzalli + linkedin: quetzalli-writes availableForHire: false company: Postman isTscMember: true @@ -366,7 +346,6 @@ slack: U02FP8WBFQE linkedin: danielr availableForHire: false - company: IBM isTscMember: true repos: - java-template @@ -376,7 +355,7 @@ availableForHire: false slack: U02FT2TKM37 company: IBM - isTscMember: true + isTscMember: false repos: - java-template - name: Tom Jefferson @@ -385,7 +364,7 @@ slack: U02FPPCEH6H availableForHire: false company: IBM - isTscMember: true + isTscMember: false repos: - java-template - name: Lewis Relph @@ -393,7 +372,7 @@ availableForHire: false slack: U02G8MDDEF3 company: IBM - isTscMember: true + isTscMember: false repos: - java-template - name: Semen Tenishchev @@ -420,7 +399,7 @@ linkedin: rondebajyoti availableForHire: false company: Narvar - isTscMember: true + isTscMember: false repos: - modelina - name: Ivan Garcia Sainz-Aja @@ -458,7 +437,7 @@ twitter: vladimirgorej availableForHire: false company: SmartBear - isTscMember: true + isTscMember: false repos: - bindings - spec diff --git a/TSC_MEMBERS.json b/TSC_MEMBERS.json index 77ce9524f..07e2a0cdd 100644 --- a/TSC_MEMBERS.json +++ b/TSC_MEMBERS.json @@ -175,7 +175,7 @@ "slack": "U01BM49KL3Z", "twitter": "ldussart", "availableForHire": false, - "company": "Ineat", + "company": "zatsit", "repos": [ "avro-schema-parser" ] diff --git a/WORKING_GROUPS.yaml b/WORKING_GROUPS.yaml index af7919855..6f8e4c3c6 100644 --- a/WORKING_GROUPS.yaml +++ b/WORKING_GROUPS.yaml @@ -26,6 +26,39 @@ working_groups: # - The AsyncAPI community grows sustainably. # roadmap_url: https://example.com/xyz # Recommended. Link to a GitHub project, issue, or any other tool where the Working Group outlines their roadmap. # github_team: # Recommended. The GitHub team handle to tag all the working group members at once. Example: maintainers_growth_wg, without @asyncapi/ prefix. + + - name: Marketing + description: 'The group is dedicated to leveraging marketing strategies to achieve two key objectives: promoting AsyncAPI adoption and highlighting community achievements. By strategically showcasing AsyncAPI capabilities and celebrating community successes, the group drives both user growth and community engagement. It shares a vision of close collaboration between AsyncAPI community and sponsors.' + chairpersons: + - name: Oluwabamikemi Kayode + github: iambami + slack: U070DE02VQX + members: + - name: Lukasz Gornicki + github: derberg + slack: UD698Q5LM + - name: Aishat Muibudeen + github: Mayaleeeee + slack: U03CNHGEUR1 + - name: Thulisile Sibanda + github: thulieblack + slack: U03CNJPMT7C + - name: Christophe Dujarric + github: ChristopheDujarric + slack: U048TMNQ1M0 + - name: Georgie from Gravitee.io + github: Georgie-Gravitee + slack: U043BE3QUS2 + slack: + channel: + handle: wg-marketing + topic: Tasks board https://github.com/orgs/asyncapi/projects/46 + group: + handle: marketing-wg + name: Marketing Working Group + roadmap_url: https://github.com/orgs/asyncapi/projects/46 + github_team: marketing_wg + - name: Essential Building Blocks description: The goal of the Essential Building Blocks Working Group is to provide fundamental building blocks that enable a similar developer experience across languages. chairpersons: @@ -60,6 +93,7 @@ working_groups: github_team: essential_building_blocks_wg objectives: - https://github.com/orgs/asyncapi/projects/44 + - name: Developer Experience description: The goal of this group is to empower AsyncAPI user journey trough intuitive onboarding, tools, and a frictionless experience. chairpersons: @@ -91,6 +125,9 @@ working_groups: - name: Fran Méndez github: fmvilas slack: U34F2JRRS + - name: Aayush Saini + github: AayushSaini101 + slack: U04RN9LRV97 slack: channel: handle: wg-developer-experience @@ -102,6 +139,7 @@ working_groups: objectives: - https://github.com/users/Amzani/projects/12/views/1 github_team: developer_experience_wg + - name: Maintainers Growth description: The Maintainers Growth Working Group aims to help grow the number of maintainers at AsyncAPI. chairpersons: @@ -132,6 +170,7 @@ working_groups: handle: maintainers-growth-wg description: Maintainers Growth Working Group github_team: maintainers_growth_wg + - name: Conference Coordination description: The goal of the group is to plan, manage, and create a seamless way to enhance the conference experience. chairpersons: diff --git a/code_of_conduct/coc-incident-resolution-procedures.md b/code_of_conduct/coc-incident-resolution-procedures.md new file mode 100644 index 000000000..8a5b351a7 --- /dev/null +++ b/code_of_conduct/coc-incident-resolution-procedures.md @@ -0,0 +1,248 @@ +# AsyncAPI Code of Conduct - Incident Resolution Procedures + +## Purpose and scope +These Procedures address the following topics related to the resolution of potential violations of the [AsyncAPI Code of Conduct](https://github.com/asyncapi/community/blob/master/CODE_OF_CONDUCT.md): + +- [How to submit a report](#how-to-submit-a-report) + - [Submit in writing](#submit-in-writing) + - [Submit in spoken conversation](#submit-in-spoken-conversation) + - [How to report anonymously](#how-to-report-anonymously) +- [What information to include in your report](#what-information-to-include-in-your-report) +- [What happens after a report is submitted](#what-happens-after-a-report-is-submitted) + - [Acknowledgement of Receipt](#acknowledgement-of-receipt) + - [Confirmation and Jurisdiction](#confirmation-and-jurisdiction) + - [Who will have access to reports](#who-will-have-access-to-reports) + - [Investigation](#investigation) + - [Notification to the Accused Person](#notification-to-the-accused-person) +- [Resolution](#resolution) + - [Interim Protective Measures](#interim-protective-measures) + - [Mediation and Resolution by Agreement](#mediation-and-resolution-by-agreement) + - [Potential Remedies](#potential-remedies) + - [Restorative Justice](#restorative-justice) + - [Transformative Justice](#transformative-justice) + - [Factors that the CoC Committee will consider](#factors-that-the-coc-committee-will-consider) + - [Examples of Remedies](#examples-of-remedies) + - [Accountability](#accountability) + - [Communicating the Results](#communicating-the-results) +- [Information Sharing](#information-sharing) +- [Confidentiality Policy](#confidentiality-policy) +- [No Retaliation](#no-retaliation) +- [Conflicts of Interest](#conflicts-of-interest) + - [Obligation to disclose potential conflicts of interest](#obligation-to-disclose-potential-conflicts-of-interest) + - [Procedures to disclose and confirm conflicts](#procedures-to-disclose-and-confirm-conflicts) + - [Procedures when a hard conflict of interest exists](#procedures-when-a-hard-conflict-of-interest-exists) + - [Procedures when a soft conflict of interest exists](#procedures-when-a-soft-conflict-of-interest-exists) +- [Amendments](#amendments) +- [Attribution](#attribution) + +## How to submit a report + +You may report a potential violation of the [AsyncAPI Code of Conduct](https://github.com/asyncapi/community/blob/master/CODE_OF_CONDUCT.md) in writing or in a spoken conversation as indicated below. + +### Submit in writing + +To report a violation in writing, please email [conduct@asyncapi.io](mailto:conduct@asyncapi.io), which goes to all primary (not alternate) members of the AsyncAPI Code of Conduct Committee (CoC Committee). If you do not want your report to be received by all members of the CoC Committee, either because you want to submit a report anonymously or because one of the CoC Committee members has a conflict of interest, you may send your report directly to any individual member of the CoC Committee. + +### Submit in spoken conversation + +If you prefer to report the violation in a spoken conversation, you may request a virtual meeting with a CoC Committee member. If the incident occurs at an event, you may report the incident in person either to a member of the AsyncAPI CoC Committee or a [Technical Steering Committee](https://www.asyncapi.com/community/tsc) (TSC) member. + + +### How to report anonymously + +If you desire to submit a report anonymously, please send a message directly to any individual member of our CoC Committee through the AsyncAPI Slack and let them know you would like to submit a Code of Conduct report anonymously. If you submit your report anonymously, that member of the CoC Committee will share the contents of your report with the rest of the CoC Committee. Still, they will not disclose your identity as the reporter to the other members of the CoC Committee (unless such disclosure is necessary to comply with applicable laws or court orders or to protect you or someone else from imminent danger). + +## What information to include in your report + +When reporting a potential Code of Conduct violation, please include the following information in your report: + +- Names of the people involved (or if names are unknown, use descriptions and any identifying information such as appearance, role, username, or handle), including the person you believe violated the Code of Conduct and any witnesses. + +- Description of the incident, including the events that occurred, the date and time, and the location or community space where the incident occurred. + +- The portion(s) of the CoC you believe to be violated. + +- If you have relevant documentary evidence, such as screenshots or photographs, please provide those with your report. + +## What happens after a report is submitted + +### Acknowledgement of Receipt + +The Code of Conduct Committee will acknowledge receipt of your report in a timely manner, usually within three business days. + +### Confirmation and Jurisdiction + +Once the report has been submitted, the AsyncAPI CoC Committee will confirm receipt of the report and, if it does not have jurisdiction over the incident, notify the complainants unless they have done so anonymously and have not provided their contact information. + +The Jurisdiction of the CoC Committee is as follows: +- [AsyncAPI Initiative GitHub](https://github.com/asyncapi) +- [AsyncAPI Slack](asyncapi.slack.com), including all external channels connected through [Slack Connect](https://slack.com/connect). +- AsyncAPI social networks: [Twitter](https://twitter.com/AsyncAPISpec), [LinkedIn](https://www.linkedin.com/company/asyncapi), [YouTube](https://www.youtube.com/asyncapi), [Twitch](https://www.twitch.tv/asyncapi), and [Mastodon](https://fosstodon.org/@AsyncAPISpec) +- AsyncAPI events: conferences, talks, workshops, etc. + +### Who will have access to reports + +Reports will only be shared with non-conflicted members of the CoC Committee, with very limited exceptions. See the “Confidentiality”, “Information Sharing”, “Communicating the Results”, and “Conflicts of Interest” sections below for more information. + +### Investigation + +The CoC Committee will investigate the report by reviewing available evidence and, if appropriate, interviewing witnesses, the accused person, and persons who were targeted or may have been harmed. In some cases, the CoC Committee may consult an external professional investigator or mediator to assist. + +If a potential incident comes to the CoC Committee’s attention that may present a serious continuing risk to community safety, the CoC Committee may investigate it even if no official report has been received. + +If the CoC Committee determines that the Code of Conduct was violated, the CoC Committee will decide on what remediation steps should be taken. See “Resolution” below for more information. + +### Notification to the Accused Person + +During or after the investigation, the CoC Committee shall notify the accused person that an incident report has been received concerning their alleged behavior unless it determines that the report is meritless or has been filed in bad faith. While the investigation is ongoing, the CoC Committee shall determine at its discretion whether, how, and when to notify the accused person, and how much information to share about the nature of the allegations, if any, taking into consideration risks of retaliation, evidence tampering or destruction, or witness tampering that might result from the notification. If the accused person was notified of the complaint before or during the investigation, after the incident is resolved, the CoC Committee shall notify the accused person of the outcome. + +## Resolution + +### Interim Protective Measures + +Although the CoC Committee will not take any permanent actions until the CoC Committee has gathered and reviewed all available evidence, the CoC Committee reserves the right to take immediate temporary action (e.g., temporarily suspending someone’s participation in a community space while the investigation is pending) at any time after learning of the incident if the CoC Committee determines this is necessary to protect the community or community members from the risk of harm. + +### Mediation and Resolution by Agreement + +If the accused person and the parties potentially harmed in an incident communicate to the CoC Committee that they would like to resolve the incident through restorative conversation (see “Restorative Justice" below), mediation, or mutual agreement, the CoC Committee will wait until the parties have attempted to do so before making any final decisions regarding resolution of the incident. If all involved parties consent, the CoC Committee, other community members, or an external professional mediator may help facilitate the discussion. If the involved parties agree on an outcome for resolving the incident, the CoC Committee will review the outcome to (a) determine if it is adequate or if any further actions need to be taken to protect the health and safety of the community and (b) support the involved parties with implementation and accountability. + +### Potential Remedies + +The goal of the Code of Conduct incident resolution is to support and safeguard the health, safety, and well-being of the community and individuals who participate and reinforce community standards for acceptable behavior; the purpose is not to punish. Whenever appropriate, the CoC Committee shall seek to resolve incidents using restorative justice and transformative justice approaches, as summarized below. + +#### Restorative Justice + +Restorative justice is a framework that seeks to repair the harm that was caused by an incident and focuses primarily on the parties directly involved in an incident. The goals of restorative justice are to: + +- Support the individuals harmed in their healing and recovery. + +- Provide the accused person with an opportunity to understand the impact of their actions, learn from their mistakes, and improve their behavior (e.g., through coaching, mentoring, or education). + +- Provide the accused person with opportunities to make amends and take actions that help repair or reduce the harm that was caused (e.g., through an apology or community service). + +Restorative justice typically involves a mediated conversation between the accused person and the person harmed to create shared understanding, healing, relationship repair, and closure. However, the CoC Committee will never require individuals involved in an incident to interact or communicate with each other; mediated conversations will only take place if all parties consent. + +#### Transformative Justice + +Transformative justice is a framework that seeks to address systemic issues that may have contributed to or encouraged the harmful behavior (e.g., systems or policies that reward bad behavior, or failure to educate newcomers about standards of conduct). If the CoC Committee determines there are any such systemic issues, the CoC Committee will recommend to the Technical Steering Committee that such issues be addressed, and, if appropriate, the CoC Committee may offer advice or other support. + +### Factors that the CoC Committee will consider + +If the CoC Committee determines that a violation has occurred, the CoC Committee will consider the following factors when determining what remediation steps to take: + +- Is the harmful behavior an isolated incident or pattern of repeated behavior? + +- How severe is the harmful behavior? + +- How does the harmful behavior impact the community and its participants? + +- What remedies would best repair or reduce the harm that was caused by the incident? + +- What remedies would best protect the community and involved individuals from further harm? + +- Is the accused person willing to acknowledge why their behavior was harmful and improve their behavior? If so, what remedies would best support them in improving their behavior? (e.g., education or mentoring) + +- Are there systemic issues that encourage and contribute to harmful behavior? If so, how can the community address these systemic issues to prevent similar incidents from occurring in the future? + +### Examples of Remedies + +The following are examples of remedies the CoC Committee may consider. The following list is non-exhaustive: + +- Issuing a warning + +- Removing harmful content from community or project spaces + +- A public or private apology + +- Temporary suspension or permanent ban from community or project + +- Temporary or permanent removal from leadership role + +- Education, mentoring, or coaching to help the accused improve their behavior + +- Addressing systemic issues that contributed to or encouraged the harmful behavior (e.g., through policy changes) to prevent similar incidents from occurring in the future + +### Accountability + +If any party does not fulfill their obligations related to the incident resolution (e.g., if the remediation requires the accused person to complete a non-violent communication course and fail to do so), the CoC Committee may take further action to resolve the incident. + +### Communicating the Results + +An incident is considered “resolved” when the CoC Committee has completed its investigation and either (a) determined what remediation actions are needed to resolve an incident (including determining that the involved parties’ agreed-upon resolution is adequate) (b) or determined that the CoC was not violated and no remediation is needed. When the incident is resolved, a member of the CoC Committee will inform the person who submitted the report. The CoC Committee will determine how much information to share with the reporter regarding the committee’s findings and what remediation steps were taken, if any, considering the privacy, confidentiality, and potential impact on the individuals involved in the incident. Notification to the accused person shall follow [Notification to the Accused Person](#notification-to-the-accused-person). The CoC Committee will also determine what information is necessary to share publicly or with community and project leaders. Any communication regarding the results of the investigation will be confidential. + +## Information Sharing + +The CoC Committee and Technical Steering Committee (TSC) may share information on an as-needed basis about reported incidents and their resolution for the limited purposes of: + +- Ensuring that the incident is resolved by the appropriate body with jurisdiction as described in the Jurisdiction and Escalation Policy, + +- Investigating and resolving the reported incident, + +- Maintaining a central repository of records and confirming whether an accused person has prior violations that were resolved by a different incident response team, as described in the Jurisdiction and Escalation Policy, + +- Implementing protective measures and protecting community members from harm, + +- Issuing public transparency reports regarding AsyncAPI Code of Conduct incidents (similar to [transparency reports issued by the Linux Foundation](https://www.linuxfoundation.org/blog/blog/linux-foundation-events-code-of-conduct-transparency-report-2021-event-summary/)). Such transparency reports will not disclose the identities of reporters, persons harmed, or witnesses. Depending on the resolution of an incident, the accused person might or might not be named in a transparency report or other communication to the community. + +## Confidentiality Policy + +When the AsyncAPI CoC Committee handles the incident response, only members of the CoC Committee without hard conflicts of interest (see our Conflicts of Interest policy below) will have access to confidential information about the incident, including the identities of the reporters. The AsyncAPI CoC Committee will not disclose the identities or confidential information provided by reporters or persons who were targeted or potentially harmed without their permission, except to a limited number of people on an as-needed basis for investigating and resolving the incident and protecting community members from harm. For example, the AsyncAPI CoC Committee might need to disclose certain information about the incident to TSC to arrange for onsite support for a target of harassment, or to an external professional mediator or investigator who is engaged to resolve the incident. Confidential information about incidents will only be shared with individuals who are obligated to similarly maintain the confidentiality of such information. + +In some cases, it may be necessary to question the accused person about the incident to perform a fair and thorough investigation of a reported incident. Although the CoC Committee will not disclose to the accused person who reported the incident or what witnesses have provided information, if only one person or a very small number of people were involved in or witnessed the incident, the accused person may be able to guess their identities. + +In rare situations, the CoC Committee may be required to disclose confidential information about an investigation to comply with applicable laws, a subpoena, or court order, or to defend against litigation. + +## No Retaliation + +The AsyncAPI community will not tolerate retaliation against community members who report concerns under the CoC in good faith or assist in an investigation as witnesses or by providing relevant information. Acts of retaliation are themselves violations of the AsyncAPI Code of Conduct. If you believe you have been retaliated against, please report it using the abovementioned reporting process. + +## Conflicts of Interest + +**Hard Conflicts**: A CoC Committee member has a hard conflict of interest if any of the following are true: + +- They are the accused person, or a person alleged to be directly harmed or targeted by the alleged wrongdoing; + +- They have a close personal relationship (e.g., close friend, spouse, or family member) with the accused person or with a person alleged to be directly targeted or harmed by alleged wrongdoing; + +- They have a close professional relationship (e.g., direct supervisory relationship at the same employer) with the accused person or with a person alleged to be directly harmed or targeted by the alleged wrongdoing; + +- They have another personal interest in the outcome of the incident that is likely to undermine their impartiality. + +- Multiple soft conflicts exist. + + +**Soft Conflicts**: A CoC Committee member has a soft conflict of interest if any of the following are true: + +- They work at the same company as the accused person, but do not have a close personal or professional relationship (e.g., they work for separate business units or divisions and do not interact regularly); + +- Other circumstances exist that are likely to give the appearance of a conflict of interest, even if such circumstances are not actually likely to undermine their impartiality, such as participating in public discussion about a potential violation or concern regarding the accused person’s behavior in their capacity rather than in their official capacity as representative of the CoC Committee. + +Merely witnessing a potential Code of Conduct violation does not constitute a conflict of interest. + +### Obligation to disclose potential conflicts of interest + +When a CoC Committee member has a potential soft or hard conflict of interest concerning a reported incident, they have an obligation to promptly disclose the nature of their potential conflict of interest to the rest of the CoC Committee (unless such potential conflict of interest is already known to the other members of the CoC Committee). + +### Procedures to disclose and confirm conflicts + +Statements of conflict and confirmation of stated conflicts must be done before initiating an investigation and recorded in the notes of the first meeting convened to discuss the incident. + +A committee member may verbally disclose a conflict statement to the committee first, then follow up in writing with the statement of conflict. They may also directly provide the statement of conflict in writing. + +Statements of conflict must include the kind of conflict (hard or soft) and the specific area of conflict. The committee is then required to confirm the conflict by the majority; for the existence of a soft conflict, the confirmation must also outline what that member can and can not do as part of the investigation. + +### Procedures when a hard conflict of interest exists + +A CoC Committee member with a hard conflict of interest will not be allowed to attend meetings or otherwise participate in discussions or decision-making of the CoC Committee related to the incident; their participation shall be limited to allowing the remaining CoC Committee members to interview them as a witness and providing information requested by the CoC Committee. Additionally, a CoC Committee Member with a hard conflict of interest will not be provided with confidential information about the incident (e.g., identities of reporters or contents of confidential reports). + +### Procedures when a soft conflict of interest exists + +A CoC Committee member with a soft conflict of interest will not have the right to vote but may be allowed to participate in a discussion regarding the incident. The remaining CoC Committee members will decide what information to provide such conflicted members and the extent to which such conflicted members may be present at meetings, participate in discussions, and otherwise assist in the resolution of the incident. Any decisions regarding the participation or recusal of a CoC Committee member with a soft conflict of interest will be recorded in the committee’s meeting minutes or other records. + +## Amendments + +The Code of Conduct Committee must approve any amendments to these Incident Resolution Procedures. + +## Attribution + +This document is based on the [CNCF Code of Conduct - Incident Resolution Procedures](https://github.com/cncf/foundation/blob/main/code-of-conduct/coc-incident-resolution-procedures.md). diff --git a/code_of_conduct/code-of-conduct-committee.md b/code_of_conduct/code-of-conduct-committee.md new file mode 100644 index 000000000..cbf82a4be --- /dev/null +++ b/code_of_conduct/code-of-conduct-committee.md @@ -0,0 +1,45 @@ +# AsyncAPI Code of Conduct Committee + +## Purpose + +The AsyncAPI Code of Conduct Committee (CoC Committee) is a committee that responds to investigates, and resolves [AsyncAPI Code of Conduct](https://github.com/asyncapi/community/blob/master/CODE_OF_CONDUCT.md) incidents. + +The members of the CoC Committee are members of the [Technical Steering Committee](https://www.asyncapi.com/community/tsc) (TSC) [voted](https://github.com/orgs/asyncapi/discussions/682#discussioncomment-7498209) publicly by the community. The committee has a two-year term, after which re-election will take place. + +## Members + +The AsyncAPI CoC Committee consists of 3 full members and 3 alternate members: + +**Full Members**: + +- [Aishat Muibudeen](https://github.com/mayaleeeee) +- [Azeez Elegbede](https://github.com/acethecreator) +- [Sergio Moya](https://github.com/smoya) + +**Alternate Members:** + +- [Alejandra Quetzalli](https://github.com/alequetzalli) +- [Thulisile Sibanda](https://github.com/thulieblack) + +If one of the CoC members listed above is unavailable or has to recuse themselves from participating in the resolution of a CoC incident due to a conflict of interest (see our [Conflict of Interest policy](*)), AsyncAPI may request assistance from the [Technical Steering Committee](https://www.asyncapi.com/community/tsc) in appointing an alternate from the TSC members to take their place for that incident. + +## How Decisions Are Made + +Decisions of the CoC Committee shall be made by consensus whenever possible. In the event consensus cannot be reached, decisions shall be made by majority vote of non-conflicted members of the CoC Committee. A decision to take temporary interim action in the event of an emergency may be taken by any individual CoC Committee member acting in good faith, and the CoC Committee shall review such action and decide whether to confirm or reverse such action. Any permanent action shall require approval of a majority of non-conflicted members of the CoC Committee. The CoC Committee may take action without a meeting if a majority of non-conflicted members express agreement in writing (e.g., email or Slack) and none of the non-conflicted CoC Committee members either object to the proposed action or request a meeting to discuss the proposed action within 24 hours after the action is first proposed to the CoC Committee. In the absence of such agreement in writing, the CoC Committee may only take action during or after a meeting takes place at which the proposed action is discussed and agreed to by consensus or voted upon by a quorum of the non-conflicted members. A majority of non-conflicted members shall be deemed a quorum for purposes of a meeting. See the [Conflict of Interest](*) section of the Incident Resolution Procedures for more information. + +## External Support Resources + +The CoC Committee may, in its discretion, consult external mediators, investigators, advisors, and consultants as needed to assist with resolution of CoC Incidents. Any such external resources shall not have a vote, and shall be required to maintain confidentiality. + +## Incident Resolution Procedures + +Please see our [Incident Resolution Procedures](coc-incident-resolution-procedures.md), which address, among others: + +- How to submit a report +- What information to share in your report +- What happens after a report is submitted +- Resolution +- Information sharing +- Confidentiality Policy +- No retaliation +- Conflicts of interest diff --git a/docs/donating-projects.md b/docs/donating-projects.md new file mode 100644 index 000000000..4a7e02e19 --- /dev/null +++ b/docs/donating-projects.md @@ -0,0 +1,49 @@ +## Donating Your Project + +Donating your open-source project to an open-source initiative involves transferring ownership or stewardship to an organization that supports and promotes open-source software. It ensures the project's sustainability, attracts more contributors, and aligns it with broader community goals. + +AsyncAPI initiative is open to receiving project donations that align with our goals and values. Before considering donating your project to the initiative, kindly visit our [AsyncAPI Roadmap](https://www.asyncapi.com/roadmap) to learn more about what we are looking at as a community in the near future. + +### Project Licensing + +Donating your project to an open-source organization like AsyncAPI can be exciting, hence why we need to ensure one of the most important parts of open-source projects, which is licensing. + +The AsyncAPI Initiative uses the [Apache-2.0 license](https://www.apache.org/licenses/LICENSE-2.0), which ensures our projects are open-source and community-driven. Before considering putting your project up for donation, ensure your project uses a compatible open-source license. + +### Legal Consideration + +All the projects under the AsyncAPI initiative are strictly community-driven. We've put legal consideration into donating projects to the initiative. + +- We value Contributor License Agreements (CLAs) as they provide project maintainers with the necessary legal rights to distribute and modify code contributed by different individuals, ensuring protection for both maintainers and contributors. + +- We make Intellectual Property (IP) Review essential when donating projects from organizations instead of individual contributors. It's crucial to verify ownership and the chain of title to ensure that no proprietary code or third-party IP is included, maintaining a clear and respectful process for all involved. + +### Community Engagement + +When donating your project to a community-driven initiative like AsyncAPI, you should understand that communication is an integral part of the initiative. Before donating your project, communication with the community has to be established. + +Follow the instructions below to establish and involve the community in your project donation: + +1. Visit [AsyncAPI Initiative Discussions](https://github.com/orgs/asyncapi/discussions). +2. Create a new discussion by clicking on `New discussion` and selecting the `Idea` category. Specify in the _title_ that you want to donate to an existing project. In the _description_, state the purpose of the new repository and why it should be part of the AsyncAPI organization. Here's a [sample discussion about donating an existing project](https://github.com/orgs/asyncapi/discussions/643). +3. Start a discussion with community members to discuss the project idea, specify if you want to use AsyncAPI CI/CD workflows, and volunteer to become a maintainer for that project. For better visibility, share the discussion in the `#general` channel on our Slack. +4. Answer questions from contributors and maintainers about your project. Ask relevant questions about your project donation. + +### Project Migration + +After a successful community engagement, we move on to the final phase of project migration. Establish a successful project migration via the following steps: + +1. Visit the [AsyncAPI Community Repo](https://github.com/asyncapi/community) and open a [new issue](https://github.com/asyncapi/community/issues/new?assignees=&labels=enhancement&projects=&template=enhancement.yml&title=%5BFEATURE%5D+%3Cdescription%3E). +2. Write your project's details and include a summary of the community discussion for your project. +3. Tag the `@asyncapi/tsc_members` at the end of the proposal description and ask for a vote on migrating your project to the organization, because the Technical Steering Committee (TSC) must approve the project donation. Tagging TSC members notifies them to vote on the proposed project. +4. If the TSC approves the new repository, then either `@derberg` or `@fmvilas` complete the project migration to the AsyncAPI organization. +5. Configure the CI pipelines to match the initiative's standards, so that either `@derberg` or `@fmvilas`can run AsyncAPI CI/CD workflows that push basic GitHub Actions workflows to the newly donated project. +6. New maintainers are invited as repo admins. + +### Post Donation Maintenance + +Successfully donating a project doesn't mean the end of your journey with it. On the contrary, the post-donation phase is crucial for the sustained health and growth of the project. Ensure your project continues to thrive and benefits the community long after donation by implementing these key practices: + +- **Ongoing Contributions**: Your involvement shouldn't stop with the donation. Continue actively contributing to the project by adding new features, refining existing functionalities, and fixing bugs. Demonstrating ongoing commitment encourages others to contribute as well. +- **Documentation Updates**: Keep the project's documentation up-to-date. Write documentation for installation, configuration, usage, and API reference materials. As the project evolves, it's essential that the documentation reflects these changes accurately to assist both new and existing users. +- **Community Support**: Engage with the community by offering support, answering questions, providing feedback on user suggestions, and addressing any concerns. A vibrant, supportive community is key to a project's sustainability. diff --git a/mentorship/summerofcode/2024/README.md b/mentorship/summerofcode/2024/README.md new file mode 100644 index 000000000..b6e476c30 --- /dev/null +++ b/mentorship/summerofcode/2024/README.md @@ -0,0 +1,33 @@ +# Status: In Progress + +## Timeline + +- January 22: Organization applications open +- February 21: Accepted GSoC Organizations announced +- February 22 - March 18: Potential GSoC contributors discuss application ideas with mentoring organizations +- March 18: The GSoC contributor application period begins +- April 02: Proposal Deadline +- May 1: Accepted GSoC Contributor projects announced +- May 1 - 26: Community Bonding Period | GSoC contributors get to know mentors, read documentation, get up to speed to begin working on their projects +- May 27: Coding officially begins! +- July 8: Mentors and GSoC contributors can begin submitting midterm evaluations +- July 12: Midterm evaluation deadline (standard coding period) +- July 12 - August 19: Work Period | GSoC contributors work on their project with guidance from Mentors +- August 19 - 26: Final week: GSoC contributors submit their final work product and their final mentor evaluation (standard coding period) +- August 26 - September 2: Mentors submit final GSoC contributor evaluations (standard coding period) +- September 3: Initial results of Google Summer of Code 2024 announced +- September 3 - November 4: GSoC contributors with extended timelines continue coding +- November 4: Final date for all GSoC contributors to submit their final work product and final evaluation +- November 11: Final date for mentors to submit evaluations for GSoC contributor projects with extended deadlines + + +## Accepted Project Ideas +| No | Project Idea | Mentor/s | Category | Mentee/s | +| --- | --- | --- | --- | --- | +| 1 | [Autofix for Spectral Linting Errors: VS Code Extension](https://github.com/asyncapi/vs-asyncapi-preview/issues/160) | [Pavel Bodiachevskii](https://github.com/Pakisan) | Engineering | [Esther Xiao](https://github.com/FelicixAwe) | +| 2 | [Script Stability Enhancement for AsyncAPI Website](https://github.com/asyncapi/website/issues/2626) | [Sambhav Gupta](https://github.com/sambhavgupta0705), [Ansh Goyal](https://github.com/anshgoyalevil) | Engineering | [Vishvamsinh Vaghela](https://github.com/vishvamsinh28) | +| 3 | [AsyncAPI Generator Maintainership](https://github.com/asyncapi/generator/issues/1145) | [Lukasz Gornicki](https://github.com/derberg) | Engineering | [Mintu Gogoi](https://github.com/Gmin2), [Yuan Yuan](https://github.com/lmgyuan) | +| 4 | [Markdown and MermaidJS Diagrams Preview: VS Code Extension](https://github.com/asyncapi/vs-asyncapi-preview/issues/161) | [Iván García Sainz-Aja](https://github.com/ivangsa), [Azeez Elegbede](https://github.com/acethecreator) | Engineering | [NIKHIL CHAUDHARI](https://github.com/nikhil-3112) | +| 5 | [AsyncAPI Website UI Kit Development](https://github.com/asyncapi-archived-repos/design-system/issues/4) | [Azeez Elegbede](https://github.com/acethecreator), [Akshat Nema](https://github.com/akshatnema) | Engineering | [Ashmit JaiSarita Gupta](https://github.com/devilkiller-ag) | +| 6 | [Dynamic Open Graph Preview for AsyncAPI Studio](https://github.com/asyncapi/studio/issues/224) | [Sergio Moya](https://github.com/smoya) | Engineering | [Ankit Dash](https://github.com/helios2003) | +| 7 | [Conference Website Maintainance](https://github.com/asyncapi/conference-website/issues/284) | [Azeez Elegbede](https://github.com/acethecreator), [Aishat Muibudeen](https://github.com/mayaleeeee), [Thulisile Sibanda](https://github.com/thulieblack) | Engineering | [Ashmit Jagtap](https://github.com/ashmit-coder) | diff --git a/tweets/recurring-discuss-ideas/2024-07-01.tweet b/tweets/recurring-discuss-ideas/2024-07-01.tweet new file mode 100644 index 000000000..92b19fefe --- /dev/null +++ b/tweets/recurring-discuss-ideas/2024-07-01.tweet @@ -0,0 +1,5 @@ +Do you have some nice ideas for #AsyncAPI-related tools? Do you want to validate and share with the AsyncAPI community? + +Drop it 👇 and let us have an open discussion 🚀 + +https://github.com/asyncapi/community/discussions/categories/ideas \ No newline at end of file diff --git a/tweets/recurring-slack-link/2024-06-08.tweet b/tweets/recurring-slack-link/2024-06-08.tweet new file mode 100644 index 000000000..0bd3e8865 --- /dev/null +++ b/tweets/recurring-slack-link/2024-06-08.tweet @@ -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. 💪🏿💪🏽🦾 \ No newline at end of file diff --git a/tweets/recurring-slack-link/2024-06-15.tweet b/tweets/recurring-slack-link/2024-06-15.tweet new file mode 100644 index 000000000..0bd3e8865 --- /dev/null +++ b/tweets/recurring-slack-link/2024-06-15.tweet @@ -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. 💪🏿💪🏽🦾 \ No newline at end of file diff --git a/tweets/recurring-slack-link/2024-06-22.tweet b/tweets/recurring-slack-link/2024-06-22.tweet new file mode 100644 index 000000000..0bd3e8865 --- /dev/null +++ b/tweets/recurring-slack-link/2024-06-22.tweet @@ -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. 💪🏿💪🏽🦾 \ No newline at end of file diff --git a/tweets/recurring-slack-link/2024-06-29.tweet b/tweets/recurring-slack-link/2024-06-29.tweet new file mode 100644 index 000000000..0bd3e8865 --- /dev/null +++ b/tweets/recurring-slack-link/2024-06-29.tweet @@ -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. 💪🏿💪🏽🦾 \ No newline at end of file diff --git a/tweets/recurring-slack-link/2024-07-06.tweet b/tweets/recurring-slack-link/2024-07-06.tweet new file mode 100644 index 000000000..0bd3e8865 --- /dev/null +++ b/tweets/recurring-slack-link/2024-07-06.tweet @@ -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. 💪🏿💪🏽🦾 \ No newline at end of file diff --git a/tweets/recurring-slack-link/2024-07-13.tweet b/tweets/recurring-slack-link/2024-07-13.tweet new file mode 100644 index 000000000..0bd3e8865 --- /dev/null +++ b/tweets/recurring-slack-link/2024-07-13.tweet @@ -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. 💪🏿💪🏽🦾 \ No newline at end of file diff --git a/tweets/recurring-slack-link/2024-07-20.tweet b/tweets/recurring-slack-link/2024-07-20.tweet new file mode 100644 index 000000000..0bd3e8865 --- /dev/null +++ b/tweets/recurring-slack-link/2024-07-20.tweet @@ -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. 💪🏿💪🏽🦾 \ No newline at end of file