diff --git a/.all-contributorsrc b/.all-contributorsrc index 42f54a7f3cc..6a753d77281 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -454,6 +454,89 @@ "contributions": [ "doc" ] + }, + { + "login": "Florence-Njeri", + "name": "Florence Njeri", + "avatar_url": "https://avatars.githubusercontent.com/u/40742916?v=4", + "profile": "https://florence-njeri.github.io/NjeriPortfolio", + "contributions": [ + "code" + ] + }, + { + "login": "anshgoyalevil", + "name": "Ansh Goyal", + "avatar_url": "https://avatars.githubusercontent.com/u/94157520?v=4", + "profile": "https://ansh.live", + "contributions": [ + "code", + "review" + ] + }, + { + "login": "SumantxD", + "name": "Sumant.xD", + "avatar_url": "https://avatars.githubusercontent.com/u/65810424?v=4", + "profile": "https://github.com/SumantxD", + "contributions": [ + "infra" + ] + }, + { + "login": "Shriansh2002", + "name": "Shriansh Agarwal", + "avatar_url": "https://avatars.githubusercontent.com/u/41548480?v=4", + "profile": "http://shrianshagarwal.in", + "contributions": [ + "code" + ] + }, + { + "login": "reachaadrika", + "name": "Aadrika Bhargava", + "avatar_url": "https://avatars.githubusercontent.com/u/64789514?v=4", + "profile": "https://github.com/reachaadrika", + "contributions": [ + "code" + ] + }, + { + "login": "vishvamsinh28", + "name": "Vishvamsinh Vaghela", + "avatar_url": "https://avatars.githubusercontent.com/u/90895835?v=4", + "profile": "https://github.com/vishvamsinh28", + "contributions": [ + "code" + ] + }, + { + "login": "AnimeshKumar923", + "name": "Animesh Kumar", + "avatar_url": "https://avatars.githubusercontent.com/u/99868037?v=4", + "profile": "https://github.com/AnimeshKumar923", + "contributions": [ + "doc", + "review" + ] + }, + { + "login": "captain-Akshay", + "name": "Akshay Sharma", + "avatar_url": "https://avatars.githubusercontent.com/u/59491379?v=4", + "profile": "https://github.com/captain-Akshay", + "contributions": [ + "code" + ] + }, + { + "login": "yuvrxj-afk", + "name": "Yuvraj Singh Sisodiya", + "avatar_url": "https://avatars.githubusercontent.com/u/63532070?v=4", + "profile": "https://web-yuvrxj-afk.vercel.app/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/.eslintrc.js b/.eslintrc.js index 7f3e3988821..a7ae59ed8d2 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -3,7 +3,7 @@ module.exports = { "browser": true, "es6": true, }, - "extends": ["eslint:recommended", "plugin:react/recommended" , "plugin:cypress/recommended"], + "extends": ["eslint:recommended", "plugin:react/recommended", "plugin:cypress/recommended"], "globals": { "Atomics": "readonly", "SharedArrayBuffer": "readonly", diff --git a/.github/workflows/cypress-tests.yml b/.github/workflows/cypress-tests.yml new file mode 100644 index 00000000000..11dd4a8f8bc --- /dev/null +++ b/.github/workflows/cypress-tests.yml @@ -0,0 +1,27 @@ +name: Run tests +on: + push: + branches: + - master + pull_request: + types: [opened, reopened, synchronize, ready_for_review] + +jobs: + cypress-run: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Use Node.js 16.x + uses: actions/setup-node@v3 + with: + node-version: 16.x + + + - name: Install dependencies + run: npm install + + - name: Cypress Tests are running + run : node ./scripts/index.js && npm run test diff --git a/.github/workflows/help-command.yml b/.github/workflows/help-command.yml index f4955c22163..d4ba4a44c40 100644 --- a/.github/workflows/help-command.yml +++ b/.github/workflows/help-command.yml @@ -27,13 +27,13 @@ jobs: repo: context.repo.repo, body: `Hello, @${{ github.actor }}! 👋🏼 - I'm Genie from the magic lamp. Looks like somebody needs a hand! 🆘 + I'm 🧞🧞🧞 Genie 🧞🧞🧞 from the magic lamp. Looks like somebody needs a hand! At the moment the following comments are supported in pull requests: - - `/ready-to-merge` or `/rtm` - This comment will trigger automerge of PR in case all required checks are green, approvals in place and do-not-merge label is not added - - `/do-not-merge` or `/dnm` - This comment will block automerging even if all conditions are met and ready-to-merge label is added - - `/autoupdate` or `/au` - This comment will add `autoupdate` label to the PR and keeps your PR up-to-date to the target branch's future changes. Unless there is a merge conflict or it is a draft PR.` + - \`/ready-to-merge\` or \`/rtm\` - This comment will trigger automerge of PR in case all required checks are green, approvals in place and do-not-merge label is not added + - \`/do-not-merge\` or \`/dnm\` - This comment will block automerging even if all conditions are met and ready-to-merge label is added + - \`/autoupdate\` or \`/au\` - This comment will add \`autoupdate\` label to the PR and keeps your PR up-to-date to the target branch's future changes. Unless there is a merge conflict or it is a draft PR.` }) create_help_comment_issue: @@ -51,10 +51,10 @@ jobs: repo: context.repo.repo, body: `Hello, @${{ github.actor }}! 👋🏼 - I'm Genie from the magic lamp. Looks like somebody needs a hand! 🆘 + I'm 🧞🧞🧞 Genie 🧞🧞🧞 from the magic lamp. Looks like somebody needs a hand! At the moment the following comments are supported in issues: - - `/good-first-issue {js | ts | java | go | docs | design | ci-cd} ` or `/gfi {js | ts | java | go | docs | design | ci-cd} ` - label an issue as a `good first issue`. - example: `/gfi js` or `/good-first-issue ci-cd` - }) + - \`/good-first-issue {js | ts | java | go | docs | design | ci-cd}\` or \`/gfi {js | ts | java | go | docs | design | ci-cd}\` - label an issue as a \`good first issue\`. + example: \`/gfi js\` or \`/good-first-issue ci-cd\`` + }) \ No newline at end of file diff --git a/.github/workflows/lighthouse-ci.yml b/.github/workflows/lighthouse-ci.yml index 137d2fb77e8..f8cc63d308d 100644 --- a/.github/workflows/lighthouse-ci.yml +++ b/.github/workflows/lighthouse-ci.yml @@ -32,7 +32,7 @@ jobs: ) id: should_run name: Should Run - run: echo "::set-output name=shouldrun::true" + run: echo "shouldrun=true" >> $GITHUB_OUTPUT - if: steps.should_run.outputs.shouldrun == 'true' uses: actions/checkout@v3 diff --git a/.gitignore b/.gitignore index ed771f133ca..97f8c203803 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ yarn.lock meetings.json .netlify .env +cypress/screenshots +cypress/videos \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000000..fa29cdfff91 --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +** \ No newline at end of file diff --git a/CODEOWNERS b/CODEOWNERS index 56d4723855a..db47e3d311e 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -5,7 +5,7 @@ # For more details, read the following article on GitHub: https://help.github.com/articles/about-codeowners/. # The default owners are automatically added as reviewers when you open a pull request unless different owners are specified in the file. -* @derberg @mcturco @akshatnema @magicmatatjahu @asyncapi-bot-eve +* @derberg @akshatnema @magicmatatjahu @mayaleeeee @asyncapi-bot-eve # All .md files *.md @alequetzalli @asyncapi-bot-eve @@ -13,4 +13,4 @@ pages/blog/*.md @thulieblack @alequetzalli pages/community/*.md @thulieblack @alequetzalli -README.md @alequetzalli @derberg @mcturco @akshatnema @magicmatatjahu @asyncapi-bot-eve +README.md @alequetzalli @derberg @akshatnema @magicmatatjahu @mayaleeeee @asyncapi-bot-eve diff --git a/README.md b/README.md index 69905cfd898..a2a34293925 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,24 @@ --- - -[![All Contributors](https://img.shields.io/badge/all_contributors-45-orange.svg?style=flat-square)](#contributors-) - - -[![Netlify Status](https://api.netlify.com/api/v1/badges/b2137407-b765-46c4-95b5-a72d9b1592ab/deploy-status)](https://app.netlify.com/sites/asyncapi-website/deploys) +
+

+ + + + + + + + + + + + + + + +

## Overview @@ -140,7 +153,27 @@ This repository has the following structure: └── tailwind.config.js # TailwindCSS configuration file ``` -## Contributors +## Connect with AsyncAPI Community + +

+ + AsyncAPI Slack + + + AsyncAPI Twitter + + + AsyncAPI LinkedIn + + + AsyncAPI YouTube + + + AsyncAPI Twitch + +

+ +## AsyncAPI Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): @@ -207,6 +240,17 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Benjamin Rukundo
Benjamin Rukundo

💻 tthijm
tthijm

🚇 Cynthia Peter
Cynthia Peter

📖 + Florence Njeri
Florence Njeri

💻 + Ansh Goyal
Ansh Goyal

💻 👀 + Sumant.xD
Sumant.xD

🚇 + Shriansh Agarwal
Shriansh Agarwal

💻 + + + Aadrika Bhargava
Aadrika Bhargava

💻 + Vishvamsinh Vaghela
Vishvamsinh Vaghela

💻 + Animesh Kumar
Animesh Kumar

📖 👀 + Akshay Sharma
Akshay Sharma

💻 + Yuvraj Singh Sisodiya
Yuvraj Singh Sisodiya

💻 diff --git a/assets/docs/fragments/how-to-contribute.md b/assets/docs/fragments/how-to-contribute.md new file mode 100644 index 00000000000..932347021a1 --- /dev/null +++ b/assets/docs/fragments/how-to-contribute.md @@ -0,0 +1,23 @@ +## How to contribute to AsyncAPI Docs + +Did you know that you can contribute Docs to AsyncAPI as well? Code isn't the only way to contribute to OSS; Dev Docs are a **huge** help that benefit the entire OSS ecosystem. At AsyncAPI, we value Doc contributions as much as every other type of contribution. ❤️ + +To get started as a Docs contributor: + +1. Familiarize yourself with our [project's Contribution Guide](https://github.com/asyncapi/community/blob/master/CONTRIBUTING.md) and our [Code of Conduct](https://github.com/asyncapi/.github/blob/master/CODE_OF_CONDUCT.md). + +2. Head over to our Docs GH Board [here](https://github.com/orgs/asyncapi/projects/12). + +3. Pick an issue you would like to contribute to and leave a comment introducing yourself. This is also the perfect place to leave any questions you may have on how to get started. + +4. If there is no work done in that Docs issue yet, feel free to open a PR and get started! + +### Tag me in your AsyncAPI Doc PRs + +Do you have a documentation contributor question and you're wondering how to tag me into a GitHub discussion or PR? Never fear! + +Tag me in your AsyncAPI Doc PRs or [GitHub Discussions](https://github.com/asyncapi/community/discussions/categories/docs) via my GitHub handle, [`/alequetzalli`](https://github.com/alequetzalli) 🐙. + +### Talk to me + +I want and need to listen 👂🏽 to all of your perspectives and ideas. Please don't be shy to express to me what you think needs to be documented first or what is missing. 📝 There's a lot of good work ahead, but **you** determine _our content roadmap_ because the OSS community needs should always come first.✨ \ No newline at end of file diff --git a/components/AlgoliaSearch.js b/components/AlgoliaSearch.js index c71aea80bae..96a98dcc273 100644 --- a/components/AlgoliaSearch.js +++ b/components/AlgoliaSearch.js @@ -11,7 +11,7 @@ export const DOCS_INDEX_NAME = 'asyncapi-docs'; const APP_ID = 'Z621OGRI9Y'; const API_KEY = '5a4122ae46ce865146d23d3530595d38'; -const SearchContext = createContext() +const SearchContext = createContext({}); export default function AlgoliaSearch({ children }) { const [isOpen, setIsOpen] = useState(false); @@ -47,14 +47,7 @@ export default function AlgoliaSearch({ children }) { - + {children} {isOpen && } @@ -169,6 +162,7 @@ export function SearchButton({ children, indexName = INDEX_NAME, ...props }) { onOpen(indexName); }} {...props} + data-testid="Search-Button" > {typeof children === 'function' ? children({ actionKey }) : children} diff --git a/components/AuthorAvatars.js b/components/AuthorAvatars.js index c3e740ff212..0ce49ba1fc4 100644 --- a/components/AuthorAvatars.js +++ b/components/AuthorAvatars.js @@ -1,15 +1,25 @@ +import React from 'react' export default function AuthorAvatars({ authors = [] }) { return ( authors.map((author, index) => { - let avatar = 0 ? `absolute left-${index * 7} top-0` : `relative mr-${(authors.length - 1) * 7}`} z-${(authors.length - 1 - index) * 10} h-10 w-10 border-2 border-white rounded-full object-cover hover:z-50`} - src={author.photo} - loading="lazy" - /> + let avatar = ( + 0 ? `absolute left-${index * 7} top-0` : `relative mr-${(authors.length - 1) * 7}`} z-${(authors.length - 1 - index) * 10} h-10 w-10 border-2 border-white rounded-full object-cover hover:z-50`} + src={author.photo} + loading="lazy" + data-testid="AuthorAvatars-img" + /> + ); - return author.link ? {avatar} : {avatar} + return author.link ? ( + + {avatar} + + ) : ( + {avatar} + ); }) - ) -} \ No newline at end of file + ); +} diff --git a/components/Calendar.js b/components/Calendar.js index 0a1388d2ccc..f6a4947339a 100644 --- a/components/Calendar.js +++ b/components/Calendar.js @@ -2,8 +2,12 @@ import eventsData from '../config/meetings.json'; import GoogleCalendarButton from './buttons/GoogleCalendarButton'; import Heading from './typography/Heading'; import { getEvents } from '../lib/staticHelpers'; +import { useTranslation } from '../lib/i18n'; export default function Calendar({ className = '', size, text="text-left" }) { + + const { t } = useTranslation('common'); + const CALENDAR_URL = 'https://calendar.google.com/calendar/embed?src=c_q9tseiglomdsj6njuhvbpts11c%40group.calendar.google.com&ctz=UTC'; const eventsExist = eventsData.length > 0; @@ -12,11 +16,11 @@ export default function Calendar({ className = '', size, text="text-left" }) { className={`rounded-md border border-gray-200 overflow-hidden bg-white p-4`} > - Upcoming events + {t("calendar.title")}