diff --git a/404.html b/404.html index eff13d56..8bee7edb 100644 --- a/404.html +++ b/404.html @@ -13,13 +13,13 @@ - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/images/contributing-avatar-top-right-4063afad1b9c314a1e261c492a65447c.png b/assets/images/contributing-avatar-top-right-4063afad1b9c314a1e261c492a65447c.png deleted file mode 100644 index 60b8a982..00000000 Binary files a/assets/images/contributing-avatar-top-right-4063afad1b9c314a1e261c492a65447c.png and /dev/null differ diff --git a/assets/images/contributing-avatar-top-right-9fa9249bf532c85c0f86a4511ca92110.png b/assets/images/contributing-avatar-top-right-9fa9249bf532c85c0f86a4511ca92110.png new file mode 100644 index 00000000..925b070c Binary files /dev/null and b/assets/images/contributing-avatar-top-right-9fa9249bf532c85c0f86a4511ca92110.png differ diff --git a/assets/images/contributing-copy-auth-token-41b11f49db098dcbd83cbb5a22952579.png b/assets/images/contributing-copy-auth-token-41b11f49db098dcbd83cbb5a22952579.png new file mode 100644 index 00000000..c1e49939 Binary files /dev/null and b/assets/images/contributing-copy-auth-token-41b11f49db098dcbd83cbb5a22952579.png differ diff --git a/assets/images/contributing-print-auth-token-e1370316da4c4747a853289f72842d56.png b/assets/images/contributing-print-auth-token-e1370316da4c4747a853289f72842d56.png deleted file mode 100644 index 281f6411..00000000 Binary files a/assets/images/contributing-print-auth-token-e1370316da4c4747a853289f72842d56.png and /dev/null differ diff --git a/assets/images/contributing-token-printed-to-console-0deb43e35d7b18560ccf573c6f0411cc.png b/assets/images/contributing-token-printed-to-console-0deb43e35d7b18560ccf573c6f0411cc.png deleted file mode 100644 index 3f43faf9..00000000 Binary files a/assets/images/contributing-token-printed-to-console-0deb43e35d7b18560ccf573c6f0411cc.png and /dev/null differ diff --git a/assets/js/0f97bf69.b028eb90.js b/assets/js/0f97bf69.b028eb90.js new file mode 100644 index 00000000..d228feff --- /dev/null +++ b/assets/js/0f97bf69.b028eb90.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4158],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>h});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var l=a.createContext({}),p=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},c=function(e){var n=p(e.components);return a.createElement(l.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=r(e,["components","mdxType","originalType","parentName"]),u=p(t),d=i,h=u["".concat(l,".").concat(d)]||u[d]||m[d]||o;return t?a.createElement(h,s(s({ref:n},c),{},{components:t})):a.createElement(h,s({ref:n},c))}));function h(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var o=t.length,s=new Array(o);s[0]=d;var r={};for(var l in n)hasOwnProperty.call(n,l)&&(r[l]=n[l]);r.originalType=e,r[u]="string"==typeof e?e:i,s[1]=r;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>p});var a=t(7462),i=(t(7294),t(3905));const o={id:"semantic-release",title:"@open-sauced/semantic-release-conventional-config",sidebar_label:"@open-sauced/semantic-release-conventional-config",keywords:["semantic release conventional config","open sauced semantic release","npm package for semantic release","semantic release best practices","semantic release shareable config","semantic release plugins and presets"]},s=void 0,r={unversionedId:"opensauced-packages/semantic-release",id:"opensauced-packages/semantic-release",title:"@open-sauced/semantic-release-conventional-config",description:"Description",source:"@site/docs/opensauced-packages/semantic-release.md",sourceDirName:"opensauced-packages",slug:"/opensauced-packages/semantic-release",permalink:"/opensauced-packages/semantic-release",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-packages/semantic-release.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"semantic-release",title:"@open-sauced/semantic-release-conventional-config",sidebar_label:"@open-sauced/semantic-release-conventional-config",keywords:["semantic release conventional config","open sauced semantic release","npm package for semantic release","semantic release best practices","semantic release shareable config","semantic release plugins and presets"]},sidebar:"docs",previous:{title:"@open-sauced/conventional-commit",permalink:"/opensauced-packages/conventional-commit"}},l={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"\ud83d\udda5\ufe0f Requirements",id:"\ufe0f-requirements",level:2},{value:"\ud83e\uddea GitHub Actions Usage",id:"-github-actions-usage",level:2},{value:"\ud83d\udce6 npm Usage",id:"-npm-usage",level:2},{value:"\ud83d\udd27 Configuration",id:"-configuration",level:2},{value:"npm",id:"npm",level:3},{value:"GitHub Actions",id:"github-actions",level:3},{value:"Docker",id:"docker",level:3},{value:"Environment Variables",id:"environment-variables",level:3},{value:"Workflow Examples",id:"workflow-examples",level:2},{value:"Node Application",id:"node-application",level:3},{value:"npm Library",id:"npm-library",level:3},{value:"Docker Image",id:"docker-image",level:3},{value:"Pre-Releases",id:"pre-releases",level:3},{value:"FAQs",id:"faqs",level:2},{value:"Which Assets are Pushed to Git?",id:"which-assets-are-pushed-to-git",level:3},{value:"What is the Commit Convention?",id:"what-is-the-commit-convention",level:3},{value:"How to Enrich the Static Distribution?",id:"how-to-enrich-the-static-distribution",level:3},{value:"How to Start Using Pre-Releases?",id:"how-to-start-using-pre-releases",level:3},{value:"Contributing",id:"contributing",level:2}],c={toc:p},u="wrapper";function m(e){let{components:n,...t}=e;return(0,i.kt)(u,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"description"},"Description"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,i.kt)("inlineCode",{parentName:"p"},"@open-sauced/semantic-release-conventional-config")," is designed to help ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," packages auto-release to ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," or ",(0,i.kt)("a",{parentName:"p",href:"https://ghcr.io"},(0,i.kt)("inlineCode",{parentName:"a"},"ghcr"))," registries while generating GitHub releases and changelog using conventional commit convention."),(0,i.kt)("p",null,"Version 2 supports alpha and beta pre-releases using corresponding branches."),(0,i.kt)("h2",{id:"dependencies"},"Dependencies"),(0,i.kt)("p",null,"This package uses the following modules:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/commit-analyzer"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/commit-analyzer"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/release-notes-generator"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/release-notes-generator"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/conventional-changelog/conventional-changelog"},(0,i.kt)("inlineCode",{parentName:"a"},"@conventional-changelog/conventional-changelog"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/changelog"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/changelog"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/npm"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/npm"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/google/semantic-release-replace-plugin"},(0,i.kt)("inlineCode",{parentName:"a"},"@google/semantic-release-replace-plugin"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/cbhq/semantic-release-license"},(0,i.kt)("inlineCode",{parentName:"a"},"@cbhq/semantic-release-license"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/git"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/git"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/github"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/github"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/eclass/semantic-release-docker"},(0,i.kt)("inlineCode",{parentName:"a"},"@eclass/semantic-release-docker"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/exec"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/exec"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/sindresorhus/execa"},(0,i.kt)("inlineCode",{parentName:"a"},"execa")))),(0,i.kt)("h2",{id:"\ufe0f-requirements"},"\ud83d\udda5\ufe0f Requirements"),(0,i.kt)("p",null,"Most important limitations are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GITHUB_TOKEN")," for everything"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NPM_TOKEN")," for public ",(0,i.kt)("inlineCode",{parentName:"li"},"npm")," library"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"docker")," containers need to be built beforehand")),(0,i.kt)("p",null,"You can skip here if you are using an elevated ",(0,i.kt)("a",{parentName:"p",href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token"},"Private Access Token"),". However, we don't recommend going down that path."),(0,i.kt)("p",null,"No force push or admin cherries branch protections for the following branches:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"main")," - required"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"alpha")," - optional, pre-release branch"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"beta")," - optional, pre-release branch"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"next")," - optional, next channel"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"next-major")," - optional, next major"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"vX[.X.X]")," - maintenance releases")),(0,i.kt)("p",null,"If you use more than the ",(0,i.kt)("inlineCode",{parentName:"p"},"main")," branch, optionally create an environment that limits where pushes can come from and enable the merge strategy."),(0,i.kt)("p",null,"We use ",(0,i.kt)("inlineCode",{parentName:"p"},"production")," in our examples; if you copy-paste them, you will find this new environment generated in your settings! \ud83c\udf55"),(0,i.kt)("h2",{id:"-github-actions-usage"},"\ud83e\uddea GitHub Actions Usage"),(0,i.kt)("p",null,"Since version 3, it has been possible to use ",(0,i.kt)("inlineCode",{parentName:"p"},"semantic-release")," without any trace of it or the OpenSauced configuration anywhere in the dependency tree."),(0,i.kt)("p",null,"Docker containers are pushed as part of the release, so they mirror the availability of ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," packages."),(0,i.kt)("p",null,"The simplest use case for a typical ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," package is almost zero install downtime from ",(0,i.kt)("inlineCode",{parentName:"p"},"ghcr")," and no more local tooling:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release container"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n\n - name: "\u267b\ufe0f cleanup"\n run: |\n echo ${{ env.RELEASE_TAG }}\n echo ${{ env.RELEASE_VERSION }}\n')),(0,i.kt)("p",null,"Marketplace actions should default to the major tag and are essentially more stable as we have to curate every release."),(0,i.kt)("p",null,"A more traditional approach, the only thing really different here is a minor pull overhead and using set outputs instead of environment variables:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ steps.semantic-release.outputs.release-tag }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: open-sauced/semantic-release-conventional-config@v3\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n\n - name: "\u267b\ufe0f cleanup"\n run: |\n echo ${{ steps.semantic-release.outputs.release-tag }}\n echo ${{ steps.semantic-release.outputs.release-version }}\n')),(0,i.kt)("h2",{id:"-npm-usage"},"\ud83d\udce6 ",(0,i.kt)("inlineCode",{parentName:"h2"},"npm")," Usage"),(0,i.kt)("p",null,"You can opt to use this package in your local tooling. Proceed as you would normally would, replacing ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," with your package manager of choice and install the package:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm install --save-dev @open-sauced/semantic-release-conventional-config\n")),(0,i.kt)("p",null,"The shareable config can then be configured in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration"}," ",(0,i.kt)("inlineCode",{parentName:"a"},"semantic-release")," configuration file"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "extends": "@open-sauced/semantic-release-conventional-config"\n}\n')),(0,i.kt)("p",null,"Now, all you need to do is create a release:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npx semantic-release\n")),(0,i.kt)("h2",{id:"-configuration"},"\ud83d\udd27 Configuration"),(0,i.kt)("p",null,"See each plugin official documentation for the required installation and configuration steps."),(0,i.kt)("h3",{id:"npm"},(0,i.kt)("inlineCode",{parentName:"h3"},"npm")),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"private")," to true in ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," if you want to disable ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," or change the scope of package using ",(0,i.kt)("inlineCode",{parentName:"p"},"publishConfig"),"."),(0,i.kt)("p",null,"Keep one of the ",(0,i.kt)("inlineCode",{parentName:"p"},"files")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"main")," keys in your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," accurate, depending on whether you are building a library or an application."),(0,i.kt)("p",null,"If you publish, make sure to also provide a valid ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN"),", as ",(0,i.kt)("inlineCode",{parentName:"p"},".npmrc")," authentication is ignored in our config!"),(0,i.kt)("h3",{id:"github-actions"},"GitHub Actions"),(0,i.kt)("p",null,"Unless you have an ",(0,i.kt)("inlineCode",{parentName:"p"},"action.yml")," present in your root folder, this module is not added to the release config."),(0,i.kt)("p",null,"If you have an ",(0,i.kt)("inlineCode",{parentName:"p"},"action.yml")," present, our config will attempt to adjust the container version to the newly pushed ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"docker")," tags."),(0,i.kt)("h3",{id:"docker"},"Docker"),(0,i.kt)("p",null,"Unless you have a ",(0,i.kt)("inlineCode",{parentName:"p"},"Dockerfile")," present in your root folder, this module is not added to the release config."),(0,i.kt)("p",null,"If you have a ",(0,i.kt)("inlineCode",{parentName:"p"},"Dockerfile")," present, our config will attempt to push to ",(0,i.kt)("inlineCode",{parentName:"p"},"ghcr.io"),"."),(0,i.kt)("h3",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"Using our configuration comes with some sensible defaults:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"DOCKER_USERNAME=$GITHUB_REPOSITORY_OWNER")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"DOCKER_PASSWORD=$GITHUB_TOKEN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'GIT_COMMITTER_NAME="open-sauced[bot]"')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'GIT_COMMITTER_EMAIL="63161813+open-sauced[bot]@users.noreply.github.com"')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GIT_AUTHOR_NAME")," - parsed from commit ",(0,i.kt)("inlineCode",{parentName:"li"},"$GITHUB_SHA")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GIT_AUTHOR_EMAIL")," - parsed from commit ",(0,i.kt)("inlineCode",{parentName:"li"},"$GITHUB_SHA"))),(0,i.kt)("p",null,"Feel free to change any of the above to whatever suits your purpose. Our motivation is to keep ",(0,i.kt)("inlineCode",{parentName:"p"},"GITHUB_TOKEN")," and/or ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN")," the only necessary requirements."),(0,i.kt)("p",null,"We are actively investigating ways to drop the two remaining variables as well!"),(0,i.kt)("h2",{id:"workflow-examples"},"Workflow Examples"),(0,i.kt)("h3",{id:"node-application"},"Node Application"),(0,i.kt)("p",null,"This example requires ",(0,i.kt)("inlineCode",{parentName:"p"},'"private": true,')," in your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," and simplifies the workflow to lightning-fast deployment:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\ude80 static app"\n run: npm run build\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n')),(0,i.kt)("h3",{id:"npm-library"},(0,i.kt)("inlineCode",{parentName:"h3"},"npm")," Library"),(0,i.kt)("p",null,"For ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," libraries, we need to set the environment URL manually and set a ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN")," environment variable. This also disables ",(0,i.kt)("inlineCode",{parentName:"p"},"docker builds"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: npm\n url: https://www.npmjs.com/package/@open-sauced/semantic-release-conventional-config/v/${{ env.RELEASE_VERSION }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n')),(0,i.kt)("p",null,"An up-to-date version of the example above is available at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/semantic-release-conventional-config/blob/main/.github/workflows/release.yml"},"@open-sauced/semantic-release-conventional-config"),"."),(0,i.kt)("h3",{id:"docker-image"},"Docker Image"),(0,i.kt)("p",null,"For ",(0,i.kt)("inlineCode",{parentName:"p"},"docker builds"),", it's best to build your node application in parallel with the container and re-use the artifact at a later stage:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n docker:\n name: Build container\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n\n - name: "\ud83d\udd27 setup buildx"\n uses: docker/setup-buildx-action@v1\n\n - name: "\ud83d\udd27 cache docker layers"\n uses: actions/cache@v2\n with:\n path: /tmp/.buildx-cache\n key: ${{ runner.os }}-buildx-${{ github.sha }}\n restore-keys: |\n ${{ runner.os }}-buildx-\n\n - name: "\ud83d\udd27 docker meta"\n id: meta\n uses: docker/metadata-action@v3\n with:\n images: ${{ github.repository }}\n tags: latest\n\n - name: "\ud83d\udce6 docker build"\n uses: docker/build-push-action@v2\n with:\n context: .\n tags: ${{ steps.meta.outputs.tags }}\n labels: ${{ steps.meta.outputs.labels }}\n outputs: type=docker,dest=/tmp/docker.tar\n push: false\n cache-from: type=gha, scope=${{ github.workflow }}\n cache-to: type=gha, scope=${{ github.workflow }}\n\n - name: "\ud83d\udcc2 docker artifacts"\n uses: actions/upload-artifact@v2\n with:\n name: docker\n path: /tmp/docker.tar\n\n build:\n name: Build application\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\udcca repository visualizer"\n id: diagram\n uses: githubocto/repo-visualizer@0.7.1\n with:\n excluded_paths: "node_modules,build,.storybook,.netlify,.github,npm-shrinkwap.json"\n output_file: "public/diagram.svg"\n should_push: false\n artifact_name: "diagram"\n\n - name: "\ud83d\ude80 static app"\n run: npm run build\n\n - name: "\ud83d\udcc2 production artifacts"\n uses: actions/upload-artifact@v2\n with:\n name: build\n path: build\n\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n name: Semantic release\n needs:\n - docker\n - build\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udcc2 download docker artifacts"\n uses: actions/download-artifact@v2\n with:\n name: docker\n path: /tmp\n\n - name: "\ud83d\udce6 load tag"\n run: |\n docker load --input /tmp/docker.tar\n docker image ls -a\n\n - name: "\ud83d\udcc2 download build artifacts"\n uses: actions/download-artifact@v2\n with:\n name: build\n path: /tmp/build\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n cleanup:\n name: Cleanup actions\n needs:\n - release\n runs-on: ubuntu-latest\n steps:\n - name: "\u267b\ufe0f remove build artifacts"\n uses: geekyeggo/delete-artifact@v1\n with:\n name: |\n build\n docker\n')),(0,i.kt)("p",null,"An up-to-date version of the example above is available at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/blob/main/.github/workflows/release.yml"},"open-sauced/open-sauced"),"."),(0,i.kt)("h3",{id:"pre-releases"},"Pre-Releases"),(0,i.kt)("p",null,"This workflow requires the creation of ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," protected branches while templating every commit to be conventional. It does not support squashing without creating extremely complex conflict resolution:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n - beta\n - alpha\n\njobs:\n release:\n environment:\n name: npm\n url: https://www.npmjs.com/package/open-sauced-semantic-config-test/v/${{ steps.release.outputs.version }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n')),(0,i.kt)("h2",{id:"faqs"},"FAQs"),(0,i.kt)("h3",{id:"which-assets-are-pushed-to-git"},"Which Assets are Pushed to Git?"),(0,i.kt)("p",null,"The following assets are added to git using ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/git"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "assets": [\n "LICENSE",\n "LICENSE.md",\n "COPYING",\n "COPYING.md",\n "CHANGELOG.md",\n "package.json",\n "package-lock.json",\n "npm-shrinkwrap.json",\n "public/diagram.svg",\n "action.yml"\n ]\n}\n')),(0,i.kt)("h3",{id:"what-is-the-commit-convention"},"What is the Commit Convention?"),(0,i.kt)("p",null,"The following commit rules are enforced by ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/commit-analyzer"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "preset": "conventionalcommits",\n "releaseRules": [\n { "type": "build", "release": "minor" },\n { "type": "ci", "release": "patch" },\n { "type": "docs", "release": "minor" },\n { "type": "style", "release": "patch" },\n { "type": "refactor", "release": "patch" },\n { "type": "test", "release": "patch" },\n { "type": "revert", "release": "patch" },\n { "type": "chore", "release": false }\n ],\n "parserOpts": {\n "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]\n }\n}\n')),(0,i.kt)("h3",{id:"how-to-enrich-the-static-distribution"},"How to Enrich the Static Distribution?"),(0,i.kt)("p",null,"The following assets are packed into the github release download using ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/github"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "assets": [\n {\n "path": "pack/*.tgz",\n "label": "Static distribution"\n }\n ]\n}\n')),(0,i.kt)("h3",{id:"how-to-start-using-pre-releases"},"How to Start Using Pre-Releases?"),(0,i.kt)("p",null,"Create the ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha")," and/or ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branches and protect them from being deleted or pushed directly by non-administrators."),(0,i.kt)("p",null,"Switch your branching strategy to ",(0,i.kt)("inlineCode",{parentName:"p"},"merge")," and enable conventional commits checking."),(0,i.kt)("p",null,"As described in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/semantic-release/semantic-release/tree/master/docs/recipes"},"semantic-releases recipes"),", you will have to resolve merge conflicts between ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"beta"),", and ",(0,i.kt)("inlineCode",{parentName:"p"},"main")," branches."),(0,i.kt)("h2",{id:"contributing"},"Contributing"),(0,i.kt)("p",null,"We're always happy to onboard people into open source!"),(0,i.kt)("p",null,"Check out the repository at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/semantic-release-conventional-config"},"@open-sauced/semantic-release-conventional-config"),". \u2764\ufe0f"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0f97bf69.c7dffe13.js b/assets/js/0f97bf69.c7dffe13.js deleted file mode 100644 index 094b58b0..00000000 --- a/assets/js/0f97bf69.c7dffe13.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4158],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>h});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var l=a.createContext({}),p=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},c=function(e){var n=p(e.components);return a.createElement(l.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=r(e,["components","mdxType","originalType","parentName"]),u=p(t),d=i,h=u["".concat(l,".").concat(d)]||u[d]||m[d]||o;return t?a.createElement(h,s(s({ref:n},c),{},{components:t})):a.createElement(h,s({ref:n},c))}));function h(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var o=t.length,s=new Array(o);s[0]=d;var r={};for(var l in n)hasOwnProperty.call(n,l)&&(r[l]=n[l]);r.originalType=e,r[u]="string"==typeof e?e:i,s[1]=r;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>p});var a=t(7462),i=(t(7294),t(3905));const o={id:"semantic-release",title:"@open-sauced/semantic-release-conventional-config",sidebar_label:"@open-sauced/semantic-release-conventional-config",keywords:["semantic release conventional config","open sauced semantic release","npm package for semantic release","semantic release best practices","semantic release shareable config","semantic release plugins and presets"]},s=void 0,r={unversionedId:"opensauced-packages/semantic-release",id:"opensauced-packages/semantic-release",title:"@open-sauced/semantic-release-conventional-config",description:"Description",source:"@site/docs/opensauced-packages/semantic-release.md",sourceDirName:"opensauced-packages",slug:"/opensauced-packages/semantic-release",permalink:"/opensauced-packages/semantic-release",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-packages/semantic-release.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"semantic-release",title:"@open-sauced/semantic-release-conventional-config",sidebar_label:"@open-sauced/semantic-release-conventional-config",keywords:["semantic release conventional config","open sauced semantic release","npm package for semantic release","semantic release best practices","semantic release shareable config","semantic release plugins and presets"]},sidebar:"docs",previous:{title:"@open-sauced/conventional-commit",permalink:"/opensauced-packages/conventional-commit"}},l={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"\ud83d\udda5\ufe0f Requirements",id:"\ufe0f-requirements",level:2},{value:"\ud83e\uddea GitHub Actions Usage",id:"-github-actions-usage",level:2},{value:"\ud83d\udce6 npm Usage",id:"-npm-usage",level:2},{value:"\ud83d\udd27 Configuration",id:"-configuration",level:2},{value:"npm",id:"npm",level:3},{value:"GitHub Actions",id:"github-actions",level:3},{value:"Docker",id:"docker",level:3},{value:"Environment Variables",id:"environment-variables",level:3},{value:"Workflow Examples",id:"workflow-examples",level:2},{value:"Node Application",id:"node-application",level:3},{value:"npm Library",id:"npm-library",level:3},{value:"Docker Image",id:"docker-image",level:3},{value:"Pre-Releases",id:"pre-releases",level:3},{value:"FAQs",id:"faqs",level:2},{value:"Which Assets are Pushed to Git?",id:"which-assets-are-pushed-to-git",level:3},{value:"What is the Commit Convention?",id:"what-is-the-commit-convention",level:3},{value:"How to Enrich the Static Distribution?",id:"how-to-enrich-the-static-distribution",level:3},{value:"How to Start Using Pre-Releases?",id:"how-to-start-using-pre-releases",level:3},{value:"Contributing",id:"contributing",level:2}],c={toc:p},u="wrapper";function m(e){let{components:n,...t}=e;return(0,i.kt)(u,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"description"},"Description"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,i.kt)("inlineCode",{parentName:"p"},"@open-sauced/semantic-release-conventional-config")," is designed to help ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," packages auto-release to ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," or ",(0,i.kt)("a",{parentName:"p",href:"https://ghcr.io"},(0,i.kt)("inlineCode",{parentName:"a"},"ghcr"))," registries while generating GitHub releases and changelog using conventional commit convention."),(0,i.kt)("p",null,"Version 2 supports alpha and beta pre-releases using corresponding branches."),(0,i.kt)("h2",{id:"dependencies"},"Dependencies"),(0,i.kt)("p",null,"This package uses the following modules:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/commit-analyzer"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/commit-analyzer"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/release-notes-generator"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/release-notes-generator"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/conventional-changelog/conventional-changelog"},(0,i.kt)("inlineCode",{parentName:"a"},"@conventional-changelog/conventional-changelog"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/changelog"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/changelog"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/npm"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/npm"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/google/semantic-release-replace-plugin"},(0,i.kt)("inlineCode",{parentName:"a"},"@google/semantic-release-replace-plugin"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/cbhq/semantic-release-license"},(0,i.kt)("inlineCode",{parentName:"a"},"@cbhq/semantic-release-license"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/git"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/git"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/github"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/github"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/eclass/semantic-release-docker"},(0,i.kt)("inlineCode",{parentName:"a"},"@eclass/semantic-release-docker"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/exec"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/exec"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/sindresorhus/execa"},(0,i.kt)("inlineCode",{parentName:"a"},"execa")))),(0,i.kt)("h2",{id:"\ufe0f-requirements"},"\ud83d\udda5\ufe0f Requirements"),(0,i.kt)("p",null,"Most important limitations are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GITHUB_TOKEN")," for everything"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NPM_TOKEN")," for public ",(0,i.kt)("inlineCode",{parentName:"li"},"npm")," library"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"docker")," containers need to be built beforehand")),(0,i.kt)("p",null,"You can skip here if you are using an elevated ",(0,i.kt)("a",{parentName:"p",href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token"},"Private Access Token"),". However, we don't recommend going down that path."),(0,i.kt)("p",null,"No force push or admin cherries branch protections for the following branches:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"main")," - required"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"alpha")," - optional, pre-release branch"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"beta")," - optional, pre-release branch"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"next")," - optional, next channel"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"next-major")," - optional, next major"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"vX[.X.X]")," - maintenance releases")),(0,i.kt)("p",null,"If you use more than the ",(0,i.kt)("inlineCode",{parentName:"p"},"main")," branch, optionally create an environment that limits where pushes can come from and enable the merge strategy."),(0,i.kt)("p",null,"We use ",(0,i.kt)("inlineCode",{parentName:"p"},"production")," in our examples; if you copy-paste them, you will find this new environment generated in your settings! \ud83c\udf55"),(0,i.kt)("h2",{id:"-github-actions-usage"},"\ud83e\uddea GitHub Actions Usage"),(0,i.kt)("p",null,"Since version 3, it has been possible to use ",(0,i.kt)("inlineCode",{parentName:"p"},"semantic-release")," without any trace of it or the OpenSauced configuration anywhere in the dependency tree."),(0,i.kt)("p",null,"Docker containers are pushed as part of the release, so they mirror the availability of ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," packages."),(0,i.kt)("p",null,"The simplest use case for a typical ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," package is almost zero install downtime from ",(0,i.kt)("inlineCode",{parentName:"p"},"ghcr")," and no more local tooling:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release container"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n\n - name: "\u267b\ufe0f cleanup"\n run: |\n echo ${{ env.RELEASE_TAG }}\n echo ${{ env.RELEASE_VERSION }}\n')),(0,i.kt)("p",null,"Marketplace actions should default to the major tag and are essentially more stable as we have to curate every release."),(0,i.kt)("p",null,"A more traditional approach, the only thing really different here is a minor pull overhead and using set outputs instead of environment variables:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ steps.semantic-release.outputs.release-tag }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: open-sauced/semantic-release-conventional-config@v3\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n\n - name: "\u267b\ufe0f cleanup"\n run: |\n echo ${{ steps.semantic-release.outputs.release-tag }}\n echo ${{ steps.semantic-release.outputs.release-version }}\n')),(0,i.kt)("h2",{id:"-npm-usage"},"\ud83d\udce6 ",(0,i.kt)("inlineCode",{parentName:"h2"},"npm")," Usage"),(0,i.kt)("p",null,"You can opt to use this package in your local tooling. Proceed as you would normally would, replacing ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," with your package manager of choice and install the package:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm install --save-dev @open-sauced/semantic-release-conventional-config\n")),(0,i.kt)("p",null,"The shareable config can then be configured in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration"}," ",(0,i.kt)("inlineCode",{parentName:"a"},"semantic-release")," configuration file"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "extends": "@open-sauced/semantic-release-conventional-config"\n}\n')),(0,i.kt)("p",null,"Now, all you need to do is create a release:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npx semantic-release\n")),(0,i.kt)("h2",{id:"-configuration"},"\ud83d\udd27 Configuration"),(0,i.kt)("p",null,"See each plugin official documentation for the required installation and configuration steps."),(0,i.kt)("h3",{id:"npm"},(0,i.kt)("inlineCode",{parentName:"h3"},"npm")),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"private")," to true in ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," if you want to disable ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," or change the scope of package using ",(0,i.kt)("inlineCode",{parentName:"p"},"publishConfig"),"."),(0,i.kt)("p",null,"Keep one of the ",(0,i.kt)("inlineCode",{parentName:"p"},"files")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"main")," keys in your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," accurate, depending on whether you are building a library or an application."),(0,i.kt)("p",null,"If you publish, make sure to also provide a valid ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN"),", as ",(0,i.kt)("inlineCode",{parentName:"p"},".npmrc")," authentication is ignored in our config!"),(0,i.kt)("h3",{id:"github-actions"},"GitHub Actions"),(0,i.kt)("p",null,"Unless you have an ",(0,i.kt)("inlineCode",{parentName:"p"},"action.yml")," present in your root folder, this module is not added to the release config."),(0,i.kt)("p",null,"If you have an ",(0,i.kt)("inlineCode",{parentName:"p"},"action.yml")," present, our config will attempt to adjust the container version to the newly pushed ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"docker")," tags."),(0,i.kt)("h3",{id:"docker"},"Docker"),(0,i.kt)("p",null,"Unless you have a ",(0,i.kt)("inlineCode",{parentName:"p"},"Dockerfile")," present in your root folder, this module is not added to the release config."),(0,i.kt)("p",null,"If you have a ",(0,i.kt)("inlineCode",{parentName:"p"},"Dockerfile")," present, our config will attempt to push to ",(0,i.kt)("inlineCode",{parentName:"p"},"ghcr.io"),"."),(0,i.kt)("h3",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"Using our configuration comes with some sensible defaults:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"DOCKER_USERNAME=$GITHUB_REPOSITORY_OWNER")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"DOCKER_PASSWORD=$GITHUB_TOKEN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'GIT_COMMITTER_NAME="open-sauced[bot]"')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'GIT_COMMITTER_EMAIL="63161813+open-sauced[bot]@users.noreply.github.com"')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GIT_AUTHOR_NAME")," - parsed from commit ",(0,i.kt)("inlineCode",{parentName:"li"},"$GITHUB_SHA")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GIT_AUTHOR_EMAIL")," - parsed from commit ",(0,i.kt)("inlineCode",{parentName:"li"},"$GITHUB_SHA"))),(0,i.kt)("p",null,"Feel free to change any of the above to whatever suits your purpose. Our motivation is to keep ",(0,i.kt)("inlineCode",{parentName:"p"},"GITHUB_TOKEN")," and/or ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN")," the only necessary requirements."),(0,i.kt)("p",null,"We are actively investigating ways to drop the two remaining variables as well!"),(0,i.kt)("h2",{id:"workflow-examples"},"Workflow Examples"),(0,i.kt)("h3",{id:"node-application"},"Node Application"),(0,i.kt)("p",null,"This example requires ",(0,i.kt)("inlineCode",{parentName:"p"},'"private": true,')," in your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," and simplifies the workflow to lightning-fast deployment:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\ude80 static app"\n run: npm run build\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n')),(0,i.kt)("h3",{id:"npm-library"},(0,i.kt)("inlineCode",{parentName:"h3"},"npm")," Library"),(0,i.kt)("p",null,"For ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," libraries, we need to set the environment URL manually and set a ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN")," environment variable. This also disables ",(0,i.kt)("inlineCode",{parentName:"p"},"docker builds"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: npm\n url: https://www.npmjs.com/package/@open-sauced/semantic-release-conventional-config/v/${{ env.RELEASE_VERSION }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n')),(0,i.kt)("p",null,"An up-to-date version of the example above is available at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/semantic-release-conventional-config/blob/main/.github/workflows/release.yml"},"@open-sauced/semantic-release-conventional-config"),"."),(0,i.kt)("h3",{id:"docker-image"},"Docker Image"),(0,i.kt)("p",null,"For ",(0,i.kt)("inlineCode",{parentName:"p"},"docker builds"),", it's best to build your node application in parallel with the container and re-use the artifact at a later stage:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n docker:\n name: Build container\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n\n - name: "\ud83d\udd27 setup buildx"\n uses: docker/setup-buildx-action@v1\n\n - name: "\ud83d\udd27 cache docker layers"\n uses: actions/cache@v2\n with:\n path: /tmp/.buildx-cache\n key: ${{ runner.os }}-buildx-${{ github.sha }}\n restore-keys: |\n ${{ runner.os }}-buildx-\n\n - name: "\ud83d\udd27 docker meta"\n id: meta\n uses: docker/metadata-action@v3\n with:\n images: ${{ github.repository }}\n tags: latest\n\n - name: "\ud83d\udce6 docker build"\n uses: docker/build-push-action@v2\n with:\n context: .\n tags: ${{ steps.meta.outputs.tags }}\n labels: ${{ steps.meta.outputs.labels }}\n outputs: type=docker,dest=/tmp/docker.tar\n push: false\n cache-from: type=gha, scope=${{ github.workflow }}\n cache-to: type=gha, scope=${{ github.workflow }}\n\n - name: "\ud83d\udcc2 docker artifacts"\n uses: actions/upload-artifact@v2\n with:\n name: docker\n path: /tmp/docker.tar\n\n build:\n name: Build application\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\udcca repository visualizer"\n id: diagram\n uses: githubocto/repo-visualizer@0.7.1\n with:\n excluded_paths: "node_modules,build,.storybook,.netlify,.github,npm-shrinkwap.json"\n output_file: "public/diagram.svg"\n should_push: false\n artifact_name: "diagram"\n\n - name: "\ud83d\ude80 static app"\n run: npm run build\n\n - name: "\ud83d\udcc2 production artifacts"\n uses: actions/upload-artifact@v2\n with:\n name: build\n path: build\n\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n name: Semantic release\n needs:\n - docker\n - build\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udcc2 download docker artifacts"\n uses: actions/download-artifact@v2\n with:\n name: docker\n path: /tmp\n\n - name: "\ud83d\udce6 load tag"\n run: |\n docker load --input /tmp/docker.tar\n docker image ls -a\n\n - name: "\ud83d\udcc2 download build artifacts"\n uses: actions/download-artifact@v2\n with:\n name: build\n path: /tmp/build\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n cleanup:\n name: Cleanup actions\n needs:\n - release\n runs-on: ubuntu-latest\n steps:\n - name: "\u267b\ufe0f remove build artifacts"\n uses: geekyeggo/delete-artifact@v1\n with:\n name: |\n build\n docker\n')),(0,i.kt)("p",null,"An up-to-date version of the example above is available at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/blob/main/.github/workflows/release.yml"},"open-sauced/open-sauced"),"."),(0,i.kt)("h3",{id:"pre-releases"},"Pre-Releases"),(0,i.kt)("p",null,"This workflow requires the creation of ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," protected branches while templating every commit to be conventional. It does not support squashing without creating extremely complex conflict resolution:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n - beta\n - alpha\n\njobs:\n release:\n environment:\n name: npm\n url: https://www.npmjs.com/package/open-sauced-semantic-config-test/v/${{ steps.release.outputs.version }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n')),(0,i.kt)("h2",{id:"faqs"},"FAQs"),(0,i.kt)("h3",{id:"which-assets-are-pushed-to-git"},"Which Assets are Pushed to Git?"),(0,i.kt)("p",null,"The following assets are added to git using ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/git"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "assets": [\n "LICENSE",\n "LICENSE.md",\n "COPYING",\n "COPYING.md",\n "CHANGELOG.md",\n "package.json",\n "package-lock.json",\n "npm-shrinkwrap.json",\n "public/diagram.svg",\n "action.yml"\n ]\n}\n')),(0,i.kt)("h3",{id:"what-is-the-commit-convention"},"What is the Commit Convention?"),(0,i.kt)("p",null,"The following commit rules are enforced by ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/commit-analyzer"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "preset": "conventionalcommits",\n "releaseRules": [\n { "type": "build", "release": "minor" },\n { "type": "ci", "release": "patch" },\n { "type": "docs", "release": "minor" },\n { "type": "style", "release": "patch" },\n { "type": "refactor", "release": "patch" },\n { "type": "test", "release": "patch" },\n { "type": "revert", "release": "patch" },\n { "type": "chore", "release": false }\n ],\n "parserOpts": {\n "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]\n }\n}\n')),(0,i.kt)("h3",{id:"how-to-enrich-the-static-distribution"},"How to Enrich the Static Distribution?"),(0,i.kt)("p",null,"The following assets are packed into the github release download using ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/github"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "assets": [\n {\n "path": "pack/*.tgz",\n "label": "Static distribution"\n }\n ]\n}\n')),(0,i.kt)("h3",{id:"how-to-start-using-pre-releases"},"How to Start Using Pre-Releases?"),(0,i.kt)("p",null,"Create the ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha")," and/or ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branches and protect them from being deleted or pushed directly by non-administrators."),(0,i.kt)("p",null,"Switch your branching strategy to ",(0,i.kt)("inlineCode",{parentName:"p"},"merge")," and enable conventional commits checking."),(0,i.kt)("p",null,"As described in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/semantic-release/semantic-release/tree/master/docs/recipes"},"semantic-releases recipes"),", you will have to resolve merge conflicts between ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"beta"),", and ",(0,i.kt)("inlineCode",{parentName:"p"},"main")," branches."),(0,i.kt)("h2",{id:"contributing"},"Contributing"),(0,i.kt)("p",null,"We're always happy to onboard people into open source!"),(0,i.kt)("p",null,"Check out the repository at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/semantic-release-conventional-config"},"@open-sauced/semantic-release-conventional-config"),". \u2764\ufe0f"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/163a28f8.634a5fc7.js b/assets/js/163a28f8.634a5fc7.js deleted file mode 100644 index 3492e8c5..00000000 --- a/assets/js/163a28f8.634a5fc7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[2610],{3905:(e,t,i)=>{i.d(t,{Zo:()=>c,kt:()=>d});var o=i(7294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,o)}return i}function a(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var l=o.createContext({}),u=function(e){var t=o.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},c=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},g=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(i),g=n,d=h["".concat(l,".").concat(g)]||h[g]||p[g]||r;return i?o.createElement(d,a(a({ref:t},c),{},{components:i})):o.createElement(d,a({ref:t},c))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=i.length,a=new Array(r);a[0]=g;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:n,a[1]=s;for(var u=2;u{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var o=i(7462),n=(i(7294),i(3905));const r={id:"maintainers-guide-to-open-sauced",title:"Maintainers Guide to OpenSauced",sidebar_label:"Maintainers Guide to OpenSauced",keywords:["maintainers","guides","open source maintainers guide","open source maintainer","Maintainers Guide to OpenSauced"]},a=void 0,s={unversionedId:"maintainers/maintainers-guide-to-open-sauced",id:"maintainers/maintainers-guide-to-open-sauced",title:"Maintainers Guide to OpenSauced",description:"Introduction to OpenSauced for Maintainers",source:"@site/docs/maintainers/maintainers-guide.md",sourceDirName:"maintainers",slug:"/maintainers/maintainers-guide-to-open-sauced",permalink:"/maintainers/maintainers-guide-to-open-sauced",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/maintainers-guide.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"maintainers-guide-to-open-sauced",title:"Maintainers Guide to OpenSauced",sidebar_label:"Maintainers Guide to OpenSauced",keywords:["maintainers","guides","open source maintainers guide","open source maintainer","Maintainers Guide to OpenSauced"]},sidebar:"docs",previous:{title:"Students Guide to OpenSauced",permalink:"/opensauced-guides/students-guide/"},next:{title:"Understanding Repo Insights Data",permalink:"/maintainers/understanding-repo-insights"}},l={},u=[{value:"Introduction to OpenSauced for Maintainers",id:"introduction-to-opensauced-for-maintainers",level:2},{value:"Getting Started",id:"getting-started",level:2},{value:"Your Workspace: Streamlining Open Source Project Management",id:"your-workspace-streamlining-open-source-project-management",level:2},{value:"Creating a New Workspace",id:"creating-a-new-workspace",level:3},{value:"Adding Repositories to Your Workspace",id:"adding-repositories-to-your-workspace",level:3},{value:"Navigating Your Workspace",id:"navigating-your-workspace",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard",level:4},{value:"Repository Insights: Connecting Your Repositories",id:"repository-insights-connecting-your-repositories",level:2},{value:"Creating a New Repository Insight Page",id:"creating-a-new-repository-insight-page",level:3},{value:"Using Your Repository Insights Page",id:"using-your-repository-insights-page",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard-1",level:4},{value:"Contributors",id:"contributors",level:4},{value:"Activity",id:"activity",level:4},{value:"Contributor Insights: Connecting with Contributors",id:"contributor-insights-connecting-with-contributors",level:2},{value:"Why Create a Contributor Insight Page?",id:"why-create-a-contributor-insight-page",level:3},{value:"Creating a New Contributor Insight Page",id:"creating-a-new-contributor-insight-page",level:3},{value:"Using Your Contributor Insight Page",id:"using-your-contributor-insight-page",level:2},{value:"Overview",id:"overview",level:3},{value:"Activity",id:"activity-1",level:3},{value:"Highlights",id:"highlights",level:3},{value:"Highlights: Connecting and Recognizing Contributions",id:"highlights-connecting-and-recognizing-contributions",level:2},{value:"Creating a New Highlight",id:"creating-a-new-highlight",level:3},{value:"Writing an Effective Highlight",id:"writing-an-effective-highlight",level:3},{value:"Highlighting Issues",id:"highlighting-issues",level:4},{value:"Highlighting PRs",id:"highlighting-prs",level:4},{value:"Highlighting Dev.to Blog Posts",id:"highlighting-devto-blog-posts",level:4}],c={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"introduction-to-opensauced-for-maintainers"},"Introduction to OpenSauced for Maintainers"),(0,n.kt)("p",null,"OpenSauced is a platform dedicated to empowering maintainers and redefining open source contributions. We offer a GitHub-powered dashboard for tracking contributions and gaining insights into your open source projects. You can create a ",(0,n.kt)("a",{parentName:"p",href:"#your-workspace-streamlining-open-source-project-management"},"Workspace")," to collaborate with your team and customize your ",(0,n.kt)("a",{parentName:"p",href:"#repository-insights-connecting-your-repositories"},"Repository Insights")," and ",(0,n.kt)("a",{parentName:"p",href:"#contributor-insights-connecting-with-contributors"},"Contributor Insights")," with the repositories you choose and the contributors you want to see."),(0,n.kt)("h2",{id:"getting-started"},"Getting Started"),(0,n.kt)("p",null,"To get started, you will need to create an account on OpenSauced. You can do this by visiting the ",(0,n.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza"},"app.opensauced.pizza"),' and clicking the "Connect with GitHub" button. You will be prompted to sign in with your GitHub account. Once you have signed in, you will be redirected to your Workspace.'),(0,n.kt)("h2",{id:"your-workspace-streamlining-open-source-project-management"},"Your Workspace: Streamlining Open Source Project Management"),(0,n.kt)("p",null,"When you're working with a team, managing multiple projects or even an assortment of repositories within a single project can become overwhelming, especially as you try to keep everyone up-to-date on key information that impacts your projects. Understanding the direction and value of your project can be challenging. To navigate these challenges effectively, you can use Workspaces to:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Understand your project at a high level"),": Being able to look at all your repositories and understand them at a high level makes it easier for you to share this information, collaborate with others, and understand where your projects stand in terms of health."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Collaborate and create transparency with your team"),": Understanding the activity for all of your projects equips you to make decisions as a team, set goals for your projects, and understand what brings the most value to those using your project. "),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Streamline contributor engagement"),": Having a high level understanding of your project is a good step in understanding your project\u2019s value, but really understanding what\u2019s happening beneath the surface is the next step in being able to assess project health, growth, and the contributor community. "),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Measure and share success"),": Without insight into your project's activity level, health, and contributor community, it can be a challenge to show the value of your projects. Having real-time analytics on your projects can help you to highlight your key achievements, recognize the impact of your contributors, and communicate the hard work that\u2019s been put into your projects.")),(0,n.kt)("p",null,"Workspaces is a feature designed to provide maintainers and teams with a centralized platform for organizing, tracking, and analyzing their open source activity. Workspaces gives you a holistic view of project health, team collaboration, and contributor engagement."),(0,n.kt)("h3",{id:"creating-a-new-workspace"},"Creating a New Workspace"),(0,n.kt)("p",null,"To create a workspace, start by accessing the ",(0,n.kt)("strong",{parentName:"p"},"Workspace switcher")," in the sidebar. From there, you can create a new workspace or view an existing one."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"workspace switcher",src:i(7281).Z,width:"1877",height:"888"})),(0,n.kt)("br",null),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},'Whenever you select "Home", you\'ll be taken to the last workspace you opened.')),(0,n.kt)("h3",{id:"adding-repositories-to-your-workspace"},"Adding Repositories to Your Workspace"),(0,n.kt)("p",null,"If you're creating a new workspace, you'll have the option to add repositories at the time of creation."),(0,n.kt)("p",null,'Start by creating a workspace name, then click "Add repositories." You\'ll have three options for adding repositories:'),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Search for Repositories"),": Use our search tool by adding an organization name, followed by the repository name, and add them to your workspace."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Import a GitHub Organization"),": Connect to your GitHub organizations to create a workspace from an organization. (If you're having trouble with this, see the \"",(0,n.kt)("a",{parentName:"li",href:"/welcome/faqs#sync-your-github-team"},"Sync Your GitHub Team"),'" section in our FAQs.)'),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Import Repositories"),": Paste a list of repositories to add to your workspace.")),(0,n.kt)("p",null,"Once your repositories are added, you'll be able to see them in your repository dashboard. You can also edit your workspace to add or remove repositories anytime."),(0,n.kt)("h3",{id:"navigating-your-workspace"},"Navigating Your Workspace"),(0,n.kt)("p",null,"Once your repositories are connected, you'll enter your Workspace dashboard. In your workspace dashboards, you can create, view, and manage your workspaces."),(0,n.kt)("h4",{id:"repositories-dashboard"},"Repositories Dashboard"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"Workspaces",src:i(4255).Z,width:"3200",height:"1800"})),(0,n.kt)("p",null,"Within the repositories dashboard, you can view the following metrics, which are over a period of thirty days by default:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Pull Requests"),": This includes the total opened and merged pull requests for the repositories included in your workspace, as well as the velocity of pull requests being merged."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Issues"),": This includes the total opened and closed issues for the repositories included in your workspace, as well as the velocity of issues being closed."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Engagement"),": This includes the total stars, forks, and activity ratio for the repositories included in your workspace.")),(0,n.kt)("p",null,"Using Workspaces is a new way of approaching open source project management. By centralizing the oversight of your projects and facilitating team collaboration, Workspaces help you to make informed decisions, prioritize effectively, and foster a thriving open source community."),(0,n.kt)("p",null,"Beyond workspaces, you may want to get insights into other repositories and contributors to help you understand the health and growth of your projects. One way to do that is through Repository Insights."),(0,n.kt)("h2",{id:"repository-insights-connecting-your-repositories"},"Repository Insights: Connecting Your Repositories"),(0,n.kt)("p",null,"OpenSauced Repository Insights provides maintainers with a visual representation of their project's health and contributor engagement. It offers real-time data and analytics to understand contribution patterns, identify key contributors, and measure the project's growth. Repository Insights can help you assess team activity, understand when bottlenecks occur, identify where resource allocation is needed, plan and identify key contributors, understand alumni contributors, or spot emerging trends."),(0,n.kt)("p",null,"The Repository Insights feature allows you to:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"track the contributions of a specific team, a specific repository, or a group of repositories,"),(0,n.kt)("li",{parentName:"ul"},"view the number of PRs that are open, closed, in draft, and merged,"),(0,n.kt)("li",{parentName:"ul"},"view the average number of days it takes for a PR to be merged (PR velocity),"),(0,n.kt)("li",{parentName:"ul"},"identify the top contributors to your project,"),(0,n.kt)("li",{parentName:"ul"},"identify the current activity level and trends in the activity of your contributors.")),(0,n.kt)("h3",{id:"creating-a-new-repository-insight-page"},"Creating a New Repository Insight Page"),(0,n.kt)("p",null,'To connect and track your repositories, click the "+" next to "Insights" in the sidebar, then select "New Repository Insight." You will be redirected to a page where you can create your new Repository Insight Page.'),(0,n.kt)("p",null,"There are two ways to add repositories to your Repository Insight Page:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Sync GitHub organization"),". Syncing your GitHub organization is a good idea for someone who seeks a comprehensive, unified view of your organization's open source project activities and trends, enabling streamlined management, strategic decision-making, and efficient allocation of resources across multiple repositories."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Connect individual repositories"),". Connecting individual repositories is a good idea for someone who wants to track the contributions of a specific repository or group of repositories. For example, you might want to track projects you maintain that are not under the same organization, or you may want to track projects that align with your team's objectives.")),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"sync team gif",src:i(2615).Z,width:"1174",height:"948"})),(0,n.kt)("h3",{id:"using-your-repository-insights-page"},"Using Your Repository Insights Page"),(0,n.kt)("p",null,"Once you have connected your repositories, you will be redirected to your Repository Insight Page. Here, you will see a dashboard with an overview of the repositories and the contributors who have contributed to them."),(0,n.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,n.kt)("h4",{id:"repositories-dashboard-1"},"Repositories Dashboard"),(0,n.kt)("p",null,"This tab allows you to view more detailed information on each repository, including activity levels, PR overview, PR velocity, spam PRs, contributors, and activity stats over the last 30 days."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"To learn and understand more about the data provided, see ",(0,n.kt)("a",{parentName:"p",href:"/maintainers/understanding-repo-insights"},"Understanding Repository Insights Data"),".")),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"repositories tab",src:i(7224).Z,width:"1148",height:"796"})),(0,n.kt)("h4",{id:"contributors"},"Contributors"),(0,n.kt)("p",null,'The "Contributors" tab allows you to view more detailed information on each contributor, including their activity levels, the number of repositories they contributed to, the date of their last contribution, their most used language, their time zone, the number of contributions, and their activity stats over the last 30 days.'),(0,n.kt)("p",null,"You can select and add your contributors to a ",(0,n.kt)("a",{parentName:"p",href:"#contributor-insights-connecting-with-contributors"},"Contributor Insight Page")," to learn more about them."),(0,n.kt)("p",null,"There are two ways to add selected contributors to a Contributor Insight Page:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Create a new list."),(0,n.kt)("li",{parentName:"ol"},"Add them to an existing list.")),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"contributors insight list",src:i(8967).Z,width:"1212",height:"628"})),(0,n.kt)("h4",{id:"activity"},"Activity"),(0,n.kt)("p",null,"The \"Activity\" tab shows a graph of the last time each contributor created their PR and how many lines of code they've touched. It also provides more detailed information on each contributor when you hover over their image, including their latest PRs and repositories they've contributed to. Clicking their image will bring you to their profile on OpenSauced."),(0,n.kt)("p",null,"You can use the information in this tab to help you learn about their engagement and general interests. It will be helpful if you want to collaborate with them or consider recruiting a maintainer for your project."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"activity graph",src:i(8517).Z,width:"1592",height:"791"})),(0,n.kt)("h2",{id:"contributor-insights-connecting-with-contributors"},"Contributor Insights: Connecting with Contributors"),(0,n.kt)("p",null,"OpenSauced Contributor Insights feature allows you to categorize, monitor, and analyze various groups of contributors. You can use Contributor Insights to track the contributions of a specific team, a specific repository, or a group of repositories. This feature offers granular insights into each contributor's activities and contributions, helping maintainers to track individual contribution histories, identify active engagement, recognize new or alumni contributors, and compare the performance of different contributors."),(0,n.kt)("p",null,"The Contributor Insights features allow you to:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"track the commits and PRs of the contributors on your list,"),(0,n.kt)("li",{parentName:"ul"},"filter your contributors by their activity level, including most active, new, and alumni,"),(0,n.kt)("li",{parentName:"ul"},"view the repositories your contributors have contributed to, the top programming languages they've used, and their time zones.")),(0,n.kt)("h3",{id:"why-create-a-contributor-insight-page"},"Why Create a Contributor Insight Page?"),(0,n.kt)("p",null,"There are many reasons to create a Contributor Insight Page, but here's some inspiration to get you started:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Interacting contributors"),": Keep tabs on contributors actively interacting with your repository."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Organization's developers"),": Monitor the contributions and performance of your internal team."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"VIP contributors"),": Highlight and track contributors you've identified as key maintainers or significant contributors."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Sales leads"),": Identify contributors whose engagement could potentially be turned into sales opportunities."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Potential hires"),": Observe contributors who exhibit skill and commitment, making them prime candidates for hiring."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Alumni contributors"),": Keep an eye on contributors who have decreased their engagement or left the project.")),(0,n.kt)("h3",{id:"creating-a-new-contributor-insight-page"},"Creating a New Contributor Insight Page"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},'Click the "+" next to "Insights" in the sidebar.')),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},'Click "New Contributor Insight." You will be redirected to a page where you can create your new Contributor Insight Page.'),(0,n.kt)("p",{parentName:"li"},(0,n.kt)("img",{alt:"New Contributor Insight Page",src:i(7472).Z,width:"882",height:"728"}))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Give your page a name.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Add contributors to your page by searching for their GitHub username, syncing your GitHub Team, or importing your GitHub Following.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Once your page is created, you can edit and choose to make it public or private. By default, it is set to public. To create a private page, you can upgrade your account to a paid plan."),(0,n.kt)("p",{parentName:"li"},(0,n.kt)("img",{alt:"team sync gif",src:i(3267).Z,width:"1218",height:"1006"})))),(0,n.kt)("h2",{id:"using-your-contributor-insight-page"},"Using Your Contributor Insight Page"),(0,n.kt)("p",null,"Once you have created your page, you will be redirected to your Contributor Insight Page. Here, you will see a dashboard with an overview of the contributors."),(0,n.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,n.kt)("h3",{id:"overview"},"Overview"),(0,n.kt)("p",null,'The "Overview" tab gives you a high-level view of the contributors in your Contributor Insight Page, including the total number of commits in the last 30 days and the types of contributors: ',(0,n.kt)("a",{parentName:"p",href:"/welcome/glossary/#active-contributors"},"Active"),", ",(0,n.kt)("a",{parentName:"p",href:"/welcome/glossary#new-contributors"},"New"),", and ",(0,n.kt)("a",{parentName:"p",href:"/welcome/glossary#alumni-contributors"},"Alumni"),"."),(0,n.kt)("h3",{id:"activity-1"},"Activity"),(0,n.kt)("p",null,'The "Activity" tab gives you a graph view with more detailed information on each contributor, including the type of activity, repositories they\'ve contributed to, and how they compare to each other.'),(0,n.kt)("p",null,"You can filter your Contributor Insight Page by All Contributors, Active Contributors, New Contributors, and Alumni Contributors."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"list graph",src:i(7392).Z,width:"1147",height:"731"})),(0,n.kt)("h3",{id:"highlights"},"Highlights"),(0,n.kt)("p",null,'The "Highlights" tab gives you a list of the highlights that the contributors listed on your page have created. This is a great way to see what other contributors are up to and to show them support.'),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"To learn and understand more about the data provided, see ",(0,n.kt)("a",{parentName:"p",href:"/maintainers/understanding-contribs-insights"},"Understanding Contributor Insights Data"),".")),(0,n.kt)("h2",{id:"highlights-connecting-and-recognizing-contributions"},"Highlights: Connecting and Recognizing Contributions"),(0,n.kt)("p",null,"Leveraging OpenSauced's Highlights feature is a great way for maintainers to recognize and showcase the valuable contributions made to your open source projects, curate and share key achievements, contributions, and milestones, and bring visibility to the hard work of your community."),(0,n.kt)("p",null,"Highlights can be used to:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"publicize issues on your repository that you'd like to match with contributors,"),(0,n.kt)("li",{parentName:"ul"},"share Dev.to blog posts you've written,"),(0,n.kt)("li",{parentName:"ul"},"celebrate PRs for your project.")),(0,n.kt)("h3",{id:"creating-a-new-highlight"},"Creating a New Highlight"),(0,n.kt)("p",null,"There are two ways to create a new highlight:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},'After clicking the "Highlights" tab in the top navigation, click the input that says "Post a highlight to show your work!"')),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},'From your profile, click the input that says "Post a highlight to show your work!"'))),(0,n.kt)("p",null,"After you've clicked the input, you'll see a form that allows you to create a new highlight."),(0,n.kt)("p",null,"There are two ways to create a highlight:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Paste the URL to your PR, issue, or Dev.to blog post (shown in blue below)."),(0,n.kt)("li",{parentName:"ol"},"Choose from a list of suggestions (shown in orange below).")),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"highlight suggestions",src:i(4173).Z,width:"626",height:"633"})),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"If you're adding a blog post, you'll need to associate it to a repository by clicking the \"Add a repo\" button.")),(0,n.kt)("p",null,"Finally, it's time to add the details of your highlight. You can add a description yourself or use the auto-summarize function to generate a description."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"gif of creating a highlight",src:i(7352).Z,width:"2294",height:"1066"})),(0,n.kt)("h3",{id:"writing-an-effective-highlight"},"Writing an Effective Highlight"),(0,n.kt)("p",null,"Writing an effective highlight is key to attracting contributors to your project. Here are some tips to help you write an effective highlight:"),(0,n.kt)("h4",{id:"highlighting-issues"},"Highlighting Issues"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Focus on the problem solved"),": Begin by briefly describing the problem or challenge the issue addresses. This sets the context for why it was important."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Acknowledge contributor(s)"),": Mention the contributor(s) who reported or worked on the issue, recognizing their effort."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Impact statement"),": Explain how resolving this issue benefits the project, such as improving functionality, user experience, or security.")),(0,n.kt)("h4",{id:"highlighting-prs"},"Highlighting PRs"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Summarize the changes"),": Start with a clear summary of what the PR achieves. This could be a new feature, bug fix, or enhancement."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Credit the contributors"),": Acknowledge everyone who contributed to the PR, including reviewers."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Highlight the value"),": Explain the value of these changes to the project or its users. For instance, how it improves performance, adds a requested feature, or simplifies the codebase.")),(0,n.kt)("h4",{id:"highlighting-devto-blog-posts"},"Highlighting Dev.to Blog Posts"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Capture the essence"),": Begin with an interesting blog post summary, capturing the main theme or message."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Discuss the relevance"),": Explain why this blog post is important for your open source project or community. Is it about a major update, a community event, or sharing best practices?"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Engage with a call-to-action"),": Encourage readers to engage with the post, whether by reading, commenting, or sharing their thoughts on the topic.")))}p.isMDXComponent=!0},7352:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/highlight-e3a2da2446fe91467a31d225755bf40a.gif"},2615:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/team-sync-insights-d4d7794d5e28b72ffb375595c988cd37.gif"},3267:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/team-sync-09e7e2ab7b54fae335f5b4c40cce94b1.gif"},8517:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/activity-repos-insights-3734baf3ab38356a4de96d43dde41a3d.png"},7472:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/contrib-insight-new-f821e7b17235b6c7ea7d7d1dedf9573b.png"},8967:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/contributors-insights-1bc09dd6a32c3a16eba8b63ec351157f.png"},4173:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/highlights-fcc750f036bb2ea7c11166c8338d7f6c.png"},7392:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/list-graph-a730e101fea2e18df0d76faed967f4e6.png"},7224:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/repos-insights-2db5d8c668cee2f528f47ae986d664c7.png"},7281:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/workspace-switcher-b2400ec5c309a762f822268b44779930.png"},4255:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/workspace-644e59bed496d2a0df7502aaa833129e.png"}}]); \ No newline at end of file diff --git a/assets/js/163a28f8.b2562646.js b/assets/js/163a28f8.b2562646.js new file mode 100644 index 00000000..1d02c5dc --- /dev/null +++ b/assets/js/163a28f8.b2562646.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[2610],{3905:(e,t,i)=>{i.d(t,{Zo:()=>c,kt:()=>d});var o=i(7294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,o)}return i}function a(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var l=o.createContext({}),u=function(e){var t=o.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},c=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},g=o.forwardRef((function(e,t){var i=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(i),g=n,d=h["".concat(l,".").concat(g)]||h[g]||p[g]||r;return i?o.createElement(d,a(a({ref:t},c),{},{components:i})):o.createElement(d,a({ref:t},c))}));function d(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=i.length,a=new Array(r);a[0]=g;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:n,a[1]=s;for(var u=2;u{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var o=i(7462),n=(i(7294),i(3905));const r={id:"maintainers-guide-to-open-sauced",title:"Maintainers Guide to OpenSauced",sidebar_label:"Maintainers Guide to OpenSauced",keywords:["maintainers","guides","open source maintainers guide","open source maintainer","Maintainers Guide to OpenSauced"]},a=void 0,s={unversionedId:"maintainers/maintainers-guide-to-open-sauced",id:"maintainers/maintainers-guide-to-open-sauced",title:"Maintainers Guide to OpenSauced",description:"Introduction to OpenSauced for Maintainers",source:"@site/docs/maintainers/maintainers-guide.md",sourceDirName:"maintainers",slug:"/maintainers/maintainers-guide-to-open-sauced",permalink:"/maintainers/maintainers-guide-to-open-sauced",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/maintainers-guide.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"maintainers-guide-to-open-sauced",title:"Maintainers Guide to OpenSauced",sidebar_label:"Maintainers Guide to OpenSauced",keywords:["maintainers","guides","open source maintainers guide","open source maintainer","Maintainers Guide to OpenSauced"]},sidebar:"docs",previous:{title:"Students Guide to OpenSauced",permalink:"/opensauced-guides/students-guide/"},next:{title:"Understanding Repo Insights Data",permalink:"/maintainers/understanding-repo-insights"}},l={},u=[{value:"Introduction to OpenSauced for Maintainers",id:"introduction-to-opensauced-for-maintainers",level:2},{value:"Getting Started",id:"getting-started",level:2},{value:"Your Workspace: Streamlining Open Source Project Management",id:"your-workspace-streamlining-open-source-project-management",level:2},{value:"Creating a New Workspace",id:"creating-a-new-workspace",level:3},{value:"Adding Repositories to Your Workspace",id:"adding-repositories-to-your-workspace",level:3},{value:"Navigating Your Workspace",id:"navigating-your-workspace",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard",level:4},{value:"Repository Insights: Connecting Your Repositories",id:"repository-insights-connecting-your-repositories",level:2},{value:"Creating a New Repository Insight Page",id:"creating-a-new-repository-insight-page",level:3},{value:"Using Your Repository Insights Page",id:"using-your-repository-insights-page",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard-1",level:4},{value:"Contributors",id:"contributors",level:4},{value:"Activity",id:"activity",level:4},{value:"Contributor Insights: Connecting with Contributors",id:"contributor-insights-connecting-with-contributors",level:2},{value:"Why Create a Contributor Insight Page?",id:"why-create-a-contributor-insight-page",level:3},{value:"Creating a New Contributor Insight Page",id:"creating-a-new-contributor-insight-page",level:3},{value:"Using Your Contributor Insight Page",id:"using-your-contributor-insight-page",level:2},{value:"Overview",id:"overview",level:3},{value:"Activity",id:"activity-1",level:3},{value:"Highlights",id:"highlights",level:3},{value:"Highlights: Connecting and Recognizing Contributions",id:"highlights-connecting-and-recognizing-contributions",level:2},{value:"Creating a New Highlight",id:"creating-a-new-highlight",level:3},{value:"Writing an Effective Highlight",id:"writing-an-effective-highlight",level:3},{value:"Highlighting Issues",id:"highlighting-issues",level:4},{value:"Highlighting PRs",id:"highlighting-prs",level:4},{value:"Highlighting Dev.to Blog Posts",id:"highlighting-devto-blog-posts",level:4}],c={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"introduction-to-opensauced-for-maintainers"},"Introduction to OpenSauced for Maintainers"),(0,n.kt)("p",null,"OpenSauced is a platform dedicated to empowering maintainers and redefining open source contributions. We offer a GitHub-powered dashboard for tracking contributions and gaining insights into your open source projects. You can create a ",(0,n.kt)("a",{parentName:"p",href:"#your-workspace-streamlining-open-source-project-management"},"Workspace")," to collaborate with your team and customize your ",(0,n.kt)("a",{parentName:"p",href:"#repository-insights-connecting-your-repositories"},"Repository Insights")," and ",(0,n.kt)("a",{parentName:"p",href:"#contributor-insights-connecting-with-contributors"},"Contributor Insights")," with the repositories you choose and the contributors you want to see."),(0,n.kt)("h2",{id:"getting-started"},"Getting Started"),(0,n.kt)("p",null,"To get started, you will need to create an account on OpenSauced. You can do this by visiting the ",(0,n.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza"},"app.opensauced.pizza"),' and clicking the "Connect with GitHub" button. You will be prompted to sign in with your GitHub account. Once you have signed in, you will be redirected to your Workspace.'),(0,n.kt)("h2",{id:"your-workspace-streamlining-open-source-project-management"},"Your Workspace: Streamlining Open Source Project Management"),(0,n.kt)("p",null,"When you're working with a team, managing multiple projects or even an assortment of repositories within a single project can become overwhelming, especially as you try to keep everyone up-to-date on key information that impacts your projects. Understanding the direction and value of your project can be challenging. To navigate these challenges effectively, you can use Workspaces to:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Understand your project at a high level"),": Being able to look at all your repositories and understand them at a high level makes it easier for you to share this information, collaborate with others, and understand where your projects stand in terms of health."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Collaborate and create transparency with your team"),": Understanding the activity for all of your projects equips you to make decisions as a team, set goals for your projects, and understand what brings the most value to those using your project. "),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Streamline contributor engagement"),": Having a high level understanding of your project is a good step in understanding your project\u2019s value, but really understanding what\u2019s happening beneath the surface is the next step in being able to assess project health, growth, and the contributor community. "),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Measure and share success"),": Without insight into your project's activity level, health, and contributor community, it can be a challenge to show the value of your projects. Having real-time analytics on your projects can help you to highlight your key achievements, recognize the impact of your contributors, and communicate the hard work that\u2019s been put into your projects.")),(0,n.kt)("p",null,"Workspaces is a feature designed to provide maintainers and teams with a centralized platform for organizing, tracking, and analyzing their open source activity. Workspaces gives you a holistic view of project health, team collaboration, and contributor engagement."),(0,n.kt)("h3",{id:"creating-a-new-workspace"},"Creating a New Workspace"),(0,n.kt)("p",null,"To create a workspace, start by accessing the ",(0,n.kt)("strong",{parentName:"p"},"Workspace switcher")," in the sidebar. From there, you can create a new workspace or view an existing one."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"workspace switcher",src:i(7281).Z,width:"1877",height:"888"})),(0,n.kt)("br",null),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},'Whenever you select "Home", you\'ll be taken to the last workspace you opened.')),(0,n.kt)("h3",{id:"adding-repositories-to-your-workspace"},"Adding Repositories to Your Workspace"),(0,n.kt)("p",null,"If you're creating a new workspace, you'll have the option to add repositories at the time of creation."),(0,n.kt)("p",null,'Start by creating a workspace name, then click "Add repositories." You\'ll have three options for adding repositories:'),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Search for Repositories"),": Use our search tool by adding an organization name, followed by the repository name, and add them to your workspace."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Import a GitHub Organization"),": Connect to your GitHub organizations to create a workspace from an organization. (If you're having trouble with this, see the \"",(0,n.kt)("a",{parentName:"li",href:"/welcome/faqs#sync-your-github-team"},"Sync Your GitHub Team"),'" section in our FAQs.)'),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Import Repositories"),": Paste a list of repositories to add to your workspace.")),(0,n.kt)("p",null,"Once your repositories are added, you'll be able to see them in your repository dashboard. You can also edit your workspace to add or remove repositories anytime."),(0,n.kt)("h3",{id:"navigating-your-workspace"},"Navigating Your Workspace"),(0,n.kt)("p",null,"Once your repositories are connected, you'll enter your Workspace dashboard. In your workspace dashboards, you can create, view, and manage your workspaces."),(0,n.kt)("h4",{id:"repositories-dashboard"},"Repositories Dashboard"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"Workspaces",src:i(4255).Z,width:"3200",height:"1800"})),(0,n.kt)("p",null,"Within the repositories dashboard, you can view the following metrics, which are over a period of thirty days by default:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Pull Requests"),": This includes the total opened and merged pull requests for the repositories included in your workspace, as well as the velocity of pull requests being merged."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Issues"),": This includes the total opened and closed issues for the repositories included in your workspace, as well as the velocity of issues being closed."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Engagement"),": This includes the total stars, forks, and activity ratio for the repositories included in your workspace.")),(0,n.kt)("p",null,"Using Workspaces is a new way of approaching open source project management. By centralizing the oversight of your projects and facilitating team collaboration, Workspaces help you to make informed decisions, prioritize effectively, and foster a thriving open source community."),(0,n.kt)("p",null,"Beyond workspaces, you may want to get insights into other repositories and contributors to help you understand the health and growth of your projects. One way to do that is through Repository Insights."),(0,n.kt)("h2",{id:"repository-insights-connecting-your-repositories"},"Repository Insights: Connecting Your Repositories"),(0,n.kt)("p",null,"OpenSauced Repository Insights provides maintainers with a visual representation of their project's health and contributor engagement. It offers real-time data and analytics to understand contribution patterns, identify key contributors, and measure the project's growth. Repository Insights can help you assess team activity, understand when bottlenecks occur, identify where resource allocation is needed, plan and identify key contributors, understand alumni contributors, or spot emerging trends."),(0,n.kt)("p",null,"The Repository Insights feature allows you to:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"track the contributions of a specific team, a specific repository, or a group of repositories,"),(0,n.kt)("li",{parentName:"ul"},"view the number of PRs that are open, closed, in draft, and merged,"),(0,n.kt)("li",{parentName:"ul"},"view the average number of days it takes for a PR to be merged (PR velocity),"),(0,n.kt)("li",{parentName:"ul"},"identify the top contributors to your project,"),(0,n.kt)("li",{parentName:"ul"},"identify the current activity level and trends in the activity of your contributors.")),(0,n.kt)("h3",{id:"creating-a-new-repository-insight-page"},"Creating a New Repository Insight Page"),(0,n.kt)("p",null,'To connect and track your repositories, click the "+" next to "Insights" in the sidebar, then select "New Repository Insight." You will be redirected to a page where you can create your new Repository Insight Page.'),(0,n.kt)("p",null,"There are two ways to add repositories to your Repository Insight Page:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Sync GitHub organization"),". Syncing your GitHub organization is a good idea for someone who seeks a comprehensive, unified view of your organization's open source project activities and trends, enabling streamlined management, strategic decision-making, and efficient allocation of resources across multiple repositories."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Connect individual repositories"),". Connecting individual repositories is a good idea for someone who wants to track the contributions of a specific repository or group of repositories. For example, you might want to track projects you maintain that are not under the same organization, or you may want to track projects that align with your team's objectives.")),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"sync team gif",src:i(2615).Z,width:"1174",height:"948"})),(0,n.kt)("h3",{id:"using-your-repository-insights-page"},"Using Your Repository Insights Page"),(0,n.kt)("p",null,"Once you have connected your repositories, you will be redirected to your Repository Insight Page. Here, you will see a dashboard with an overview of the repositories and the contributors who have contributed to them."),(0,n.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,n.kt)("h4",{id:"repositories-dashboard-1"},"Repositories Dashboard"),(0,n.kt)("p",null,"This tab allows you to view more detailed information on each repository, including activity levels, PR overview, PR velocity, spam PRs, contributors, and activity stats over the last 30 days."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"To learn and understand more about the data provided, see ",(0,n.kt)("a",{parentName:"p",href:"/maintainers/understanding-repo-insights"},"Understanding Repository Insights Data"),".")),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"repositories tab",src:i(7224).Z,width:"1148",height:"796"})),(0,n.kt)("h4",{id:"contributors"},"Contributors"),(0,n.kt)("p",null,'The "Contributors" tab allows you to view more detailed information on each contributor, including their activity levels, the number of repositories they contributed to, the date of their last contribution, their most used language, their time zone, the number of contributions, and their activity stats over the last 30 days.'),(0,n.kt)("p",null,"You can select and add your contributors to a ",(0,n.kt)("a",{parentName:"p",href:"#contributor-insights-connecting-with-contributors"},"Contributor Insight Page")," to learn more about them."),(0,n.kt)("p",null,"There are two ways to add selected contributors to a Contributor Insight Page:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Create a new list."),(0,n.kt)("li",{parentName:"ol"},"Add them to an existing list.")),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"contributors insight list",src:i(8967).Z,width:"1212",height:"628"})),(0,n.kt)("h4",{id:"activity"},"Activity"),(0,n.kt)("p",null,"The \"Activity\" tab shows a graph of the last time each contributor created their PR and how many lines of code they've touched. It also provides more detailed information on each contributor when you hover over their image, including their latest PRs and repositories they've contributed to. Clicking their image will bring you to their profile on OpenSauced."),(0,n.kt)("p",null,"You can use the information in this tab to help you learn about their engagement and general interests. It will be helpful if you want to collaborate with them or consider recruiting a maintainer for your project."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"activity graph",src:i(8517).Z,width:"1592",height:"791"})),(0,n.kt)("h2",{id:"contributor-insights-connecting-with-contributors"},"Contributor Insights: Connecting with Contributors"),(0,n.kt)("p",null,"OpenSauced Contributor Insights feature allows you to categorize, monitor, and analyze various groups of contributors. You can use Contributor Insights to track the contributions of a specific team, a specific repository, or a group of repositories. This feature offers granular insights into each contributor's activities and contributions, helping maintainers to track individual contribution histories, identify active engagement, recognize new or alumni contributors, and compare the performance of different contributors."),(0,n.kt)("p",null,"The Contributor Insights features allow you to:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"track the commits and PRs of the contributors on your list,"),(0,n.kt)("li",{parentName:"ul"},"filter your contributors by their activity level, including most active, new, and alumni,"),(0,n.kt)("li",{parentName:"ul"},"view the repositories your contributors have contributed to, the top programming languages they've used, and their time zones.")),(0,n.kt)("h3",{id:"why-create-a-contributor-insight-page"},"Why Create a Contributor Insight Page?"),(0,n.kt)("p",null,"There are many reasons to create a Contributor Insight Page, but here's some inspiration to get you started:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Interacting contributors"),": Keep tabs on contributors actively interacting with your repository."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Organization's developers"),": Monitor the contributions and performance of your internal team."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"VIP contributors"),": Highlight and track contributors you've identified as key maintainers or significant contributors."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Sales leads"),": Identify contributors whose engagement could potentially be turned into sales opportunities."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Potential hires"),": Observe contributors who exhibit skill and commitment, making them prime candidates for hiring."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Alumni contributors"),": Keep an eye on contributors who have decreased their engagement or left the project.")),(0,n.kt)("h3",{id:"creating-a-new-contributor-insight-page"},"Creating a New Contributor Insight Page"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},'Click the "+" next to "Insights" in the sidebar.')),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},'Click "New Contributor Insight." You will be redirected to a page where you can create your new Contributor Insight Page.'),(0,n.kt)("p",{parentName:"li"},(0,n.kt)("img",{alt:"New Contributor Insight Page",src:i(7472).Z,width:"882",height:"728"}))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Give your page a name.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Add contributors to your page by searching for their GitHub username, syncing your GitHub Team, or importing your GitHub Following.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Once your page is created, you can edit and choose to make it public or private. By default, it is set to public. To create a private page, you can upgrade your account to a paid plan."),(0,n.kt)("p",{parentName:"li"},(0,n.kt)("img",{alt:"team sync gif",src:i(3267).Z,width:"1218",height:"1006"})))),(0,n.kt)("h2",{id:"using-your-contributor-insight-page"},"Using Your Contributor Insight Page"),(0,n.kt)("p",null,"Once you have created your page, you will be redirected to your Contributor Insight Page. Here, you will see a dashboard with an overview of the contributors."),(0,n.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,n.kt)("h3",{id:"overview"},"Overview"),(0,n.kt)("p",null,'The "Overview" tab gives you a high-level view of the contributors in your Contributor Insight Page, including the total number of commits in the last 30 days and the types of contributors: ',(0,n.kt)("a",{parentName:"p",href:"/welcome/glossary/#active-contributors"},"Active"),", ",(0,n.kt)("a",{parentName:"p",href:"/welcome/glossary#new-contributors"},"New"),", and ",(0,n.kt)("a",{parentName:"p",href:"/welcome/glossary#alumni-contributors"},"Alumni"),"."),(0,n.kt)("h3",{id:"activity-1"},"Activity"),(0,n.kt)("p",null,'The "Activity" tab gives you a graph view with more detailed information on each contributor, including the type of activity, repositories they\'ve contributed to, and how they compare to each other.'),(0,n.kt)("p",null,"You can filter your Contributor Insight Page by All Contributors, Active Contributors, New Contributors, and Alumni Contributors."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"list graph",src:i(7392).Z,width:"1147",height:"731"})),(0,n.kt)("h3",{id:"highlights"},"Highlights"),(0,n.kt)("p",null,'The "Highlights" tab gives you a list of the highlights that the contributors listed on your page have created. This is a great way to see what other contributors are up to and to show them support.'),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"To learn and understand more about the data provided, see ",(0,n.kt)("a",{parentName:"p",href:"/maintainers/understanding-contribs-insights"},"Understanding Contributor Insights Data"),".")),(0,n.kt)("h2",{id:"highlights-connecting-and-recognizing-contributions"},"Highlights: Connecting and Recognizing Contributions"),(0,n.kt)("p",null,"Leveraging OpenSauced's Highlights feature is a great way for maintainers to recognize and showcase the valuable contributions made to your open source projects, curate and share key achievements, contributions, and milestones, and bring visibility to the hard work of your community."),(0,n.kt)("p",null,"Highlights can be used to:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"publicize issues on your repository that you'd like to match with contributors,"),(0,n.kt)("li",{parentName:"ul"},"share Dev.to blog posts you've written,"),(0,n.kt)("li",{parentName:"ul"},"celebrate PRs for your project.")),(0,n.kt)("h3",{id:"creating-a-new-highlight"},"Creating a New Highlight"),(0,n.kt)("p",null,"There are two ways to create a new highlight:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},'After clicking the "Highlights" tab in the top navigation, click the input that says "Post a highlight to show your work!"')),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},'From your profile, click the input that says "Post a highlight to show your work!"'))),(0,n.kt)("p",null,"After you've clicked the input, you'll see a form that allows you to create a new highlight."),(0,n.kt)("p",null,"There are two ways to create a highlight:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Paste the URL to your PR, issue, or Dev.to blog post (shown in blue below)."),(0,n.kt)("li",{parentName:"ol"},"Choose from a list of suggestions (shown in orange below).")),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"highlight suggestions",src:i(4173).Z,width:"626",height:"633"})),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"If you're adding a blog post, you'll need to associate it to a repository by clicking the \"Add a repo\" button.")),(0,n.kt)("p",null,"Finally, it's time to add the details of your highlight. You can add a description yourself or use the auto-summarize function to generate a description."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"gif of creating a highlight",src:i(7352).Z,width:"2294",height:"1066"})),(0,n.kt)("h3",{id:"writing-an-effective-highlight"},"Writing an Effective Highlight"),(0,n.kt)("p",null,"Writing an effective highlight is key to attracting contributors to your project. Here are some tips to help you write an effective highlight:"),(0,n.kt)("h4",{id:"highlighting-issues"},"Highlighting Issues"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Focus on the problem solved"),": Begin by briefly describing the problem or challenge the issue addresses. This sets the context for why it was important."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Acknowledge contributor(s)"),": Mention the contributor(s) who reported or worked on the issue, recognizing their effort."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Impact statement"),": Explain how resolving this issue benefits the project, such as improving functionality, user experience, or security.")),(0,n.kt)("h4",{id:"highlighting-prs"},"Highlighting PRs"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Summarize the changes"),": Start with a clear summary of what the PR achieves. This could be a new feature, bug fix, or enhancement."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Credit the contributors"),": Acknowledge everyone who contributed to the PR, including reviewers."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Highlight the value"),": Explain the value of these changes to the project or its users. For instance, how it improves performance, adds a requested feature, or simplifies the codebase.")),(0,n.kt)("h4",{id:"highlighting-devto-blog-posts"},"Highlighting Dev.to Blog Posts"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Capture the essence"),": Begin with an interesting blog post summary, capturing the main theme or message."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Discuss the relevance"),": Explain why this blog post is important for your open source project or community. Is it about a major update, a community event, or sharing best practices?"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Engage with a call-to-action"),": Encourage readers to engage with the post, whether by reading, commenting, or sharing their thoughts on the topic.")))}p.isMDXComponent=!0},7352:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/highlight-e3a2da2446fe91467a31d225755bf40a.gif"},2615:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/team-sync-insights-d4d7794d5e28b72ffb375595c988cd37.gif"},3267:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/team-sync-09e7e2ab7b54fae335f5b4c40cce94b1.gif"},8517:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/activity-repos-insights-3734baf3ab38356a4de96d43dde41a3d.png"},7472:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/contrib-insight-new-f821e7b17235b6c7ea7d7d1dedf9573b.png"},8967:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/contributors-insights-1bc09dd6a32c3a16eba8b63ec351157f.png"},4173:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/highlights-fcc750f036bb2ea7c11166c8338d7f6c.png"},7392:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/list-graph-a730e101fea2e18df0d76faed967f4e6.png"},7224:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/repos-insights-2db5d8c668cee2f528f47ae986d664c7.png"},7281:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/workspace-switcher-b2400ec5c309a762f822268b44779930.png"},4255:(e,t,i)=>{i.d(t,{Z:()=>o});const o=i.p+"assets/images/workspace-644e59bed496d2a0df7502aaa833129e.png"}}]); \ No newline at end of file diff --git a/assets/js/32aa117d.070d3812.js b/assets/js/32aa117d.070d3812.js new file mode 100644 index 00000000..da53f23d --- /dev/null +++ b/assets/js/32aa117d.070d3812.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[3116],{3905:(e,t,o)=>{o.d(t,{Zo:()=>p,kt:()=>y});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var u=n.createContext({}),c=function(e){var t=n.useContext(u),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},p=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,u=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(o),h=r,y=d["".concat(u,".").concat(h)]||d[h]||l[h]||a;return o?n.createElement(y,i(i({ref:t},p),{},{components:o})):n.createElement(y,i({ref:t},p))}));function y(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=h;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[d]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var n=o(7462),r=(o(7294),o(3905));const a={id:"faqs",title:"Frequently Asked Questions",sidebar_label:"FAQs",keywords:["faqs","Frequently asked questions","Popular FAQs guide","most asked questions"]},i=void 0,s={unversionedId:"welcome/faqs",id:"welcome/faqs",title:"Frequently Asked Questions",description:"Contributions",source:"@site/docs/welcome/faqs.md",sourceDirName:"welcome",slug:"/welcome/faqs",permalink:"/welcome/faqs",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/welcome/faqs.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"faqs",title:"Frequently Asked Questions",sidebar_label:"FAQs",keywords:["faqs","Frequently asked questions","Popular FAQs guide","most asked questions"]},sidebar:"docs",previous:{title:"OpenSauced Glossary",permalink:"/welcome/glossary"},next:{title:"Workspaces",permalink:"/features/workspaces"}},u={},c=[{value:"Contributions",id:"contributions",level:2},{value:"1. How do I find good first issues?",id:"1-how-do-i-find-good-first-issues",level:3},{value:"Additional Resources:",id:"additional-resources",level:4},{value:"2. My contribution does not show up on my OpenSauced profile. How do I fix it?",id:"2-my-contribution-does-not-show-up-on-my-opensauced-profile-how-do-i-fix-it",level:3},{value:"3. I want to provide feedback on OpenSauced.",id:"3-i-want-to-provide-feedback-on-opensauced",level:3},{value:"Sync Your GitHub Team",id:"sync-your-github-team",level:2},{value:"1. I don't see my organization on "Sync your GitHub Team."",id:"1-i-dont-see-my-organization-on-sync-your-github-team",level:3},{value:"2. I get an error when I try to select my team in "Sync your GitHub Team."",id:"2-i-get-an-error-when-i-try-to-select-my-team-in-sync-your-github-team",level:3},{value:"3. Do I need to grant authorization to connect GitHub to OpenSauced?",id:"3-do-i-need-to-grant-authorization-to-connect-github-to-opensauced",level:3}],p={toc:c},d="wrapper";function l(e){let{components:t,...o}=e;return(0,r.kt)(d,(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"contributions"},"Contributions"),(0,r.kt)("h3",{id:"1-how-do-i-find-good-first-issues"},"1. How do I find good first issues?"),(0,r.kt)("p",null,"We believe that ",(0,r.kt)("a",{parentName:"p",href:"https://opensauced.pizza/blog/good-first-issues-dont-exist"},"good first issues don't exist"),", and the best way to find an issue to work on is to create the issue yourself."),(0,r.kt)("p",null,"However, sites like ",(0,r.kt)("a",{parentName:"p",href:"https://goodfirstissues.com/"},"Good First Issues")," and ",(0,r.kt)("a",{parentName:"p",href:"https://www.firsttimersonly.com/"},"First Timers Only")," can lead you to projects and issues worth working on. You can also use the ",(0,r.kt)("inlineCode",{parentName:"p"},"good first issue")," label in the project search engine you want to contribute to. Check out ",(0,r.kt)("a",{parentName:"p",href:"https://www.freecodecamp.org/news/how-to-find-good-first-issues-on-github/"},"this guide")," to learn more about finding a ",(0,r.kt)("inlineCode",{parentName:"p"},"good first issue")," on GitHub.."),(0,r.kt)("h4",{id:"additional-resources"},"Additional Resources:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://dev.to/bekahhw/series/23323"},'"Who\'s looking for open source contributors?" series on Dev.to')),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/"},"Intro to Open Source Course with OpenSauced"))),(0,r.kt)("h3",{id:"2-my-contribution-does-not-show-up-on-my-opensauced-profile-how-do-i-fix-it"},"2. My contribution does not show up on my OpenSauced profile. How do I fix it?"),(0,r.kt)("p",null,"Create a ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/hub/insights"},"Repository Insights Page")," or add your merged pull request to a ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/feed"},"Highlight"),"."),(0,r.kt)("h3",{id:"3-i-want-to-provide-feedback-on-opensauced"},"3. I want to provide feedback on OpenSauced."),(0,r.kt)("p",null,"We love feedback. Post your suggestion in our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/orgs/open-sauced/discussions"},"feedback repository"),"."),(0,r.kt)("h2",{id:"sync-your-github-team"},"Sync Your GitHub Team"),(0,r.kt)("h3",{id:"1-i-dont-see-my-organization-on-sync-your-github-team"},'1. I don\'t see my organization on "Sync your GitHub Team."'),(0,r.kt)("p",null,'You may not see your organization if you are not a "public" member. You can update this by going to the organization on GitHub and selecting the "People" tab. Next, search for your name. You can then change "private" to "public." For complete instructions, see ',(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership"},"this guide"),"."),(0,r.kt)("h3",{id:"2-i-get-an-error-when-i-try-to-select-my-team-in-sync-your-github-team"},'2. I get an error when I try to select my team in "Sync your GitHub Team."'),(0,r.kt)("p",null,'If you see your organization but get an error when selecting a team, your organization likely has restricted third-party applications. You can check this if you are an owner by going to "Your organizations" on GitHub, selecting "Settings", and then "Third-party Access."'),(0,r.kt)("p",null,"If you're an ",(0,r.kt)("strong",{parentName:"p"},"owner"),' of the repository, you can select "Allow select third-party access" or specifically approve OpenSauced by following the directions in ',(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/organizations/managing-oauth-access-to-your-organizations-data/approving-oauth-apps-for-your-organization"},"this guide"),"."),(0,r.kt)("p",null,"If you are not an owner of the organization, you will need to check with your organization's owner and request access. For complete instructions, see ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/requesting-organization-approval-for-oauth-apps"},"this guide"),"."),(0,r.kt)("h3",{id:"3-do-i-need-to-grant-authorization-to-connect-github-to-opensauced"},"3. Do I need to grant authorization to connect GitHub to OpenSauced?"),(0,r.kt)("p",null,"Yes, auth access through GitHub OAuth is required to link your profile to a workspace/team. As an early stage startup, we chose this method for its simplicity. We also request read-only access to your GitHub organizations to gather Contributor Insights based on public GitHub Teams data. We ensure all data used is public and read-only."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/32aa117d.f468e189.js b/assets/js/32aa117d.f468e189.js deleted file mode 100644 index 4afc40e9..00000000 --- a/assets/js/32aa117d.f468e189.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[3116],{3905:(e,t,o)=>{o.d(t,{Zo:()=>p,kt:()=>y});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var u=n.createContext({}),c=function(e){var t=n.useContext(u),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},p=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,u=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(o),h=r,y=d["".concat(u,".").concat(h)]||d[h]||l[h]||a;return o?n.createElement(y,i(i({ref:t},p),{},{components:o})):n.createElement(y,i({ref:t},p))}));function y(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=h;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[d]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var n=o(7462),r=(o(7294),o(3905));const a={id:"faqs",title:"Frequently Asked Questions",sidebar_label:"FAQs",keywords:["faqs","Frequently asked questions","Popular FAQs guide","most asked questions"]},i=void 0,s={unversionedId:"welcome/faqs",id:"welcome/faqs",title:"Frequently Asked Questions",description:"Contributions",source:"@site/docs/welcome/faqs.md",sourceDirName:"welcome",slug:"/welcome/faqs",permalink:"/welcome/faqs",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/welcome/faqs.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"faqs",title:"Frequently Asked Questions",sidebar_label:"FAQs",keywords:["faqs","Frequently asked questions","Popular FAQs guide","most asked questions"]},sidebar:"docs",previous:{title:"OpenSauced Glossary",permalink:"/welcome/glossary"},next:{title:"Workspaces",permalink:"/features/workspaces"}},u={},c=[{value:"Contributions",id:"contributions",level:2},{value:"1. How do I find good first issues?",id:"1-how-do-i-find-good-first-issues",level:3},{value:"Additional Resources:",id:"additional-resources",level:4},{value:"2. My contribution does not show up on my OpenSauced profile. How do I fix it?",id:"2-my-contribution-does-not-show-up-on-my-opensauced-profile-how-do-i-fix-it",level:3},{value:"3. I want to provide feedback on OpenSauced.",id:"3-i-want-to-provide-feedback-on-opensauced",level:3},{value:"Sync Your GitHub Team",id:"sync-your-github-team",level:2},{value:"1. I don't see my organization on "Sync your GitHub Team."",id:"1-i-dont-see-my-organization-on-sync-your-github-team",level:3},{value:"2. I get an error when I try to select my team in "Sync your GitHub Team."",id:"2-i-get-an-error-when-i-try-to-select-my-team-in-sync-your-github-team",level:3},{value:"3. Do I need to grant authorization to connect GitHub to OpenSauced?",id:"3-do-i-need-to-grant-authorization-to-connect-github-to-opensauced",level:3}],p={toc:c},d="wrapper";function l(e){let{components:t,...o}=e;return(0,r.kt)(d,(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"contributions"},"Contributions"),(0,r.kt)("h3",{id:"1-how-do-i-find-good-first-issues"},"1. How do I find good first issues?"),(0,r.kt)("p",null,"We believe that ",(0,r.kt)("a",{parentName:"p",href:"https://opensauced.pizza/blog/good-first-issues-dont-exist"},"good first issues don't exist"),", and the best way to find an issue to work on is to create the issue yourself."),(0,r.kt)("p",null,"However, sites like ",(0,r.kt)("a",{parentName:"p",href:"https://goodfirstissues.com/"},"Good First Issues")," and ",(0,r.kt)("a",{parentName:"p",href:"https://www.firsttimersonly.com/"},"First Timers Only")," can lead you to projects and issues worth working on. You can also use the ",(0,r.kt)("inlineCode",{parentName:"p"},"good first issue")," label in the project search engine you want to contribute to. Check out ",(0,r.kt)("a",{parentName:"p",href:"https://www.freecodecamp.org/news/how-to-find-good-first-issues-on-github/"},"this guide")," to learn more about finding a ",(0,r.kt)("inlineCode",{parentName:"p"},"good first issue")," on GitHub.."),(0,r.kt)("h4",{id:"additional-resources"},"Additional Resources:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://dev.to/bekahhw/series/23323"},'"Who\'s looking for open source contributors?" series on Dev.to')),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/"},"Intro to Open Source Course with OpenSauced"))),(0,r.kt)("h3",{id:"2-my-contribution-does-not-show-up-on-my-opensauced-profile-how-do-i-fix-it"},"2. My contribution does not show up on my OpenSauced profile. How do I fix it?"),(0,r.kt)("p",null,"Create a ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/hub/insights"},"Repository Insights Page")," or add your merged pull request to a ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/feed"},"Highlight"),"."),(0,r.kt)("h3",{id:"3-i-want-to-provide-feedback-on-opensauced"},"3. I want to provide feedback on OpenSauced."),(0,r.kt)("p",null,"We love feedback. Post your suggestion in our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/orgs/open-sauced/discussions"},"feedback repository"),"."),(0,r.kt)("h2",{id:"sync-your-github-team"},"Sync Your GitHub Team"),(0,r.kt)("h3",{id:"1-i-dont-see-my-organization-on-sync-your-github-team"},'1. I don\'t see my organization on "Sync your GitHub Team."'),(0,r.kt)("p",null,'You may not see your organization if you are not a "public" member. You can update this by going to the organization on GitHub and selecting the "People" tab. Next, search for your name. You can then change "private" to "public." For complete instructions, see ',(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership"},"this guide"),"."),(0,r.kt)("h3",{id:"2-i-get-an-error-when-i-try-to-select-my-team-in-sync-your-github-team"},'2. I get an error when I try to select my team in "Sync your GitHub Team."'),(0,r.kt)("p",null,'If you see your organization but get an error when selecting a team, your organization likely has restricted third-party applications. You can check this if you are an owner by going to "Your organizations" on GitHub, selecting "Settings", and then "Third-party Access."'),(0,r.kt)("p",null,"If you're an ",(0,r.kt)("strong",{parentName:"p"},"owner"),' of the repository, you can select "Allow select third-party access" or specifically approve OpenSauced by following the directions in ',(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/organizations/managing-oauth-access-to-your-organizations-data/approving-oauth-apps-for-your-organization"},"this guide"),"."),(0,r.kt)("p",null,"If you are not an owner of the organization, you will need to check with your organization's owner and request access. For complete instructions, see ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/requesting-organization-approval-for-oauth-apps"},"this guide"),"."),(0,r.kt)("h3",{id:"3-do-i-need-to-grant-authorization-to-connect-github-to-opensauced"},"3. Do I need to grant authorization to connect GitHub to OpenSauced?"),(0,r.kt)("p",null,"Yes, auth access through GitHub OAuth is required to link your profile to a workspace/team. As an early stage startup, we chose this method for its simplicity. We also request read-only access to your GitHub organizations to gather Contributor Insights based on public GitHub Teams data. We ensure all data used is public and read-only."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/348cc82b.30ca4968.js b/assets/js/348cc82b.30ca4968.js new file mode 100644 index 00000000..323580fb --- /dev/null +++ b/assets/js/348cc82b.30ca4968.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4642],{3905:(e,t,o)=>{o.d(t,{Zo:()=>c,kt:()=>y});var r=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function s(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},c=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},l="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),l=u(o),d=n,y=l["".concat(p,".").concat(d)]||l[d]||h[d]||i;return o?r.createElement(y,s(s({ref:t},c),{},{components:o})):r.createElement(y,s({ref:t},c))}));function y(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=o.length,s=new Array(i);s[0]=d;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[l]="string"==typeof e?e:n,s[1]=a;for(var u=2;u{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var r=o(7462),n=(o(7294),o(3905));const i={id:"repo-insights",title:"Insights into Open Source Repositories",sidebar_label:"Repository Insights",keywords:["Repository Insights","open source","projects","Open Source Repository Insights","Project Repository Insights","Repository Insights into Open Source Projects","Open Source Project Repository Insights"]},s=void 0,a={unversionedId:"features/repo-insights",id:"features/repo-insights",title:"Insights into Open Source Repositories",description:"The Repository Insights feature is your one-stop solution for understanding the pulse of your open source projects and contributions. This feature is designed to provide a comprehensive view of open source project's health and contributions. From contribution trends to community health, OpenSauced Repository Insights helps you make data-driven decisions that align with your goals. It's not just about numbers; it's about providing data to help you make decisions that can define your approach to open source and tell the story of your project or contribution journey.",source:"@site/docs/features/repo-insights.md",sourceDirName:"features",slug:"/features/repo-insights",permalink:"/features/repo-insights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/repo-insights.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"repo-insights",title:"Insights into Open Source Repositories",sidebar_label:"Repository Insights",keywords:["Repository Insights","open source","projects","Open Source Repository Insights","Project Repository Insights","Repository Insights into Open Source Projects","Open Source Project Repository Insights"]},sidebar:"docs",previous:{title:"Workspaces",permalink:"/features/workspaces"},next:{title:"Contributor Insights",permalink:"/features/contributor-insights"}},p={},u=[{value:"How to Use Repository Insights",id:"how-to-use-repository-insights",level:2},{value:"Contributors",id:"contributors",level:3},{value:"Maintainers",id:"maintainers",level:3},{value:"Sharing Your Repository Insights Page with Your Team",id:"sharing-your-repository-insights-page-with-your-team",level:2},{value:"How to Share Repository Insights Page",id:"how-to-share-repository-insights-page",level:3}],c={toc:u},l="wrapper";function h(e){let{components:t,...i}=e;return(0,n.kt)(l,(0,r.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The Repository Insights feature is your one-stop solution for understanding the pulse of your open source projects and contributions. This feature is designed to provide a comprehensive view of open source project's health and contributions. From contribution trends to community health, OpenSauced Repository Insights helps you make data-driven decisions that align with your goals. It's not just about numbers; it's about providing data to help you make decisions that can define your approach to open source and tell the story of your project or contribution journey. "),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"insight-pages-demo",src:o(7220).Z,width:"960",height:"543"})),(0,n.kt)("h2",{id:"how-to-use-repository-insights"},"How to Use Repository Insights"),(0,n.kt)("h3",{id:"contributors"},"Contributors"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"To track projects you're working on."),(0,n.kt)("li",{parentName:"ul"},"To identify potential projects to contribute to."),(0,n.kt)("li",{parentName:"ul"},"To discover other contributors to collaborate with."),(0,n.kt)("li",{parentName:"ul"},"To track the activity of a topic you're interested in."),(0,n.kt)("li",{parentName:"ul"},"To track the activity of your favorite programming languages."),(0,n.kt)("li",{parentName:"ul"},"To aid in the job search process.")),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Check out our ",(0,n.kt)("a",{parentName:"p",href:"/contributors/contributors-guide-to-open-sauced#repository-insights-connecting-your-repositories"},"Contributors Guide to OpenSauced")," to learn more about how to create and use Repository Insights as a contributor.")),(0,n.kt)("h3",{id:"maintainers"},"Maintainers"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"To track the health of your project."),(0,n.kt)("li",{parentName:"ul"},"To identify contributors who are making an impact."),(0,n.kt)("li",{parentName:"ul"},"To find new contributors to support your project.")),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Check out our ",(0,n.kt)("a",{parentName:"p",href:"/maintainers/maintainers-guide-to-open-sauced"},"Maintainers Guide to OpenSauced")," and our ",(0,n.kt)("a",{parentName:"p",href:"/maintainers/understanding-repo-insights"},"Understanding Repository Insights Data")," pages to learn more about how to create and use Repository Insights as a maintainer.")),(0,n.kt)("h2",{id:"sharing-your-repository-insights-page-with-your-team"},"Sharing Your Repository Insights Page with Your Team"),(0,n.kt)("p",null,"After you've created your Repository Insights Page, share it with your team."),(0,n.kt)("p",null,"Sharing this page with your team ensures that everyone is well-informed about the project's status and can collaborate more effectively. It fosters a collaborative environment where team members can align their efforts, make informed decisions, and collectively work toward the organization's success."),(0,n.kt)("h3",{id:"how-to-share-repository-insights-page"},"How to Share Repository Insights Page"),(0,n.kt)("p",null,"This method gives view-only access to your Repository Insights Page."),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Navigate to your sidebar."),(0,n.kt)("li",{parentName:"ol"},"Click the Repository Insight Page that you want to share."),(0,n.kt)("li",{parentName:"ol"},'On the top right, click the "Share" button to copy the Repository Insight Page URL to the clipboard.'),(0,n.kt)("li",{parentName:"ol"},"Share the URL with your team members.")),(0,n.kt)("p",null,"By default, your Repository Insights are public. If you want to make your Repository Insights private, you can upgrade your account to a PRO plan."))}h.isMDXComponent=!0},7220:(e,t,o)=>{o.d(t,{Z:()=>r});const r=o.p+"assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif"}}]); \ No newline at end of file diff --git a/assets/js/348cc82b.8113153b.js b/assets/js/348cc82b.8113153b.js deleted file mode 100644 index daa64d4d..00000000 --- a/assets/js/348cc82b.8113153b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4642],{3905:(e,t,o)=>{o.d(t,{Zo:()=>c,kt:()=>y});var r=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function s(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},c=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},l="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,i=e.originalType,p=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),l=u(o),d=n,y=l["".concat(p,".").concat(d)]||l[d]||h[d]||i;return o?r.createElement(y,s(s({ref:t},c),{},{components:o})):r.createElement(y,s({ref:t},c))}));function y(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=o.length,s=new Array(i);s[0]=d;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[l]="string"==typeof e?e:n,s[1]=a;for(var u=2;u{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var r=o(7462),n=(o(7294),o(3905));const i={id:"repo-insights",title:"Insights into Open Source Repositories",sidebar_label:"Repository Insights",keywords:["Repository Insights","open source","projects","Open Source Repository Insights","Project Repository Insights","Repository Insights into Open Source Projects","Open Source Project Repository Insights"]},s=void 0,a={unversionedId:"features/repo-insights",id:"features/repo-insights",title:"Insights into Open Source Repositories",description:"The Repository Insights feature is your one-stop solution for understanding the pulse of your open source projects and contributions. This feature is designed to provide a comprehensive view of open source project's health and contributions. From contribution trends to community health, OpenSauced Repository Insights helps you make data-driven decisions that align with your goals. It's not just about numbers; it's about providing data to help you make decisions that can define your approach to open source and tell the story of your project or contribution journey.",source:"@site/docs/features/repo-insights.md",sourceDirName:"features",slug:"/features/repo-insights",permalink:"/features/repo-insights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/repo-insights.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"repo-insights",title:"Insights into Open Source Repositories",sidebar_label:"Repository Insights",keywords:["Repository Insights","open source","projects","Open Source Repository Insights","Project Repository Insights","Repository Insights into Open Source Projects","Open Source Project Repository Insights"]},sidebar:"docs",previous:{title:"Workspaces",permalink:"/features/workspaces"},next:{title:"Contributor Insights",permalink:"/features/contributor-insights"}},p={},u=[{value:"How to Use Repository Insights",id:"how-to-use-repository-insights",level:2},{value:"Contributors",id:"contributors",level:3},{value:"Maintainers",id:"maintainers",level:3},{value:"Sharing Your Repository Insights Page with Your Team",id:"sharing-your-repository-insights-page-with-your-team",level:2},{value:"How to Share Repository Insights Page",id:"how-to-share-repository-insights-page",level:3}],c={toc:u},l="wrapper";function h(e){let{components:t,...i}=e;return(0,n.kt)(l,(0,r.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The Repository Insights feature is your one-stop solution for understanding the pulse of your open source projects and contributions. This feature is designed to provide a comprehensive view of open source project's health and contributions. From contribution trends to community health, OpenSauced Repository Insights helps you make data-driven decisions that align with your goals. It's not just about numbers; it's about providing data to help you make decisions that can define your approach to open source and tell the story of your project or contribution journey. "),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"insight-pages-demo",src:o(7220).Z,width:"960",height:"543"})),(0,n.kt)("h2",{id:"how-to-use-repository-insights"},"How to Use Repository Insights"),(0,n.kt)("h3",{id:"contributors"},"Contributors"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"To track projects you're working on."),(0,n.kt)("li",{parentName:"ul"},"To identify potential projects to contribute to."),(0,n.kt)("li",{parentName:"ul"},"To discover other contributors to collaborate with."),(0,n.kt)("li",{parentName:"ul"},"To track the activity of a topic you're interested in."),(0,n.kt)("li",{parentName:"ul"},"To track the activity of your favorite programming languages."),(0,n.kt)("li",{parentName:"ul"},"To aid in the job search process.")),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Check out our ",(0,n.kt)("a",{parentName:"p",href:"/contributors/contributors-guide-to-open-sauced#repository-insights-connecting-your-repositories"},"Contributors Guide to OpenSauced")," to learn more about how to create and use Repository Insights as a contributor.")),(0,n.kt)("h3",{id:"maintainers"},"Maintainers"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"To track the health of your project."),(0,n.kt)("li",{parentName:"ul"},"To identify contributors who are making an impact."),(0,n.kt)("li",{parentName:"ul"},"To find new contributors to support your project.")),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Check out our ",(0,n.kt)("a",{parentName:"p",href:"/maintainers/maintainers-guide-to-open-sauced"},"Maintainers Guide to OpenSauced")," and our ",(0,n.kt)("a",{parentName:"p",href:"/maintainers/understanding-repo-insights"},"Understanding Repository Insights Data")," pages to learn more about how to create and use Repository Insights as a maintainer.")),(0,n.kt)("h2",{id:"sharing-your-repository-insights-page-with-your-team"},"Sharing Your Repository Insights Page with Your Team"),(0,n.kt)("p",null,"After you've created your Repository Insights Page, share it with your team."),(0,n.kt)("p",null,"Sharing this page with your team ensures that everyone is well-informed about the project's status and can collaborate more effectively. It fosters a collaborative environment where team members can align their efforts, make informed decisions, and collectively work toward the organization's success."),(0,n.kt)("h3",{id:"how-to-share-repository-insights-page"},"How to Share Repository Insights Page"),(0,n.kt)("p",null,"This method gives view-only access to your Repository Insights Page."),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Navigate to your sidebar."),(0,n.kt)("li",{parentName:"ol"},"Click the Repository Insight Page that you want to share."),(0,n.kt)("li",{parentName:"ol"},'On the top right, click the "Share" button to copy the Repository Insight Page URL to the clipboard.'),(0,n.kt)("li",{parentName:"ol"},"Share the URL with your team members.")),(0,n.kt)("p",null,"By default, your Repository Insights are public. If you want to make your Repository Insights private, you can upgrade your account to a PRO plan."))}h.isMDXComponent=!0},7220:(e,t,o)=>{o.d(t,{Z:()=>r});const r=o.p+"assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif"}}]); \ No newline at end of file diff --git a/assets/js/43ab1095.35db6dc9.js b/assets/js/43ab1095.35db6dc9.js deleted file mode 100644 index c46a6535..00000000 --- a/assets/js/43ab1095.35db6dc9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[1568],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(n),h=i,m=u["".concat(l,".").concat(h)]||u[h]||d[h]||r;return n?o.createElement(m,a(a({ref:t},c),{},{components:n})):o.createElement(m,a({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,a=new Array(r);a[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:i,a[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var o=n(7462),i=(n(7294),n(3905));const r={id:"pr-description",title:"PR Description",sidebar_label:"PR Description",keywords:["ai","pr descriptions","pull request overview","pr details","pr review description","Description Guidelines","Contribution etiquette","Pull Request Insight","PR Context","pull request description"]},a=void 0,s={unversionedId:"tools/chrome-extension/pr-description",id:"tools/chrome-extension/pr-description",title:"PR Description",description:"The OpenSauced Chrome extension will help you create a PR based on the configuration you have in the extension. It will enable you to create the summary based on either commit messages, the difference between the files, or both. You can even set the message's length and tone using the same settings.",source:"@site/docs/tools/chrome-extension/pr-description.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/pr-description",permalink:"/tools/chrome-extension/pr-description",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/pr-description.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"pr-description",title:"PR Description",sidebar_label:"PR Description",keywords:["ai","pr descriptions","pull request overview","pr details","pr review description","Description Guidelines","Contribution etiquette","Pull Request Insight","PR Context","pull request description"]},sidebar:"docs",previous:{title:"Code Explanation",permalink:"/tools/chrome-extension/code-explanation"},next:{title:"Highlight",permalink:"/tools/chrome-extension/highlights"}},l={},p=[],c={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The OpenSauced Chrome extension will help you create a PR based on the configuration you have in the extension. It will enable you to create the summary based on either commit messages, the difference between the files, or both. You can even set the message's length and tone using the same settings."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},(0,i.kt)("strong",{parentName:"em"},"Note"),": This feature is not available on private repositories.")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"generate pr description",src:n(3706).Z,width:"954",height:"405"})),(0,i.kt)("p",null,"You can use these settings to set the strictness and the tone of the generated AI. Below is the explanation of the settings:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Description Length"),": The output length."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Temperature"),": The similarity between the input text and the output, higher temperature mean more randomness, lower temperature means more strict to the input."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Max Input Length.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Description Language:")," Right now, this feature supports: English, Spanish, French, German, Italian, Portuguese, Dutch, Russian, Chinese, Korean."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Description Tone:")," The tone of the output: Exciting, Persuasive, Informative, Humorous, Formal."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Description Source:")," The source of the description that our AI will use to get the output it can be the next: ",(0,i.kt)("strong",{parentName:"li"},"Commit Messages")," or ",(0,i.kt)("strong",{parentName:"li"},"The diff between the files")," or ",(0,i.kt)("strong",{parentName:"li"},"both"),".")),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241760972-aa10eabe-3c01-4921-956a-ab85bada1575.png",alt:"Setting screenshot"})),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://github.com/open-sauced/docs.opensauced.pizza/assets/18273833/fa19fa8e-e652-461c-8df4-6e959c9b9943",alt:"ezgif-3-43e056fc1f"})),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/insights/pull/1197"},"Example PR"),", using the next options: both in the description source, 500 for output length and 3900 max input length, temperature 0.7."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Exciting:")," This PR fixes the follow call and adds a ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function to the ",(0,i.kt)("inlineCode",{parentName:"p"},"contributor-highlight-card"),". The code has been linted and merged from the ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branch. ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function allows users to follow/unfollow contributors. Copy link and follow/unfollow options are now available in the dropdown menu."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Persuasive:")," This PR fixes the follow call and linting issues in the ",(0,i.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. It also merges the ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branch into ",(0,i.kt)("inlineCode",{parentName:"p"},"fix-follow-check"),". A new ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function has been added to handle follow/unfollow functionality. This PR ensures a smoother user experience."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Informative:")," This PR fixes the follow call and linting issues in the ",(0,i.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. A new function ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," has been added to handle the follow/unfollow functionality. The ",(0,i.kt)("inlineCode",{parentName:"p"},"useFollowUser")," hook has been moved inside this function. The ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function is now used in place of the previous follow/unfollow code block. The code has been tested and reviewed."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Humorous:")," This PR fixes the follow call and also lints the file. We've also added a new ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function to make the code more readable. Now you can follow/unfollow contributors with ease. We've also merged the ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branch into ",(0,i.kt)("inlineCode",{parentName:"p"},"fix-follow-check"),"."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Formal:")," This PR fixes the follow call and linting issues in the ",(0,i.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. A new function ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," has been added to handle the follow/unfollow functionality. The ",(0,i.kt)("inlineCode",{parentName:"p"},"useFollowUser")," hook has been moved inside this function. The ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function is now used in place of the previous follow/unfollow code block. This PR also merges the ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branch into ",(0,i.kt)("inlineCode",{parentName:"p"},"fix-follow-check"),"."))}d.isMDXComponent=!0},3706:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/pr-description-e9b163f4d321927a53dd90d340fec85f.gif"}}]); \ No newline at end of file diff --git a/assets/js/43ab1095.d7346d85.js b/assets/js/43ab1095.d7346d85.js new file mode 100644 index 00000000..ed59ca2f --- /dev/null +++ b/assets/js/43ab1095.d7346d85.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[1568],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(n),h=i,m=u["".concat(l,".").concat(h)]||u[h]||d[h]||r;return n?o.createElement(m,a(a({ref:t},c),{},{components:n})):o.createElement(m,a({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,a=new Array(r);a[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:i,a[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var o=n(7462),i=(n(7294),n(3905));const r={id:"pr-description",title:"PR Description",sidebar_label:"PR Description",keywords:["ai","pr descriptions","pull request overview","pr details","pr review description","Description Guidelines","Contribution etiquette","Pull Request Insight","PR Context","pull request description"]},a=void 0,s={unversionedId:"tools/chrome-extension/pr-description",id:"tools/chrome-extension/pr-description",title:"PR Description",description:"The OpenSauced Chrome extension will help you create a PR based on the configuration you have in the extension. It will enable you to create the summary based on either commit messages, the difference between the files, or both. You can even set the message's length and tone using the same settings.",source:"@site/docs/tools/chrome-extension/pr-description.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/pr-description",permalink:"/tools/chrome-extension/pr-description",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/pr-description.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"pr-description",title:"PR Description",sidebar_label:"PR Description",keywords:["ai","pr descriptions","pull request overview","pr details","pr review description","Description Guidelines","Contribution etiquette","Pull Request Insight","PR Context","pull request description"]},sidebar:"docs",previous:{title:"Code Explanation",permalink:"/tools/chrome-extension/code-explanation"},next:{title:"Highlight",permalink:"/tools/chrome-extension/highlights"}},l={},p=[],c={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The OpenSauced Chrome extension will help you create a PR based on the configuration you have in the extension. It will enable you to create the summary based on either commit messages, the difference between the files, or both. You can even set the message's length and tone using the same settings."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},(0,i.kt)("strong",{parentName:"em"},"Note"),": This feature is not available on private repositories.")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"generate pr description",src:n(3706).Z,width:"954",height:"405"})),(0,i.kt)("p",null,"You can use these settings to set the strictness and the tone of the generated AI. Below is the explanation of the settings:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Description Length"),": The output length."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Temperature"),": The similarity between the input text and the output, higher temperature mean more randomness, lower temperature means more strict to the input."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Max Input Length.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Description Language:")," Right now, this feature supports: English, Spanish, French, German, Italian, Portuguese, Dutch, Russian, Chinese, Korean."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Description Tone:")," The tone of the output: Exciting, Persuasive, Informative, Humorous, Formal."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Description Source:")," The source of the description that our AI will use to get the output it can be the next: ",(0,i.kt)("strong",{parentName:"li"},"Commit Messages")," or ",(0,i.kt)("strong",{parentName:"li"},"The diff between the files")," or ",(0,i.kt)("strong",{parentName:"li"},"both"),".")),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241760972-aa10eabe-3c01-4921-956a-ab85bada1575.png",alt:"Setting screenshot"})),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://github.com/open-sauced/docs.opensauced.pizza/assets/18273833/fa19fa8e-e652-461c-8df4-6e959c9b9943",alt:"ezgif-3-43e056fc1f"})),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/insights/pull/1197"},"Example PR"),", using the next options: both in the description source, 500 for output length and 3900 max input length, temperature 0.7."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Exciting:")," This PR fixes the follow call and adds a ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function to the ",(0,i.kt)("inlineCode",{parentName:"p"},"contributor-highlight-card"),". The code has been linted and merged from the ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branch. ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function allows users to follow/unfollow contributors. Copy link and follow/unfollow options are now available in the dropdown menu."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Persuasive:")," This PR fixes the follow call and linting issues in the ",(0,i.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. It also merges the ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branch into ",(0,i.kt)("inlineCode",{parentName:"p"},"fix-follow-check"),". A new ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function has been added to handle follow/unfollow functionality. This PR ensures a smoother user experience."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Informative:")," This PR fixes the follow call and linting issues in the ",(0,i.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. A new function ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," has been added to handle the follow/unfollow functionality. The ",(0,i.kt)("inlineCode",{parentName:"p"},"useFollowUser")," hook has been moved inside this function. The ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function is now used in place of the previous follow/unfollow code block. The code has been tested and reviewed."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Humorous:")," This PR fixes the follow call and also lints the file. We've also added a new ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function to make the code more readable. Now you can follow/unfollow contributors with ease. We've also merged the ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branch into ",(0,i.kt)("inlineCode",{parentName:"p"},"fix-follow-check"),"."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Formal:")," This PR fixes the follow call and linting issues in the ",(0,i.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. A new function ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," has been added to handle the follow/unfollow functionality. The ",(0,i.kt)("inlineCode",{parentName:"p"},"useFollowUser")," hook has been moved inside this function. The ",(0,i.kt)("inlineCode",{parentName:"p"},"FollowUser")," function is now used in place of the previous follow/unfollow code block. This PR also merges the ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branch into ",(0,i.kt)("inlineCode",{parentName:"p"},"fix-follow-check"),"."))}d.isMDXComponent=!0},3706:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/pr-description-e9b163f4d321927a53dd90d340fec85f.gif"}}]); \ No newline at end of file diff --git a/assets/js/43d9ba09.235b971e.js b/assets/js/43d9ba09.b28a2796.js similarity index 62% rename from assets/js/43d9ba09.235b971e.js rename to assets/js/43d9ba09.b28a2796.js index 5e1327cd..aaee683f 100644 --- a/assets/js/43d9ba09.235b971e.js +++ b/assets/js/43d9ba09.b28a2796.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4726],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=o.createContext({}),s=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return o.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(n),m=r,f=p["".concat(c,".").concat(m)]||p[m]||u[m]||a;return n?o.createElement(f,i(i({ref:t},d),{},{components:n})):o.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:r,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var o=n(7462),r=(n(7294),n(3905));const a={id:"code-explanation",title:"Code Explanation",sidebar_label:"Code Explanation",keywords:["ai","code explanations","Code Interpretation","Programming Insights","Code Understanding","Code Walkthrough","Algorithm Explanation","Software Development Insights","AI in Code"]},i=void 0,l={unversionedId:"tools/chrome-extension/code-explanation",id:"tools/chrome-extension/code-explanation",title:"Code Explanation",description:"Generate an explanation for a block of code using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click, and drag the blue plus button until you reach the desired line.",source:"@site/docs/tools/chrome-extension/code-explanation.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/code-explanation",permalink:"/tools/chrome-extension/code-explanation",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/code-explanation.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"code-explanation",title:"Code Explanation",sidebar_label:"Code Explanation",keywords:["ai","code explanations","Code Interpretation","Programming Insights","Code Understanding","Code Walkthrough","Algorithm Explanation","Software Development Insights","AI in Code"]},sidebar:"docs",previous:{title:"Introduction to the Chrome Extension",permalink:"/tools/chrome-extension/introduction-to-the-chrome-extension"},next:{title:"PR Description",permalink:"/tools/chrome-extension/pr-description"}},c={},s=[],d={toc:s},p="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,o.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Generate an explanation for a block of code using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click, and drag the blue plus button until you reach the desired line."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"generate code refactor",src:n(8528).Z,width:"828",height:"481"})))}u.isMDXComponent=!0},8528:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/pr-code-explain-4dde1737ae1b0792fc287750ae7de5fd.gif"}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4726],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=o.createContext({}),s=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return o.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(n),m=r,f=d["".concat(c,".").concat(m)]||d[m]||u[m]||a;return n?o.createElement(f,i(i({ref:t},p),{},{components:n})):o.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var o=n(7462),r=(n(7294),n(3905));const a={id:"code-explanation",title:"Code Explanation",sidebar_label:"Code Explanation",keywords:["ai","code explanations","Code Interpretation","Programming Insights","Code Understanding","Code Walkthrough","Algorithm Explanation","Software Development Insights","AI in Code"]},i=void 0,l={unversionedId:"tools/chrome-extension/code-explanation",id:"tools/chrome-extension/code-explanation",title:"Code Explanation",description:"Generate an explanation for a block of code using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click, and drag the blue plus button until you reach the desired line.",source:"@site/docs/tools/chrome-extension/code-explanation.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/code-explanation",permalink:"/tools/chrome-extension/code-explanation",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/code-explanation.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"code-explanation",title:"Code Explanation",sidebar_label:"Code Explanation",keywords:["ai","code explanations","Code Interpretation","Programming Insights","Code Understanding","Code Walkthrough","Algorithm Explanation","Software Development Insights","AI in Code"]},sidebar:"docs",previous:{title:"Introduction to the Chrome Extension",permalink:"/tools/chrome-extension/introduction-to-the-chrome-extension"},next:{title:"PR Description",permalink:"/tools/chrome-extension/pr-description"}},c={},s=[],p={toc:s},d="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Generate an explanation for a block of code using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click, and drag the blue plus button until you reach the desired line."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"generate code refactor",src:n(8528).Z,width:"828",height:"481"})))}u.isMDXComponent=!0},8528:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/pr-code-explain-4dde1737ae1b0792fc287750ae7de5fd.gif"}}]); \ No newline at end of file diff --git a/assets/js/455b852b.750802ec.js b/assets/js/455b852b.4192afc2.js similarity index 51% rename from assets/js/455b852b.750802ec.js rename to assets/js/455b852b.4192afc2.js index 07bfad48..44770eda 100644 --- a/assets/js/455b852b.750802ec.js +++ b/assets/js/455b852b.4192afc2.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[358],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>p});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var a=o.createContext({}),d=function(e){var t=o.useContext(a),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},l=function(e){var t=d(e.components);return o.createElement(a.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,a=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=d(n),m=r,p=u["".concat(a,".").concat(m)]||u[m]||h[m]||i;return n?o.createElement(p,s(s({ref:t},l),{},{components:n})):o.createElement(p,s({ref:t},l))}));function p(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,s=new Array(i);s[0]=m;var c={};for(var a in t)hasOwnProperty.call(t,a)&&(c[a]=t[a]);c.originalType=e,c[u]="string"==typeof e?e:r,s[1]=c;for(var d=2;d{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var o=n(7462),r=(n(7294),n(3905));const i={id:"introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",sidebar_label:"Introduction to the Chrome Extension",keywords:["introduction to the chrome extension","Chrome Extension Overview","Browser Extension Introduction","Chrome Add-On Introduction","Extension Development Basics","Getting Started with Chrome Extension","Browser Plugin Introduction","Chrome Web Store Add-On","Extension Development Guide","Chrome Extension Features","Introduction to Browser Extensions","Chrome Extension Fundamentals","Web Browser Plugin Basics"]},s=void 0,c={unversionedId:"tools/chrome-extension/introduction-to-the-chrome-extension",id:"tools/chrome-extension/introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",description:"The OpenSauced Chrome Extension",source:"@site/docs/tools/chrome-extension/introduction-to-the-chrome-extension.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/introduction-to-the-chrome-extension",permalink:"/tools/chrome-extension/introduction-to-the-chrome-extension",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/introduction-to-the-chrome-extension.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",sidebar_label:"Introduction to the Chrome Extension",keywords:["introduction to the chrome extension","Chrome Extension Overview","Browser Extension Introduction","Chrome Add-On Introduction","Extension Development Basics","Getting Started with Chrome Extension","Browser Plugin Introduction","Chrome Web Store Add-On","Extension Development Guide","Chrome Extension Features","Introduction to Browser Extensions","Chrome Extension Fundamentals","Web Browser Plugin Basics"]},sidebar:"docs",previous:{title:"Pizza CLI",permalink:"/tools/pizza-cli"},next:{title:"Code Explanation",permalink:"/tools/chrome-extension/code-explanation"}},a={},d=[{value:"The OpenSauced Chrome Extension",id:"the-opensauced-chrome-extension",level:2},{value:"Installing the Chrome Extension",id:"installing-the-chrome-extension",level:2}],l={toc:d},u="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,o.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"the-opensauced-chrome-extension"},"The OpenSauced Chrome Extension"),(0,r.kt)("p",null,"The OpenSauced Chrome extension seamlessly integrates GitHub with the OpenSauced platform. With this extension, you can easily view and discover open-source projects looking for contributions directly from GitHub, making collaboration and contribution easier than ever."),(0,r.kt)("h2",{id:"installing-the-chrome-extension"},"Installing the Chrome Extension"),(0,r.kt)("p",null,"To install the OpenSauced Chrome extension, navigate to the ",(0,r.kt)("a",{parentName:"p",href:"https://chrome.google.com/webstore/detail/opensauced/aebjdjjodmkdnmejakflnfpkadblfmdh"},"OpenSauced.ai extension on Chrome Web Store"),' and click the "Add to Chrome" button.'))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[358],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>p});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=o.createContext({}),d=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},l=function(e){var t=d(e.components);return o.createElement(c.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),u=d(n),m=r,p=u["".concat(c,".").concat(m)]||u[m]||h[m]||i;return n?o.createElement(p,s(s({ref:t},l),{},{components:n})):o.createElement(p,s({ref:t},l))}));function p(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,s=new Array(i);s[0]=m;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a[u]="string"==typeof e?e:r,s[1]=a;for(var d=2;d{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var o=n(7462),r=(n(7294),n(3905));const i={id:"introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",sidebar_label:"Introduction to the Chrome Extension",keywords:["introduction to the chrome extension","Chrome Extension Overview","Browser Extension Introduction","Chrome Add-On Introduction","Extension Development Basics","Getting Started with Chrome Extension","Browser Plugin Introduction","Chrome Web Store Add-On","Extension Development Guide","Chrome Extension Features","Introduction to Browser Extensions","Chrome Extension Fundamentals","Web Browser Plugin Basics"]},s=void 0,a={unversionedId:"tools/chrome-extension/introduction-to-the-chrome-extension",id:"tools/chrome-extension/introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",description:"The OpenSauced Chrome Extension",source:"@site/docs/tools/chrome-extension/introduction-to-the-chrome-extension.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/introduction-to-the-chrome-extension",permalink:"/tools/chrome-extension/introduction-to-the-chrome-extension",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/introduction-to-the-chrome-extension.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",sidebar_label:"Introduction to the Chrome Extension",keywords:["introduction to the chrome extension","Chrome Extension Overview","Browser Extension Introduction","Chrome Add-On Introduction","Extension Development Basics","Getting Started with Chrome Extension","Browser Plugin Introduction","Chrome Web Store Add-On","Extension Development Guide","Chrome Extension Features","Introduction to Browser Extensions","Chrome Extension Fundamentals","Web Browser Plugin Basics"]},sidebar:"docs",previous:{title:"Pizza CLI",permalink:"/tools/pizza-cli"},next:{title:"Code Explanation",permalink:"/tools/chrome-extension/code-explanation"}},c={},d=[{value:"The OpenSauced Chrome Extension",id:"the-opensauced-chrome-extension",level:2},{value:"Installing the Chrome Extension",id:"installing-the-chrome-extension",level:2}],l={toc:d},u="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,o.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"the-opensauced-chrome-extension"},"The OpenSauced Chrome Extension"),(0,r.kt)("p",null,"The OpenSauced Chrome extension seamlessly integrates GitHub with the OpenSauced platform. With this extension, you can easily view and discover open-source projects looking for contributions directly from GitHub, making collaboration and contribution easier than ever."),(0,r.kt)("h2",{id:"installing-the-chrome-extension"},"Installing the Chrome Extension"),(0,r.kt)("p",null,"To install the OpenSauced Chrome extension, navigate to the ",(0,r.kt)("a",{parentName:"p",href:"https://chrome.google.com/webstore/detail/opensauced/aebjdjjodmkdnmejakflnfpkadblfmdh"},"OpenSauced.ai extension on Chrome Web Store"),' and click the "Add to Chrome" button.'))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/48b9cea9.17c1e8a3.js b/assets/js/48b9cea9.17c1e8a3.js deleted file mode 100644 index 324a3642..00000000 --- a/assets/js/48b9cea9.17c1e8a3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[247],{3905:(t,e,n)=>{n.d(e,{Zo:()=>s,kt:()=>m});var i=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function r(t){for(var e=1;e=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var u=i.createContext({}),p=function(t){var e=i.useContext(u),n=e;return t&&(n="function"==typeof t?t(e):r(r({},e),t)),n},s=function(t){var e=p(t.components);return i.createElement(u.Provider,{value:e},t.children)},l="mdxType",h={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var n=t.components,a=t.mdxType,o=t.originalType,u=t.parentName,s=c(t,["components","mdxType","originalType","parentName"]),l=p(n),d=a,m=l["".concat(u,".").concat(d)]||l[d]||h[d]||o;return n?i.createElement(m,r(r({ref:e},s),{},{components:n})):i.createElement(m,r({ref:e},s))}));function m(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var o=n.length,r=new Array(o);r[0]=d;var c={};for(var u in e)hasOwnProperty.call(e,u)&&(c[u]=e[u]);c.originalType=t,c[l]="string"==typeof t?t:a,r[1]=c;for(var p=2;p{n.r(e),n.d(e,{assets:()=>u,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var i=n(7462),a=(n(7294),n(3905));const o={id:"set-up-authentication",title:"Set Up Authentication",sidebar_label:"Set Up Authentication",keywords:["set up authentication","Authentication setup guide","Setting up secure login","User authentication configuration","Authentication system setup","Authentication implementation steps","Authentication setup tutorial","Setting up user authorization","Authentication best practices"]},r=void 0,c={unversionedId:"contributing/set-up-authentication",id:"contributing/set-up-authentication",title:"Set Up Authentication",description:"You need to obtain an authentication token to interact with the OpenSauced public API as an authenticated user.",source:"@site/docs/contributing/set-up-authentication.md",sourceDirName:"contributing",slug:"/contributing/set-up-authentication",permalink:"/contributing/set-up-authentication",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/set-up-authentication.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"set-up-authentication",title:"Set Up Authentication",sidebar_label:"Set Up Authentication",keywords:["set up authentication","Authentication setup guide","Setting up secure login","User authentication configuration","Authentication system setup","Authentication implementation steps","Authentication setup tutorial","Setting up user authorization","Authentication best practices"]},sidebar:"docs",previous:{title:"Community Maintainers Guidelines",permalink:"/contributing/opensauced-maintainers-guide/community-maintainers-guide"},next:{title:"Setting Up a Repository with Git and GitHub",permalink:"/contributing/technical/setup-repo-with-git"}},u={},p=[],s={toc:p},l="wrapper";function h(t){let{components:e,...o}=t;return(0,a.kt)(l,(0,i.Z)({},s,o,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"You need to obtain an authentication token to interact with the OpenSauced public API as an authenticated user."),(0,a.kt)("p",null,"The following steps outline how to obtain an authentication token from the ",(0,a.kt)("a",{parentName:"p",href:"https://hot.opensauced.pizza"},"hot.opensauced.pizza")," website:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Click on your avatar in the top right corner of the page. This will open a dropdown menu."),(0,a.kt)("p",{parentName:"li"},(0,a.kt)("img",{alt:"Avatar in top right corner of the page",src:n(7523).Z,width:"328",height:"87"}))),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Click on the ",(0,a.kt)("strong",{parentName:"p"},"Print auth token")," option. Don't worry, this is a safe operation. The token is only printed to the console."),(0,a.kt)("p",{parentName:"li"},(0,a.kt)("img",{alt:"Print Auth Token",src:n(8231).Z,width:"326",height:"377"}))),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Copy the token that is printed to the console."),(0,a.kt)("p",{parentName:"li"},(0,a.kt)("img",{alt:"Token printed to the console",src:n(545).Z,width:"1274",height:"408"}))),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"You can now use this token to make authenticated requests to the OpenSauced public API by including it in the Authorization header of your requests. For example:"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},'const response = await fetch(\n "https://api.opensauced.pizza/v2/auth/session",\n {\n method: "GET",\n headers: {\n Authorization: `Bearer ${token}`,\n },\n }\n);\n')))))}h.isMDXComponent=!0},7523:(t,e,n)=>{n.d(e,{Z:()=>i});const i=n.p+"assets/images/contributing-avatar-top-right-4063afad1b9c314a1e261c492a65447c.png"},8231:(t,e,n)=>{n.d(e,{Z:()=>i});const i=n.p+"assets/images/contributing-print-auth-token-e1370316da4c4747a853289f72842d56.png"},545:(t,e,n)=>{n.d(e,{Z:()=>i});const i=n.p+"assets/images/contributing-token-printed-to-console-0deb43e35d7b18560ccf573c6f0411cc.png"}}]); \ No newline at end of file diff --git a/assets/js/48b9cea9.91b59f1d.js b/assets/js/48b9cea9.91b59f1d.js new file mode 100644 index 00000000..81485002 --- /dev/null +++ b/assets/js/48b9cea9.91b59f1d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[247],{3905:(t,e,n)=>{n.d(e,{Zo:()=>s,kt:()=>m});var i=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function r(t){for(var e=1;e=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var c=i.createContext({}),p=function(t){var e=i.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):r(r({},e),t)),n},s=function(t){var e=p(t.components);return i.createElement(c.Provider,{value:e},t.children)},l="mdxType",h={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var n=t.components,a=t.mdxType,o=t.originalType,c=t.parentName,s=u(t,["components","mdxType","originalType","parentName"]),l=p(n),d=a,m=l["".concat(c,".").concat(d)]||l[d]||h[d]||o;return n?i.createElement(m,r(r({ref:e},s),{},{components:n})):i.createElement(m,r({ref:e},s))}));function m(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var o=n.length,r=new Array(o);r[0]=d;var u={};for(var c in e)hasOwnProperty.call(e,c)&&(u[c]=e[c]);u.originalType=t,u[l]="string"==typeof t?t:a,r[1]=u;for(var p=2;p{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var i=n(7462),a=(n(7294),n(3905));const o={id:"set-up-authentication",title:"Set Up Authentication",sidebar_label:"Set Up Authentication",keywords:["set up authentication","Authentication setup guide","Setting up secure login","User authentication configuration","Authentication system setup","Authentication implementation steps","Authentication setup tutorial","Setting up user authorization","Authentication best practices"]},r=void 0,u={unversionedId:"contributing/set-up-authentication",id:"contributing/set-up-authentication",title:"Set Up Authentication",description:"You need to obtain an authentication token to interact with the OpenSauced public API as an authenticated user.",source:"@site/docs/contributing/set-up-authentication.md",sourceDirName:"contributing",slug:"/contributing/set-up-authentication",permalink:"/contributing/set-up-authentication",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/set-up-authentication.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"set-up-authentication",title:"Set Up Authentication",sidebar_label:"Set Up Authentication",keywords:["set up authentication","Authentication setup guide","Setting up secure login","User authentication configuration","Authentication system setup","Authentication implementation steps","Authentication setup tutorial","Setting up user authorization","Authentication best practices"]},sidebar:"docs",previous:{title:"Community Maintainers Guidelines",permalink:"/contributing/opensauced-maintainers-guide/community-maintainers-guide"},next:{title:"Setting Up a Repository with Git and GitHub",permalink:"/contributing/technical/setup-repo-with-git"}},c={},p=[],s={toc:p},l="wrapper";function h(t){let{components:e,...o}=t;return(0,a.kt)(l,(0,i.Z)({},s,o,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"You need to obtain an authentication token to interact with the OpenSauced public API as an authenticated user."),(0,a.kt)("p",null,"The following steps outline how to obtain an authentication token from the ",(0,a.kt)("a",{parentName:"p",href:"https://hot.opensauced.pizza"},"hot.opensauced.pizza")," website:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Click on your avatar in the top right corner of the page. This will open a dropdown menu."),(0,a.kt)("p",{parentName:"li"},(0,a.kt)("img",{alt:"Avatar in top right corner of the page",src:n(7523).Z,width:"330",height:"97"}))),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},'Click on the "Copy auth token" option to copy your auth token to clipboard.'),(0,a.kt)("p",{parentName:"li"},(0,a.kt)("img",{alt:"Copy Auth Token",src:n(5987).Z,width:"347",height:"380"}))),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"You can now use this token to make authenticated requests to the OpenSauced public API by including it in the Authorization header of your requests. For example:"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},'const response = await fetch(\n "https://api.opensauced.pizza/v2/auth/session",\n {\n method: "GET",\n headers: {\n Authorization: `Bearer ${token}`,\n },\n }\n);\n')))))}h.isMDXComponent=!0},7523:(t,e,n)=>{n.d(e,{Z:()=>i});const i=n.p+"assets/images/contributing-avatar-top-right-9fa9249bf532c85c0f86a4511ca92110.png"},5987:(t,e,n)=>{n.d(e,{Z:()=>i});const i=n.p+"assets/images/contributing-copy-auth-token-41b11f49db098dcbd83cbb5a22952579.png"}}]); \ No newline at end of file diff --git a/assets/js/4c2521ce.35100056.js b/assets/js/4c2521ce.35100056.js deleted file mode 100644 index 34bca9cd..00000000 --- a/assets/js/4c2521ce.35100056.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4657],{3905:(t,e,o)=>{o.d(e,{Zo:()=>s,kt:()=>g});var i=o(7294);function r(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function n(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.push.apply(o,i)}return o}function a(t){for(var e=1;e=0||(r[o]=t[o]);return r}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(r[o]=t[o])}return r}var u=i.createContext({}),p=function(t){var e=i.useContext(u),o=e;return t&&(o="function"==typeof t?t(e):a(a({},e),t)),o},s=function(t){var e=p(t.components);return i.createElement(u.Provider,{value:e},t.children)},c="mdxType",h={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var o=t.components,r=t.mdxType,n=t.originalType,u=t.parentName,s=l(t,["components","mdxType","originalType","parentName"]),c=p(o),d=r,g=c["".concat(u,".").concat(d)]||c[d]||h[d]||n;return o?i.createElement(g,a(a({ref:e},s),{},{components:o})):i.createElement(g,a({ref:e},s))}));function g(t,e){var o=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var n=o.length,a=new Array(n);a[0]=d;var l={};for(var u in e)hasOwnProperty.call(e,u)&&(l[u]=e[u]);l.originalType=t,l[c]="string"==typeof t?t:r,a[1]=l;for(var p=2;p{o.r(e),o.d(e,{assets:()=>u,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>l,toc:()=>p});var i=o(7462),r=(o(7294),o(3905));const n={id:"setup-repo-with-git",title:"Setting Up a Repository with Git and GitHub",sidebar_label:"Setting Up a Repository with Git and GitHub",keywords:["setting up a repository with Git and GitHub","working with git and github","GitHub repository creation","GitHub repository workflow","GitHub repository initialization","GitHub repository hosting","GitHub repository collaboration","GitHub repository version control","GitHub repository deployment","GitHub repository setup"]},a=void 0,l={unversionedId:"contributing/technical/setup-repo-with-git",id:"contributing/technical/setup-repo-with-git",title:"Setting Up a Repository with Git and GitHub",description:"Using the GitHub CLI",source:"@site/docs/contributing/technical/setup-repo-with-git.md",sourceDirName:"contributing/technical",slug:"/contributing/technical/setup-repo-with-git",permalink:"/contributing/technical/setup-repo-with-git",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/technical/setup-repo-with-git.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"setup-repo-with-git",title:"Setting Up a Repository with Git and GitHub",sidebar_label:"Setting Up a Repository with Git and GitHub",keywords:["setting up a repository with Git and GitHub","working with git and github","GitHub repository creation","GitHub repository workflow","GitHub repository initialization","GitHub repository hosting","GitHub repository collaboration","GitHub repository version control","GitHub repository deployment","GitHub repository setup"]},sidebar:"docs",previous:{title:"Set Up Authentication",permalink:"/contributing/set-up-authentication"},next:{title:"Resolve Merge Conflicts",permalink:"/contributing/technical/resolve-merge-conflicts"}},u={},p=[{value:"Using the GitHub CLI",id:"using-the-github-cli",level:2},{value:"How to Install the GitHub CLI",id:"how-to-install-the-github-cli",level:3},{value:"How to Authenticate with the GitHub CLI",id:"how-to-authenticate-with-the-github-cli",level:3},{value:"How to Fork and Clone a Repository with the GitHub CLI",id:"how-to-fork-and-clone-a-repository-with-the-github-cli",level:3},{value:"How to Add a Remote Repository",id:"how-to-add-a-remote-repository",level:3},{value:"How to View the Remote Repositories Locally",id:"how-to-view-the-remote-repositories-locally",level:3},{value:"Using the GitHub Website and the Command Line",id:"using-the-github-website-and-the-command-line",level:2}],s={toc:p},c="wrapper";function h(t){let{components:e,...o}=t;return(0,r.kt)(c,(0,i.Z)({},s,o,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"using-the-github-cli"},"Using the GitHub CLI"),(0,r.kt)("h3",{id:"how-to-install-the-github-cli"},"How to Install the GitHub CLI"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://cli.github.com/"},"GitHub CLI")," allows you to fork repositories, create issues, pull requests, and more from the command line."),(0,r.kt)("p",null,"Follow these ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/cli/cli#installation"},"instructions to install GitHub CLI")," on Mac, Windows, or Linux."),(0,r.kt)("h3",{id:"how-to-authenticate-with-the-github-cli"},"How to Authenticate with the GitHub CLI"),(0,r.kt)("p",null,"From the terminal, you will need to authenticate with the GitHub CLI. You can do this by running the following command:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"gh auth login\n")),(0,r.kt)("p",null,"Then, follow the prompts to authenticate with the GitHub CLI."),(0,r.kt)("h3",{id:"how-to-fork-and-clone-a-repository-with-the-github-cli"},"How to Fork and Clone a Repository with the GitHub CLI"),(0,r.kt)("p",null,"A fork is a remote copy of a repository, allowing you to experiment freely with changes without affecting the original project."),(0,r.kt)("p",null,"A clone is a local copy of a repository that includes all the files, branches and commits."),(0,r.kt)("p",null,"To fork and clone a repository with the GitHub CLI, run the following command:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"gh repo fork open-sauced/\n")),(0,r.kt)("p",null,"The GitHub CLI will fork the project in your GitHub account and will ask you if you want to clone the repository on your local machine."),(0,r.kt)("h3",{id:"how-to-add-a-remote-repository"},"How to Add a Remote Repository"),(0,r.kt)("p",null,"Adding a remote repository allows you to pull in changes from the original repository and keep your forked copy of the repository up to date."),(0,r.kt)("p",null,"To add a remote repository, run the following command:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"git remote add upstream https://github.com/open-sauced/app.git\n")),(0,r.kt)("h3",{id:"how-to-view-the-remote-repositories-locally"},"How to View the Remote Repositories Locally"),(0,r.kt)("p",null,"To view the remote repositories that your local repository is connected to, run the following command:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"git remote -v\n")),(0,r.kt)("p",null,"You should see the following output:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"origin git@github.com:YOUR_GITHUB_USERNAME/app.git (fetch)\norigin git@github.com:YOUR_GITHUB_USERNAME/app.git (push)\nupstream git@github.com:open-sauced/app.git (fetch)\nupstream git@github.com:open-sauced/app.git (push)\n")),(0,r.kt)("h2",{id:"using-the-github-website-and-the-command-line"},"Using the GitHub Website and the Command Line"),(0,r.kt)("p",null,"If you prefer to set up your repository using the GitHub website and the command line, follow this detailed guide from the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/get-started/quickstart/fork-a-repo"},"official GitHub documentation"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4c2521ce.f99b13e4.js b/assets/js/4c2521ce.f99b13e4.js new file mode 100644 index 00000000..d7f9c705 --- /dev/null +++ b/assets/js/4c2521ce.f99b13e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4657],{3905:(t,e,o)=>{o.d(e,{Zo:()=>s,kt:()=>g});var i=o(7294);function r(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function n(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.push.apply(o,i)}return o}function a(t){for(var e=1;e=0||(r[o]=t[o]);return r}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(r[o]=t[o])}return r}var u=i.createContext({}),p=function(t){var e=i.useContext(u),o=e;return t&&(o="function"==typeof t?t(e):a(a({},e),t)),o},s=function(t){var e=p(t.components);return i.createElement(u.Provider,{value:e},t.children)},c="mdxType",h={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var o=t.components,r=t.mdxType,n=t.originalType,u=t.parentName,s=l(t,["components","mdxType","originalType","parentName"]),c=p(o),d=r,g=c["".concat(u,".").concat(d)]||c[d]||h[d]||n;return o?i.createElement(g,a(a({ref:e},s),{},{components:o})):i.createElement(g,a({ref:e},s))}));function g(t,e){var o=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var n=o.length,a=new Array(n);a[0]=d;var l={};for(var u in e)hasOwnProperty.call(e,u)&&(l[u]=e[u]);l.originalType=t,l[c]="string"==typeof t?t:r,a[1]=l;for(var p=2;p{o.r(e),o.d(e,{assets:()=>u,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>l,toc:()=>p});var i=o(7462),r=(o(7294),o(3905));const n={id:"setup-repo-with-git",title:"Setting Up a Repository with Git and GitHub",sidebar_label:"Setting Up a Repository with Git and GitHub",keywords:["setting up a repository with Git and GitHub","working with git and github","GitHub repository creation","GitHub repository workflow","GitHub repository initialization","GitHub repository hosting","GitHub repository collaboration","GitHub repository version control","GitHub repository deployment","GitHub repository setup"]},a=void 0,l={unversionedId:"contributing/technical/setup-repo-with-git",id:"contributing/technical/setup-repo-with-git",title:"Setting Up a Repository with Git and GitHub",description:"Using the GitHub CLI",source:"@site/docs/contributing/technical/setup-repo-with-git.md",sourceDirName:"contributing/technical",slug:"/contributing/technical/setup-repo-with-git",permalink:"/contributing/technical/setup-repo-with-git",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/technical/setup-repo-with-git.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"setup-repo-with-git",title:"Setting Up a Repository with Git and GitHub",sidebar_label:"Setting Up a Repository with Git and GitHub",keywords:["setting up a repository with Git and GitHub","working with git and github","GitHub repository creation","GitHub repository workflow","GitHub repository initialization","GitHub repository hosting","GitHub repository collaboration","GitHub repository version control","GitHub repository deployment","GitHub repository setup"]},sidebar:"docs",previous:{title:"Set Up Authentication",permalink:"/contributing/set-up-authentication"},next:{title:"Resolve Merge Conflicts",permalink:"/contributing/technical/resolve-merge-conflicts"}},u={},p=[{value:"Using the GitHub CLI",id:"using-the-github-cli",level:2},{value:"How to Install the GitHub CLI",id:"how-to-install-the-github-cli",level:3},{value:"How to Authenticate with the GitHub CLI",id:"how-to-authenticate-with-the-github-cli",level:3},{value:"How to Fork and Clone a Repository with the GitHub CLI",id:"how-to-fork-and-clone-a-repository-with-the-github-cli",level:3},{value:"How to Add a Remote Repository",id:"how-to-add-a-remote-repository",level:3},{value:"How to View the Remote Repositories Locally",id:"how-to-view-the-remote-repositories-locally",level:3},{value:"Using the GitHub Website and the Command Line",id:"using-the-github-website-and-the-command-line",level:2}],s={toc:p},c="wrapper";function h(t){let{components:e,...o}=t;return(0,r.kt)(c,(0,i.Z)({},s,o,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"using-the-github-cli"},"Using the GitHub CLI"),(0,r.kt)("h3",{id:"how-to-install-the-github-cli"},"How to Install the GitHub CLI"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://cli.github.com/"},"GitHub CLI")," allows you to fork repositories, create issues, pull requests, and more from the command line."),(0,r.kt)("p",null,"Follow these ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/cli/cli#installation"},"instructions to install GitHub CLI")," on Mac, Windows, or Linux."),(0,r.kt)("h3",{id:"how-to-authenticate-with-the-github-cli"},"How to Authenticate with the GitHub CLI"),(0,r.kt)("p",null,"From the terminal, you will need to authenticate with the GitHub CLI. You can do this by running the following command:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"gh auth login\n")),(0,r.kt)("p",null,"Then, follow the prompts to authenticate with the GitHub CLI."),(0,r.kt)("h3",{id:"how-to-fork-and-clone-a-repository-with-the-github-cli"},"How to Fork and Clone a Repository with the GitHub CLI"),(0,r.kt)("p",null,"A fork is a remote copy of a repository, allowing you to experiment freely with changes without affecting the original project."),(0,r.kt)("p",null,"A clone is a local copy of a repository that includes all the files, branches and commits."),(0,r.kt)("p",null,"To fork and clone a repository with the GitHub CLI, run the following command:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"gh repo fork open-sauced/\n")),(0,r.kt)("p",null,"The GitHub CLI will fork the project in your GitHub account and will ask you if you want to clone the repository on your local machine."),(0,r.kt)("h3",{id:"how-to-add-a-remote-repository"},"How to Add a Remote Repository"),(0,r.kt)("p",null,"Adding a remote repository allows you to pull in changes from the original repository and keep your forked copy of the repository up to date."),(0,r.kt)("p",null,"To add a remote repository, run the following command:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"git remote add upstream https://github.com/open-sauced/app.git\n")),(0,r.kt)("h3",{id:"how-to-view-the-remote-repositories-locally"},"How to View the Remote Repositories Locally"),(0,r.kt)("p",null,"To view the remote repositories that your local repository is connected to, run the following command:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"git remote -v\n")),(0,r.kt)("p",null,"You should see the following output:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"origin git@github.com:YOUR_GITHUB_USERNAME/app.git (fetch)\norigin git@github.com:YOUR_GITHUB_USERNAME/app.git (push)\nupstream git@github.com:open-sauced/app.git (fetch)\nupstream git@github.com:open-sauced/app.git (push)\n")),(0,r.kt)("h2",{id:"using-the-github-website-and-the-command-line"},"Using the GitHub Website and the Command Line"),(0,r.kt)("p",null,"If you prefer to set up your repository using the GitHub website and the command line, follow this detailed guide from the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.github.com/en/get-started/quickstart/fork-a-repo"},"official GitHub documentation"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d1cfcdd.0a699c9d.js b/assets/js/4d1cfcdd.90a76afd.js similarity index 54% rename from assets/js/4d1cfcdd.0a699c9d.js rename to assets/js/4d1cfcdd.90a76afd.js index cdb4b4ab..82ec5e22 100644 --- a/assets/js/4d1cfcdd.0a699c9d.js +++ b/assets/js/4d1cfcdd.90a76afd.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4046],{3905:(t,e,i)=>{i.d(e,{Zo:()=>d,kt:()=>g});var n=i(7294);function s(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function o(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function a(t){for(var e=1;e=0||(s[i]=t[i]);return s}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(s[i]=t[i])}return s}var c=n.createContext({}),u=function(t){var e=n.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):a(a({},e),t)),i},d=function(t){var e=u(t.components);return n.createElement(c.Provider,{value:e},t.children)},l="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var i=t.components,s=t.mdxType,o=t.originalType,c=t.parentName,d=r(t,["components","mdxType","originalType","parentName"]),l=u(i),h=s,g=l["".concat(c,".").concat(h)]||l[h]||p[h]||o;return i?n.createElement(g,a(a({ref:e},d),{},{components:i})):n.createElement(g,a({ref:e},d))}));function g(t,e){var i=arguments,s=e&&e.mdxType;if("string"==typeof t||s){var o=i.length,a=new Array(o);a[0]=h;var r={};for(var c in e)hasOwnProperty.call(e,c)&&(r[c]=e[c]);r.originalType=t,r[l]="string"==typeof t?t:s,a[1]=r;for(var u=2;u{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>r,toc:()=>u});var n=i(7462),s=(i(7294),i(3905));const o={id:"viewing-insights-and-invitations",title:"Viewing Insights and Invitations",sidebar_label:"Insights and Invitations",keywords:["github","insights and invitations","github insights and invitations","how to view insights and invitations on github","github insights dashboard","github invitations management","github insights and invitations tutorial","github insights and invitations best practices","github insights and invitations examples"]},a=void 0,r={unversionedId:"tools/chrome-extension/viewing-insights-and-invitations",id:"tools/chrome-extension/viewing-insights-and-invitations",title:"Viewing Insights and Invitations",description:"View stats about open issues, PRs made, average PRs velocity, and contributed repos that are in the OpenSauced database. This page can be found by clicking the profile picture at the top left of the extension.",source:"@site/docs/tools/chrome-extension/viewing-insights-and-invitations.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/viewing-insights-and-invitations",permalink:"/tools/chrome-extension/viewing-insights-and-invitations",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/viewing-insights-and-invitations.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"viewing-insights-and-invitations",title:"Viewing Insights and Invitations",sidebar_label:"Insights and Invitations",keywords:["github","insights and invitations","github insights and invitations","how to view insights and invitations on github","github insights dashboard","github invitations management","github insights and invitations tutorial","github insights and invitations best practices","github insights and invitations examples"]},sidebar:"docs",previous:{title:"Refactoring and Testing",permalink:"/tools/chrome-extension/refactoring-and-testing"},next:{title:"Introduction to Contributing",permalink:"/contributing/introduction-to-contributing"}},c={},u=[{value:"Invite GitHub Users to Join OpenSauced With a Single Click",id:"invite-github-users-to-join-opensauced-with-a-single-click",level:2},{value:"View GitHub Users' OpenSauced Profiles and Connect With Them",id:"view-github-users-opensauced-profiles-and-connect-with-them",level:2}],d={toc:u},l="wrapper";function p(t){let{components:e,...o}=t;return(0,s.kt)(l,(0,n.Z)({},d,o,{components:e,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"View stats about open issues, PRs made, average PRs velocity, and contributed repos that are in the OpenSauced database. This page can be found by clicking the profile picture at the top left of the extension."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"GitHub Profile Insights",src:i(8467).Z,width:"450",height:"775"})),(0,s.kt)("h2",{id:"invite-github-users-to-join-opensauced-with-a-single-click"},"Invite GitHub Users to Join OpenSauced With a Single Click"),(0,s.kt)("p",null,"Invite other users to create an OpenSauced account to keep track of open source contributions when visiting their GitHub profile."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Invite GitHub Users",src:i(8194).Z,width:"410",height:"597"})),(0,s.kt)("h2",{id:"view-github-users-opensauced-profiles-and-connect-with-them"},"View GitHub Users' OpenSauced Profiles and Connect With Them"),(0,s.kt)("p",null,"View a user\u2019s OpenSauced profile when on their GitHub profile page."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"View OpenSauced Profiles",src:i(804).Z,width:"410",height:"597"})))}p.isMDXComponent=!0},8194:(t,e,i)=>{i.d(e,{Z:()=>n});const n=i.p+"assets/images/extension-invite-b7bf72c8cbdf9a9d68614971b05896c1.png"},8467:(t,e,i)=>{i.d(e,{Z:()=>n});const n=i.p+"assets/images/extension-popup-0c8898c6c29c0a9a694fc95d24ecdc94.png"},804:(t,e,i)=>{i.d(e,{Z:()=>n});const n=i.p+"assets/images/extension-view-18fe042acf7d3e3b94aad7476a6dfd83.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4046],{3905:(t,e,i)=>{i.d(e,{Zo:()=>d,kt:()=>g});var n=i(7294);function s(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function o(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function a(t){for(var e=1;e=0||(s[i]=t[i]);return s}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(s[i]=t[i])}return s}var c=n.createContext({}),u=function(t){var e=n.useContext(c),i=e;return t&&(i="function"==typeof t?t(e):a(a({},e),t)),i},d=function(t){var e=u(t.components);return n.createElement(c.Provider,{value:e},t.children)},p="mdxType",l={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},h=n.forwardRef((function(t,e){var i=t.components,s=t.mdxType,o=t.originalType,c=t.parentName,d=r(t,["components","mdxType","originalType","parentName"]),p=u(i),h=s,g=p["".concat(c,".").concat(h)]||p[h]||l[h]||o;return i?n.createElement(g,a(a({ref:e},d),{},{components:i})):n.createElement(g,a({ref:e},d))}));function g(t,e){var i=arguments,s=e&&e.mdxType;if("string"==typeof t||s){var o=i.length,a=new Array(o);a[0]=h;var r={};for(var c in e)hasOwnProperty.call(e,c)&&(r[c]=e[c]);r.originalType=t,r[p]="string"==typeof t?t:s,a[1]=r;for(var u=2;u{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>o,metadata:()=>r,toc:()=>u});var n=i(7462),s=(i(7294),i(3905));const o={id:"viewing-insights-and-invitations",title:"Viewing Insights and Invitations",sidebar_label:"Insights and Invitations",keywords:["github","insights and invitations","github insights and invitations","how to view insights and invitations on github","github insights dashboard","github invitations management","github insights and invitations tutorial","github insights and invitations best practices","github insights and invitations examples"]},a=void 0,r={unversionedId:"tools/chrome-extension/viewing-insights-and-invitations",id:"tools/chrome-extension/viewing-insights-and-invitations",title:"Viewing Insights and Invitations",description:"View stats about open issues, PRs made, average PRs velocity, and contributed repos that are in the OpenSauced database. This page can be found by clicking the profile picture at the top left of the extension.",source:"@site/docs/tools/chrome-extension/viewing-insights-and-invitations.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/viewing-insights-and-invitations",permalink:"/tools/chrome-extension/viewing-insights-and-invitations",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/viewing-insights-and-invitations.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"viewing-insights-and-invitations",title:"Viewing Insights and Invitations",sidebar_label:"Insights and Invitations",keywords:["github","insights and invitations","github insights and invitations","how to view insights and invitations on github","github insights dashboard","github invitations management","github insights and invitations tutorial","github insights and invitations best practices","github insights and invitations examples"]},sidebar:"docs",previous:{title:"Refactoring and Testing",permalink:"/tools/chrome-extension/refactoring-and-testing"},next:{title:"Introduction to Contributing",permalink:"/contributing/introduction-to-contributing"}},c={},u=[{value:"Invite GitHub Users to Join OpenSauced With a Single Click",id:"invite-github-users-to-join-opensauced-with-a-single-click",level:2},{value:"View GitHub Users' OpenSauced Profiles and Connect With Them",id:"view-github-users-opensauced-profiles-and-connect-with-them",level:2}],d={toc:u},p="wrapper";function l(t){let{components:e,...o}=t;return(0,s.kt)(p,(0,n.Z)({},d,o,{components:e,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"View stats about open issues, PRs made, average PRs velocity, and contributed repos that are in the OpenSauced database. This page can be found by clicking the profile picture at the top left of the extension."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"GitHub Profile Insights",src:i(8467).Z,width:"450",height:"775"})),(0,s.kt)("h2",{id:"invite-github-users-to-join-opensauced-with-a-single-click"},"Invite GitHub Users to Join OpenSauced With a Single Click"),(0,s.kt)("p",null,"Invite other users to create an OpenSauced account to keep track of open source contributions when visiting their GitHub profile."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"Invite GitHub Users",src:i(8194).Z,width:"410",height:"597"})),(0,s.kt)("h2",{id:"view-github-users-opensauced-profiles-and-connect-with-them"},"View GitHub Users' OpenSauced Profiles and Connect With Them"),(0,s.kt)("p",null,"View a user\u2019s OpenSauced profile when on their GitHub profile page."),(0,s.kt)("p",null,(0,s.kt)("img",{alt:"View OpenSauced Profiles",src:i(804).Z,width:"410",height:"597"})))}l.isMDXComponent=!0},8194:(t,e,i)=>{i.d(e,{Z:()=>n});const n=i.p+"assets/images/extension-invite-b7bf72c8cbdf9a9d68614971b05896c1.png"},8467:(t,e,i)=>{i.d(e,{Z:()=>n});const n=i.p+"assets/images/extension-popup-0c8898c6c29c0a9a694fc95d24ecdc94.png"},804:(t,e,i)=>{i.d(e,{Z:()=>n});const n=i.p+"assets/images/extension-view-18fe042acf7d3e3b94aad7476a6dfd83.png"}}]); \ No newline at end of file diff --git a/assets/js/51fe39eb.3aa5a03c.js b/assets/js/51fe39eb.3aa5a03c.js new file mode 100644 index 00000000..e3e77b9b --- /dev/null +++ b/assets/js/51fe39eb.3aa5a03c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[5994],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>m});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var c=a.createContext({}),p=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},l=function(e){var n=p(e.components);return a.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},g=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,r=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(t),g=i,m=d["".concat(c,".").concat(g)]||d[g]||u[g]||r;return t?a.createElement(m,o(o({ref:n},l),{},{components:t})):a.createElement(m,o({ref:n},l))}));function m(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var r=t.length,o=new Array(r);o[0]=g;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var p=2;p{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var a=t(7462),i=(t(7294),t(3905));const r={id:"check-engines",title:"@open-sauced/check-engines",sidebar_label:"@open-sauced/check-engines",keywords:["open sauced check engines","npm install check engines","open source dependency verification","npm package engines property","open sauced dependency management","npm run check engines"]},o=void 0,s={unversionedId:"opensauced-packages/check-engines",id:"opensauced-packages/check-engines",title:"@open-sauced/check-engines",description:"Description",source:"@site/docs/opensauced-packages/check-engines.md",sourceDirName:"opensauced-packages",slug:"/opensauced-packages/check-engines",permalink:"/opensauced-packages/check-engines",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-packages/check-engines.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"check-engines",title:"@open-sauced/check-engines",sidebar_label:"@open-sauced/check-engines",keywords:["open sauced check engines","npm install check engines","open source dependency verification","npm package engines property","open sauced dependency management","npm run check engines"]},sidebar:"docs",previous:{title:"Resolve Merge Conflicts",permalink:"/contributing/technical/resolve-merge-conflicts"},next:{title:"@open-sauced/conventional-commit",permalink:"/opensauced-packages/conventional-commit"}},c={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Advanced Usage",id:"advanced-usage",level:2},{value:"FAQs",id:"faqs",level:2},{value:"Usage on an Older node and npm Versions",id:"usage-on-an-older-node-and-npm-versions",level:3},{value:"Why Not Use check-engines or engine-strict?",id:"why-not-use-check-engines-or-engine-strict",level:3},{value:"Library Usage",id:"library-usage",level:3},{value:"Contributing",id:"contributing",level:2}],l={toc:p},d="wrapper";function u(e){let{components:n,...t}=e;return(0,i.kt)(d,(0,a.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"description"},"Description"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,i.kt)("inlineCode",{parentName:"p"},"@open-sauced/check-engines")," is designed to help contributors install dependencies conforming to the ",(0,i.kt)("inlineCode",{parentName:"p"},"engines")," property in ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json"),"."),(0,i.kt)("h2",{id:"dependencies"},"Dependencies"),(0,i.kt)("p",null,"This package uses the following modules:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/npm/npm-install-checks"},"npm-install-checks"))),(0,i.kt)("h2",{id:"installation"},"Installation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm install --save-dev @open-sauced/check-engines\n")),(0,i.kt)("p",null,"Add the verification scripts to your ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts")," section in the ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," file:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "preinstall": "npx @open-sauced/check-engines"\n }\n}\n')),(0,i.kt)("p",null,"The reason why we provide ",(0,i.kt)("inlineCode",{parentName:"p"},"npx")," in the ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts")," section is for the people using this as a development enhancement, interactive configurations or trimmed dependency trees, where using ",(0,i.kt)("inlineCode",{parentName:"p"},"npx")," is preferred over installing all the dependencies at once."),(0,i.kt)("h2",{id:"usage"},"Usage"),(0,i.kt)("p",null,"Use your favorite package manager to install dependencies in your project or, if you set it as a global verification system:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "preinstall": "npm run check-engines",\n "prestart": "npm run check-engines"\n }\n}\n')),(0,i.kt)("h2",{id:"advanced-usage"},"Advanced Usage"),(0,i.kt)("p",null,"If you have an API or any other non-library type of application, you can decouple this package from any install scripts and just use it as a verification:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "prestart": "npm run check-engines"\n }\n}\n')),(0,i.kt)("p",null,"A more traditional approach not using ",(0,i.kt)("inlineCode",{parentName:"p"},"pre")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"post")," scripts, this example enables the check only for local machine development:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "start": "...",\n "dev": "npm run check-engines && npm start -- --watch"\n }\n}\n')),(0,i.kt)("h2",{id:"faqs"},"FAQs"),(0,i.kt)("h3",{id:"usage-on-an-older-node-and-npm-versions"},"Usage on an Older ",(0,i.kt)("inlineCode",{parentName:"h3"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"h3"},"npm")," Versions"),(0,i.kt)("p",null,"Older ",(0,i.kt)("inlineCode",{parentName:"p"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," versions won't be able to run this package; depending on the versions, the scripts section could be ignored completely."),(0,i.kt)("p",null,"If you have that use case, this package is only worth enabling for progressive contributors frequently missing the legacy support of the respective module and forcefully upgrading dependencies - them running newer versions will force the error message and explicitly disable."),(0,i.kt)("h3",{id:"why-not-use-check-engines-or-engine-strict"},"Why Not Use ",(0,i.kt)("inlineCode",{parentName:"h3"},"check-engines")," or ",(0,i.kt)("inlineCode",{parentName:"h3"},"engine-strict"),"?"),(0,i.kt)("p",null,"As described in the ",(0,i.kt)("inlineCode",{parentName:"p"},"npm@6")," ",(0,i.kt)("a",{parentName:"p",href:"https://docs.npmjs.com/cli/v6/configuring-npm/package-json#enginestrict"},"engine-strict docs"),":"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Prior to npm 3.0.0, this feature was used to treat this package as if the user had set ",(0,i.kt)("inlineCode",{parentName:"p"},"engine-strict"),". It is no longer used.")),(0,i.kt)("p",null,"In ",(0,i.kt)("inlineCode",{parentName:"p"},"npm@6")," and later, this was re-introduced as a ",(0,i.kt)("a",{parentName:"p",href:"https://docs.npmjs.com/cli/v7/using-npm/config#engine-strict"},"config flag"),"."),(0,i.kt)("p",null,"This package is designed with multiple legacy use cases in mind."),(0,i.kt)("h3",{id:"library-usage"},"Library Usage"),(0,i.kt)("p",null,"If you use this module in a library package, be advised that any ",(0,i.kt)("inlineCode",{parentName:"p"},"*install")," script will run in the parent module when installed."),(0,i.kt)("p",null,"For example, given a module ",(0,i.kt)("inlineCode",{parentName:"p"},"@demo-org/demo-package")," with a ",(0,i.kt)("inlineCode",{parentName:"p"},'preinstall: "npx @open-sauced/check-engines"')," script, running ",(0,i.kt)("inlineCode",{parentName:"p"},"npm install @demo-org/demo-package")," will require your locally installed ",(0,i.kt)("inlineCode",{parentName:"p"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," versions to match the ",(0,i.kt)("inlineCode",{parentName:"p"},"engines")," section of your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json"),". If that is not set, nothing should happen, and this package is a stray dependency in either ",(0,i.kt)("inlineCode",{parentName:"p"},"@demo-org/demo-package")," or the module you are running this command in."),(0,i.kt)("h2",{id:"contributing"},"Contributing"),(0,i.kt)("p",null,"We're always happy to onboard people into open source!"),(0,i.kt)("p",null,"Check out the repository at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/check-engines"},"@open-sauced/check-engines"),". \u2764\ufe0f"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/51fe39eb.ce56b884.js b/assets/js/51fe39eb.ce56b884.js deleted file mode 100644 index 999487a9..00000000 --- a/assets/js/51fe39eb.ce56b884.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[5994],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>m});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var c=a.createContext({}),p=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},l=function(e){var n=p(e.components);return a.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},g=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,r=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(t),g=i,m=d["".concat(c,".").concat(g)]||d[g]||u[g]||r;return t?a.createElement(m,o(o({ref:n},l),{},{components:t})):a.createElement(m,o({ref:n},l))}));function m(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var r=t.length,o=new Array(r);o[0]=g;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var p=2;p{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var a=t(7462),i=(t(7294),t(3905));const r={id:"check-engines",title:"@open-sauced/check-engines",sidebar_label:"@open-sauced/check-engines",keywords:["open sauced check engines","npm install check engines","open source dependency verification","npm package engines property","open sauced dependency management","npm run check engines"]},o=void 0,s={unversionedId:"opensauced-packages/check-engines",id:"opensauced-packages/check-engines",title:"@open-sauced/check-engines",description:"Description",source:"@site/docs/opensauced-packages/check-engines.md",sourceDirName:"opensauced-packages",slug:"/opensauced-packages/check-engines",permalink:"/opensauced-packages/check-engines",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-packages/check-engines.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"check-engines",title:"@open-sauced/check-engines",sidebar_label:"@open-sauced/check-engines",keywords:["open sauced check engines","npm install check engines","open source dependency verification","npm package engines property","open sauced dependency management","npm run check engines"]},sidebar:"docs",previous:{title:"Resolve Merge Conflicts",permalink:"/contributing/technical/resolve-merge-conflicts"},next:{title:"@open-sauced/conventional-commit",permalink:"/opensauced-packages/conventional-commit"}},c={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Advanced Usage",id:"advanced-usage",level:2},{value:"FAQs",id:"faqs",level:2},{value:"Usage on an Older node and npm Versions",id:"usage-on-an-older-node-and-npm-versions",level:3},{value:"Why Not Use check-engines or engine-strict?",id:"why-not-use-check-engines-or-engine-strict",level:3},{value:"Library Usage",id:"library-usage",level:3},{value:"Contributing",id:"contributing",level:2}],l={toc:p},d="wrapper";function u(e){let{components:n,...t}=e;return(0,i.kt)(d,(0,a.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"description"},"Description"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,i.kt)("inlineCode",{parentName:"p"},"@open-sauced/check-engines")," is designed to help contributors install dependencies conforming to the ",(0,i.kt)("inlineCode",{parentName:"p"},"engines")," property in ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json"),"."),(0,i.kt)("h2",{id:"dependencies"},"Dependencies"),(0,i.kt)("p",null,"This package uses the following modules:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/npm/npm-install-checks"},"npm-install-checks"))),(0,i.kt)("h2",{id:"installation"},"Installation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm install --save-dev @open-sauced/check-engines\n")),(0,i.kt)("p",null,"Add the verification scripts to your ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts")," section in the ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," file:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "preinstall": "npx @open-sauced/check-engines"\n }\n}\n')),(0,i.kt)("p",null,"The reason why we provide ",(0,i.kt)("inlineCode",{parentName:"p"},"npx")," in the ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts")," section is for the people using this as a development enhancement, interactive configurations or trimmed dependency trees, where using ",(0,i.kt)("inlineCode",{parentName:"p"},"npx")," is preferred over installing all the dependencies at once."),(0,i.kt)("h2",{id:"usage"},"Usage"),(0,i.kt)("p",null,"Use your favorite package manager to install dependencies in your project or, if you set it as a global verification system:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "preinstall": "npm run check-engines",\n "prestart": "npm run check-engines"\n }\n}\n')),(0,i.kt)("h2",{id:"advanced-usage"},"Advanced Usage"),(0,i.kt)("p",null,"If you have an API or any other non-library type of application, you can decouple this package from any install scripts and just use it as a verification:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "prestart": "npm run check-engines"\n }\n}\n')),(0,i.kt)("p",null,"A more traditional approach not using ",(0,i.kt)("inlineCode",{parentName:"p"},"pre")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"post")," scripts, this example enables the check only for local machine development:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "start": "...",\n "dev": "npm run check-engines && npm start -- --watch"\n }\n}\n')),(0,i.kt)("h2",{id:"faqs"},"FAQs"),(0,i.kt)("h3",{id:"usage-on-an-older-node-and-npm-versions"},"Usage on an Older ",(0,i.kt)("inlineCode",{parentName:"h3"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"h3"},"npm")," Versions"),(0,i.kt)("p",null,"Older ",(0,i.kt)("inlineCode",{parentName:"p"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," versions won't be able to run this package; depending on the versions, the scripts section could be ignored completely."),(0,i.kt)("p",null,"If you have that use case, this package is only worth enabling for progressive contributors frequently missing the legacy support of the respective module and forcefully upgrading dependencies - them running newer versions will force the error message and explicitly disable."),(0,i.kt)("h3",{id:"why-not-use-check-engines-or-engine-strict"},"Why Not Use ",(0,i.kt)("inlineCode",{parentName:"h3"},"check-engines")," or ",(0,i.kt)("inlineCode",{parentName:"h3"},"engine-strict"),"?"),(0,i.kt)("p",null,"As described in the ",(0,i.kt)("inlineCode",{parentName:"p"},"npm@6")," ",(0,i.kt)("a",{parentName:"p",href:"https://docs.npmjs.com/cli/v6/configuring-npm/package-json#enginestrict"},"engine-strict docs"),":"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Prior to npm 3.0.0, this feature was used to treat this package as if the user had set ",(0,i.kt)("inlineCode",{parentName:"p"},"engine-strict"),". It is no longer used.")),(0,i.kt)("p",null,"In ",(0,i.kt)("inlineCode",{parentName:"p"},"npm@6")," and later, this was re-introduced as a ",(0,i.kt)("a",{parentName:"p",href:"https://docs.npmjs.com/cli/v7/using-npm/config#engine-strict"},"config flag"),"."),(0,i.kt)("p",null,"This package is designed with multiple legacy use cases in mind."),(0,i.kt)("h3",{id:"library-usage"},"Library Usage"),(0,i.kt)("p",null,"If you use this module in a library package, be advised that any ",(0,i.kt)("inlineCode",{parentName:"p"},"*install")," script will run in the parent module when installed."),(0,i.kt)("p",null,"For example, given a module ",(0,i.kt)("inlineCode",{parentName:"p"},"@demo-org/demo-package")," with a ",(0,i.kt)("inlineCode",{parentName:"p"},'preinstall: "npx @open-sauced/check-engines"')," script, running ",(0,i.kt)("inlineCode",{parentName:"p"},"npm install @demo-org/demo-package")," will require your locally installed ",(0,i.kt)("inlineCode",{parentName:"p"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," versions to match the ",(0,i.kt)("inlineCode",{parentName:"p"},"engines")," section of your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json"),". If that is not set, nothing should happen, and this package is a stray dependency in either ",(0,i.kt)("inlineCode",{parentName:"p"},"@demo-org/demo-package")," or the module you are running this command in."),(0,i.kt)("h2",{id:"contributing"},"Contributing"),(0,i.kt)("p",null,"We're always happy to onboard people into open source!"),(0,i.kt)("p",null,"Check out the repository at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/check-engines"},"@open-sauced/check-engines"),". \u2764\ufe0f"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/561e6817.0d82725b.js b/assets/js/561e6817.0d82725b.js deleted file mode 100644 index 3659fb43..00000000 --- a/assets/js/561e6817.0d82725b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[1161],{3905:(e,t,o)=>{o.d(t,{Zo:()=>s,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=n.createContext({}),l=function(e){var t=n.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},s=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),p=l(o),d=r,h=p["".concat(c,".").concat(d)]||p[d]||m[d]||i;return o?n.createElement(h,a(a({ref:t},s),{},{components:o})):n.createElement(h,a({ref:t},s))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=d;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[p]="string"==typeof e?e:r,a[1]=u;for(var l=2;l{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>i,metadata:()=>u,toc:()=>l});var n=o(7462),r=(o(7294),o(3905));const i={id:"welcome-to-the-community",title:"Welcome to the OpenSauced Community",sidebar_label:"Welcome to the Community",keywords:["welcome to the community","The community welcomes you","Get involved in the community","Join our community","Greetings from the community"]},a=void 0,u={unversionedId:"community/welcome-to-the-community",id:"community/welcome-to-the-community",title:"Welcome to the OpenSauced Community",description:"Welcome to the OpenSauced community! At OpenSauced, we strive to bring collaboration and inspiration to every open source contributor and help build a global community of open source developers, empowering you to grow, innovate, and achieve greatness in the open.",source:"@site/docs/community/welcome-to-the-community.md",sourceDirName:"community",slug:"/community/welcome-to-the-community",permalink:"/community/welcome-to-the-community",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/welcome-to-the-community.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"welcome-to-the-community",title:"Welcome to the OpenSauced Community",sidebar_label:"Welcome to the Community",keywords:["welcome to the community","The community welcomes you","Get involved in the community","Join our community","Greetings from the community"]},sidebar:"docs",previous:{title:"Contributors Guide to OpenSauced",permalink:"/contributors/contributors-guide-to-open-sauced"},next:{title:"#100DaysOfOSS",permalink:"/community/100-days-of-oss"}},c={},l=[{value:"Community Guidelines",id:"community-guidelines",level:2},{value:"Keeping Up with OpenSauced",id:"keeping-up-with-opensauced",level:2},{value:"How to Get Involved",id:"how-to-get-involved",level:2},{value:"Resources on Getting Started with Open Source",id:"resources-on-getting-started-with-open-source",level:2}],s={toc:l},p="wrapper";function m(e){let{components:t,...o}=e;return(0,r.kt)(p,(0,n.Z)({},s,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Welcome to the OpenSauced community! At OpenSauced, we strive to bring collaboration and inspiration to every open source contributor and help build a global community of open source developers, empowering you to grow, innovate, and achieve greatness in the open."),(0,r.kt)("h2",{id:"community-guidelines"},"Community Guidelines"),(0,r.kt)("p",null,"We pledge to create a welcoming and inclusive community for everyone at OpenSauced. We have a few guidelines to help us achieve this goal:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Be respectful and kind to others in the community."),(0,r.kt)("li",{parentName:"ul"},"Be patient with others and help them learn."),(0,r.kt)("li",{parentName:"ul"},"Be open to feedback and constructive criticism."),(0,r.kt)("li",{parentName:"ul"},"Adhere to the ",(0,r.kt)("a",{parentName:"li",href:"/contributing/code-of-conduct"},"Code of Conduct"),".")),(0,r.kt)("h2",{id:"keeping-up-with-opensauced"},"Keeping Up with OpenSauced"),(0,r.kt)("p",null,"The OpenSauced community is a group of open source enthusiasts who are passionate about making open source more accessible to everyone. Here are some ways you can keep up with what we're doing:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Follow us on X ",(0,r.kt)("a",{parentName:"li",href:"https://twitter.com/saucedopen"},"@SaucedOpen")," for announcements and our frequent X Spaces."),(0,r.kt)("li",{parentName:"ul"},"Join our ",(0,r.kt)("a",{parentName:"li",href:"https://discord.gg/opensauced"},"Discord")," and hang out with us during our weekly office hours."),(0,r.kt)("li",{parentName:"ul"},"Subscribe to our ",(0,r.kt)("a",{parentName:"li",href:"https://www.youtube.com/@OpenSauced"},"YouTube channel")," for the latest updates and video content for OpenSauced."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcf0 Subscribe to our ",(0,r.kt)("a",{parentName:"li",href:"https://news.opensauced.pizza/#/portal/signup"},"newsletter")," for all things OpenSauced and open source."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\uddd3\ufe0f Check out the ",(0,r.kt)("a",{parentName:"li",href:"https://calendar.google.com/calendar/u/0?cid=Y19kYWRhODM2MjlhZDg4ZWM2M2IxZGFmMTE5MDIyMDg0MjU2ZmQ4NmNjNWNhYmMxMjk5MDhjMGUxOTY3NjY4ZTg0QGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20"},"calendar")," for our next weekly community chat.")),(0,r.kt)("h2",{id:"how-to-get-involved"},"How to Get Involved"),(0,r.kt)("p",null,"You can get involved in the OpenSauced community in a few ways:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Share your contributions! We love to see what you're working on. Highlight your contributions on ",(0,r.kt)("a",{parentName:"li",href:"https://app.opensauced.pizza/feed"},"OpenSauced"),"."),(0,r.kt)("li",{parentName:"ul"},"Open an issue or ask to be assigned to an existing issue on any of our ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/open-sauced"},"OpenSauced repositories"),"."),(0,r.kt)("li",{parentName:"ul"},"Share what you're working on, ask questions, or mentor new contributors in our ",(0,r.kt)("a",{parentName:"li",href:"https://discord.gg/opensauced"},"Discord"),"."),(0,r.kt)("li",{parentName:"ul"},"Provide feedback on our ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/open-sauced/discussions"},"GitHub Discussions"),".")),(0,r.kt)("h2",{id:"resources-on-getting-started-with-open-source"},"Resources on Getting Started with Open Source"),(0,r.kt)("p",null,"Getting started with open source can be challenging, so we've put together some resources to help you get started."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcdd Check out our ",(0,r.kt)("a",{parentName:"li",href:"https://dev.to/opensauced"},"blog on Dev.to"),", where we provide resources for open source contributors."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcd6 Take our ",(0,r.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source Course")," to help you start with open source."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcc5 Join our ",(0,r.kt)("a",{parentName:"li",href:"/community/100-days-of-oss"},"#100DaysOfOSS Challenge")," to help you grow your skills and gain real-world experience in open source.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/561e6817.e86713c0.js b/assets/js/561e6817.e86713c0.js new file mode 100644 index 00000000..4e058154 --- /dev/null +++ b/assets/js/561e6817.e86713c0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[1161],{3905:(e,t,o)=>{o.d(t,{Zo:()=>s,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=n.createContext({}),l=function(e){var t=n.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},s=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),p=l(o),d=r,h=p["".concat(c,".").concat(d)]||p[d]||m[d]||i;return o?n.createElement(h,a(a({ref:t},s),{},{components:o})):n.createElement(h,a({ref:t},s))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=d;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[p]="string"==typeof e?e:r,a[1]=u;for(var l=2;l{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>i,metadata:()=>u,toc:()=>l});var n=o(7462),r=(o(7294),o(3905));const i={id:"welcome-to-the-community",title:"Welcome to the OpenSauced Community",sidebar_label:"Welcome to the Community",keywords:["welcome to the community","The community welcomes you","Get involved in the community","Join our community","Greetings from the community"]},a=void 0,u={unversionedId:"community/welcome-to-the-community",id:"community/welcome-to-the-community",title:"Welcome to the OpenSauced Community",description:"Welcome to the OpenSauced community! At OpenSauced, we strive to bring collaboration and inspiration to every open source contributor and help build a global community of open source developers, empowering you to grow, innovate, and achieve greatness in the open.",source:"@site/docs/community/welcome-to-the-community.md",sourceDirName:"community",slug:"/community/welcome-to-the-community",permalink:"/community/welcome-to-the-community",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/welcome-to-the-community.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"welcome-to-the-community",title:"Welcome to the OpenSauced Community",sidebar_label:"Welcome to the Community",keywords:["welcome to the community","The community welcomes you","Get involved in the community","Join our community","Greetings from the community"]},sidebar:"docs",previous:{title:"Contributors Guide to OpenSauced",permalink:"/contributors/contributors-guide-to-open-sauced"},next:{title:"#100DaysOfOSS",permalink:"/community/100-days-of-oss"}},c={},l=[{value:"Community Guidelines",id:"community-guidelines",level:2},{value:"Keeping Up with OpenSauced",id:"keeping-up-with-opensauced",level:2},{value:"How to Get Involved",id:"how-to-get-involved",level:2},{value:"Resources on Getting Started with Open Source",id:"resources-on-getting-started-with-open-source",level:2}],s={toc:l},p="wrapper";function m(e){let{components:t,...o}=e;return(0,r.kt)(p,(0,n.Z)({},s,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Welcome to the OpenSauced community! At OpenSauced, we strive to bring collaboration and inspiration to every open source contributor and help build a global community of open source developers, empowering you to grow, innovate, and achieve greatness in the open."),(0,r.kt)("h2",{id:"community-guidelines"},"Community Guidelines"),(0,r.kt)("p",null,"We pledge to create a welcoming and inclusive community for everyone at OpenSauced. We have a few guidelines to help us achieve this goal:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Be respectful and kind to others in the community."),(0,r.kt)("li",{parentName:"ul"},"Be patient with others and help them learn."),(0,r.kt)("li",{parentName:"ul"},"Be open to feedback and constructive criticism."),(0,r.kt)("li",{parentName:"ul"},"Adhere to the ",(0,r.kt)("a",{parentName:"li",href:"/contributing/code-of-conduct"},"Code of Conduct"),".")),(0,r.kt)("h2",{id:"keeping-up-with-opensauced"},"Keeping Up with OpenSauced"),(0,r.kt)("p",null,"The OpenSauced community is a group of open source enthusiasts who are passionate about making open source more accessible to everyone. Here are some ways you can keep up with what we're doing:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Follow us on X ",(0,r.kt)("a",{parentName:"li",href:"https://twitter.com/saucedopen"},"@SaucedOpen")," for announcements and our frequent X Spaces."),(0,r.kt)("li",{parentName:"ul"},"Join our ",(0,r.kt)("a",{parentName:"li",href:"https://discord.gg/opensauced"},"Discord")," and hang out with us during our weekly office hours."),(0,r.kt)("li",{parentName:"ul"},"Subscribe to our ",(0,r.kt)("a",{parentName:"li",href:"https://www.youtube.com/@OpenSauced"},"YouTube channel")," for the latest updates and video content for OpenSauced."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcf0 Subscribe to our ",(0,r.kt)("a",{parentName:"li",href:"https://news.opensauced.pizza/#/portal/signup"},"newsletter")," for all things OpenSauced and open source."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\uddd3\ufe0f Check out the ",(0,r.kt)("a",{parentName:"li",href:"https://calendar.google.com/calendar/u/0?cid=Y19kYWRhODM2MjlhZDg4ZWM2M2IxZGFmMTE5MDIyMDg0MjU2ZmQ4NmNjNWNhYmMxMjk5MDhjMGUxOTY3NjY4ZTg0QGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20"},"calendar")," for our next weekly community chat.")),(0,r.kt)("h2",{id:"how-to-get-involved"},"How to Get Involved"),(0,r.kt)("p",null,"You can get involved in the OpenSauced community in a few ways:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Share your contributions! We love to see what you're working on. Highlight your contributions on ",(0,r.kt)("a",{parentName:"li",href:"https://app.opensauced.pizza/feed"},"OpenSauced"),"."),(0,r.kt)("li",{parentName:"ul"},"Open an issue or ask to be assigned to an existing issue on any of our ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/open-sauced"},"OpenSauced repositories"),"."),(0,r.kt)("li",{parentName:"ul"},"Share what you're working on, ask questions, or mentor new contributors in our ",(0,r.kt)("a",{parentName:"li",href:"https://discord.gg/opensauced"},"Discord"),"."),(0,r.kt)("li",{parentName:"ul"},"Provide feedback on our ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/orgs/open-sauced/discussions"},"GitHub Discussions"),".")),(0,r.kt)("h2",{id:"resources-on-getting-started-with-open-source"},"Resources on Getting Started with Open Source"),(0,r.kt)("p",null,"Getting started with open source can be challenging, so we've put together some resources to help you get started."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcdd Check out our ",(0,r.kt)("a",{parentName:"li",href:"https://dev.to/opensauced"},"blog on Dev.to"),", where we provide resources for open source contributors."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcd6 Take our ",(0,r.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source Course")," to help you start with open source."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcc5 Join our ",(0,r.kt)("a",{parentName:"li",href:"/community/100-days-of-oss"},"#100DaysOfOSS Challenge")," to help you grow your skills and gain real-world experience in open source.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/580fd761.03900d43.js b/assets/js/580fd761.03900d43.js deleted file mode 100644 index d5318a52..00000000 --- a/assets/js/580fd761.03900d43.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[7607],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),s=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=s(e.components);return o.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=s(n),m=r,f=d["".concat(l,".").concat(m)]||d[m]||p[m]||i;return n?o.createElement(f,a(a({ref:t},u),{},{components:n})):o.createElement(f,a({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:r,a[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var o=n(7462),r=(n(7294),n(3905));const i={id:"code-of-conduct",title:"Code of Conduct",sidebar_label:"Code of Conduct",keywords:["code of conduct","Community guidelines","Guidelines for behavior","Interaction guidelines","rules and guidelines","Behavioral expectations"]},a=void 0,c={unversionedId:"contributing/code-of-conduct",id:"contributing/code-of-conduct",title:"Code of Conduct",description:"Our Pledge",source:"@site/docs/contributing/code-of-conduct.md",sourceDirName:"contributing",slug:"/contributing/code-of-conduct",permalink:"/contributing/code-of-conduct",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/code-of-conduct.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"code-of-conduct",title:"Code of Conduct",sidebar_label:"Code of Conduct",keywords:["code of conduct","Community guidelines","Guidelines for behavior","Interaction guidelines","rules and guidelines","Behavioral expectations"]},sidebar:"docs",previous:{title:"Introduction to Contributing",permalink:"/contributing/introduction-to-contributing"},next:{title:"Triage Guide",permalink:"/contributing/triage-guide"}},l={},s=[{value:"Our Pledge",id:"our-pledge",level:2},{value:"Our Standards",id:"our-standards",level:2},{value:"Our Responsibilities",id:"our-responsibilities",level:2},{value:"Scope",id:"scope",level:2},{value:"Enforcement",id:"enforcement",level:2},{value:"Attribution",id:"attribution",level:2}],u={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"our-pledge"},"Our Pledge"),(0,r.kt)("p",null,"In the interest of fostering an open and welcoming environment, we as\ncontributors 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."),(0,r.kt)("h2",{id:"our-standards"},"Our Standards"),(0,r.kt)("p",null,"Examples of behavior that contributes to creating a positive environment\ninclude:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Using welcoming and inclusive language."),(0,r.kt)("li",{parentName:"ul"},"Being respectful of differing viewpoints and experiences."),(0,r.kt)("li",{parentName:"ul"},"Gracefully accepting constructive criticism."),(0,r.kt)("li",{parentName:"ul"},"Focusing on what is best for the community."),(0,r.kt)("li",{parentName:"ul"},"Showing empathy towards other community members.")),(0,r.kt)("p",null,"Examples of unacceptable behavior by participants include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The use of sexualized language or imagery and unwelcome sexual attention or advances."),(0,r.kt)("li",{parentName:"ul"},"Trolling, insulting/derogatory comments, and personal or political attacks."),(0,r.kt)("li",{parentName:"ul"},"Public or private harassment."),(0,r.kt)("li",{parentName:"ul"},"Publishing others' confidential information, such as a physical or electronic address, without explicit permission."),(0,r.kt)("li",{parentName:"ul"},"Other conduct that could reasonably be considered inappropriate in a professional setting.")),(0,r.kt)("h2",{id:"our-responsibilities"},"Our Responsibilities"),(0,r.kt)("p",null,"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."),(0,r.kt)("p",null,"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 with this Code of Conduct or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful."),(0,r.kt)("h2",{id:"scope"},"Scope"),(0,r.kt)("p",null,"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:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Using an official project e-mail address."),(0,r.kt)("li",{parentName:"ul"},"Posting via an official social media account."),(0,r.kt)("li",{parentName:"ul"},"Acting as an appointed representative at an online or offline event.")),(0,r.kt)("p",null,"Representation of a project may be further defined and clarified by project maintainers."),(0,r.kt)("h2",{id:"enforcement"},"Enforcement"),(0,r.kt)("p",null,"Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at ",(0,r.kt)("a",{parentName:"p",href:"mailto:hello@briandouglas.me."},"hello@briandouglas.me.")," All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately."),(0,r.kt)("p",null,"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."),(0,r.kt)("h2",{id:"attribution"},"Attribution"),(0,r.kt)("p",null,"This Code of Conduct is adapted from the ",(0,r.kt)("a",{parentName:"p",href:"https://contributor-covenant.org"},"Contributor Covenant")," version 1.4,\navailable at ",(0,r.kt)("a",{parentName:"p",href:"https://contributor-covenant.org/version/1/4/"},"https://contributor-covenant.org/version/1/4"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/580fd761.907faf01.js b/assets/js/580fd761.907faf01.js new file mode 100644 index 00000000..2bbc1712 --- /dev/null +++ b/assets/js/580fd761.907faf01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[7607],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=s(n),m=o,f=d["".concat(l,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(f,a(a({ref:t},u),{},{components:n})):r.createElement(f,a({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var r=n(7462),o=(n(7294),n(3905));const i={id:"code-of-conduct",title:"Code of Conduct",sidebar_label:"Code of Conduct",keywords:["code of conduct","Community guidelines","Guidelines for behavior","Interaction guidelines","rules and guidelines","Behavioral expectations"]},a=void 0,c={unversionedId:"contributing/code-of-conduct",id:"contributing/code-of-conduct",title:"Code of Conduct",description:"Our Pledge",source:"@site/docs/contributing/code-of-conduct.md",sourceDirName:"contributing",slug:"/contributing/code-of-conduct",permalink:"/contributing/code-of-conduct",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/code-of-conduct.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"code-of-conduct",title:"Code of Conduct",sidebar_label:"Code of Conduct",keywords:["code of conduct","Community guidelines","Guidelines for behavior","Interaction guidelines","rules and guidelines","Behavioral expectations"]},sidebar:"docs",previous:{title:"Introduction to Contributing",permalink:"/contributing/introduction-to-contributing"},next:{title:"Triage Guide",permalink:"/contributing/triage-guide"}},l={},s=[{value:"Our Pledge",id:"our-pledge",level:2},{value:"Our Standards",id:"our-standards",level:2},{value:"Our Responsibilities",id:"our-responsibilities",level:2},{value:"Scope",id:"scope",level:2},{value:"Enforcement",id:"enforcement",level:2},{value:"Attribution",id:"attribution",level:2}],u={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"our-pledge"},"Our Pledge"),(0,o.kt)("p",null,"In the interest of fostering an open and welcoming environment, we as\ncontributors 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."),(0,o.kt)("h2",{id:"our-standards"},"Our Standards"),(0,o.kt)("p",null,"Examples of behavior that contributes to creating a positive environment\ninclude:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using welcoming and inclusive language."),(0,o.kt)("li",{parentName:"ul"},"Being respectful of differing viewpoints and experiences."),(0,o.kt)("li",{parentName:"ul"},"Gracefully accepting constructive criticism."),(0,o.kt)("li",{parentName:"ul"},"Focusing on what is best for the community."),(0,o.kt)("li",{parentName:"ul"},"Showing empathy towards other community members.")),(0,o.kt)("p",null,"Examples of unacceptable behavior by participants include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The use of sexualized language or imagery and unwelcome sexual attention or advances."),(0,o.kt)("li",{parentName:"ul"},"Trolling, insulting/derogatory comments, and personal or political attacks."),(0,o.kt)("li",{parentName:"ul"},"Public or private harassment."),(0,o.kt)("li",{parentName:"ul"},"Publishing others' confidential information, such as a physical or electronic address, without explicit permission."),(0,o.kt)("li",{parentName:"ul"},"Other conduct that could reasonably be considered inappropriate in a professional setting.")),(0,o.kt)("h2",{id:"our-responsibilities"},"Our Responsibilities"),(0,o.kt)("p",null,"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."),(0,o.kt)("p",null,"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 with this Code of Conduct or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful."),(0,o.kt)("h2",{id:"scope"},"Scope"),(0,o.kt)("p",null,"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:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using an official project e-mail address."),(0,o.kt)("li",{parentName:"ul"},"Posting via an official social media account."),(0,o.kt)("li",{parentName:"ul"},"Acting as an appointed representative at an online or offline event.")),(0,o.kt)("p",null,"Representation of a project may be further defined and clarified by project maintainers."),(0,o.kt)("h2",{id:"enforcement"},"Enforcement"),(0,o.kt)("p",null,"Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at ",(0,o.kt)("a",{parentName:"p",href:"mailto:hello@briandouglas.me."},"hello@briandouglas.me.")," All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately."),(0,o.kt)("p",null,"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."),(0,o.kt)("h2",{id:"attribution"},"Attribution"),(0,o.kt)("p",null,"This Code of Conduct is adapted from the ",(0,o.kt)("a",{parentName:"p",href:"https://contributor-covenant.org"},"Contributor Covenant")," version 1.4,\navailable at ",(0,o.kt)("a",{parentName:"p",href:"https://contributor-covenant.org/version/1/4/"},"https://contributor-covenant.org/version/1/4"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a367a69.058d3732.js b/assets/js/5a367a69.058d3732.js deleted file mode 100644 index 028ccce9..00000000 --- a/assets/js/5a367a69.058d3732.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[216],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=o.createContext({}),s=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return o.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(n),h=r,g=u["".concat(c,".").concat(h)]||u[h]||d[h]||a;return n?o.createElement(g,i(i({ref:t},p),{},{components:n})):o.createElement(g,i({ref:t},p))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=h;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var o=n(7462),r=(n(7294),n(3905));const a={id:"resolve-merge-conflicts",title:"Resolve Merge Conflicts",sidebar_label:"Resolve Merge Conflicts",keywords:["resolve merge conflicts","solve merge conflicts","Git merge conflict","Merge conflict resolution","Merge conflict prevention","Merge conflict handling","Merge conflict management","Merge conflict avoidance","Merge conflict workflow","Merge conflict strategies","Merge conflict best practices","Merge conflict tools"]},i=void 0,l={unversionedId:"contributing/technical/resolve-merge-conflicts",id:"contributing/technical/resolve-merge-conflicts",title:"Resolve Merge Conflicts",description:"When you are working on any of the OpenSauced repositories, you might run into a merge conflict. A merge conflict occurs when multiple conflicting changes are made to the same line in a file. Merge conflicts happen the most when you open a pull request, as the release process generally updates npm-shrinkwrap.json.",source:"@site/docs/contributing/technical/resolve-merge-conflicts.md",sourceDirName:"contributing/technical",slug:"/contributing/technical/resolve-merge-conflicts",permalink:"/contributing/technical/resolve-merge-conflicts",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/technical/resolve-merge-conflicts.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"resolve-merge-conflicts",title:"Resolve Merge Conflicts",sidebar_label:"Resolve Merge Conflicts",keywords:["resolve merge conflicts","solve merge conflicts","Git merge conflict","Merge conflict resolution","Merge conflict prevention","Merge conflict handling","Merge conflict management","Merge conflict avoidance","Merge conflict workflow","Merge conflict strategies","Merge conflict best practices","Merge conflict tools"]},sidebar:"docs",previous:{title:"Setting Up a Repository with Git and GitHub",permalink:"/contributing/technical/setup-repo-with-git"},next:{title:"@open-sauced/check-engines",permalink:"/opensauced-packages/check-engines"}},c={},s=[{value:"How to Keep Your Branch Updated",id:"how-to-keep-your-branch-updated",level:2},{value:"Using GitHub",id:"using-github",level:3},{value:"Using Git",id:"using-git",level:3},{value:"How to Check for Merge Conflicts Locally",id:"how-to-check-for-merge-conflicts-locally",level:2},{value:"How to Resolve Merge Conflicts",id:"how-to-resolve-merge-conflicts",level:2},{value:"Reviewing Your Pull Request",id:"reviewing-your-pull-request",level:2},{value:"Dependency Updates",id:"dependency-updates",level:2}],p={toc:s},u="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"When you are working on any of the OpenSauced repositories, you might run into a merge conflict. A merge conflict occurs when multiple conflicting changes are made to the same line in a file. Merge conflicts happen the most when you open a pull request, as the release process generally updates ",(0,r.kt)("inlineCode",{parentName:"p"},"npm-shrinkwrap.json"),"."),(0,r.kt)("p",null,"In this guide, we will talk about how to resolve merge conflicts and how to keep your branch up to date."),(0,r.kt)("h2",{id:"how-to-keep-your-branch-updated"},"How to Keep Your Branch Updated"),(0,r.kt)("p",null,"It is common for your branch to fall behind the main repository's branch. So it is important to keep it up to date as you are contributing."),(0,r.kt)("h3",{id:"using-github"},"Using GitHub"),(0,r.kt)("p",null,"To update your branch on GitHub, you can go to your forked copy of the project and click on ",(0,r.kt)("inlineCode",{parentName:"p"},"Sync fork")," and then the ",(0,r.kt)("inlineCode",{parentName:"p"},"Update branch")," button."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"syncing your branch on GitHub",src:n(7471).Z,width:"2056",height:"1090"})),(0,r.kt)("h3",{id:"using-git"},"Using Git"),(0,r.kt)("p",null,"To update your branch using Git and the terminal, you can use the following commands:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Change directories to the correct project.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd project-name\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"Add the ",(0,r.kt)("inlineCode",{parentName:"li"},"upstream")," remote.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git remote add upstream https://github.com/upstream-username/upstream-repository.git\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"Pull the latest changes from the ",(0,r.kt)("inlineCode",{parentName:"li"},"upstream"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git pull upstream main-branch-name\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note"),": Some of the OpenSauced repositories will use ",(0,r.kt)("inlineCode",{parentName:"p"},"main")," for the main branch while others like the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/app"},"app repository"),", will use ",(0,r.kt)("inlineCode",{parentName:"p"},"beta")," for the main branch name."),(0,r.kt)("h2",{id:"how-to-check-for-merge-conflicts-locally"},"How to Check for Merge Conflicts Locally"),(0,r.kt)("p",null,"If you are actively working on a change to an OpenSauced repository, you can check for potential merge conflicts by running a few commands in the terminal."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Make sure you are on the correct branch where the changes are being made.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd app\ngit checkout \n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"Fetch the latest changes from the OpenSauced main repository.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git fetch upstream\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"See the differences between your branch and the OpenSauced main branch.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git diff upstream/main\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note"),": Some of the OpenSauced repositories will use ",(0,r.kt)("inlineCode",{parentName:"p"},"main")," for the main branch while others, like the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/app"},"app repository"),", will use ",(0,r.kt)("inlineCode",{parentName:"p"},"beta")," for the main branch name."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"git diff output review conflicts",src:n(3032).Z,width:"1236",height:"766"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"NOTE"),": If you have already opened up a pull request, then you can see if there is a conflict at the bottom of the PR. Even though it is possible to resolve conflicts through GitHub, it is best practice to resolve them locally."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"merge conflicts git message",src:n(340).Z,width:"1690",height:"1144"})),(0,r.kt)("h2",{id:"how-to-resolve-merge-conflicts"},"How to Resolve Merge Conflicts"),(0,r.kt)("p",null,"If you have merge conflicts, it is best to use a text editor to resolve them. Identify the conflicting files and open them up in your editor of choice. For the conflicting sections, you have an option to either keep the incoming changes, keep your changes or keep both sets of changes. The conflicting sections will be marked with ",(0,r.kt)("inlineCode",{parentName:"p"},"<<<<<<<"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"======="),", and ",(0,r.kt)("inlineCode",{parentName:"p"},">>>>>>>")," symbols."),(0,r.kt)("p",null,"Here is a ",(0,r.kt)("a",{parentName:"p",href:"https://dev.to/opensauced/keeping-your-branch-up-to-date-and-handling-merge-conflicts-while-waiting-for-pr-reviews-3b3h"},"guide")," for an in depth walkthrough of the process. Once you have resolved all of the conflicts, then you can stage, commit and push your changes to your branch."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'git status\ngit add .\ngit commit -m "fix: resolving merge conflicts"\ngit push\n')),(0,r.kt)("h2",{id:"reviewing-your-pull-request"},"Reviewing Your Pull Request"),(0,r.kt)("p",null,"Once you have pushed up your changes, you can review them in your pull request. Under the files changed tab, you will see all of the recent changes including all conflicts resolved."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"files changed tab on GitHub",src:n(4912).Z,width:"1794",height:"942"})),(0,r.kt)("h2",{id:"dependency-updates"},"Dependency Updates"),(0,r.kt)("p",null,"When dealing with dependency and lock file updates, there are multiple use cases to consider; however, as a baseline, the OpenSauced triage team will not prioritize parallel main features as seen in the roadmap."),(0,r.kt)("p",null,"However when that happens, it is advised to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"fast-forward ",(0,r.kt)("inlineCode",{parentName:"li"},"npm-shrinkwrap.json")),(0,r.kt)("li",{parentName:"ul"},"fast-forward deleted and modified ",(0,r.kt)("inlineCode",{parentName:"li"},"upstream/beta")," changes to ",(0,r.kt)("inlineCode",{parentName:"li"},"package.json")),(0,r.kt)("li",{parentName:"ul"},"fast-forward your added lines to ",(0,r.kt)("inlineCode",{parentName:"li"},"package.json")),(0,r.kt)("li",{parentName:"ul"},"run ",(0,r.kt)("inlineCode",{parentName:"li"},"npm ci")," to delete local modules and create dependency resolution from ",(0,r.kt)("inlineCode",{parentName:"li"},"upstream/beta"))),(0,r.kt)("p",null,"Visual diffing is advised; however, not following the git commit history procedure will result in a rogue pull request that creeps into dependency updates."),(0,r.kt)("p",null,"Generally speaking, just adding things to a lock file will not be troublesome, and since this is a licensed project, we should be careful when adding dependencies."))}d.isMDXComponent=!0},340:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/contributing-resolve-merge-conflicts-dont-do-9703e3dffc76ef8c046f2fd7b506676f.png"},3032:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/contributing-resolve-merge-conflicts-review-conflicts-5df5a5e4934e39d9e07bcd96e53d7c3f.png"},4912:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/files-changed-tab-867f60b1281f09ba23cea7234e7703b5.png"},7471:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/sync-branch-GH-36c4d46d1782388d799fee76fe10398b.png"}}]); \ No newline at end of file diff --git a/assets/js/5a367a69.ad5b7654.js b/assets/js/5a367a69.ad5b7654.js new file mode 100644 index 00000000..e903fc49 --- /dev/null +++ b/assets/js/5a367a69.ad5b7654.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[216],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=o.createContext({}),s=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return o.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(n),h=r,g=u["".concat(c,".").concat(h)]||u[h]||d[h]||a;return n?o.createElement(g,i(i({ref:t},p),{},{components:n})):o.createElement(g,i({ref:t},p))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=h;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var o=n(7462),r=(n(7294),n(3905));const a={id:"resolve-merge-conflicts",title:"Resolve Merge Conflicts",sidebar_label:"Resolve Merge Conflicts",keywords:["resolve merge conflicts","solve merge conflicts","Git merge conflict","Merge conflict resolution","Merge conflict prevention","Merge conflict handling","Merge conflict management","Merge conflict avoidance","Merge conflict workflow","Merge conflict strategies","Merge conflict best practices","Merge conflict tools"]},i=void 0,l={unversionedId:"contributing/technical/resolve-merge-conflicts",id:"contributing/technical/resolve-merge-conflicts",title:"Resolve Merge Conflicts",description:"When you are working on any of the OpenSauced repositories, you might run into a merge conflict. A merge conflict occurs when multiple conflicting changes are made to the same line in a file. Merge conflicts happen the most when you open a pull request, as the release process generally updates npm-shrinkwrap.json.",source:"@site/docs/contributing/technical/resolve-merge-conflicts.md",sourceDirName:"contributing/technical",slug:"/contributing/technical/resolve-merge-conflicts",permalink:"/contributing/technical/resolve-merge-conflicts",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/technical/resolve-merge-conflicts.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"resolve-merge-conflicts",title:"Resolve Merge Conflicts",sidebar_label:"Resolve Merge Conflicts",keywords:["resolve merge conflicts","solve merge conflicts","Git merge conflict","Merge conflict resolution","Merge conflict prevention","Merge conflict handling","Merge conflict management","Merge conflict avoidance","Merge conflict workflow","Merge conflict strategies","Merge conflict best practices","Merge conflict tools"]},sidebar:"docs",previous:{title:"Setting Up a Repository with Git and GitHub",permalink:"/contributing/technical/setup-repo-with-git"},next:{title:"@open-sauced/check-engines",permalink:"/opensauced-packages/check-engines"}},c={},s=[{value:"How to Keep Your Branch Updated",id:"how-to-keep-your-branch-updated",level:2},{value:"Using GitHub",id:"using-github",level:3},{value:"Using Git",id:"using-git",level:3},{value:"How to Check for Merge Conflicts Locally",id:"how-to-check-for-merge-conflicts-locally",level:2},{value:"How to Resolve Merge Conflicts",id:"how-to-resolve-merge-conflicts",level:2},{value:"Reviewing Your Pull Request",id:"reviewing-your-pull-request",level:2},{value:"Dependency Updates",id:"dependency-updates",level:2}],p={toc:s},u="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"When you are working on any of the OpenSauced repositories, you might run into a merge conflict. A merge conflict occurs when multiple conflicting changes are made to the same line in a file. Merge conflicts happen the most when you open a pull request, as the release process generally updates ",(0,r.kt)("inlineCode",{parentName:"p"},"npm-shrinkwrap.json"),"."),(0,r.kt)("p",null,"In this guide, we will talk about how to resolve merge conflicts and how to keep your branch up to date."),(0,r.kt)("h2",{id:"how-to-keep-your-branch-updated"},"How to Keep Your Branch Updated"),(0,r.kt)("p",null,"It is common for your branch to fall behind the main repository's branch. So it is important to keep it up to date as you are contributing."),(0,r.kt)("h3",{id:"using-github"},"Using GitHub"),(0,r.kt)("p",null,"To update your branch on GitHub, you can go to your forked copy of the project and click on ",(0,r.kt)("inlineCode",{parentName:"p"},"Sync fork")," and then the ",(0,r.kt)("inlineCode",{parentName:"p"},"Update branch")," button."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"syncing your branch on GitHub",src:n(7471).Z,width:"2056",height:"1090"})),(0,r.kt)("h3",{id:"using-git"},"Using Git"),(0,r.kt)("p",null,"To update your branch using Git and the terminal, you can use the following commands:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Change directories to the correct project.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd project-name\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"Add the ",(0,r.kt)("inlineCode",{parentName:"li"},"upstream")," remote.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git remote add upstream https://github.com/upstream-username/upstream-repository.git\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"Pull the latest changes from the ",(0,r.kt)("inlineCode",{parentName:"li"},"upstream"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git pull upstream main-branch-name\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note"),": Some of the OpenSauced repositories will use ",(0,r.kt)("inlineCode",{parentName:"p"},"main")," for the main branch while others like the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/app"},"app repository"),", will use ",(0,r.kt)("inlineCode",{parentName:"p"},"beta")," for the main branch name."),(0,r.kt)("h2",{id:"how-to-check-for-merge-conflicts-locally"},"How to Check for Merge Conflicts Locally"),(0,r.kt)("p",null,"If you are actively working on a change to an OpenSauced repository, you can check for potential merge conflicts by running a few commands in the terminal."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Make sure you are on the correct branch where the changes are being made.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd app\ngit checkout \n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"Fetch the latest changes from the OpenSauced main repository.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git fetch upstream\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"See the differences between your branch and the OpenSauced main branch.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git diff upstream/main\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note"),": Some of the OpenSauced repositories will use ",(0,r.kt)("inlineCode",{parentName:"p"},"main")," for the main branch while others, like the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/app"},"app repository"),", will use ",(0,r.kt)("inlineCode",{parentName:"p"},"beta")," for the main branch name."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"git diff output review conflicts",src:n(3032).Z,width:"1236",height:"766"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"NOTE"),": If you have already opened up a pull request, then you can see if there is a conflict at the bottom of the PR. Even though it is possible to resolve conflicts through GitHub, it is best practice to resolve them locally."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"merge conflicts git message",src:n(340).Z,width:"1690",height:"1144"})),(0,r.kt)("h2",{id:"how-to-resolve-merge-conflicts"},"How to Resolve Merge Conflicts"),(0,r.kt)("p",null,"If you have merge conflicts, it is best to use a text editor to resolve them. Identify the conflicting files and open them up in your editor of choice. For the conflicting sections, you have an option to either keep the incoming changes, keep your changes or keep both sets of changes. The conflicting sections will be marked with ",(0,r.kt)("inlineCode",{parentName:"p"},"<<<<<<<"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"======="),", and ",(0,r.kt)("inlineCode",{parentName:"p"},">>>>>>>")," symbols."),(0,r.kt)("p",null,"Here is a ",(0,r.kt)("a",{parentName:"p",href:"https://dev.to/opensauced/keeping-your-branch-up-to-date-and-handling-merge-conflicts-while-waiting-for-pr-reviews-3b3h"},"guide")," for an in depth walkthrough of the process. Once you have resolved all of the conflicts, then you can stage, commit and push your changes to your branch."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'git status\ngit add .\ngit commit -m "fix: resolving merge conflicts"\ngit push\n')),(0,r.kt)("h2",{id:"reviewing-your-pull-request"},"Reviewing Your Pull Request"),(0,r.kt)("p",null,"Once you have pushed up your changes, you can review them in your pull request. Under the files changed tab, you will see all of the recent changes including all conflicts resolved."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"files changed tab on GitHub",src:n(4912).Z,width:"1794",height:"942"})),(0,r.kt)("h2",{id:"dependency-updates"},"Dependency Updates"),(0,r.kt)("p",null,"When dealing with dependency and lock file updates, there are multiple use cases to consider; however, as a baseline, the OpenSauced triage team will not prioritize parallel main features as seen in the roadmap."),(0,r.kt)("p",null,"However when that happens, it is advised to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"fast-forward ",(0,r.kt)("inlineCode",{parentName:"li"},"npm-shrinkwrap.json")),(0,r.kt)("li",{parentName:"ul"},"fast-forward deleted and modified ",(0,r.kt)("inlineCode",{parentName:"li"},"upstream/beta")," changes to ",(0,r.kt)("inlineCode",{parentName:"li"},"package.json")),(0,r.kt)("li",{parentName:"ul"},"fast-forward your added lines to ",(0,r.kt)("inlineCode",{parentName:"li"},"package.json")),(0,r.kt)("li",{parentName:"ul"},"run ",(0,r.kt)("inlineCode",{parentName:"li"},"npm ci")," to delete local modules and create dependency resolution from ",(0,r.kt)("inlineCode",{parentName:"li"},"upstream/beta"))),(0,r.kt)("p",null,"Visual diffing is advised; however, not following the git commit history procedure will result in a rogue pull request that creeps into dependency updates."),(0,r.kt)("p",null,"Generally speaking, just adding things to a lock file will not be troublesome, and since this is a licensed project, we should be careful when adding dependencies."))}d.isMDXComponent=!0},340:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/contributing-resolve-merge-conflicts-dont-do-9703e3dffc76ef8c046f2fd7b506676f.png"},3032:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/contributing-resolve-merge-conflicts-review-conflicts-5df5a5e4934e39d9e07bcd96e53d7c3f.png"},4912:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/files-changed-tab-867f60b1281f09ba23cea7234e7703b5.png"},7471:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/sync-branch-GH-36c4d46d1782388d799fee76fe10398b.png"}}]); \ No newline at end of file diff --git a/assets/js/5c57b204.e8ff3ec5.js b/assets/js/5c57b204.e8ff3ec5.js deleted file mode 100644 index 63d1a0a9..00000000 --- a/assets/js/5c57b204.e8ff3ec5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4782],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>f});var r=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function c(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function a(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var s=r.createContext({}),i=function(e){var t=r.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},u=function(e){var t=i(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,c=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),d=i(o),h=n,f=d["".concat(s,".").concat(h)]||d[h]||l[h]||c;return o?r.createElement(f,a(a({ref:t},u),{},{components:o})):r.createElement(f,a({ref:t},u))}));function f(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var c=o.length,a=new Array(c);a[0]=h;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[d]="string"==typeof e?e:n,a[1]=p;for(var i=2;i{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>l,frontMatter:()=>c,metadata:()=>p,toc:()=>i});var r=o(7462),n=(o(7294),o(3905));const c={id:"hot-opensauced",title:"Hot OpenSauced Project",sidebar_label:"Hot OpenSauced Project",keywords:["hot opensauced project","Open Source Projects","Trending OpenSauced Projects","Featured Open Source Repositories","Active GitHub Projects","Noteworthy Open Source Initiatives","Popular GitHub Repositories"]},a=void 0,p={unversionedId:"tools/hot-opensauced",id:"tools/hot-opensauced",title:"Hot OpenSauced Project",description:"Hot OpenSauced is a site that helps you discover the hottest open source projects to contribute to. You also have the ability to vote for your favorite open source projects.",source:"@site/docs/tools/hot-opensauced.md",sourceDirName:"tools",slug:"/tools/hot-opensauced",permalink:"/tools/hot-opensauced",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/hot-opensauced.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"hot-opensauced",title:"Hot OpenSauced Project",sidebar_label:"Hot OpenSauced Project",keywords:["hot opensauced project","Open Source Projects","Trending OpenSauced Projects","Featured Open Source Repositories","Active GitHub Projects","Noteworthy Open Source Initiatives","Popular GitHub Repositories"]},sidebar:"docs",previous:{title:"#100DaysOfOSS",permalink:"/community/100-days-of-oss"},next:{title:"Pizza CLI",permalink:"/tools/pizza-cli"}},s={},i=[{value:"How to Find Hot Open Source Projects to Contribute to?",id:"how-to-find-hot-open-source-projects-to-contribute-to",level:2},{value:"How to Vote for Your Favorite Open Source Projects?",id:"how-to-vote-for-your-favorite-open-source-projects",level:2}],u={toc:i},d="wrapper";function l(e){let{components:t,...c}=e;return(0,n.kt)(d,(0,r.Z)({},u,c,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://hot.opensauced.pizza/"},"Hot OpenSauced")," is a site that helps you discover the hottest open source projects to contribute to. You also have the ability to vote for your favorite open source projects."),(0,n.kt)("h2",{id:"how-to-find-hot-open-source-projects-to-contribute-to"},"How to Find Hot Open Source Projects to Contribute to?"),(0,n.kt)("p",null,"When you visit the ",(0,n.kt)("a",{parentName:"p",href:"https://hot.opensauced.pizza/"},"Hot OpenSauced")," site, you will see a list of open source projects that are currently trending on GitHub. You can sign in with your GitHub account and search for the most upvoted, recent, and popular projects."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"hot opensauced upvoted repos",src:o(1260).Z,width:"2734",height:"1450"})),(0,n.kt)("h2",{id:"how-to-vote-for-your-favorite-open-source-projects"},"How to Vote for Your Favorite Open Source Projects?"),(0,n.kt)("p",null,"You can vote for your favorite open source project by clicking on the upvote button. You can view all of your upvoted projects under the My Votes tab."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"hot opensauced popular repos",src:o(3167).Z,width:"2704",height:"1456"})))}l.isMDXComponent=!0},3167:(e,t,o)=>{o.d(t,{Z:()=>r});const r=o.p+"assets/images/popular-repos-hot-opensauced-05f55b2302e73e41e51817408de73de9.png"},1260:(e,t,o)=>{o.d(t,{Z:()=>r});const r=o.p+"assets/images/upvoted-repos-hot-opensauced-7b2cb4c0ada4836c56ad7b8e0484f907.png"}}]); \ No newline at end of file diff --git a/assets/js/5c57b204.f6019fea.js b/assets/js/5c57b204.f6019fea.js new file mode 100644 index 00000000..583956cc --- /dev/null +++ b/assets/js/5c57b204.f6019fea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4782],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>f});var r=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function c(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var s=r.createContext({}),i=function(e){var t=r.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):c(c({},t),e)),o},u=function(e){var t=i(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),d=i(o),h=n,f=d["".concat(s,".").concat(h)]||d[h]||l[h]||a;return o?r.createElement(f,c(c({ref:t},u),{},{components:o})):r.createElement(f,c({ref:t},u))}));function f(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,c=new Array(a);c[0]=h;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p[d]="string"==typeof e?e:n,c[1]=p;for(var i=2;i{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>l,frontMatter:()=>a,metadata:()=>p,toc:()=>i});var r=o(7462),n=(o(7294),o(3905));const a={id:"hot-opensauced",title:"Hot OpenSauced Project",sidebar_label:"Hot OpenSauced Project",keywords:["hot opensauced project","Open Source Projects","Trending OpenSauced Projects","Featured Open Source Repositories","Active GitHub Projects","Noteworthy Open Source Initiatives","Popular GitHub Repositories"]},c=void 0,p={unversionedId:"tools/hot-opensauced",id:"tools/hot-opensauced",title:"Hot OpenSauced Project",description:"Hot OpenSauced is a site that helps you discover the hottest open source projects to contribute to. You also have the ability to vote for your favorite open source projects.",source:"@site/docs/tools/hot-opensauced.md",sourceDirName:"tools",slug:"/tools/hot-opensauced",permalink:"/tools/hot-opensauced",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/hot-opensauced.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"hot-opensauced",title:"Hot OpenSauced Project",sidebar_label:"Hot OpenSauced Project",keywords:["hot opensauced project","Open Source Projects","Trending OpenSauced Projects","Featured Open Source Repositories","Active GitHub Projects","Noteworthy Open Source Initiatives","Popular GitHub Repositories"]},sidebar:"docs",previous:{title:"#100DaysOfOSS",permalink:"/community/100-days-of-oss"},next:{title:"Pizza CLI",permalink:"/tools/pizza-cli"}},s={},i=[{value:"How to Find Hot Open Source Projects to Contribute to?",id:"how-to-find-hot-open-source-projects-to-contribute-to",level:2},{value:"How to Vote for Your Favorite Open Source Projects?",id:"how-to-vote-for-your-favorite-open-source-projects",level:2}],u={toc:i},d="wrapper";function l(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://hot.opensauced.pizza/"},"Hot OpenSauced")," is a site that helps you discover the hottest open source projects to contribute to. You also have the ability to vote for your favorite open source projects."),(0,n.kt)("h2",{id:"how-to-find-hot-open-source-projects-to-contribute-to"},"How to Find Hot Open Source Projects to Contribute to?"),(0,n.kt)("p",null,"When you visit the ",(0,n.kt)("a",{parentName:"p",href:"https://hot.opensauced.pizza/"},"Hot OpenSauced")," site, you will see a list of open source projects that are currently trending on GitHub. You can sign in with your GitHub account and search for the most upvoted, recent, and popular projects."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"hot opensauced upvoted repos",src:o(1260).Z,width:"2734",height:"1450"})),(0,n.kt)("h2",{id:"how-to-vote-for-your-favorite-open-source-projects"},"How to Vote for Your Favorite Open Source Projects?"),(0,n.kt)("p",null,"You can vote for your favorite open source project by clicking on the upvote button. You can view all of your upvoted projects under the My Votes tab."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"hot opensauced popular repos",src:o(3167).Z,width:"2704",height:"1456"})))}l.isMDXComponent=!0},3167:(e,t,o)=>{o.d(t,{Z:()=>r});const r=o.p+"assets/images/popular-repos-hot-opensauced-05f55b2302e73e41e51817408de73de9.png"},1260:(e,t,o)=>{o.d(t,{Z:()=>r});const r=o.p+"assets/images/upvoted-repos-hot-opensauced-7b2cb4c0ada4836c56ad7b8e0484f907.png"}}]); \ No newline at end of file diff --git a/assets/js/6308756d.470d0f79.js b/assets/js/6308756d.470d0f79.js new file mode 100644 index 00000000..6e4c23dd --- /dev/null +++ b/assets/js/6308756d.470d0f79.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[1461],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=o.createContext({}),u=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=u(e.components);return o.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(n),m=i,h=c["".concat(s,".").concat(m)]||c[m]||d[m]||a;return n?o.createElement(h,r(r({ref:t},p),{},{components:n})):o.createElement(h,r({ref:t},p))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,r=new Array(a);r[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:i,r[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var o=n(7462),i=(n(7294),n(3905));const a={id:"introduction-to-contributing",title:"Introduction to Contributing",sidebar_label:"Introduction to Contributing",keywords:["introduction to contributing","Getting started with contributions","New contributor guide","How to contribute effectively","Contribution essentials","Open source contribution guide","Making your first contribution","Beginner-friendly contributions","Contributing to open source projects","Starting your contribution journey","First time contributor tips"]},r=void 0,l={unversionedId:"contributing/introduction-to-contributing",id:"contributing/introduction-to-contributing",title:"Introduction to Contributing",description:"Contributions are always welcome, no matter how large or small. Before contributing,",source:"@site/docs/contributing/introduction-to-contributing.md",sourceDirName:"contributing",slug:"/contributing/introduction-to-contributing",permalink:"/contributing/introduction-to-contributing",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/introduction-to-contributing.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"introduction-to-contributing",title:"Introduction to Contributing",sidebar_label:"Introduction to Contributing",keywords:["introduction to contributing","Getting started with contributions","New contributor guide","How to contribute effectively","Contribution essentials","Open source contribution guide","Making your first contribution","Beginner-friendly contributions","Contributing to open source projects","Starting your contribution journey","First time contributor tips"]},sidebar:"docs",previous:{title:"Insights and Invitations",permalink:"/tools/chrome-extension/viewing-insights-and-invitations"},next:{title:"Code of Conduct",permalink:"/contributing/code-of-conduct"}},s={},u=[{value:"Recommended Communication Style",id:"recommended-communication-style",level:2},{value:"Issues",id:"issues",level:2},{value:"Commits",id:"commits",level:2},{value:"Pull Requests (PR)",id:"pull-requests-pr",level:2},{value:"PR Validation",id:"pr-validation",level:3},{value:"Work in Progress",id:"work-in-progress",level:3},{value:"Additional Resources",id:"additional-resources",level:3},{value:"Getting Started",id:"getting-started",level:2},{value:"Setting Up Projects Locally",id:"setting-up-projects-locally",level:3},{value:"Additional Information",id:"additional-information",level:4},{value:"Building",id:"building",level:3},{value:"Testing",id:"testing",level:3},{value:"Applying Lint Styleguide",id:"applying-lint-styleguide",level:3},{value:"Coding Tips",id:"coding-tips",level:3},{value:"Community",id:"community",level:2},{value:"Triage Team",id:"triage-team",level:2},{value:"Funding",id:"funding",level:2},{value:"License",id:"license",level:2}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Contributions are always welcome, no matter how large or small. Before contributing,\nplease read the ",(0,i.kt)("a",{parentName:"p",href:"/contributing/code-of-conduct"},"Code of Conduct")," and follow the directions below:"),(0,i.kt)("h2",{id:"recommended-communication-style"},"Recommended Communication Style"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Always leave screenshots for visual changes."),(0,i.kt)("li",{parentName:"ol"},"Always leave a detailed description in the pull request. Leave nothing ambiguous for the reviewer."),(0,i.kt)("li",{parentName:"ol"},"Always review your code first. Run the project locally and test it before requesting a review."),(0,i.kt)("li",{parentName:"ol"},"Always communicate in the GitHub repository. Whether in the issue or the pull request, keeping the lines of communication open and visible to everyone on the team helps everyone around you.")),(0,i.kt)("h2",{id:"issues"},"Issues"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If you wish to work on an open issue, please comment on the issue with ",(0,i.kt)("inlineCode",{parentName:"p"},".take"),", and it will be assigned to you."),(0,i.kt)("admonition",{parentName:"li",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"If an issue is not assigned, it is assumed to be available for anyone to work on. Please assign yourself to an issue ",(0,i.kt)("em",{parentName:"p"},"before")," working on it to avoid conflicts."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Issues with the ",(0,i.kt)("inlineCode",{parentName:"p"},"needs triage")," label are unavailable to ",(0,i.kt)("inlineCode",{parentName:"p"},".take")," until they are triaged and the label is removed. Feel free to check on the issue regularly if you want to work on it.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If you contribute to the project for the first time, you can search for issues with ",(0,i.kt)("inlineCode",{parentName:"p"},"good first issue")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"bug")," labels in the repository."),(0,i.kt)("admonition",{parentName:"li",type:"note"},(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("strong",{parentName:"p"},"Please only self-assign a ",(0,i.kt)("inlineCode",{parentName:"strong"},"good first issue")," one time"),". ",(0,i.kt)("br",null)," Maintainers may remove you from the assignees and not accept your pull request if you choose to proceed.")))),(0,i.kt)("p",null,"In case you get stuck, feel free to ask for help in the ",(0,i.kt)("a",{parentName:"p",href:"https://discord.gg/U2peSNf23P"},"Discord")," server or ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/orgs/open-sauced/discussions"},"GitHub Discussions"),"."),(0,i.kt)("p",null,"Please follow our ",(0,i.kt)("a",{parentName:"p",href:"/contributing/code-of-conduct"},"Code of Conduct")," in all your interactions with the project and its contributors."),(0,i.kt)("h2",{id:"commits"},"Commits"),(0,i.kt)("p",null,"When contributing to OpenSauced projects, use this command to follow our conventional commits:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run push\n")),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm run push")," command is an interactive replacement for ",(0,i.kt)("inlineCode",{parentName:"p"},"git commit"),". It enforces the conventional commit specification for writing commit messages, making it easier for developers and maintainers to understand the changes made in a particular commit."),(0,i.kt)("p",null,"After running this command, you can push your changes to the remote repo."),(0,i.kt)("p",null,"See ",(0,i.kt)("a",{parentName:"p",href:"https://www.conventionalcommits.org/en/v1.0.0/"},"Conventional Commits")," for more examples."),(0,i.kt)("h2",{id:"pull-requests-pr"},"Pull Requests (PR)"),(0,i.kt)("hr",null),(0,i.kt)("p",null,"We actively welcome your pull requests. However, you must ensure that ",(0,i.kt)("strong",{parentName:"p"},"you are assigned")," to an existing issue before working on changes, and you need to ",(0,i.kt)("strong",{parentName:"p"},"link your work to the issue")," in your PR form."),(0,i.kt)("hr",null),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Fork and clone the repo.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Creating a new branch is a must. Before working on your changes, create a new branch from the default (",(0,i.kt)("inlineCode",{parentName:"p"},"main"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"beta"),", etc.) branch. Name your branch with something descriptive of your work, i.e., ",(0,i.kt)("inlineCode",{parentName:"p"},"add-navbar")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"fix/broken-links"),".")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"If you've added code that should be tested, add tests.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"If you've changed APIs, update the documentation.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"If you make visual changes, screenshots are required.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Ensure the test suite passes.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Make sure you address any lint warnings.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"If you improve the existing code, please let us know in your PR description.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Completing the PR form is required. Make sure to fill in the PR title, description, ",(0,i.kt)("a",{parentName:"p",href:"https://help.github.com/en/github/writing-on-github/autolinked-references-and-urls"},"link to an issue"),", and all the necessary areas."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The title must begin with ",(0,i.kt)("inlineCode",{parentName:"p"},"feat:"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"fix:"),", or anything related to your changes. ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"TIP:")," You can follow your chosen option when ",(0,i.kt)("a",{parentName:"p",href:"#commits"},"committing")," your changes.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unsolicited code is welcomed, but an issue is required to announce your intentions."))),(0,i.kt)("blockquote",{parentName:"li"},(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("em",{parentName:"p"},(0,i.kt)("strong",{parentName:"em"},"Note for maintainers:")," All PRs need a label to assist automation. See ",(0,i.kt)("a",{parentName:"em",href:"/contributing/triage-guide#adding-issue-and-pr-labels"},"this guide")," to determine which labels to use."))))),(0,i.kt)("admonition",{type:"warning"},(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("strong",{parentName:"p"},"PRs will be marked as invalid and may be closed if:")),(0,i.kt)("ul",{parentName:"admonition"},(0,i.kt)("li",{parentName:"ul"},"the issue is not assigned to the contributor who opened the PR"),(0,i.kt)("li",{parentName:"ul"},"no issue is linked to the PR"),(0,i.kt)("li",{parentName:"ul"},"PR form is incomplete, or any section in the form is deleted"),(0,i.kt)("li",{parentName:"ul"},"changes are made directly on the default (",(0,i.kt)("inlineCode",{parentName:"li"},"main"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"beta"),", etc.) branch"))),(0,i.kt)("h3",{id:"pr-validation"},"PR Validation"),(0,i.kt)("p",null,"Examples of valid PR titles:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"fix: Correct typo."),(0,i.kt)("li",{parentName:"ul"},"feat: Add support for Node 12."),(0,i.kt)("li",{parentName:"ul"},"refactor!: Drop support for Node 6.")),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"For any breaking changes, you have to use the ",(0,i.kt)("inlineCode",{parentName:"p"},"!")," syntax.")),(0,i.kt)("h3",{id:"work-in-progress"},"Work in Progress"),(0,i.kt)("p",null,"GitHub supports ",(0,i.kt)("a",{parentName:"p",href:"https://github.blog/2019-02-14-introducing-draft-pull-requests/"},"draft pull requests"),", which will disable the merge button until the PR is marked as ready for merge."),(0,i.kt)("h3",{id:"additional-resources"},"Additional Resources"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("em",{parentName:"li"},(0,i.kt)("a",{parentName:"em",href:"https://youtu.be/cuMeC-eZJJ4"},"3 tips for getting your Pull Request reviewed on GitHub")))),(0,i.kt)("h2",{id:"getting-started"},"Getting Started"),(0,i.kt)("h3",{id:"setting-up-projects-locally"},"Setting Up Projects Locally"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("a",{parentName:"li",href:"https://docs.github.com/en/get-started/quickstart/fork-a-repo"},"Fork")," the repository you're working on from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/open-sauced"},"github/open-sauced")," to your own GitHub account."),(0,i.kt)("li",{parentName:"ol"},"Clone the forked repository to your local machine."),(0,i.kt)("li",{parentName:"ol"},"Check the project's README to determine how to run the project locally.")),(0,i.kt)("h4",{id:"additional-information"},"Additional Information"),(0,i.kt)("p",null,"For many of our repositories, you'll run ",(0,i.kt)("inlineCode",{parentName:"p"},"npm ci")," to install the dependencies and set up the project locally."),(0,i.kt)("p",null,"From the ",(0,i.kt)("a",{parentName:"p",href:"https://docs.npmjs.com/cli/v10/commands/npm-ci#description"},"npm official docs"),":"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm ci")," is a command that installs a project with a clean slate, skipping certain user-oriented features and being more strict than ",(0,i.kt)("inlineCode",{parentName:"p"},"npm install"),".")),(0,i.kt)("p",null,"You can also use the shell commands below to get started once you have forked the repository:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com//.git\ncd \nnpm ci\n")),(0,i.kt)("p",null,"Make sure to replace ",(0,i.kt)("inlineCode",{parentName:"p"},"")," with your GitHub username."),(0,i.kt)("h3",{id:"building"},"Building"),(0,i.kt)("p",null,"To generate a production-ready version of your code, run:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run build\n")),(0,i.kt)("h3",{id:"testing"},"Testing"),(0,i.kt)("p",null,"For running the test suite, use the following command:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"# the tests will run in watch mode by default\nnpm test\n")),(0,i.kt)("p",null,"Since the tests run in watch mode by default, some users may encounter errors about too many files being open. In this case, it may be beneficial to ",(0,i.kt)("a",{parentName:"p",href:"https://facebook.github.io/watchman/docs/install.html"},"install Watchman"),"."),(0,i.kt)("p",null,"Check out this course, ",(0,i.kt)("a",{parentName:"p",href:"https://testingjavascript.com/"},"Testing JavaScript"),", for more info on testing React and JavaScript."),(0,i.kt)("h3",{id:"applying-lint-styleguide"},"Applying Lint Styleguide"),(0,i.kt)("p",null,"To check the code for formatting and linting errors, run the following command:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run lint\n")),(0,i.kt)("p",null,"These errors will also be displayed during development but won't prevent the code from compiling."),(0,i.kt)("p",null,"To fix the formatting and linting errors, run the following command instead:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run format\n")),(0,i.kt)("p",null,"These commands use ",(0,i.kt)("a",{parentName:"p",href:"https://eslint.org/"},"ESLint")," to check and fix the code."),(0,i.kt)("p",null,"If you forget to run this command, automated PR checks will also run these commands, but the PR will be blocked if there are any errors."),(0,i.kt)("h3",{id:"coding-tips"},"Coding Tips"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Ask questions if you are stuck."),(0,i.kt)("li",{parentName:"ul"},"Use ",(0,i.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties"},"CSS variables.")),(0,i.kt)("li",{parentName:"ul"},"Always use ",(0,i.kt)("a",{parentName:"li",href:"https://web.dev/external-anchors-use-rel-noopener/"},'rel="noreferrer" on all target="',"_",'blank" links'),".")),(0,i.kt)("h2",{id:"community"},"Community"),(0,i.kt)("p",null,"Do you have questions? Join the conversation in our ",(0,i.kt)("a",{parentName:"p",href:"https://discord.gg/U2peSNf23P"},"Discord"),"."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("strong",{parentName:"p"},"IMPORTANT")," ",(0,i.kt)("br",null)," Please do not DM Maintainers or contact them outside of GitHub if you want a PR Review. If you haven't received a review within a week, please tag them in the PR comments to ask for an estimated time of review.")),(0,i.kt)("h2",{id:"triage-team"},"Triage Team"),(0,i.kt)("p",null,"The Triage team is inspired by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/expressjs/express/blob/HEAD/Triager-Guide.md"},"expressjs/express"),". This team exists to create a path for making contributions to this project and open source. All Triage Team members are expected to follow the ",(0,i.kt)("a",{parentName:"p",href:"/contributing/triage-guide"},"Triage Guide"),"."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"There are no minimum requirements to become a member of the Triage Team.")),(0,i.kt)("p",null,"For those interested in getting involved in the project or just open source in general and wanting to join the Triage Team, please leave a comment in the ",(0,i.kt)("inlineCode",{parentName:"p"},"\ud83c\udf55opensauced-contributors-chat")," channel on ",(0,i.kt)("a",{parentName:"p",href:"https://discord.gg/U2peSNf23P"},"Discord"),"."),(0,i.kt)("h2",{id:"funding"},"Funding"),(0,i.kt)("p",null,"OpenSauced is a part of GitHub Sponsors. If you would like to contribute, please note the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/sponsors/open-sauced"},"sponsor page")," for details on how funds are distributed. If you have made any contributions to the project directly or indirectly, please consider adding your profile to the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/.github/blob/main/FUNDING.yml"},(0,i.kt)("inlineCode",{parentName:"a"},"FUNDING.yml"))," file."),(0,i.kt)("h2",{id:"license"},"License"),(0,i.kt)("p",null,"By contributing to the OpenSauced project, you agree that your contributions will be licensed\nby a specific License. You can find this information in the ",(0,i.kt)("inlineCode",{parentName:"p"},"LICENSE")," file of the repo you are contributing to."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6308756d.7c10da4c.js b/assets/js/6308756d.7c10da4c.js deleted file mode 100644 index 6941ccbe..00000000 --- a/assets/js/6308756d.7c10da4c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[1461],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=o.createContext({}),u=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=u(e.components);return o.createElement(s.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(n),m=i,h=c["".concat(s,".").concat(m)]||c[m]||d[m]||a;return n?o.createElement(h,r(r({ref:t},p),{},{components:n})):o.createElement(h,r({ref:t},p))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,r=new Array(a);r[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:i,r[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var o=n(7462),i=(n(7294),n(3905));const a={id:"introduction-to-contributing",title:"Introduction to Contributing",sidebar_label:"Introduction to Contributing",keywords:["introduction to contributing","Getting started with contributions","New contributor guide","How to contribute effectively","Contribution essentials","Open source contribution guide","Making your first contribution","Beginner-friendly contributions","Contributing to open source projects","Starting your contribution journey","First time contributor tips"]},r=void 0,l={unversionedId:"contributing/introduction-to-contributing",id:"contributing/introduction-to-contributing",title:"Introduction to Contributing",description:"Contributions are always welcome, no matter how large or small. Before contributing,",source:"@site/docs/contributing/introduction-to-contributing.md",sourceDirName:"contributing",slug:"/contributing/introduction-to-contributing",permalink:"/contributing/introduction-to-contributing",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/introduction-to-contributing.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"introduction-to-contributing",title:"Introduction to Contributing",sidebar_label:"Introduction to Contributing",keywords:["introduction to contributing","Getting started with contributions","New contributor guide","How to contribute effectively","Contribution essentials","Open source contribution guide","Making your first contribution","Beginner-friendly contributions","Contributing to open source projects","Starting your contribution journey","First time contributor tips"]},sidebar:"docs",previous:{title:"Insights and Invitations",permalink:"/tools/chrome-extension/viewing-insights-and-invitations"},next:{title:"Code of Conduct",permalink:"/contributing/code-of-conduct"}},s={},u=[{value:"Recommended Communication Style",id:"recommended-communication-style",level:2},{value:"Issues",id:"issues",level:2},{value:"Commits",id:"commits",level:2},{value:"Pull Requests (PR)",id:"pull-requests-pr",level:2},{value:"PR Validation",id:"pr-validation",level:3},{value:"Work in Progress",id:"work-in-progress",level:3},{value:"Additional Resources",id:"additional-resources",level:3},{value:"Getting Started",id:"getting-started",level:2},{value:"Setting Up Projects Locally",id:"setting-up-projects-locally",level:3},{value:"Additional Information",id:"additional-information",level:4},{value:"Building",id:"building",level:3},{value:"Testing",id:"testing",level:3},{value:"Applying Lint Styleguide",id:"applying-lint-styleguide",level:3},{value:"Coding Tips",id:"coding-tips",level:3},{value:"Community",id:"community",level:2},{value:"Triage Team",id:"triage-team",level:2},{value:"Funding",id:"funding",level:2},{value:"License",id:"license",level:2}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Contributions are always welcome, no matter how large or small. Before contributing,\nplease read the ",(0,i.kt)("a",{parentName:"p",href:"/contributing/code-of-conduct"},"Code of Conduct")," and follow the directions below:"),(0,i.kt)("h2",{id:"recommended-communication-style"},"Recommended Communication Style"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Always leave screenshots for visual changes."),(0,i.kt)("li",{parentName:"ol"},"Always leave a detailed description in the pull request. Leave nothing ambiguous for the reviewer."),(0,i.kt)("li",{parentName:"ol"},"Always review your code first. Run the project locally and test it before requesting a review."),(0,i.kt)("li",{parentName:"ol"},"Always communicate in the GitHub repository. Whether in the issue or the pull request, keeping the lines of communication open and visible to everyone on the team helps everyone around you.")),(0,i.kt)("h2",{id:"issues"},"Issues"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If you wish to work on an open issue, please comment on the issue with ",(0,i.kt)("inlineCode",{parentName:"p"},".take"),", and it will be assigned to you."),(0,i.kt)("admonition",{parentName:"li",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"If an issue is not assigned, it is assumed to be available for anyone to work on. Please assign yourself to an issue ",(0,i.kt)("em",{parentName:"p"},"before")," working on it to avoid conflicts."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Issues with the ",(0,i.kt)("inlineCode",{parentName:"p"},"needs triage")," label are unavailable to ",(0,i.kt)("inlineCode",{parentName:"p"},".take")," until they are triaged and the label is removed. Feel free to check on the issue regularly if you want to work on it.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If you contribute to the project for the first time, you can search for issues with ",(0,i.kt)("inlineCode",{parentName:"p"},"good first issue")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"bug")," labels in the repository."),(0,i.kt)("admonition",{parentName:"li",type:"note"},(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("strong",{parentName:"p"},"Please only self-assign a ",(0,i.kt)("inlineCode",{parentName:"strong"},"good first issue")," one time"),". ",(0,i.kt)("br",null)," Maintainers may remove you from the assignees and not accept your pull request if you choose to proceed.")))),(0,i.kt)("p",null,"In case you get stuck, feel free to ask for help in the ",(0,i.kt)("a",{parentName:"p",href:"https://discord.gg/U2peSNf23P"},"Discord")," server or ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/orgs/open-sauced/discussions"},"GitHub Discussions"),"."),(0,i.kt)("p",null,"Please follow our ",(0,i.kt)("a",{parentName:"p",href:"/contributing/code-of-conduct"},"Code of Conduct")," in all your interactions with the project and its contributors."),(0,i.kt)("h2",{id:"commits"},"Commits"),(0,i.kt)("p",null,"When contributing to OpenSauced projects, use this command to follow our conventional commits:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run push\n")),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm run push")," command is an interactive replacement for ",(0,i.kt)("inlineCode",{parentName:"p"},"git commit"),". It enforces the conventional commit specification for writing commit messages, making it easier for developers and maintainers to understand the changes made in a particular commit."),(0,i.kt)("p",null,"After running this command, you can push your changes to the remote repo."),(0,i.kt)("p",null,"See ",(0,i.kt)("a",{parentName:"p",href:"https://www.conventionalcommits.org/en/v1.0.0/"},"Conventional Commits")," for more examples."),(0,i.kt)("h2",{id:"pull-requests-pr"},"Pull Requests (PR)"),(0,i.kt)("hr",null),(0,i.kt)("p",null,"We actively welcome your pull requests. However, you must ensure that ",(0,i.kt)("strong",{parentName:"p"},"you are assigned")," to an existing issue before working on changes, and you need to ",(0,i.kt)("strong",{parentName:"p"},"link your work to the issue")," in your PR form."),(0,i.kt)("hr",null),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Fork and clone the repo.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Creating a new branch is a must. Before working on your changes, create a new branch from the default (",(0,i.kt)("inlineCode",{parentName:"p"},"main"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"beta"),", etc.) branch. Name your branch with something descriptive of your work, i.e., ",(0,i.kt)("inlineCode",{parentName:"p"},"add-navbar")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"fix/broken-links"),".")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"If you've added code that should be tested, add tests.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"If you've changed APIs, update the documentation.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"If you make visual changes, screenshots are required.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Ensure the test suite passes.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Make sure you address any lint warnings.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"If you improve the existing code, please let us know in your PR description.")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Completing the PR form is required. Make sure to fill in the PR title, description, ",(0,i.kt)("a",{parentName:"p",href:"https://help.github.com/en/github/writing-on-github/autolinked-references-and-urls"},"link to an issue"),", and all the necessary areas."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The title must begin with ",(0,i.kt)("inlineCode",{parentName:"p"},"feat:"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"fix:"),", or anything related to your changes. ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"TIP:")," You can follow your chosen option when ",(0,i.kt)("a",{parentName:"p",href:"#commits"},"committing")," your changes.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unsolicited code is welcomed, but an issue is required to announce your intentions."))),(0,i.kt)("blockquote",{parentName:"li"},(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("em",{parentName:"p"},(0,i.kt)("strong",{parentName:"em"},"Note for maintainers:")," All PRs need a label to assist automation. See ",(0,i.kt)("a",{parentName:"em",href:"/contributing/triage-guide#adding-issue-and-pr-labels"},"this guide")," to determine which labels to use."))))),(0,i.kt)("admonition",{type:"warning"},(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("strong",{parentName:"p"},"PRs will be marked as invalid and may be closed if:")),(0,i.kt)("ul",{parentName:"admonition"},(0,i.kt)("li",{parentName:"ul"},"the issue is not assigned to the contributor who opened the PR"),(0,i.kt)("li",{parentName:"ul"},"no issue is linked to the PR"),(0,i.kt)("li",{parentName:"ul"},"PR form is incomplete, or any section in the form is deleted"),(0,i.kt)("li",{parentName:"ul"},"changes are made directly on the default (",(0,i.kt)("inlineCode",{parentName:"li"},"main"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"beta"),", etc.) branch"))),(0,i.kt)("h3",{id:"pr-validation"},"PR Validation"),(0,i.kt)("p",null,"Examples of valid PR titles:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"fix: Correct typo."),(0,i.kt)("li",{parentName:"ul"},"feat: Add support for Node 12."),(0,i.kt)("li",{parentName:"ul"},"refactor!: Drop support for Node 6.")),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"For any breaking changes, you have to use the ",(0,i.kt)("inlineCode",{parentName:"p"},"!")," syntax.")),(0,i.kt)("h3",{id:"work-in-progress"},"Work in Progress"),(0,i.kt)("p",null,"GitHub supports ",(0,i.kt)("a",{parentName:"p",href:"https://github.blog/2019-02-14-introducing-draft-pull-requests/"},"draft pull requests"),", which will disable the merge button until the PR is marked as ready for merge."),(0,i.kt)("h3",{id:"additional-resources"},"Additional Resources"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("em",{parentName:"li"},(0,i.kt)("a",{parentName:"em",href:"https://youtu.be/cuMeC-eZJJ4"},"3 tips for getting your Pull Request reviewed on GitHub")))),(0,i.kt)("h2",{id:"getting-started"},"Getting Started"),(0,i.kt)("h3",{id:"setting-up-projects-locally"},"Setting Up Projects Locally"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("a",{parentName:"li",href:"https://docs.github.com/en/get-started/quickstart/fork-a-repo"},"Fork")," the repository you're working on from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/open-sauced"},"github/open-sauced")," to your own GitHub account."),(0,i.kt)("li",{parentName:"ol"},"Clone the forked repository to your local machine."),(0,i.kt)("li",{parentName:"ol"},"Check the project's README to determine how to run the project locally.")),(0,i.kt)("h4",{id:"additional-information"},"Additional Information"),(0,i.kt)("p",null,"For many of our repositories, you'll run ",(0,i.kt)("inlineCode",{parentName:"p"},"npm ci")," to install the dependencies and set up the project locally."),(0,i.kt)("p",null,"From the ",(0,i.kt)("a",{parentName:"p",href:"https://docs.npmjs.com/cli/v10/commands/npm-ci#description"},"npm official docs"),":"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm ci")," is a command that installs a project with a clean slate, skipping certain user-oriented features and being more strict than ",(0,i.kt)("inlineCode",{parentName:"p"},"npm install"),".")),(0,i.kt)("p",null,"You can also use the shell commands below to get started once you have forked the repository:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com//.git\ncd \nnpm ci\n")),(0,i.kt)("p",null,"Make sure to replace ",(0,i.kt)("inlineCode",{parentName:"p"},"")," with your GitHub username."),(0,i.kt)("h3",{id:"building"},"Building"),(0,i.kt)("p",null,"To generate a production-ready version of your code, run:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run build\n")),(0,i.kt)("h3",{id:"testing"},"Testing"),(0,i.kt)("p",null,"For running the test suite, use the following command:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"# the tests will run in watch mode by default\nnpm test\n")),(0,i.kt)("p",null,"Since the tests run in watch mode by default, some users may encounter errors about too many files being open. In this case, it may be beneficial to ",(0,i.kt)("a",{parentName:"p",href:"https://facebook.github.io/watchman/docs/install.html"},"install Watchman"),"."),(0,i.kt)("p",null,"Check out this course, ",(0,i.kt)("a",{parentName:"p",href:"https://testingjavascript.com/"},"Testing JavaScript"),", for more info on testing React and JavaScript."),(0,i.kt)("h3",{id:"applying-lint-styleguide"},"Applying Lint Styleguide"),(0,i.kt)("p",null,"To check the code for formatting and linting errors, run the following command:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run lint\n")),(0,i.kt)("p",null,"These errors will also be displayed during development but won't prevent the code from compiling."),(0,i.kt)("p",null,"To fix the formatting and linting errors, run the following command instead:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run format\n")),(0,i.kt)("p",null,"These commands use ",(0,i.kt)("a",{parentName:"p",href:"https://eslint.org/"},"ESLint")," to check and fix the code."),(0,i.kt)("p",null,"If you forget to run this command, automated PR checks will also run these commands, but the PR will be blocked if there are any errors."),(0,i.kt)("h3",{id:"coding-tips"},"Coding Tips"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Ask questions if you are stuck."),(0,i.kt)("li",{parentName:"ul"},"Use ",(0,i.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties"},"CSS variables.")),(0,i.kt)("li",{parentName:"ul"},"Always use ",(0,i.kt)("a",{parentName:"li",href:"https://web.dev/external-anchors-use-rel-noopener/"},'rel="noreferrer" on all target="',"_",'blank" links'),".")),(0,i.kt)("h2",{id:"community"},"Community"),(0,i.kt)("p",null,"Do you have questions? Join the conversation in our ",(0,i.kt)("a",{parentName:"p",href:"https://discord.gg/U2peSNf23P"},"Discord"),"."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("strong",{parentName:"p"},"IMPORTANT")," ",(0,i.kt)("br",null)," Please do not DM Maintainers or contact them outside of GitHub if you want a PR Review. If you haven't received a review within a week, please tag them in the PR comments to ask for an estimated time of review.")),(0,i.kt)("h2",{id:"triage-team"},"Triage Team"),(0,i.kt)("p",null,"The Triage team is inspired by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/expressjs/express/blob/HEAD/Triager-Guide.md"},"expressjs/express"),". This team exists to create a path for making contributions to this project and open source. All Triage Team members are expected to follow the ",(0,i.kt)("a",{parentName:"p",href:"/contributing/triage-guide"},"Triage Guide"),"."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"There are no minimum requirements to become a member of the Triage Team.")),(0,i.kt)("p",null,"For those interested in getting involved in the project or just open source in general and wanting to join the Triage Team, please leave a comment in the ",(0,i.kt)("inlineCode",{parentName:"p"},"\ud83c\udf55opensauced-contributors-chat")," channel on ",(0,i.kt)("a",{parentName:"p",href:"https://discord.gg/U2peSNf23P"},"Discord"),"."),(0,i.kt)("h2",{id:"funding"},"Funding"),(0,i.kt)("p",null,"OpenSauced is a part of GitHub Sponsors. If you would like to contribute, please note the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/sponsors/open-sauced"},"sponsor page")," for details on how funds are distributed. If you have made any contributions to the project directly or indirectly, please consider adding your profile to the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/.github/blob/main/FUNDING.yml"},(0,i.kt)("inlineCode",{parentName:"a"},"FUNDING.yml"))," file."),(0,i.kt)("h2",{id:"license"},"License"),(0,i.kt)("p",null,"By contributing to the OpenSauced project, you agree that your contributions will be licensed\nby a specific License. You can find this information in the ",(0,i.kt)("inlineCode",{parentName:"p"},"LICENSE")," file of the repo you are contributing to."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7132722c.608f9c08.js b/assets/js/7132722c.d47cb579.js similarity index 63% rename from assets/js/7132722c.608f9c08.js rename to assets/js/7132722c.d47cb579.js index 5963b4f6..7952a656 100644 --- a/assets/js/7132722c.608f9c08.js +++ b/assets/js/7132722c.d47cb579.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[9946],{3905:(e,t,o)=>{o.d(t,{Zo:()=>d,kt:()=>g});var r=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function s(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var u=r.createContext({}),c=function(e){var t=r.useContext(u),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},d=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(o),h=n,g=p["".concat(u,".").concat(h)]||p[h]||l[h]||a;return o?r.createElement(g,s(s({ref:t},d),{},{components:o})):r.createElement(g,s({ref:t},d))}));function g(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,s=new Array(a);s[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:n,s[1]=i;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>l,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var r=o(7462),n=(o(7294),o(3905));const a={id:"job-seekers-guide-introduction",title:"Learn How to Land a Tech Job Using OpenSauced",sidebar_label:"Introduction",keywords:["open source tech job guide","open sauced tech job tips","open source career development","open source projects for tech resume","open source skills for tech employers","land your dream tech job"]},s=void 0,i={unversionedId:"opensauced-guides/job-seekers-guide/job-seekers-guide-introduction",id:"opensauced-guides/job-seekers-guide/job-seekers-guide-introduction",title:"Learn How to Land a Tech Job Using OpenSauced",description:"When you are looking for a tech job, it is important to stand out amongst the sea of candidates. One great way to stand out and showcase your skills is through open source contributions.",source:"@site/docs/opensauced-guides/job-seekers-guide/introduction.md",sourceDirName:"opensauced-guides/job-seekers-guide",slug:"/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction",permalink:"/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-guides/job-seekers-guide/introduction.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"job-seekers-guide-introduction",title:"Learn How to Land a Tech Job Using OpenSauced",sidebar_label:"Introduction",keywords:["open source tech job guide","open sauced tech job tips","open source career development","open source projects for tech resume","open source skills for tech employers","land your dream tech job"]},sidebar:"docs",previous:{title:"Dev Card",permalink:"/features/dev-card"},next:{title:"How to Translate Open Source Contributions into Career Opportunities",permalink:"/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities"}},u={},c=[],d={toc:c},p="wrapper";function l(e){let{components:t,...o}=e;return(0,n.kt)(p,(0,r.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"When you are looking for a tech job, it is important to stand out amongst the sea of candidates. One great way to stand out and showcase your skills is through open source contributions."),(0,n.kt)("p",null,"Open source provides you the opportunity to showcase your code, documentation, communication, and collaboration skills to potential employers. You also have the ability to grow your professional network and build real connections within the tech industry through open source."),(0,n.kt)("p",null,"OpenSauced can help you craft an open source profile that is attractive to hiring managers and recruiters and help you land that next role."),(0,n.kt)("p",null,"In this guide, you will learn how to use OpenSauced features like your personal ",(0,n.kt)("a",{parentName:"p",href:"/features/dev-card"},"Dev Card"),", ",(0,n.kt)("a",{parentName:"p",href:"/features/highlights"},"Highlights"),", ",(0,n.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights"),", and ",(0,n.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights")," to showcase your open source work and build connections to help you land a job."))}l.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[9946],{3905:(e,t,o)=>{o.d(t,{Zo:()=>d,kt:()=>g});var r=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function s(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var u=r.createContext({}),c=function(e){var t=r.useContext(u),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},d=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(o),h=n,g=p["".concat(u,".").concat(h)]||p[h]||l[h]||a;return o?r.createElement(g,s(s({ref:t},d),{},{components:o})):r.createElement(g,s({ref:t},d))}));function g(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,s=new Array(a);s[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:n,s[1]=i;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>l,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var r=o(7462),n=(o(7294),o(3905));const a={id:"job-seekers-guide-introduction",title:"Learn How to Land a Tech Job Using OpenSauced",sidebar_label:"Introduction",keywords:["open source tech job guide","open sauced tech job tips","open source career development","open source projects for tech resume","open source skills for tech employers","land your dream tech job"]},s=void 0,i={unversionedId:"opensauced-guides/job-seekers-guide/job-seekers-guide-introduction",id:"opensauced-guides/job-seekers-guide/job-seekers-guide-introduction",title:"Learn How to Land a Tech Job Using OpenSauced",description:"When you are looking for a tech job, it is important to stand out amongst the sea of candidates. One great way to stand out and showcase your skills is through open source contributions.",source:"@site/docs/opensauced-guides/job-seekers-guide/introduction.md",sourceDirName:"opensauced-guides/job-seekers-guide",slug:"/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction",permalink:"/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-guides/job-seekers-guide/introduction.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"job-seekers-guide-introduction",title:"Learn How to Land a Tech Job Using OpenSauced",sidebar_label:"Introduction",keywords:["open source tech job guide","open sauced tech job tips","open source career development","open source projects for tech resume","open source skills for tech employers","land your dream tech job"]},sidebar:"docs",previous:{title:"Dev Card",permalink:"/features/dev-card"},next:{title:"How to Translate Open Source Contributions into Career Opportunities",permalink:"/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities"}},u={},c=[],d={toc:c},p="wrapper";function l(e){let{components:t,...o}=e;return(0,n.kt)(p,(0,r.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"When you are looking for a tech job, it is important to stand out amongst the sea of candidates. One great way to stand out and showcase your skills is through open source contributions."),(0,n.kt)("p",null,"Open source provides you the opportunity to showcase your code, documentation, communication, and collaboration skills to potential employers. You also have the ability to grow your professional network and build real connections within the tech industry through open source."),(0,n.kt)("p",null,"OpenSauced can help you craft an open source profile that is attractive to hiring managers and recruiters and help you land that next role."),(0,n.kt)("p",null,"In this guide, you will learn how to use OpenSauced features like your personal ",(0,n.kt)("a",{parentName:"p",href:"/features/dev-card"},"Dev Card"),", ",(0,n.kt)("a",{parentName:"p",href:"/features/highlights"},"Highlights"),", ",(0,n.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights"),", and ",(0,n.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights")," to showcase your open source work and build connections to help you land a job."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/731f462e.2ca47427.js b/assets/js/731f462e.2ca47427.js new file mode 100644 index 00000000..ad919ae0 --- /dev/null +++ b/assets/js/731f462e.2ca47427.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[8331],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>g});var o=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=o.createContext({}),l=function(e){var t=o.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},c=function(e){var t=l(e.components);return o.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=l(r),y=a,g=u["".concat(p,".").concat(y)]||u[y]||d[y]||n;return r?o.createElement(g,s(s({ref:t},c),{},{components:r})):o.createElement(g,s({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,s=new Array(n);s[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:a,s[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>l});var o=r(7462),a=(r(7294),r(3905));const n={id:"repo-pages",title:"Check out Repository Activity",sidebar_label:"Repository Pages",keywords:["repository pages","Repositories","Open Source","Open Source Repositories","Showcase Repositories","Repository forks","Repository stars"]},s=void 0,i={unversionedId:"features/repo-pages",id:"features/repo-pages",title:"Check out Repository Activity",description:"Repository pages allow you to view specific information (forks and stars) about a repository hosted on GitHub.",source:"@site/docs/features/repo-pages.md",sourceDirName:"features",slug:"/features/repo-pages",permalink:"/features/repo-pages",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/repo-pages.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"repo-pages",title:"Check out Repository Activity",sidebar_label:"Repository Pages",keywords:["repository pages","Repositories","Open Source","Open Source Repositories","Showcase Repositories","Repository forks","Repository stars"]},sidebar:"docs",previous:{title:"Contributor Insights",permalink:"/features/contributor-insights"},next:{title:"Highlights",permalink:"/features/highlights"}},p={},l=[{value:"Accessing a Repository Page",id:"accessing-a-repository-page",level:2},{value:"Understanding the Repository Page",id:"understanding-the-repository-page",level:2}],c={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Repository pages allow you to view specific information (forks and stars) about a repository hosted on GitHub."),(0,a.kt)("h2",{id:"accessing-a-repository-page"},"Accessing a Repository Page"),(0,a.kt)("p",null,"To view a repository page, follow these steps:"),(0,a.kt)("p",null,"Open a web browser and navigate to the following URL structure:"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"https://app.opensauced.pizza/s/{org}/{repo}")),(0,a.kt)("p",null,"Replace {org} with the name of the organization that owns the repository you want to view. Replace {repo} with the name of the specific repository."),(0,a.kt)("p",null,"For example, to view the ",(0,a.kt)("inlineCode",{parentName:"p"},"next.js")," repository created by the ",(0,a.kt)("inlineCode",{parentName:"p"},"Vercel")," organization, you would use the following URL:"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/s/vercel/nextjs"},"https://app.opensauced.pizza/s/vercel/nextjs")),(0,a.kt)("p",null,"Here's what that will look like:"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/s/vercel/next.js"},(0,a.kt)("img",{alt:"next.js repository page",src:r(1358).Z,width:"1280",height:"1324"}))," "),(0,a.kt)("h2",{id:"understanding-the-repository-page"},"Understanding the Repository Page"),(0,a.kt)("p",null,"Here are some general things you might find on a repository page:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Repository name and organization/user"),": This is displayed prominently at the top of the page."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Metrics"),": This includes the number of stars and forks the repository has on GitHub.")),(0,a.kt)("p",null,"You can use the time range filter to view the number of stars and forks over different periods, such as the last 7 days, month, or the last year."),(0,a.kt)("p",null,"Currently, only publicly available repositories on GitHub can be viewed through Open Sauced Pizza's repository pages."),(0,a.kt)("p",null,"Repository pages on Open Sauced Pizza provide a way to explore and learn about open source code repositories hosted on GitHub. While you cannot create or edit them directly on Open Sauced Pizza yet, you can add them to your ",(0,a.kt)("a",{parentName:"p",href:"https://docs.opensauced.pizza/features/repo-insights/"},"Repository Insight pages"),"."))}d.isMDXComponent=!0},1358:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/repo-page-8aa97dcd65bdca42d1e5a0e5edb92685.png"}}]); \ No newline at end of file diff --git a/assets/js/731f462e.af019afa.js b/assets/js/731f462e.af019afa.js deleted file mode 100644 index 9d5e561e..00000000 --- a/assets/js/731f462e.af019afa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[8331],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>g});var o=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=o.createContext({}),l=function(e){var t=o.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},c=function(e){var t=l(e.components);return o.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=l(r),y=a,g=u["".concat(p,".").concat(y)]||u[y]||d[y]||n;return r?o.createElement(g,s(s({ref:t},c),{},{components:r})):o.createElement(g,s({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,s=new Array(n);s[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:a,s[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>l});var o=r(7462),a=(r(7294),r(3905));const n={id:"repo-pages",title:"Check out Repository Activity",sidebar_label:"Repository Pages",keywords:["repository pages","Repositories","Open Source","Open Source Repositories","Showcase Repositories","Repository forks","Repository stars"]},s=void 0,i={unversionedId:"features/repo-pages",id:"features/repo-pages",title:"Check out Repository Activity",description:"Repository pages allow you to view specific information (forks and stars) about a repository hosted on GitHub.",source:"@site/docs/features/repo-pages.md",sourceDirName:"features",slug:"/features/repo-pages",permalink:"/features/repo-pages",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/repo-pages.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"repo-pages",title:"Check out Repository Activity",sidebar_label:"Repository Pages",keywords:["repository pages","Repositories","Open Source","Open Source Repositories","Showcase Repositories","Repository forks","Repository stars"]},sidebar:"docs",previous:{title:"Contributor Insights",permalink:"/features/contributor-insights"},next:{title:"Highlights",permalink:"/features/highlights"}},p={},l=[{value:"Accessing a Repository Page",id:"accessing-a-repository-page",level:2},{value:"Understanding the Repository Page",id:"understanding-the-repository-page",level:2}],c={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Repository pages allow you to view specific information (forks and stars) about a repository hosted on GitHub."),(0,a.kt)("h2",{id:"accessing-a-repository-page"},"Accessing a Repository Page"),(0,a.kt)("p",null,"To view a repository page, follow these steps:"),(0,a.kt)("p",null,"Open a web browser and navigate to the following URL structure:"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"https://app.opensauced.pizza/s/{org}/{repo}")),(0,a.kt)("p",null,"Replace {org} with the name of the organization that owns the repository you want to view. Replace {repo} with the name of the specific repository."),(0,a.kt)("p",null,"For example, to view the ",(0,a.kt)("inlineCode",{parentName:"p"},"next.js")," repository created by the ",(0,a.kt)("inlineCode",{parentName:"p"},"Vercel")," organization, you would use the following URL:"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/s/vercel/nextjs"},"https://app.opensauced.pizza/s/vercel/nextjs")),(0,a.kt)("p",null,"Here's what that will look like:"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/s/vercel/next.js"},(0,a.kt)("img",{alt:"next.js repository page",src:r(1358).Z,width:"1280",height:"1324"}))," "),(0,a.kt)("h2",{id:"understanding-the-repository-page"},"Understanding the Repository Page"),(0,a.kt)("p",null,"Here are some general things you might find on a repository page:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Repository name and organization/user"),": This is displayed prominently at the top of the page."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Metrics"),": This includes the number of stars and forks the repository has on GitHub.")),(0,a.kt)("p",null,"You can use the time range filter to view the number of stars and forks over different periods, such as the last 7 days, month, or the last year."),(0,a.kt)("p",null,"Currently, only publicly available repositories on GitHub can be viewed through Open Sauced Pizza's repository pages."),(0,a.kt)("p",null,"Repository pages on Open Sauced Pizza provide a way to explore and learn about open source code repositories hosted on GitHub. While you cannot create or edit them directly on Open Sauced Pizza yet, you can add them to your ",(0,a.kt)("a",{parentName:"p",href:"https://docs.opensauced.pizza/features/repo-insights/"},"Repository Insight pages"),"."))}d.isMDXComponent=!0},1358:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/repo-page-8aa97dcd65bdca42d1e5a0e5edb92685.png"}}]); \ No newline at end of file diff --git a/assets/js/814ea625.65de6431.js b/assets/js/814ea625.3cef5ce3.js similarity index 51% rename from assets/js/814ea625.65de6431.js rename to assets/js/814ea625.3cef5ce3.js index 8b1c5a60..f72b6529 100644 --- a/assets/js/814ea625.65de6431.js +++ b/assets/js/814ea625.3cef5ce3.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4986],{3905:(t,e,r)=>{r.d(e,{Zo:()=>l,kt:()=>d});var o=r(7294);function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function i(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,o)}return r}function a(t){for(var e=1;e=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}var u=o.createContext({}),c=function(t){var e=o.useContext(u),r=e;return t&&(r="function"==typeof t?t(e):a(a({},e),t)),r},l=function(t){var e=c(t.components);return o.createElement(u.Provider,{value:e},t.children)},p="mdxType",g={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},b=o.forwardRef((function(t,e){var r=t.components,n=t.mdxType,i=t.originalType,u=t.parentName,l=s(t,["components","mdxType","originalType","parentName"]),p=c(r),b=n,d=p["".concat(u,".").concat(b)]||p[b]||g[b]||i;return r?o.createElement(d,a(a({ref:e},l),{},{components:r})):o.createElement(d,a({ref:e},l))}));function d(t,e){var r=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=r.length,a=new Array(i);a[0]=b;var s={};for(var u in e)hasOwnProperty.call(e,u)&&(s[u]=e[u]);s.originalType=t,s[p]="string"==typeof t?t:n,a[1]=s;for(var c=2;c{r.r(e),r.d(e,{assets:()=>u,contentTitle:()=>a,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var o=r(7462),n=(r(7294),r(3905));const i={id:"contributor-insights",title:"Organize and Monitor Your Contributors",sidebar_label:"Contributor Insights",keywords:["contributor insights","contributors","organize","Monitor Contributors","Organize Contributors","Contributor Contributor Insights Management"]},a=void 0,s={unversionedId:"features/contributor-insights",id:"features/contributor-insights",title:"Organize and Monitor Your Contributors",description:"The Contributor Insights feature enables you to categorize, monitor, and analyze different groups of contributors within open source projects. With the Contributor Insights feature, gain granular insights into each contributor's activity and contributions.",source:"@site/docs/features/contributor-insights.md",sourceDirName:"features",slug:"/features/contributor-insights",permalink:"/features/contributor-insights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/contributor-insights.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"contributor-insights",title:"Organize and Monitor Your Contributors",sidebar_label:"Contributor Insights",keywords:["contributor insights","contributors","organize","Monitor Contributors","Organize Contributors","Contributor Contributor Insights Management"]},sidebar:"docs",previous:{title:"Repository Insights",permalink:"/features/repo-insights"},next:{title:"Repository Pages",permalink:"/features/repo-pages"}},u={},c=[{value:"How to Create a Contributor Insight Page",id:"how-to-create-a-contributor-insight-page",level:2}],l={toc:c},p="wrapper";function g(t){let{components:e,...i}=t;return(0,n.kt)(p,(0,o.Z)({},l,i,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The Contributor Insights feature enables you to categorize, monitor, and analyze different groups of contributors within open source projects. With the Contributor Insights feature, gain granular insights into each contributor's activity and contributions."),(0,n.kt)("p",null,"Monitor individual commit histories, track who is actively engaged, identify alumni or new contributors, and even compare the performance of contributors against each other. This encompasses a wide range of metrics such as code commits, created and reviewed pull requests (PRs), as well as issue creation and commenting."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"Contributor Insights Page",src:r(6008).Z,width:"1440",height:"1124"})),(0,n.kt)("h2",{id:"how-to-create-a-contributor-insight-page"},"How to Create a Contributor Insight Page"),(0,n.kt)("p",null,'After logging in, navigate to "Insights" in the sidebar. Click the "+" next to it to be presented with options, and select "New Contributor Insight."'),(0,n.kt)("p",null,"There are three ways to add a list:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Explore Contributors"),": Use our explore tool to find contributors and create your list."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Sync your GitHub Team"),": Connect to your GitHub to create a Contributor Insight Page from a team in your organization."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Import your GitHub Following"),": Connect to your GitHub to create a Contributor Insight Page with all the contributors you follow.")),(0,n.kt)("p",null,"Once your Contributor Insight Page is created, you'll be able to see an overview of all the contributors in your list, a graph of their activity, and a detailed breakdown of the contributors."),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"}," If you're having trouble syncing your Organization or Team, check out the \"",(0,n.kt)("a",{parentName:"p",href:"/welcome/faqs#sync-your-github-team"},"Sync Your GitHub Team"),'" section in our FAQs.')),(0,n.kt)("p",null,"By default, your Contributor Insight Page is public. If your Contributor Insight Page is private (a PRO plan feature), only those with access to your Workspace will be able to view it."))}g.isMDXComponent=!0},6008:(t,e,r)=>{r.d(e,{Z:()=>o});const o=r.p+"assets/images/lists-page-ba64789ac5cf5f607e2784276240dc5e.svg"}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4986],{3905:(t,e,r)=>{r.d(e,{Zo:()=>l,kt:()=>d});var o=r(7294);function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function i(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,o)}return r}function a(t){for(var e=1;e=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}var u=o.createContext({}),c=function(t){var e=o.useContext(u),r=e;return t&&(r="function"==typeof t?t(e):a(a({},e),t)),r},l=function(t){var e=c(t.components);return o.createElement(u.Provider,{value:e},t.children)},p="mdxType",g={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},b=o.forwardRef((function(t,e){var r=t.components,n=t.mdxType,i=t.originalType,u=t.parentName,l=s(t,["components","mdxType","originalType","parentName"]),p=c(r),b=n,d=p["".concat(u,".").concat(b)]||p[b]||g[b]||i;return r?o.createElement(d,a(a({ref:e},l),{},{components:r})):o.createElement(d,a({ref:e},l))}));function d(t,e){var r=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=r.length,a=new Array(i);a[0]=b;var s={};for(var u in e)hasOwnProperty.call(e,u)&&(s[u]=e[u]);s.originalType=t,s[p]="string"==typeof t?t:n,a[1]=s;for(var c=2;c{r.r(e),r.d(e,{assets:()=>u,contentTitle:()=>a,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var o=r(7462),n=(r(7294),r(3905));const i={id:"contributor-insights",title:"Organize and Monitor Your Contributors",sidebar_label:"Contributor Insights",keywords:["contributor insights","contributors","organize","Monitor Contributors","Organize Contributors","Contributor Contributor Insights Management"]},a=void 0,s={unversionedId:"features/contributor-insights",id:"features/contributor-insights",title:"Organize and Monitor Your Contributors",description:"The Contributor Insights feature enables you to categorize, monitor, and analyze different groups of contributors within open source projects. With the Contributor Insights feature, gain granular insights into each contributor's activity and contributions.",source:"@site/docs/features/contributor-insights.md",sourceDirName:"features",slug:"/features/contributor-insights",permalink:"/features/contributor-insights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/contributor-insights.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"contributor-insights",title:"Organize and Monitor Your Contributors",sidebar_label:"Contributor Insights",keywords:["contributor insights","contributors","organize","Monitor Contributors","Organize Contributors","Contributor Contributor Insights Management"]},sidebar:"docs",previous:{title:"Repository Insights",permalink:"/features/repo-insights"},next:{title:"Repository Pages",permalink:"/features/repo-pages"}},u={},c=[{value:"How to Create a Contributor Insight Page",id:"how-to-create-a-contributor-insight-page",level:2}],l={toc:c},p="wrapper";function g(t){let{components:e,...i}=t;return(0,n.kt)(p,(0,o.Z)({},l,i,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The Contributor Insights feature enables you to categorize, monitor, and analyze different groups of contributors within open source projects. With the Contributor Insights feature, gain granular insights into each contributor's activity and contributions."),(0,n.kt)("p",null,"Monitor individual commit histories, track who is actively engaged, identify alumni or new contributors, and even compare the performance of contributors against each other. This encompasses a wide range of metrics such as code commits, created and reviewed pull requests (PRs), as well as issue creation and commenting."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"Contributor Insights Page",src:r(6008).Z,width:"1440",height:"1124"})),(0,n.kt)("h2",{id:"how-to-create-a-contributor-insight-page"},"How to Create a Contributor Insight Page"),(0,n.kt)("p",null,'After logging in, navigate to "Insights" in the sidebar. Click the "+" next to it to be presented with options, and select "New Contributor Insight."'),(0,n.kt)("p",null,"There are three ways to add a list:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Explore Contributors"),": Use our explore tool to find contributors and create your list."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Sync your GitHub Team"),": Connect to your GitHub to create a Contributor Insight Page from a team in your organization."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Import your GitHub Following"),": Connect to your GitHub to create a Contributor Insight Page with all the contributors you follow.")),(0,n.kt)("p",null,"Once your Contributor Insight Page is created, you'll be able to see an overview of all the contributors in your list, a graph of their activity, and a detailed breakdown of the contributors."),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"}," If you're having trouble syncing your Organization or Team, check out the \"",(0,n.kt)("a",{parentName:"p",href:"/welcome/faqs#sync-your-github-team"},"Sync Your GitHub Team"),'" section in our FAQs.')),(0,n.kt)("p",null,"By default, your Contributor Insight Page is public. If your Contributor Insight Page is private (a PRO plan feature), only those with access to your Workspace will be able to view it."))}g.isMDXComponent=!0},6008:(t,e,r)=>{r.d(e,{Z:()=>o});const o=r.p+"assets/images/lists-page-ba64789ac5cf5f607e2784276240dc5e.svg"}}]); \ No newline at end of file diff --git a/assets/js/88e6cb4a.2fc83a76.js b/assets/js/88e6cb4a.2fc83a76.js deleted file mode 100644 index 16a1614a..00000000 --- a/assets/js/88e6cb4a.2fc83a76.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[8710],{3905:(e,t,i)=>{i.d(t,{Zo:()=>p,kt:()=>g});var n=i(7294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function o(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),u=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=u(i),m=a,g=d["".concat(l,".").concat(m)]||d[m]||c[m]||r;return i?n.createElement(g,o(o({ref:t},p),{},{components:i})):n.createElement(g,o({ref:t},p))}));function g(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,o=new Array(r);o[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var u=2;u{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var n=i(7462),a=(i(7294),i(3905));const r={id:"triage-guide",title:"Triage Guide",sidebar_label:"Triage Guide",keywords:["triage guide","Issue triage best practices","GitHub triage process","Pull request triage steps","Triage workflow tutorial","Effective issue management","Open source contribution triage","Triage for project maintainers","Streamlining triage efforts","Collaborative issue handling","Contributor triage assistance"]},o=void 0,s={unversionedId:"contributing/triage-guide",id:"contributing/triage-guide",title:"Triage Guide",description:"How to Join the Triage Team",source:"@site/docs/contributing/triage-guide.md",sourceDirName:"contributing",slug:"/contributing/triage-guide",permalink:"/contributing/triage-guide",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/triage-guide.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"triage-guide",title:"Triage Guide",sidebar_label:"Triage Guide",keywords:["triage guide","Issue triage best practices","GitHub triage process","Pull request triage steps","Triage workflow tutorial","Effective issue management","Open source contribution triage","Triage for project maintainers","Streamlining triage efforts","Collaborative issue handling","Contributor triage assistance"]},sidebar:"docs",previous:{title:"Code of Conduct",permalink:"/contributing/code-of-conduct"},next:{title:"OpenSauced Maintainers Guide",permalink:"/contributing/opensauced-maintainers-guide/maintainers-guide"}},l={},u=[{value:"How to Join the Triage Team",id:"how-to-join-the-triage-team",level:2},{value:"Triage Process",id:"triage-process",level:2},{value:"Adding Issue and PR Labels",id:"adding-issue-and-pr-labels",level:3},{value:"Labeling good first issue",id:"labeling-good-first-issue",level:3},{value:"Approaches and Best Practices for Getting Into Triage Contributions",id:"approaches-and-best-practices-for-getting-into-triage-contributions",level:2},{value:"Removal of Triage Role",id:"removal-of-triage-role",level:2},{value:"Helpful Hints",id:"helpful-hints",level:2}],p={toc:u},d="wrapper";function c(e){let{components:t,...i}=e;return(0,a.kt)(d,(0,n.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"how-to-join-the-triage-team"},"How to Join the Triage Team"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Sign up for ",(0,a.kt)("a",{parentName:"li",href:"https://opensauced.pizza"},"opensauced.pizza"),"."),(0,a.kt)("li",{parentName:"ol"},"Leave a comment in the ",(0,a.kt)("inlineCode",{parentName:"li"},"\ud83c\udf55opensauced-contributors-chat")," channel on ",(0,a.kt)("a",{parentName:"li",href:"https://discord.com/channels/714698561081704529/928693344358514698"},"Discord"),".")),(0,a.kt)("h2",{id:"triage-process"},"Triage Process"),(0,a.kt)("p",null,"When a new issue or pull request (PR) is opened, the issue will be labeled with ",(0,a.kt)("inlineCode",{parentName:"p"},"needs triage"),". If a triage team member is available, they can help ensure all the required information is provided."),(0,a.kt)("h3",{id:"adding-issue-and-pr-labels"},"Adding Issue and PR Labels"),(0,a.kt)("p",null,"Depending on the issue or PR, there are several labels the triage team can add for further classification, as follows:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"needs triage"),": This can be kept if the triager is unsure which next steps to take."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"awaiting more info"),": If more information has been requested from the author, apply this label."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"question"),": User questions that do not appear to be bugs or enhancements."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"discuss"),": Topics for discussion. It might end in an ",(0,a.kt)("inlineCode",{parentName:"li"},"enhancement")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"question")," label."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"bug"),": Issues that present reasonable conviction there is a reproducible bug."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"enhancement"),": Issues that are found to be a reasonable candidate feature additions."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"style"),": Minor CSS or visual changes.")),(0,a.kt)("p",null,"In all cases, maintainers may close issues if they don't receive a timely response when further information is sought or when additional questions are asked."),(0,a.kt)("h3",{id:"labeling-good-first-issue"},"Labeling ",(0,a.kt)("inlineCode",{parentName:"h3"},"good first issue")),(0,a.kt)("p",null,"Issues labeled as ",(0,a.kt)("inlineCode",{parentName:"p"},"good first issue")," represent a curated list of easy contributions for new contributors. These issues are meant to help folks make their first contribution to open source and should not require excessive research or triaging on the contributor's part."),(0,a.kt)("p",null,"All ",(0,a.kt)("inlineCode",{parentName:"p"},"good first issue")," should include one or more of the following:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A solution."),(0,a.kt)("li",{parentName:"ul"},"A suggestion for a solution."),(0,a.kt)("li",{parentName:"ul"},"Links to components or in which issue occurs.")),(0,a.kt)("p",null,"Please be noted:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Issues that ",(0,a.kt)("inlineCode",{parentName:"li"},"needs triage")," cannot be labeled as ",(0,a.kt)("inlineCode",{parentName:"li"},"good first issues"),"."),(0,a.kt)("li",{parentName:"ul"},"It is better to have no ",(0,a.kt)("inlineCode",{parentName:"li"},"good first issue")," labeled issues than to have a ",(0,a.kt)("inlineCode",{parentName:"li"},"good first issue")," confusing enough to deter a contributor from contributing.")),(0,a.kt)("h2",{id:"approaches-and-best-practices-for-getting-into-triage-contributions"},"Approaches and Best Practices for Getting Into Triage Contributions"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Review the project's Contribution Guidelines if they are present. In a nutshell, commit to the community's standards and values.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Review the documentation; for most projects, it is just the ",(0,a.kt)("inlineCode",{parentName:"p"},"README.md"),". Ensure you understand the key APIs, semantics, configurations, and use cases.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Writing your own test apps to reaffirm your understanding of the key functions might be helpful. This may identify some gaps in documentation; record those as they might be good PRs to open.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Skim through the issues backlog; identify low-hanging and mostly new issues. From those, attempt to recreate issues based on the OP (Original Poster) description and ask questions if required. No question is a bad question!"))),(0,a.kt)("h2",{id:"removal-of-triage-role"},"Removal of Triage Role"),(0,a.kt)("p",null,"There are a few cases where members can be removed from the triage role:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Breaking the ",(0,a.kt)("a",{parentName:"li",href:"/contributing/code-of-conduct"},"Code of Conduct")," or ",(0,a.kt)("a",{parentName:"li",href:"/contributing/introduction-to-contributing"},"project contributor guidelines"),"."),(0,a.kt)("li",{parentName:"ul"},"Abuse or misuse of the role as deemed by the Triage Team."),(0,a.kt)("li",{parentName:"ul"},"Lack of participation for more than six months.")),(0,a.kt)("p",null,"If any of these happen, we will discuss them as a part of the triage portion of the regular Triage Team meetings. If you have questions, feel free to contact any Triage Team members."),(0,a.kt)("h2",{id:"helpful-hints"},"Helpful Hints"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"When reviewing the list of open issues, there are some common types and suggested actions:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"New/unattended issues or simple questions"),": A good place to start."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Hard bugs & ongoing discussions"),": Feel free to chime in and help."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Issues that imply gaps in the documentation"),": Open PRs with changes or help the user to do so."))),(0,a.kt)("li",{parentName:"ul"},"For recurring issues, it is helpful to create functional examples to demonstrate (publish as gists or a repo)."),(0,a.kt)("li",{parentName:"ul"},"Review and identify the maintainers. If necessary, mention one or more of them with ",(0,a.kt)("inlineCode",{parentName:"li"},"@")," if you are unsure what to do."),(0,a.kt)("li",{parentName:"ul"},"Ensure all your interactions are professional, welcoming, and respectful to the parties involved.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/88e6cb4a.4331c91c.js b/assets/js/88e6cb4a.4331c91c.js new file mode 100644 index 00000000..b6e1d822 --- /dev/null +++ b/assets/js/88e6cb4a.4331c91c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[8710],{3905:(e,t,i)=>{i.d(t,{Zo:()=>p,kt:()=>g});var n=i(7294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function o(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),u=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=u(i),m=a,g=d["".concat(l,".").concat(m)]||d[m]||c[m]||r;return i?n.createElement(g,o(o({ref:t},p),{},{components:i})):n.createElement(g,o({ref:t},p))}));function g(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,o=new Array(r);o[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var u=2;u{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var n=i(7462),a=(i(7294),i(3905));const r={id:"triage-guide",title:"Triage Guide",sidebar_label:"Triage Guide",keywords:["triage guide","Issue triage best practices","GitHub triage process","Pull request triage steps","Triage workflow tutorial","Effective issue management","Open source contribution triage","Triage for project maintainers","Streamlining triage efforts","Collaborative issue handling","Contributor triage assistance"]},o=void 0,s={unversionedId:"contributing/triage-guide",id:"contributing/triage-guide",title:"Triage Guide",description:"How to Join the Triage Team",source:"@site/docs/contributing/triage-guide.md",sourceDirName:"contributing",slug:"/contributing/triage-guide",permalink:"/contributing/triage-guide",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/triage-guide.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"triage-guide",title:"Triage Guide",sidebar_label:"Triage Guide",keywords:["triage guide","Issue triage best practices","GitHub triage process","Pull request triage steps","Triage workflow tutorial","Effective issue management","Open source contribution triage","Triage for project maintainers","Streamlining triage efforts","Collaborative issue handling","Contributor triage assistance"]},sidebar:"docs",previous:{title:"Code of Conduct",permalink:"/contributing/code-of-conduct"},next:{title:"OpenSauced Maintainers Guide",permalink:"/contributing/opensauced-maintainers-guide/maintainers-guide"}},l={},u=[{value:"How to Join the Triage Team",id:"how-to-join-the-triage-team",level:2},{value:"Triage Process",id:"triage-process",level:2},{value:"Adding Issue and PR Labels",id:"adding-issue-and-pr-labels",level:3},{value:"Labeling good first issue",id:"labeling-good-first-issue",level:3},{value:"Approaches and Best Practices for Getting Into Triage Contributions",id:"approaches-and-best-practices-for-getting-into-triage-contributions",level:2},{value:"Removal of Triage Role",id:"removal-of-triage-role",level:2},{value:"Helpful Hints",id:"helpful-hints",level:2}],p={toc:u},d="wrapper";function c(e){let{components:t,...i}=e;return(0,a.kt)(d,(0,n.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"how-to-join-the-triage-team"},"How to Join the Triage Team"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Sign up for ",(0,a.kt)("a",{parentName:"li",href:"https://opensauced.pizza"},"opensauced.pizza"),"."),(0,a.kt)("li",{parentName:"ol"},"Leave a comment in the ",(0,a.kt)("inlineCode",{parentName:"li"},"\ud83c\udf55opensauced-contributors-chat")," channel on ",(0,a.kt)("a",{parentName:"li",href:"https://discord.com/channels/714698561081704529/928693344358514698"},"Discord"),".")),(0,a.kt)("h2",{id:"triage-process"},"Triage Process"),(0,a.kt)("p",null,"When a new issue or pull request (PR) is opened, the issue will be labeled with ",(0,a.kt)("inlineCode",{parentName:"p"},"needs triage"),". If a triage team member is available, they can help ensure all the required information is provided."),(0,a.kt)("h3",{id:"adding-issue-and-pr-labels"},"Adding Issue and PR Labels"),(0,a.kt)("p",null,"Depending on the issue or PR, there are several labels the triage team can add for further classification, as follows:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"needs triage"),": This can be kept if the triager is unsure which next steps to take."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"awaiting more info"),": If more information has been requested from the author, apply this label."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"question"),": User questions that do not appear to be bugs or enhancements."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"discuss"),": Topics for discussion. It might end in an ",(0,a.kt)("inlineCode",{parentName:"li"},"enhancement")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"question")," label."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"bug"),": Issues that present reasonable conviction there is a reproducible bug."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"enhancement"),": Issues that are found to be a reasonable candidate feature additions."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"style"),": Minor CSS or visual changes.")),(0,a.kt)("p",null,"In all cases, maintainers may close issues if they don't receive a timely response when further information is sought or when additional questions are asked."),(0,a.kt)("h3",{id:"labeling-good-first-issue"},"Labeling ",(0,a.kt)("inlineCode",{parentName:"h3"},"good first issue")),(0,a.kt)("p",null,"Issues labeled as ",(0,a.kt)("inlineCode",{parentName:"p"},"good first issue")," represent a curated list of easy contributions for new contributors. These issues are meant to help folks make their first contribution to open source and should not require excessive research or triaging on the contributor's part."),(0,a.kt)("p",null,"All ",(0,a.kt)("inlineCode",{parentName:"p"},"good first issue")," should include one or more of the following:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A solution."),(0,a.kt)("li",{parentName:"ul"},"A suggestion for a solution."),(0,a.kt)("li",{parentName:"ul"},"Links to components or in which issue occurs.")),(0,a.kt)("p",null,"Please be noted:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Issues that ",(0,a.kt)("inlineCode",{parentName:"li"},"needs triage")," cannot be labeled as ",(0,a.kt)("inlineCode",{parentName:"li"},"good first issues"),"."),(0,a.kt)("li",{parentName:"ul"},"It is better to have no ",(0,a.kt)("inlineCode",{parentName:"li"},"good first issue")," labeled issues than to have a ",(0,a.kt)("inlineCode",{parentName:"li"},"good first issue")," confusing enough to deter a contributor from contributing.")),(0,a.kt)("h2",{id:"approaches-and-best-practices-for-getting-into-triage-contributions"},"Approaches and Best Practices for Getting Into Triage Contributions"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Review the project's Contribution Guidelines if they are present. In a nutshell, commit to the community's standards and values.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Review the documentation; for most projects, it is just the ",(0,a.kt)("inlineCode",{parentName:"p"},"README.md"),". Ensure you understand the key APIs, semantics, configurations, and use cases.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Writing your own test apps to reaffirm your understanding of the key functions might be helpful. This may identify some gaps in documentation; record those as they might be good PRs to open.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Skim through the issues backlog; identify low-hanging and mostly new issues. From those, attempt to recreate issues based on the OP (Original Poster) description and ask questions if required. No question is a bad question!"))),(0,a.kt)("h2",{id:"removal-of-triage-role"},"Removal of Triage Role"),(0,a.kt)("p",null,"There are a few cases where members can be removed from the triage role:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Breaking the ",(0,a.kt)("a",{parentName:"li",href:"/contributing/code-of-conduct"},"Code of Conduct")," or ",(0,a.kt)("a",{parentName:"li",href:"/contributing/introduction-to-contributing"},"project contributor guidelines"),"."),(0,a.kt)("li",{parentName:"ul"},"Abuse or misuse of the role as deemed by the Triage Team."),(0,a.kt)("li",{parentName:"ul"},"Lack of participation for more than six months.")),(0,a.kt)("p",null,"If any of these happen, we will discuss them as a part of the triage portion of the regular Triage Team meetings. If you have questions, feel free to contact any Triage Team members."),(0,a.kt)("h2",{id:"helpful-hints"},"Helpful Hints"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"When reviewing the list of open issues, there are some common types and suggested actions:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"New/unattended issues or simple questions"),": A good place to start."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Hard bugs & ongoing discussions"),": Feel free to chime in and help."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Issues that imply gaps in the documentation"),": Open PRs with changes or help the user to do so."))),(0,a.kt)("li",{parentName:"ul"},"For recurring issues, it is helpful to create functional examples to demonstrate (publish as gists or a repo)."),(0,a.kt)("li",{parentName:"ul"},"Review and identify the maintainers. If necessary, mention one or more of them with ",(0,a.kt)("inlineCode",{parentName:"li"},"@")," if you are unsure what to do."),(0,a.kt)("li",{parentName:"ul"},"Ensure all your interactions are professional, welcoming, and respectful to the parties involved.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/908b0867.a4a3cb85.js b/assets/js/908b0867.a4a3cb85.js new file mode 100644 index 00000000..dda4ea60 --- /dev/null +++ b/assets/js/908b0867.a4a3cb85.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[2698],{3905:(e,t,o)=>{o.d(t,{Zo:()=>c,kt:()=>g});var i=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function n(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,i)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var u=i.createContext({}),l=function(e){var t=i.useContext(u),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},c=function(e){var t=l(e.components);return i.createElement(u.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var o=e.components,r=e.mdxType,n=e.originalType,u=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=l(o),d=r,g=p["".concat(u,".").concat(d)]||p[d]||h[d]||n;return o?i.createElement(g,a(a({ref:t},c),{},{components:o})):i.createElement(g,a({ref:t},c))}));function g(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=o.length,a=new Array(n);a[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:r,a[1]=s;for(var l=2;l{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var i=o(7462),r=(o(7294),o(3905));const n={id:"students-guide",title:"Students Guide to OpenSauced",sidebar_label:"Students Guide to OpenSauced",keywords:["contributors","guides","how to contribute to open source","students guide to open source"]},a=void 0,s={unversionedId:"opensauced-guides/students-guide/students-guide",id:"opensauced-guides/students-guide/students-guide",title:"Students Guide to OpenSauced",description:"Introduction to OpenSauced for Students",source:"@site/docs/opensauced-guides/students-guide/students-guide.md",sourceDirName:"opensauced-guides/students-guide",slug:"/opensauced-guides/students-guide/",permalink:"/opensauced-guides/students-guide/",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-guides/students-guide/students-guide.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"students-guide",title:"Students Guide to OpenSauced",sidebar_label:"Students Guide to OpenSauced",keywords:["contributors","guides","how to contribute to open source","students guide to open source"]},sidebar:"docs",previous:{title:"How to Translate Open Source Contributions into Career Opportunities",permalink:"/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities"},next:{title:"Maintainers Guide to OpenSauced",permalink:"/maintainers/maintainers-guide-to-open-sauced"}},u={},l=[{value:"Introduction to OpenSauced for Students",id:"introduction-to-opensauced-for-students",level:2},{value:"Getting Started",id:"getting-started",level:2},{value:"Creating Your Profile",id:"creating-your-profile",level:2},{value:"Your Profile",id:"your-profile",level:3},{value:"Your Dev Card",id:"your-dev-card",level:3},{value:"Explore: Finding Your Next Open Source Project",id:"explore-finding-your-next-open-source-project",level:2},{value:"Highlights: Connecting and Recognizing Contributions",id:"highlights-connecting-and-recognizing-contributions",level:2},{value:"Creating a New Highlight",id:"creating-a-new-highlight",level:3},{value:"Writing an Effective Highlight",id:"writing-an-effective-highlight",level:3},{value:"Highlighting Issues",id:"highlighting-issues",level:4},{value:"Highlighting PRs",id:"highlighting-prs",level:4},{value:"Highlighting Dev.to Blog Posts",id:"highlighting-devto-blog-posts",level:4},{value:"Creating Your Workspace",id:"creating-your-workspace",level:2},{value:"Creating a New Workspace",id:"creating-a-new-workspace",level:3},{value:"Adding Repositories to Your Workspace",id:"adding-repositories-to-your-workspace",level:3},{value:"Navigating Your Workspace",id:"navigating-your-workspace",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard",level:4},{value:"Why Create a Workspace?",id:"why-create-a-workspace",level:3},{value:"Repository Insights: Connecting Your Repositories",id:"repository-insights-connecting-your-repositories",level:2},{value:"Why Create a Repository Insights Page?",id:"why-create-a-repository-insights-page",level:3},{value:"Creating a New Repository Insight Page",id:"creating-a-new-repository-insight-page",level:3},{value:"Using Your Repository Insights Page",id:"using-your-repository-insights-page",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard-1",level:4},{value:"Contributors",id:"contributors",level:4},{value:"Activity",id:"activity",level:4},{value:"Contributor Insights: Connecting with Contributors",id:"contributor-insights-connecting-with-contributors",level:2},{value:"What Can You Do with Contributor Insights?",id:"what-can-you-do-with-contributor-insights",level:3},{value:"Creating a New Contributor Insights Page",id:"creating-a-new-contributor-insights-page",level:3},{value:"Using Your Contributor Insights Page",id:"using-your-contributor-insights-page",level:2},{value:"Overview",id:"overview",level:3},{value:"Activity",id:"activity-1",level:3},{value:"Highlights",id:"highlights",level:3},{value:"Takeaways",id:"takeaways",level:2},{value:"Conclusion",id:"conclusion",level:2}],c={toc:l},p="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,i.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"introduction-to-opensauced-for-students"},"Introduction to OpenSauced for Students"),(0,r.kt)("p",null,"Welcome to the wonderful world of open source. As a student, you'll find countless opportunities to contribute to projects, collaborate across global projects, and enhance your resume through meaningful contributions. You can use OpenSauced as a tool to enhance your open source journey by helping you to find interesting repositories that match your academic and personal interests, document your journey, learn from the community, and showcase your growth."),(0,r.kt)("p",null,"In this guide, you will learn how to use OpenSauced features like your personal ",(0,r.kt)("a",{parentName:"p",href:"/features/dev-card"},"Dev Card"),", ",(0,r.kt)("a",{parentName:"p",href:"/features/highlights"},"Highlights"),", ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights"),", and ",(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights")," to showcase your open source work and build connections to help you meet your next goals."),(0,r.kt)("h2",{id:"getting-started"},"Getting Started"),(0,r.kt)("p",null,"To get started, you will need to create an account on OpenSauced. You can do this by visiting ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza"},"app.opensauced.pizza"),' and clicking the "Connect with GitHub" button. You will be prompted to sign in with your GitHub account. Once you have signed in, you will be redirected to the OpenSauced dashboard. The best place to get started is by creating your profile.'),(0,r.kt)("h2",{id:"creating-your-profile"},"Creating Your Profile"),(0,r.kt)("p",null,"Creating your profile is a great way to showcase your open source contributions, connect with other contributors and maintainers, and share with your classmates, communities, and connections. Here are some steps to help you get started:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After creating your account, navigate to "Settings."'),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"settings",src:o(1449).Z,width:"746",height:"178"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Once there, you will be asked to add your name, bio, links to your social media accounts, timezone, and other forms of contact information."),(0,r.kt)("admonition",{parentName:"li",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Don't forget to add your personal site, GitHub Sponsors URL, and LinkedIn so people can connect with you and learn more about your work."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'In the "Interests" section, select the various programming languages and topics you are interested in. Setting them up helps us recommend open source projects that fit your interests.')),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Manage your email preferences."))),(0,r.kt)("h3",{id:"your-profile"},"Your Profile"),(0,r.kt)("p",null,"Your profile is a great resource for showcasing your contributions and sharing your open source work with others."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"your profile",src:o(232).Z,width:"955",height:"994"})),(0,r.kt)("p",null,'On your profile, you will see the "Highlights" tab, which you can learn more about ',(0,r.kt)("a",{parentName:"p",href:"#highlights-connecting-and-recognizing-contributions"},"in this section"),". Other tabs you may find useful on your profile are: "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Contributions"),": This tab includes a graph showing the number of PRs you have opened, ",(0,r.kt)("a",{parentName:"li",href:"/welcome/glossary#pr-velocity"},"the velocity of your PRs"),', and the number of repositories you have contributed to in the last thirty days. Underneath the graph is a "Latest PRs" chart, which shows a list of current and recent PRs. This tab is helpful if you want to showcase a steady and consistent open source contribution experience.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Recommendations"),': This tab includes a list of open source projects that are chosen based on the programming languages you picked in the "Interests" section of your public profile. It is useful if you\'re looking for new projects to contribute to.')),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"To get the full benefit of your profile, share it on social media, include a link to it on your resume, LinkedIn, your GitHub Readme, and your personal website to showcase your most up-to-date open source contributions.")),(0,r.kt)("h3",{id:"your-dev-card"},"Your Dev Card"),(0,r.kt)("p",null,"Another fun way to share your open source contributions is through your ",(0,r.kt)("a",{parentName:"p",href:"/features/dev-card"},"Dev Card"),". Your Dev Card is a visual representation of your open source contributions. It includes your profile picture, name, bio, and the number of your latest contributions. "),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"dev card",src:o(2).Z,width:"940",height:"658"})),(0,r.kt)("h2",{id:"explore-finding-your-next-open-source-project"},"Explore: Finding Your Next Open Source Project"),(0,r.kt)("p",null,'The "Explore" tab is a great place to start if you\'re looking for a new open source project to contribute to. Here, you can find a list of open source projects and filter them by language, top repos, recent, most active, and more.'),(0,r.kt)("p",null,"Once you've selected your filters, you'll be able to see the contributors, spam, and activity levels of the repository. Understanding a repository's activity level and PR velocity can help you determine if it's a good fit for you to contribute to and what to expect when you submit a PR."),(0,r.kt)("p",null,'For example, if you wanted to look for a JavaScript project to contribute to, you would select "JavaScript" from the language dropdown and "Most Active" from the filter dropdown to see the most active JavaScript projects on GitHub. If you want to keep track of the repositories you\'re interested in contributing to, you can select and add them to a ',(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights Page")," or your ",(0,r.kt)("a",{parentName:"p",href:"/features/workspaces"},"Workspace"),"."),(0,r.kt)("h2",{id:"highlights-connecting-and-recognizing-contributions"},"Highlights: Connecting and Recognizing Contributions"),(0,r.kt)("p",null,"Leveraging OpenSauced's ",(0,r.kt)("a",{parentName:"p",href:"/features/highlights"},"Highlights")," feature is a great way to showcase your valuable contributions to open source projects. You can curate and share your achievements and milestones, bringing visibility to your hard work."),(0,r.kt)("p",null,"The Highlights feature allows you to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"talk about issues that you raised,"),(0,r.kt)("li",{parentName:"ul"},"share Dev.to blog posts that you've written,"),(0,r.kt)("li",{parentName:"ul"},"display Pull Requests that showcase your contributions.")),(0,r.kt)("h3",{id:"creating-a-new-highlight"},"Creating a New Highlight"),(0,r.kt)("p",null,"There are two ways to create a new highlight:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Paste the URL to your PR, issue, or Dev.to blog post (shown in blue below)."),(0,r.kt)("li",{parentName:"ol"},"Choose from a list of suggestions (shown in orange below).")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"highlight suggestions",src:o(4173).Z,width:"626",height:"633"})),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"If you're adding a blog post, you'll need to associate it to a repository by clicking the \"Add a repo\" button.")),(0,r.kt)("p",null,"Finally, it's time to add the details of your highlight. You can write the description yourself or use the auto-summarize button to generate one."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"gif of creating a highlight",src:o(7352).Z,width:"2294",height:"1066"})),(0,r.kt)("h3",{id:"writing-an-effective-highlight"},"Writing an Effective Highlight"),(0,r.kt)("p",null,"Sharing the story of your hard work is an opportunity to connect with the reader, which could include potential collaborators, other contributors, maintainers, or anyone on OpenSauced. Here are some tips to help you write effective stories for your highlights:"),(0,r.kt)("h4",{id:"highlighting-issues"},"Highlighting Issues"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Share your motivation"),': Briefly explain why you raised the issue. For example, "I\'m passionate about improving accessibility because I believe everyone should have equal access to information."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Summarize the issue"),": Briefly describe the issue you wrote so your readers have context. For example, \"I raised an issue to add alt text to images in the project's 'About Us' page.\""),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the impact:"),' Briefly state how the resolution of the issue will improve the project. For example, "This will help people who use screen readers understand the content better."')),(0,r.kt)("h4",{id:"highlighting-prs"},"Highlighting PRs"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the PR"),': Start with a clear summary of what your PR accomplishes. For example, "I added a new feature to the project\'s Chrome Extension that allows users to summarize content."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Highlight your solution and its impact"),': Briefly describe the solution, any challenges you faced, or any part of the PR you\'re particularly proud of. For example, "Initially, I faced challenges with the API, but I was able to resolve them using a different endpoint."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Reflect on your experience"),': Mention what you learned from working on the PR. For example, "I learned a lot about the Chrome Extension API and how to use it to create new features."')),(0,r.kt)("h4",{id:"highlighting-devto-blog-posts"},"Highlighting Dev.to Blog Posts"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the topic"),": Begin with an interesting blog post summary to help others understand your writing."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Discuss the inspiration"),": Explain why you wrote this blog post. Is it to guide others on improving their coding skills, raise awareness about an issue in the tech community, or display your progress in learning a new programming language?"),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"End with a call-to-action"),": Encourage others to read and engage with the post.")),(0,r.kt)("h2",{id:"creating-your-workspace"},"Creating Your Workspace"),(0,r.kt)("p",null,"As a student working on multiple projects or contributing to various open source repositories, keeping track of progress, goals, and collaboration can be daunting. To keep track of the repositories that are most important to you or repositories that you're working on with a team, OpenSauced Workspaces can be your go-to tool for organizing and understanding your open source journey."),(0,r.kt)("p",null,"Your Workspace helps you to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Understand projects at a high level"),": Being able to look at all the repositories that are important to you and understand them at a high level makes it easier for you to share this information and collaborate with others."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Enhance team collaboration"),": If you're working with a group, you can keep track of what everyone is working on. This transparency is key to teamwork and support, whether you're setting goals for a class project, contributing to a group assignment, or working together for accountability."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Deepen your project insight"),": Understanding the underlying activities of the projects you're tracking helps you to understand their progress, health, and the community of student contributors you're part of."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Celebrate and communicate your achievements"),": When it's time to talk about your experience, having analytics on the projects you worked on allows you to showcase your contributions, acknowledge the efforts of your peers, and clearly communicate the hard work invested.")),(0,r.kt)("p",null,"Workspaces offer a centralized platform. It's perfect for students to organize, track, and analyze the open source projects they're working on."),(0,r.kt)("h3",{id:"creating-a-new-workspace"},"Creating a New Workspace"),(0,r.kt)("p",null,"To create a workspace, start by accessing the ",(0,r.kt)("strong",{parentName:"p"},"Workspace switcher")," in the sidebar. From there, you can create a new workspace or view an existing one."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"workspace switcher",src:o(7281).Z,width:"1877",height:"888"})),(0,r.kt)("br",null),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},'Whenever you select "Home", you\'ll be taken to the last workspace you opened.')),(0,r.kt)("h3",{id:"adding-repositories-to-your-workspace"},"Adding Repositories to Your Workspace"),(0,r.kt)("p",null,"If you're creating a new workspace, you'll have the option to add repositories at the time of creation."),(0,r.kt)("p",null,'Start by creating a workspace name, then click "Add repositories". You\'ll have three options for adding repositories:'),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Search for Repositories"),": Use our search tool by adding an organization name, followed by the repository name, and add them to your workspace."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Import a GitHub Organization"),": Connect to your GitHub organizations to create a workspace from an organization. (If you're having trouble with this, see the \"",(0,r.kt)("a",{parentName:"li",href:"/welcome/faqs#sync-your-github-team"},"Sync Your GitHub Team"),'" section in our FAQs.)'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Import Repositories"),": Paste a list of repositories to add to your workspace.")),(0,r.kt)("p",null,"Once your repositories are added, you'll be able to see them in your repository dashboard. You can also edit your workspace to add or remove repositories anytime."),(0,r.kt)("h3",{id:"navigating-your-workspace"},"Navigating Your Workspace"),(0,r.kt)("p",null,"Once your repositories are connected, you'll enter your Workspace dashboard. In your workspace dashboards, you can create, view, and manage your workspaces."),(0,r.kt)("h4",{id:"repositories-dashboard"},"Repositories Dashboard"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Workspaces",src:o(4255).Z,width:"3200",height:"1800"})),(0,r.kt)("p",null,"Within the repositories dashboard, you can view the following metrics, which are over a period of thirty days by default:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Pull Requests"),": This includes the total number of opened and merged pull requests for the repositories in your workspace and the velocity of pull requests being merged."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Issues"),": This includes the total number of opened and closed issues for the repositories in your workspace and the velocity of issues being closed."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Engagement"),": This includes the total number of stars, forks, and activity ratio for the repositories in your workspace.")),(0,r.kt)("h3",{id:"why-create-a-workspace"},"Why Create a Workspace?"),(0,r.kt)("p",null,"There are many reasons to create a workspace. Here are a few:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Targeted Contributions"),": Workspaces allow you to create a list of repositories you are interested in or actively contributing to, which can help you stay focused on projects that align with your interests or goals.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Job Search Organization"),": You can create workspaces dedicated to tracking open source projects from companies known for hiring contributors, which can help you find potential job opportunities.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Coursework Management"),": For managing group open source projects or individual assignments, a workspace can be used to organize repositories that are part of the assignments, keeping all relevant repositories in one accessible location.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Skill-Specific Exploration"),": You can use workspaces to follow repositories that help you build specific skills or understand certain technologies, creating a tailored learning environment that aligns with your career path or focus.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Community Engagement Tracking"),": By adding repositories you're interested in, you can monitor and engage with the communities behind them. This allows you to understand the dynamics of open source collaboration, which is invaluable for both personal and professional networking."))),(0,r.kt)("h2",{id:"repository-insights-connecting-your-repositories"},"Repository Insights: Connecting Your Repositories"),(0,r.kt)("p",null,"OpenSauced ",(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights")," allows you to track open source projects you are interested in. You can use Repository Insights Pages to track repositories' growth, analyze work, and connect with others."),(0,r.kt)("h3",{id:"why-create-a-repository-insights-page"},"Why Create a Repository Insights Page?"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track projects you're working on"),": Tracking projects you're working on can help you stay up-to-date with the latest activity and trends and connect with other contributors."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To identify potential projects to contribute to"),': If you\'re looking for a new project to contribute to, you can use the Repository Insights feature to track active projects that are looking for contributors. You can use the "Explore" tab to find new projects to contribute to and track them with your Repository Insights page.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To network and engage with the community"),': Finding people to work and connect with can be challenging. You can connect with your network through the feature\'s "Contributors" tab.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track the activity of a topic you're interested in"),": Keeping up with the latest trends and activity in a particular topic can be challenging. You can use the Repository Insights feature to track the activity of a specific topic and find new projects to contribute to. For example, you can create a ",(0,r.kt)("a",{parentName:"li",href:"https://app.opensauced.pizza/pages/BekahHW/1055/dashboard"},"Repository Insight Page for Active AI Repositories"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track the activity of your favorite programming languages"),": If you're interested in tracking the activity of your favorite programming languages, you can use the Repository Insights feature to track the open source projects that are using them."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To aid in the job search"),": If you're looking for a job, you can use the Repository Insights feature to track the activity of the organizations you're interested in working on. This can help you understand the activity level of the repositories and the types of contributions being made, and even identify which company you want to contribute to."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Curating collections for interest groups"),": You can curate and share repositories focusing on sectors and programming languages that interest you.")),(0,r.kt)("p",null,"Within your workspace, you can create new lists of repositories called Repository Insight Pages."),(0,r.kt)("h3",{id:"creating-a-new-repository-insight-page"},"Creating a New Repository Insight Page"),(0,r.kt)("p",null,'To track the repositories, click the "+" next to "Insights" in the sidebar, then select "New Repository Insight." You will be redirected to a page where you can create your new Repository Insight Page.'),(0,r.kt)("p",null,"There are two ways to add repositories to your Repository Insight Page:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Sync GitHub organization"),": Syncing your GitHub organizations is a good idea if you want to keep track of their open source project activities and trends."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Connect individual repositories"),": Connecting individual repositories is a good idea if you want to keep track of the contributions of a specific repository or group of repositories.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"sync Repository Insights gif",src:o(7220).Z,width:"960",height:"543"})),(0,r.kt)("h3",{id:"using-your-repository-insights-page"},"Using Your Repository Insights Page"),(0,r.kt)("p",null,"Once you have connected your repositories, you will be redirected to your Repository Insight Page. Here, you will see a dashboard with an overview of the repositories and the contributors who have contributed to them."),(0,r.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,r.kt)("h4",{id:"repositories-dashboard-1"},"Repositories Dashboard"),(0,r.kt)("p",null,"If you're looking for an active project to contribute to, this tab can help you. It contains information such as activity levels, PR overview, PR velocity, spam PRs, contributors, and activity stats over the last 30 days. This information is also a good way to connect with others on the project or where to find support."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"repositories tab",src:o(7224).Z,width:"1148",height:"796"})),(0,r.kt)("h4",{id:"contributors"},"Contributors"),(0,r.kt)("p",null,'The "Contributors" tab allows you to view more detailed information about other contributors, including activity levels, the number of repositories they contributed to, the date of their last contribution, their most used language, their time zone, the number of contributions, and their activity stats over the last 30 days. This can be a great way to find others to collaborate with or to reach out to for support.'),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"contributors insight list",src:o(8967).Z,width:"1212",height:"628"})),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Want to learn more about your peers? You can select and add them to a Contributor Insight Page.")),(0,r.kt)("h4",{id:"activity"},"Activity"),(0,r.kt)("p",null,"The \"Activity\" tab shows a graph of the last time each contributor created their PR and how many lines of code they've touched. It also provides more detailed information on each contributor when you hover over their image, including their latest PRs and repositories they've contributed to. Clicking their image will bring you to their profile on OpenSauced."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"activity graph",src:o(8517).Z,width:"1592",height:"791"})),(0,r.kt)("p",null,"Beyond understanding repositories, you may want to get insights into other contributors to help you learn more about how others are contributing to open source. One way to do that is through Contributor Insights."),(0,r.kt)("h2",{id:"contributor-insights-connecting-with-contributors"},"Contributor Insights: Connecting with Contributors"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights")," feature helps you connect with other contributors or learn more about what others are up to in open source. With this feature, you can categorize, watch, and check out different groups of contributors within open source projects."),(0,r.kt)("h3",{id:"what-can-you-do-with-contributor-insights"},"What Can You Do with Contributor Insights?"),(0,r.kt)("p",null,"There are many things you can do with this feature, but here are some ideas to get you started:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Track personal contributions"),": If you create a list of your personal contributions, you can track them and see how you're doing over time, as well as get a breakdown of the type of contributions you're making, including commits, created PRs, reviewed PRs, and created issues."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Learn about what other contributors are doing in open source"),": You can learn where other contributors are contributing, what they're working on, and how active they are in the open source community."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"See who's using the OpenSauced Highlights feature"),": You can see who's using the Highlights feature and show them support by giving an emoji reaction."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Track contributors for job opportunities"),": If you're looking for a job, you can track the activity of the contributors you're interested in working with. This helps you understand the activity level of the repositories and the types of contributions being made, and you can even identify which company you want to contribute to."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Track your classmates or peers"),": If you're working with a group, you can track the activity of your classmates or peers to see what they're working on and how active they are in the open source community.")),(0,r.kt)("h3",{id:"creating-a-new-contributor-insights-page"},"Creating a New Contributor Insights Page"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},'Click the "+" next to "Insights" in your sidebar.'),(0,r.kt)("li",{parentName:"ol"},'Select "New Contributor Insight" to start a new Contributor Insight Page.'),(0,r.kt)("li",{parentName:"ol"},"Give your page a name."),(0,r.kt)("li",{parentName:"ol"},"Add contributors to your page by searching for their GitHub username, syncing your GitHub Team, or importing your GitHub Following."),(0,r.kt)("li",{parentName:"ol"},"Once your page is created, you can edit and choose to make it public or private. By default, it is set to public. To create a private page, you can upgrade your account to a paid plan.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"contribution sync gif",src:o(2319).Z,width:"1324",height:"1030"})),(0,r.kt)("h2",{id:"using-your-contributor-insights-page"},"Using Your Contributor Insights Page"),(0,r.kt)("p",null,"Once you have created your list, you will be redirected to your Contributor Insights Page. Here, you will see a dashboard with an overview of the contributors."),(0,r.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,r.kt)("h3",{id:"overview"},"Overview"),(0,r.kt)("p",null,'The "Overview" tab gives you a high-level view of the contributors in your list, including the total number of commits in the last 30 days and the types of contributors: Active, New, and Alumni.'),(0,r.kt)("h3",{id:"activity-1"},"Activity"),(0,r.kt)("p",null,'The "Activity" tab gives you a graph view with more detailed information on each contributor, including the type of activity, repositories they\'ve contributed to, and how they compare to each other.'),(0,r.kt)("p",null,"You can filter your Contributor Insight Page by All Contributors, Active Contributors, New Contributors, and Alumni Contributors."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"list graph",src:o(7392).Z,width:"1147",height:"731"})),(0,r.kt)("h3",{id:"highlights"},"Highlights"),(0,r.kt)("p",null,'The "Highlights" tab gives you a list of the highlights that the contributors listed on your page have created. This is a great way to see what other contributors are up to and to show them support.'),(0,r.kt)("h2",{id:"takeaways"},"Takeaways"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Create Your Profile"),": Creating your profile is a great way to display your open source contributions, connect with other contributors and maintainers, and share during a job search."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Explore"),': The "Explore" tab is a great place to find new open source projects to contribute to.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Highlights"),": Leveraging OpenSauced's Highlights feature is a great way for you to showcase your valuable contributions to open source projects."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Repository Insights"),": OpenSauced Repository Insights feature allows you to track open source projects you are interested in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Contributor Insights"),": The Contributor Insights feature helps you understand other contributors or track your own work in open source.")),(0,r.kt)("h2",{id:"conclusion"},"Conclusion"),(0,r.kt)("p",null,"Embarking on your open source journey with OpenSauced opens up a world of learning and development opportunities. It's a chance to apply your knowledge to real-world projects, collaborate with a global community, and build a portfolio that stands out to educators and employers alike. We're excited to support you on this journey and can't wait to see the contributions you'll make and the milestones you'll achieve. If you have any questions or need assistance, our community is here to help you navigate your path in open source."),(0,r.kt)("p",null,"Here are some other resources you might find helpful in your journey:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/community/100-days-of-oss"},"100 Days of OSS")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source Course")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://opensauced.pizza/blog/resume-driven-contributions"},"Resume Driven Contributions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://opensauced.pizza/blog/stop-burning-out-maintainers-an-empathetic-guide-for-contributors"},"Stop Burning Out Maintainers: An Empathetic Guide for Contributors")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://gh.io/AApppma"},"GitHub Student Benefits")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://gh.io/AApphwi"},"GitHub Student Developer Pack"))))}h.isMDXComponent=!0},2319:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/contributors-sync-list-b427c1971ecbd190a472a1a061bf63a6.gif"},7352:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/highlight-e3a2da2446fe91467a31d225755bf40a.gif"},7220:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif"},2:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/a-dev-card-f7b01f48467c20d93ddb9814e8e54918.png"},8517:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/activity-repos-insights-3734baf3ab38356a4de96d43dde41a3d.png"},8967:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/contributors-insights-1bc09dd6a32c3a16eba8b63ec351157f.png"},4173:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/highlights-fcc750f036bb2ea7c11166c8338d7f6c.png"},7392:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/list-graph-a730e101fea2e18df0d76faed967f4e6.png"},232:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/profile-d4fae85bbb516b6a5b5837a3d137c223.png"},7224:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/repos-insights-2db5d8c668cee2f528f47ae986d664c7.png"},1449:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/settings-748558f026c2a0b1c23cbb3648bf3a05.png"},7281:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/workspace-switcher-b2400ec5c309a762f822268b44779930.png"},4255:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/workspace-644e59bed496d2a0df7502aaa833129e.png"}}]); \ No newline at end of file diff --git a/assets/js/908b0867.a91e4574.js b/assets/js/908b0867.a91e4574.js deleted file mode 100644 index 46f7f462..00000000 --- a/assets/js/908b0867.a91e4574.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[2698],{3905:(e,t,o)=>{o.d(t,{Zo:()=>c,kt:()=>g});var i=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function n(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,i)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var u=i.createContext({}),l=function(e){var t=i.useContext(u),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},c=function(e){var t=l(e.components);return i.createElement(u.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var o=e.components,r=e.mdxType,n=e.originalType,u=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=l(o),d=r,g=p["".concat(u,".").concat(d)]||p[d]||h[d]||n;return o?i.createElement(g,a(a({ref:t},c),{},{components:o})):i.createElement(g,a({ref:t},c))}));function g(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=o.length,a=new Array(n);a[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:r,a[1]=s;for(var l=2;l{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var i=o(7462),r=(o(7294),o(3905));const n={id:"students-guide",title:"Students Guide to OpenSauced",sidebar_label:"Students Guide to OpenSauced",keywords:["contributors","guides","how to contribute to open source","students guide to open source"]},a=void 0,s={unversionedId:"opensauced-guides/students-guide/students-guide",id:"opensauced-guides/students-guide/students-guide",title:"Students Guide to OpenSauced",description:"Introduction to OpenSauced for Students",source:"@site/docs/opensauced-guides/students-guide/students-guide.md",sourceDirName:"opensauced-guides/students-guide",slug:"/opensauced-guides/students-guide/",permalink:"/opensauced-guides/students-guide/",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-guides/students-guide/students-guide.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"students-guide",title:"Students Guide to OpenSauced",sidebar_label:"Students Guide to OpenSauced",keywords:["contributors","guides","how to contribute to open source","students guide to open source"]},sidebar:"docs",previous:{title:"How to Translate Open Source Contributions into Career Opportunities",permalink:"/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities"},next:{title:"Maintainers Guide to OpenSauced",permalink:"/maintainers/maintainers-guide-to-open-sauced"}},u={},l=[{value:"Introduction to OpenSauced for Students",id:"introduction-to-opensauced-for-students",level:2},{value:"Getting Started",id:"getting-started",level:2},{value:"Creating Your Profile",id:"creating-your-profile",level:2},{value:"Your Profile",id:"your-profile",level:3},{value:"Your Dev Card",id:"your-dev-card",level:3},{value:"Explore: Finding Your Next Open Source Project",id:"explore-finding-your-next-open-source-project",level:2},{value:"Highlights: Connecting and Recognizing Contributions",id:"highlights-connecting-and-recognizing-contributions",level:2},{value:"Creating a New Highlight",id:"creating-a-new-highlight",level:3},{value:"Writing an Effective Highlight",id:"writing-an-effective-highlight",level:3},{value:"Highlighting Issues",id:"highlighting-issues",level:4},{value:"Highlighting PRs",id:"highlighting-prs",level:4},{value:"Highlighting Dev.to Blog Posts",id:"highlighting-devto-blog-posts",level:4},{value:"Creating Your Workspace",id:"creating-your-workspace",level:2},{value:"Creating a New Workspace",id:"creating-a-new-workspace",level:3},{value:"Adding Repositories to Your Workspace",id:"adding-repositories-to-your-workspace",level:3},{value:"Navigating Your Workspace",id:"navigating-your-workspace",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard",level:4},{value:"Why Create a Workspace?",id:"why-create-a-workspace",level:3},{value:"Repository Insights: Connecting Your Repositories",id:"repository-insights-connecting-your-repositories",level:2},{value:"Why Create a Repository Insights Page?",id:"why-create-a-repository-insights-page",level:3},{value:"Creating a New Repository Insight Page",id:"creating-a-new-repository-insight-page",level:3},{value:"Using Your Repository Insights Page",id:"using-your-repository-insights-page",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard-1",level:4},{value:"Contributors",id:"contributors",level:4},{value:"Activity",id:"activity",level:4},{value:"Contributor Insights: Connecting with Contributors",id:"contributor-insights-connecting-with-contributors",level:2},{value:"What Can You Do with Contributor Insights?",id:"what-can-you-do-with-contributor-insights",level:3},{value:"Creating a New Contributor Insights Page",id:"creating-a-new-contributor-insights-page",level:3},{value:"Using Your Contributor Insights Page",id:"using-your-contributor-insights-page",level:2},{value:"Overview",id:"overview",level:3},{value:"Activity",id:"activity-1",level:3},{value:"Highlights",id:"highlights",level:3},{value:"Takeaways",id:"takeaways",level:2},{value:"Conclusion",id:"conclusion",level:2}],c={toc:l},p="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,i.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"introduction-to-opensauced-for-students"},"Introduction to OpenSauced for Students"),(0,r.kt)("p",null,"Welcome to the wonderful world of open source. As a student, you'll find countless opportunities to contribute to projects, collaborate across global projects, and enhance your resume through meaningful contributions. You can use OpenSauced as a tool to enhance your open source journey by helping you to find interesting repositories that match your academic and personal interests, document your journey, learn from the community, and showcase your growth."),(0,r.kt)("p",null,"In this guide, you will learn how to use OpenSauced features like your personal ",(0,r.kt)("a",{parentName:"p",href:"/features/dev-card"},"Dev Card"),", ",(0,r.kt)("a",{parentName:"p",href:"/features/highlights"},"Highlights"),", ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights"),", and ",(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights")," to showcase your open source work and build connections to help you meet your next goals."),(0,r.kt)("h2",{id:"getting-started"},"Getting Started"),(0,r.kt)("p",null,"To get started, you will need to create an account on OpenSauced. You can do this by visiting ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza"},"app.opensauced.pizza"),' and clicking the "Connect with GitHub" button. You will be prompted to sign in with your GitHub account. Once you have signed in, you will be redirected to the OpenSauced dashboard. The best place to get started is by creating your profile.'),(0,r.kt)("h2",{id:"creating-your-profile"},"Creating Your Profile"),(0,r.kt)("p",null,"Creating your profile is a great way to showcase your open source contributions, connect with other contributors and maintainers, and share with your classmates, communities, and connections. Here are some steps to help you get started:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After creating your account, navigate to "Settings."'),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"settings",src:o(1449).Z,width:"746",height:"178"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Once there, you will be asked to add your name, bio, links to your social media accounts, timezone, and other forms of contact information."),(0,r.kt)("admonition",{parentName:"li",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Don't forget to add your personal site, GitHub Sponsors URL, and LinkedIn so people can connect with you and learn more about your work."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'In the "Interests" section, select the various programming languages and topics you are interested in. Setting them up helps us recommend open source projects that fit your interests.')),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Manage your email preferences."))),(0,r.kt)("h3",{id:"your-profile"},"Your Profile"),(0,r.kt)("p",null,"Your profile is a great resource for showcasing your contributions and sharing your open source work with others."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"your profile",src:o(232).Z,width:"955",height:"994"})),(0,r.kt)("p",null,'On your profile, you will see the "Highlights" tab, which you can learn more about ',(0,r.kt)("a",{parentName:"p",href:"#highlights-connecting-and-recognizing-contributions"},"in this section"),". Other tabs you may find useful on your profile are: "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Contributions"),": This tab includes a graph showing the number of PRs you have opened, ",(0,r.kt)("a",{parentName:"li",href:"/welcome/glossary#pr-velocity"},"the velocity of your PRs"),', and the number of repositories you have contributed to in the last thirty days. Underneath the graph is a "Latest PRs" chart, which shows a list of current and recent PRs. This tab is helpful if you want to showcase a steady and consistent open source contribution experience.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Recommendations"),': This tab includes a list of open source projects that are chosen based on the programming languages you picked in the "Interests" section of your public profile. It is useful if you\'re looking for new projects to contribute to.')),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"To get the full benefit of your profile, share it on social media, include a link to it on your resume, LinkedIn, your GitHub Readme, and your personal website to showcase your most up-to-date open source contributions.")),(0,r.kt)("h3",{id:"your-dev-card"},"Your Dev Card"),(0,r.kt)("p",null,"Another fun way to share your open source contributions is through your ",(0,r.kt)("a",{parentName:"p",href:"/features/dev-card"},"Dev Card"),". Your Dev Card is a visual representation of your open source contributions. It includes your profile picture, name, bio, and the number of your latest contributions. "),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"dev card",src:o(2).Z,width:"940",height:"658"})),(0,r.kt)("h2",{id:"explore-finding-your-next-open-source-project"},"Explore: Finding Your Next Open Source Project"),(0,r.kt)("p",null,'The "Explore" tab is a great place to start if you\'re looking for a new open source project to contribute to. Here, you can find a list of open source projects and filter them by language, top repos, recent, most active, and more.'),(0,r.kt)("p",null,"Once you've selected your filters, you'll be able to see the contributors, spam, and activity levels of the repository. Understanding a repository's activity level and PR velocity can help you determine if it's a good fit for you to contribute to and what to expect when you submit a PR."),(0,r.kt)("p",null,'For example, if you wanted to look for a JavaScript project to contribute to, you would select "JavaScript" from the language dropdown and "Most Active" from the filter dropdown to see the most active JavaScript projects on GitHub. If you want to keep track of the repositories you\'re interested in contributing to, you can select and add them to a ',(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights Page")," or your ",(0,r.kt)("a",{parentName:"p",href:"/features/workspaces"},"Workspace"),"."),(0,r.kt)("h2",{id:"highlights-connecting-and-recognizing-contributions"},"Highlights: Connecting and Recognizing Contributions"),(0,r.kt)("p",null,"Leveraging OpenSauced's ",(0,r.kt)("a",{parentName:"p",href:"/features/highlights"},"Highlights")," feature is a great way to showcase your valuable contributions to open source projects. You can curate and share your achievements and milestones, bringing visibility to your hard work."),(0,r.kt)("p",null,"The Highlights feature allows you to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"talk about issues that you raised,"),(0,r.kt)("li",{parentName:"ul"},"share Dev.to blog posts that you've written,"),(0,r.kt)("li",{parentName:"ul"},"display Pull Requests that showcase your contributions.")),(0,r.kt)("h3",{id:"creating-a-new-highlight"},"Creating a New Highlight"),(0,r.kt)("p",null,"There are two ways to create a new highlight:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Paste the URL to your PR, issue, or Dev.to blog post (shown in blue below)."),(0,r.kt)("li",{parentName:"ol"},"Choose from a list of suggestions (shown in orange below).")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"highlight suggestions",src:o(4173).Z,width:"626",height:"633"})),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"If you're adding a blog post, you'll need to associate it to a repository by clicking the \"Add a repo\" button.")),(0,r.kt)("p",null,"Finally, it's time to add the details of your highlight. You can write the description yourself or use the auto-summarize button to generate one."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"gif of creating a highlight",src:o(7352).Z,width:"2294",height:"1066"})),(0,r.kt)("h3",{id:"writing-an-effective-highlight"},"Writing an Effective Highlight"),(0,r.kt)("p",null,"Sharing the story of your hard work is an opportunity to connect with the reader, which could include potential collaborators, other contributors, maintainers, or anyone on OpenSauced. Here are some tips to help you write effective stories for your highlights:"),(0,r.kt)("h4",{id:"highlighting-issues"},"Highlighting Issues"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Share your motivation"),': Briefly explain why you raised the issue. For example, "I\'m passionate about improving accessibility because I believe everyone should have equal access to information."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Summarize the issue"),": Briefly describe the issue you wrote so your readers have context. For example, \"I raised an issue to add alt text to images in the project's 'About Us' page.\""),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the impact:"),' Briefly state how the resolution of the issue will improve the project. For example, "This will help people who use screen readers understand the content better."')),(0,r.kt)("h4",{id:"highlighting-prs"},"Highlighting PRs"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the PR"),': Start with a clear summary of what your PR accomplishes. For example, "I added a new feature to the project\'s Chrome Extension that allows users to summarize content."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Highlight your solution and its impact"),': Briefly describe the solution, any challenges you faced, or any part of the PR you\'re particularly proud of. For example, "Initially, I faced challenges with the API, but I was able to resolve them using a different endpoint."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Reflect on your experience"),': Mention what you learned from working on the PR. For example, "I learned a lot about the Chrome Extension API and how to use it to create new features."')),(0,r.kt)("h4",{id:"highlighting-devto-blog-posts"},"Highlighting Dev.to Blog Posts"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the topic"),": Begin with an interesting blog post summary to help others understand your writing."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Discuss the inspiration"),": Explain why you wrote this blog post. Is it to guide others on improving their coding skills, raise awareness about an issue in the tech community, or display your progress in learning a new programming language?"),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"End with a call-to-action"),": Encourage others to read and engage with the post.")),(0,r.kt)("h2",{id:"creating-your-workspace"},"Creating Your Workspace"),(0,r.kt)("p",null,"As a student working on multiple projects or contributing to various open source repositories, keeping track of progress, goals, and collaboration can be daunting. To keep track of the repositories that are most important to you or repositories that you're working on with a team, OpenSauced Workspaces can be your go-to tool for organizing and understanding your open source journey."),(0,r.kt)("p",null,"Your Workspace helps you to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Understand projects at a high level"),": Being able to look at all the repositories that are important to you and understand them at a high level makes it easier for you to share this information and collaborate with others."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Enhance team collaboration"),": If you're working with a group, you can keep track of what everyone is working on. This transparency is key to teamwork and support, whether you're setting goals for a class project, contributing to a group assignment, or working together for accountability."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Deepen your project insight"),": Understanding the underlying activities of the projects you're tracking helps you to understand their progress, health, and the community of student contributors you're part of."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Celebrate and communicate your achievements"),": When it's time to talk about your experience, having analytics on the projects you worked on allows you to showcase your contributions, acknowledge the efforts of your peers, and clearly communicate the hard work invested.")),(0,r.kt)("p",null,"Workspaces offer a centralized platform. It's perfect for students to organize, track, and analyze the open source projects they're working on."),(0,r.kt)("h3",{id:"creating-a-new-workspace"},"Creating a New Workspace"),(0,r.kt)("p",null,"To create a workspace, start by accessing the ",(0,r.kt)("strong",{parentName:"p"},"Workspace switcher")," in the sidebar. From there, you can create a new workspace or view an existing one."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"workspace switcher",src:o(7281).Z,width:"1877",height:"888"})),(0,r.kt)("br",null),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},'Whenever you select "Home", you\'ll be taken to the last workspace you opened.')),(0,r.kt)("h3",{id:"adding-repositories-to-your-workspace"},"Adding Repositories to Your Workspace"),(0,r.kt)("p",null,"If you're creating a new workspace, you'll have the option to add repositories at the time of creation."),(0,r.kt)("p",null,'Start by creating a workspace name, then click "Add repositories". You\'ll have three options for adding repositories:'),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Search for Repositories"),": Use our search tool by adding an organization name, followed by the repository name, and add them to your workspace."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Import a GitHub Organization"),": Connect to your GitHub organizations to create a workspace from an organization. (If you're having trouble with this, see the \"",(0,r.kt)("a",{parentName:"li",href:"/welcome/faqs#sync-your-github-team"},"Sync Your GitHub Team"),'" section in our FAQs.)'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Import Repositories"),": Paste a list of repositories to add to your workspace.")),(0,r.kt)("p",null,"Once your repositories are added, you'll be able to see them in your repository dashboard. You can also edit your workspace to add or remove repositories anytime."),(0,r.kt)("h3",{id:"navigating-your-workspace"},"Navigating Your Workspace"),(0,r.kt)("p",null,"Once your repositories are connected, you'll enter your Workspace dashboard. In your workspace dashboards, you can create, view, and manage your workspaces."),(0,r.kt)("h4",{id:"repositories-dashboard"},"Repositories Dashboard"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Workspaces",src:o(4255).Z,width:"3200",height:"1800"})),(0,r.kt)("p",null,"Within the repositories dashboard, you can view the following metrics, which are over a period of thirty days by default:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Pull Requests"),": This includes the total number of opened and merged pull requests for the repositories in your workspace and the velocity of pull requests being merged."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Issues"),": This includes the total number of opened and closed issues for the repositories in your workspace and the velocity of issues being closed."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Engagement"),": This includes the total number of stars, forks, and activity ratio for the repositories in your workspace.")),(0,r.kt)("h3",{id:"why-create-a-workspace"},"Why Create a Workspace?"),(0,r.kt)("p",null,"There are many reasons to create a workspace. Here are a few:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Targeted Contributions"),": Workspaces allow you to create a list of repositories you are interested in or actively contributing to, which can help you stay focused on projects that align with your interests or goals.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Job Search Organization"),": You can create workspaces dedicated to tracking open source projects from companies known for hiring contributors, which can help you find potential job opportunities.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Coursework Management"),": For managing group open source projects or individual assignments, a workspace can be used to organize repositories that are part of the assignments, keeping all relevant repositories in one accessible location.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Skill-Specific Exploration"),": You can use workspaces to follow repositories that help you build specific skills or understand certain technologies, creating a tailored learning environment that aligns with your career path or focus.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"Community Engagement Tracking"),": By adding repositories you're interested in, you can monitor and engage with the communities behind them. This allows you to understand the dynamics of open source collaboration, which is invaluable for both personal and professional networking."))),(0,r.kt)("h2",{id:"repository-insights-connecting-your-repositories"},"Repository Insights: Connecting Your Repositories"),(0,r.kt)("p",null,"OpenSauced ",(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights")," allows you to track open source projects you are interested in. You can use Repository Insights Pages to track repositories' growth, analyze work, and connect with others."),(0,r.kt)("h3",{id:"why-create-a-repository-insights-page"},"Why Create a Repository Insights Page?"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track projects you're working on"),": Tracking projects you're working on can help you stay up-to-date with the latest activity and trends and connect with other contributors."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To identify potential projects to contribute to"),': If you\'re looking for a new project to contribute to, you can use the Repository Insights feature to track active projects that are looking for contributors. You can use the "Explore" tab to find new projects to contribute to and track them with your Repository Insights page.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To network and engage with the community"),': Finding people to work and connect with can be challenging. You can connect with your network through the feature\'s "Contributors" tab.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track the activity of a topic you're interested in"),": Keeping up with the latest trends and activity in a particular topic can be challenging. You can use the Repository Insights feature to track the activity of a specific topic and find new projects to contribute to. For example, you can create a ",(0,r.kt)("a",{parentName:"li",href:"https://app.opensauced.pizza/pages/BekahHW/1055/dashboard"},"Repository Insight Page for Active AI Repositories"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track the activity of your favorite programming languages"),": If you're interested in tracking the activity of your favorite programming languages, you can use the Repository Insights feature to track the open source projects that are using them."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To aid in the job search"),": If you're looking for a job, you can use the Repository Insights feature to track the activity of the organizations you're interested in working on. This can help you understand the activity level of the repositories and the types of contributions being made, and even identify which company you want to contribute to."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Curating collections for interest groups"),": You can curate and share repositories focusing on sectors and programming languages that interest you.")),(0,r.kt)("p",null,"Within your workspace, you can create new lists of repositories called Repository Insight Pages."),(0,r.kt)("h3",{id:"creating-a-new-repository-insight-page"},"Creating a New Repository Insight Page"),(0,r.kt)("p",null,'To track the repositories, click the "+" next to "Insights" in the sidebar, then select "New Repository Insight." You will be redirected to a page where you can create your new Repository Insight Page.'),(0,r.kt)("p",null,"There are two ways to add repositories to your Repository Insight Page:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Sync GitHub organization"),": Syncing your GitHub organizations is a good idea if you want to keep track of their open source project activities and trends."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Connect individual repositories"),": Connecting individual repositories is a good idea if you want to keep track of the contributions of a specific repository or group of repositories.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"sync Repository Insights gif",src:o(7220).Z,width:"960",height:"543"})),(0,r.kt)("h3",{id:"using-your-repository-insights-page"},"Using Your Repository Insights Page"),(0,r.kt)("p",null,"Once you have connected your repositories, you will be redirected to your Repository Insight Page. Here, you will see a dashboard with an overview of the repositories and the contributors who have contributed to them."),(0,r.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,r.kt)("h4",{id:"repositories-dashboard-1"},"Repositories Dashboard"),(0,r.kt)("p",null,"If you're looking for an active project to contribute to, this tab can help you. It contains information such as activity levels, PR overview, PR velocity, spam PRs, contributors, and activity stats over the last 30 days. This information is also a good way to connect with others on the project or where to find support."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"repositories tab",src:o(7224).Z,width:"1148",height:"796"})),(0,r.kt)("h4",{id:"contributors"},"Contributors"),(0,r.kt)("p",null,'The "Contributors" tab allows you to view more detailed information about other contributors, including activity levels, the number of repositories they contributed to, the date of their last contribution, their most used language, their time zone, the number of contributions, and their activity stats over the last 30 days. This can be a great way to find others to collaborate with or to reach out to for support.'),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"contributors insight list",src:o(8967).Z,width:"1212",height:"628"})),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Want to learn more about your peers? You can select and add them to a Contributor Insight Page.")),(0,r.kt)("h4",{id:"activity"},"Activity"),(0,r.kt)("p",null,"The \"Activity\" tab shows a graph of the last time each contributor created their PR and how many lines of code they've touched. It also provides more detailed information on each contributor when you hover over their image, including their latest PRs and repositories they've contributed to. Clicking their image will bring you to their profile on OpenSauced."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"activity graph",src:o(8517).Z,width:"1592",height:"791"})),(0,r.kt)("p",null,"Beyond understanding repositories, you may want to get insights into other contributors to help you learn more about how others are contributing to open source. One way to do that is through Contributor Insights."),(0,r.kt)("h2",{id:"contributor-insights-connecting-with-contributors"},"Contributor Insights: Connecting with Contributors"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights")," feature helps you connect with other contributors or learn more about what others are up to in open source. With this feature, you can categorize, watch, and check out different groups of contributors within open source projects."),(0,r.kt)("h3",{id:"what-can-you-do-with-contributor-insights"},"What Can You Do with Contributor Insights?"),(0,r.kt)("p",null,"There are many things you can do with this feature, but here are some ideas to get you started:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Track personal contributions"),": If you create a list of your personal contributions, you can track them and see how you're doing over time, as well as get a breakdown of the type of contributions you're making, including commits, created PRs, reviewed PRs, and created issues."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Learn about what other contributors are doing in open source"),": You can learn where other contributors are contributing, what they're working on, and how active they are in the open source community."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"See who's using the OpenSauced Highlights feature"),": You can see who's using the Highlights feature and show them support by giving an emoji reaction."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Track contributors for job opportunities"),": If you're looking for a job, you can track the activity of the contributors you're interested in working with. This helps you understand the activity level of the repositories and the types of contributions being made, and you can even identify which company you want to contribute to."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Track your classmates or peers"),": If you're working with a group, you can track the activity of your classmates or peers to see what they're working on and how active they are in the open source community.")),(0,r.kt)("h3",{id:"creating-a-new-contributor-insights-page"},"Creating a New Contributor Insights Page"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},'Click the "+" next to "Insights" in your sidebar.'),(0,r.kt)("li",{parentName:"ol"},'Select "New Contributor Insight" to start a new Contributor Insight Page.'),(0,r.kt)("li",{parentName:"ol"},"Give your page a name."),(0,r.kt)("li",{parentName:"ol"},"Add contributors to your page by searching for their GitHub username, syncing your GitHub Team, or importing your GitHub Following."),(0,r.kt)("li",{parentName:"ol"},"Once your page is created, you can edit and choose to make it public or private. By default, it is set to public. To create a private page, you can upgrade your account to a paid plan.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"contribution sync gif",src:o(2319).Z,width:"1324",height:"1030"})),(0,r.kt)("h2",{id:"using-your-contributor-insights-page"},"Using Your Contributor Insights Page"),(0,r.kt)("p",null,"Once you have created your list, you will be redirected to your Contributor Insights Page. Here, you will see a dashboard with an overview of the contributors."),(0,r.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,r.kt)("h3",{id:"overview"},"Overview"),(0,r.kt)("p",null,'The "Overview" tab gives you a high-level view of the contributors in your list, including the total number of commits in the last 30 days and the types of contributors: Active, New, and Alumni.'),(0,r.kt)("h3",{id:"activity-1"},"Activity"),(0,r.kt)("p",null,'The "Activity" tab gives you a graph view with more detailed information on each contributor, including the type of activity, repositories they\'ve contributed to, and how they compare to each other.'),(0,r.kt)("p",null,"You can filter your Contributor Insight Page by All Contributors, Active Contributors, New Contributors, and Alumni Contributors."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"list graph",src:o(7392).Z,width:"1147",height:"731"})),(0,r.kt)("h3",{id:"highlights"},"Highlights"),(0,r.kt)("p",null,'The "Highlights" tab gives you a list of the highlights that the contributors listed on your page have created. This is a great way to see what other contributors are up to and to show them support.'),(0,r.kt)("h2",{id:"takeaways"},"Takeaways"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Create Your Profile"),": Creating your profile is a great way to display your open source contributions, connect with other contributors and maintainers, and share during a job search."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Explore"),': The "Explore" tab is a great place to find new open source projects to contribute to.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Highlights"),": Leveraging OpenSauced's Highlights feature is a great way for you to showcase your valuable contributions to open source projects."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Repository Insights"),": OpenSauced Repository Insights feature allows you to track open source projects you are interested in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Contributor Insights"),": The Contributor Insights feature helps you understand other contributors or track your own work in open source.")),(0,r.kt)("h2",{id:"conclusion"},"Conclusion"),(0,r.kt)("p",null,"Embarking on your open source journey with OpenSauced opens up a world of learning and development opportunities. It's a chance to apply your knowledge to real-world projects, collaborate with a global community, and build a portfolio that stands out to educators and employers alike. We're excited to support you on this journey and can't wait to see the contributions you'll make and the milestones you'll achieve. If you have any questions or need assistance, our community is here to help you navigate your path in open source."),(0,r.kt)("p",null,"Here are some other resources you might find helpful in your journey:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/community/100-days-of-oss"},"100 Days of OSS")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source Course")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://opensauced.pizza/blog/resume-driven-contributions"},"Resume Driven Contributions")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://opensauced.pizza/blog/stop-burning-out-maintainers-an-empathetic-guide-for-contributors"},"Stop Burning Out Maintainers: An Empathetic Guide for Contributors")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://gh.io/AApppma"},"GitHub Student Benefits")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://gh.io/AApphwi"},"GitHub Student Developer Pack"))))}h.isMDXComponent=!0},2319:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/contributors-sync-list-b427c1971ecbd190a472a1a061bf63a6.gif"},7352:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/highlight-e3a2da2446fe91467a31d225755bf40a.gif"},7220:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif"},2:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/a-dev-card-f7b01f48467c20d93ddb9814e8e54918.png"},8517:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/activity-repos-insights-3734baf3ab38356a4de96d43dde41a3d.png"},8967:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/contributors-insights-1bc09dd6a32c3a16eba8b63ec351157f.png"},4173:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/highlights-fcc750f036bb2ea7c11166c8338d7f6c.png"},7392:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/list-graph-a730e101fea2e18df0d76faed967f4e6.png"},232:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/profile-d4fae85bbb516b6a5b5837a3d137c223.png"},7224:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/repos-insights-2db5d8c668cee2f528f47ae986d664c7.png"},1449:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/settings-748558f026c2a0b1c23cbb3648bf3a05.png"},7281:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/workspace-switcher-b2400ec5c309a762f822268b44779930.png"},4255:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/workspace-644e59bed496d2a0df7502aaa833129e.png"}}]); \ No newline at end of file diff --git a/assets/js/914479fa.61db8e75.js b/assets/js/914479fa.c99d22db.js similarity index 61% rename from assets/js/914479fa.61db8e75.js rename to assets/js/914479fa.c99d22db.js index 7db9ca95..7342731d 100644 --- a/assets/js/914479fa.61db8e75.js +++ b/assets/js/914479fa.c99d22db.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[457],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>u});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},f="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),f=l(n),p=o,u=f["".concat(s,".").concat(p)]||f[p]||g[p]||a;return n?r.createElement(u,i(i({ref:t},d),{},{components:n})):r.createElement(u,i({ref:t},d))}));function u(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[f]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>g,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={id:"refactoring-and-testing",title:"Refactoring and Testing",sidebar_label:"Refactoring and Testing",keywords:["refactoring","testing","refactoring and testing best practices","how to refactor and test code","benefits of refactoring and testing","refactoring and testing tools","refactoring and testing techniques","refactoring and testing examples","refactoring and testing tutorial"]},i=void 0,c={unversionedId:"tools/chrome-extension/refactoring-and-testing",id:"tools/chrome-extension/refactoring-and-testing",title:"Refactoring and Testing",description:"Refactoring a Block of Code",source:"@site/docs/tools/chrome-extension/refactoring-and-testing.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/refactoring-and-testing",permalink:"/tools/chrome-extension/refactoring-and-testing",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/refactoring-and-testing.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"refactoring-and-testing",title:"Refactoring and Testing",sidebar_label:"Refactoring and Testing",keywords:["refactoring","testing","refactoring and testing best practices","how to refactor and test code","benefits of refactoring and testing","refactoring and testing tools","refactoring and testing techniques","refactoring and testing examples","refactoring and testing tutorial"]},sidebar:"docs",previous:{title:"Highlight",permalink:"/tools/chrome-extension/highlights"},next:{title:"Insights and Invitations",permalink:"/tools/chrome-extension/viewing-insights-and-invitations"}},s={},l=[{value:"Refactoring a Block of Code",id:"refactoring-a-block-of-code",level:2},{value:"Testing a Block of Code",id:"testing-a-block-of-code",level:2}],d={toc:l},f="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(f,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"refactoring-a-block-of-code"},"Refactoring a Block of Code"),(0,o.kt)("p",null,"Refactor a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click, and drag the blue plus button until you reach the desired line."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"generate code refactor",src:n(338).Z,width:"828",height:"481"})),(0,o.kt)("h2",{id:"testing-a-block-of-code"},"Testing a Block of Code"),(0,o.kt)("p",null,"Generate tests for a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click, and drag the blue plus button until you reach the desired line."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"generate code refactor",src:n(3681).Z,width:"828",height:"481"})))}g.isMDXComponent=!0},338:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/pr-code-refactor-2b26ff383ff3a6351a5b4feda98abafd.gif"},3681:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/pr-code-test-90211422d3a31f62a0d0c8e073d7454a.gif"}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[457],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>u});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},f="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),f=l(n),p=o,u=f["".concat(s,".").concat(p)]||f[p]||g[p]||a;return n?r.createElement(u,i(i({ref:t},d),{},{components:n})):r.createElement(u,i({ref:t},d))}));function u(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[f]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>g,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={id:"refactoring-and-testing",title:"Refactoring and Testing",sidebar_label:"Refactoring and Testing",keywords:["refactoring","testing","refactoring and testing best practices","how to refactor and test code","benefits of refactoring and testing","refactoring and testing tools","refactoring and testing techniques","refactoring and testing examples","refactoring and testing tutorial"]},i=void 0,c={unversionedId:"tools/chrome-extension/refactoring-and-testing",id:"tools/chrome-extension/refactoring-and-testing",title:"Refactoring and Testing",description:"Refactoring a Block of Code",source:"@site/docs/tools/chrome-extension/refactoring-and-testing.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/refactoring-and-testing",permalink:"/tools/chrome-extension/refactoring-and-testing",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/refactoring-and-testing.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"refactoring-and-testing",title:"Refactoring and Testing",sidebar_label:"Refactoring and Testing",keywords:["refactoring","testing","refactoring and testing best practices","how to refactor and test code","benefits of refactoring and testing","refactoring and testing tools","refactoring and testing techniques","refactoring and testing examples","refactoring and testing tutorial"]},sidebar:"docs",previous:{title:"Highlight",permalink:"/tools/chrome-extension/highlights"},next:{title:"Insights and Invitations",permalink:"/tools/chrome-extension/viewing-insights-and-invitations"}},s={},l=[{value:"Refactoring a Block of Code",id:"refactoring-a-block-of-code",level:2},{value:"Testing a Block of Code",id:"testing-a-block-of-code",level:2}],d={toc:l},f="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(f,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"refactoring-a-block-of-code"},"Refactoring a Block of Code"),(0,o.kt)("p",null,"Refactor a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click, and drag the blue plus button until you reach the desired line."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"generate code refactor",src:n(338).Z,width:"828",height:"481"})),(0,o.kt)("h2",{id:"testing-a-block-of-code"},"Testing a Block of Code"),(0,o.kt)("p",null,"Generate tests for a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click, and drag the blue plus button until you reach the desired line."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"generate code refactor",src:n(3681).Z,width:"828",height:"481"})))}g.isMDXComponent=!0},338:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/pr-code-refactor-2b26ff383ff3a6351a5b4feda98abafd.gif"},3681:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/pr-code-test-90211422d3a31f62a0d0c8e073d7454a.gif"}}]); \ No newline at end of file diff --git a/assets/js/9b3a7c99.c053c290.js b/assets/js/9b3a7c99.c053c290.js new file mode 100644 index 00000000..c71da161 --- /dev/null +++ b/assets/js/9b3a7c99.c053c290.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[3100],{3905:(t,e,o)=>{o.d(e,{Zo:()=>c,kt:()=>d});var i=o(7294);function r(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function n(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.push.apply(o,i)}return o}function a(t){for(var e=1;e=0||(r[o]=t[o]);return r}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(r[o]=t[o])}return r}var u=i.createContext({}),l=function(t){var e=i.useContext(u),o=e;return t&&(o="function"==typeof t?t(e):a(a({},e),t)),o},c=function(t){var e=l(t.components);return i.createElement(u.Provider,{value:e},t.children)},h="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},g=i.forwardRef((function(t,e){var o=t.components,r=t.mdxType,n=t.originalType,u=t.parentName,c=s(t,["components","mdxType","originalType","parentName"]),h=l(o),g=r,d=h["".concat(u,".").concat(g)]||h[g]||p[g]||n;return o?i.createElement(d,a(a({ref:e},c),{},{components:o})):i.createElement(d,a({ref:e},c))}));function d(t,e){var o=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var n=o.length,a=new Array(n);a[0]=g;var s={};for(var u in e)hasOwnProperty.call(e,u)&&(s[u]=e[u]);s.originalType=t,s[h]="string"==typeof t?t:r,a[1]=s;for(var l=2;l{o.r(e),o.d(e,{assets:()=>u,contentTitle:()=>a,default:()=>p,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var i=o(7462),r=(o(7294),o(3905));const n={id:"contributors-guide-to-open-sauced",title:"Contributors Guide to OpenSauced",sidebar_label:"Contributors Guide to OpenSauced",keywords:["contributors","guides"]},a=void 0,s={unversionedId:"contributors/contributors-guide-to-open-sauced",id:"contributors/contributors-guide-to-open-sauced",title:"Contributors Guide to OpenSauced",description:"Introduction to OpenSauced for Contributors",source:"@site/docs/contributors/contributors-guide.md",sourceDirName:"contributors",slug:"/contributors/contributors-guide-to-open-sauced",permalink:"/contributors/contributors-guide-to-open-sauced",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributors/contributors-guide.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"contributors-guide-to-open-sauced",title:"Contributors Guide to OpenSauced",sidebar_label:"Contributors Guide to OpenSauced",keywords:["contributors","guides"]},sidebar:"docs",previous:{title:"Understanding Contributor Insights Data",permalink:"/maintainers/understanding-contribs-insights"},next:{title:"Welcome to the Community",permalink:"/community/welcome-to-the-community"}},u={},l=[{value:"Introduction to OpenSauced for Contributors",id:"introduction-to-opensauced-for-contributors",level:2},{value:"Getting Started",id:"getting-started",level:2},{value:"Creating Your Profile",id:"creating-your-profile",level:2},{value:"Your Profile",id:"your-profile",level:3},{value:"Explore: Finding Your Next Open Source Project",id:"explore-finding-your-next-open-source-project",level:2},{value:"Highlights: Connecting and Recognizing Contributions",id:"highlights-connecting-and-recognizing-contributions",level:2},{value:"Creating a New Highlight",id:"creating-a-new-highlight",level:3},{value:"Writing an Effective Highlight",id:"writing-an-effective-highlight",level:3},{value:"Highlighting Issues",id:"highlighting-issues",level:4},{value:"Highlighting PRs",id:"highlighting-prs",level:4},{value:"Highlighting Dev.to Blog Posts",id:"highlighting-devto-blog-posts",level:4},{value:"Repository Insights: Connecting Your Repositories",id:"repository-insights-connecting-your-repositories",level:2},{value:"Why Create a Repository Insights Page",id:"why-create-a-repository-insights-page",level:3},{value:"Creating a New Repository Insight Page",id:"creating-a-new-repository-insight-page",level:3},{value:"Using Your Repository Insights Page",id:"using-your-repository-insights-page",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard",level:4},{value:"Contributors",id:"contributors",level:4},{value:"Activity",id:"activity",level:4},{value:"Contributor Insights: Connecting with Contributors",id:"contributor-insights-connecting-with-contributors",level:2},{value:"What You can do with Contributor Insights?",id:"what-you-can-do-with-contributor-insights",level:3},{value:"Creating a New Contributor Insights Page",id:"creating-a-new-contributor-insights-page",level:3},{value:"Using Your Contributor Insights Page",id:"using-your-contributor-insights-page",level:2},{value:"Overview",id:"overview",level:3},{value:"Activity",id:"activity-1",level:3},{value:"Highlights",id:"highlights",level:3},{value:"Takeaways",id:"takeaways",level:2},{value:"Conclusion",id:"conclusion",level:2}],c={toc:l},h="wrapper";function p(t){let{components:e,...n}=t;return(0,r.kt)(h,(0,i.Z)({},c,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"introduction-to-opensauced-for-contributors"},"Introduction to OpenSauced for Contributors"),(0,r.kt)("p",null,"OpenSauced is a platform dedicated to empowering you, the contributor, in your open source journey. With OpenSauced, you can find repositories to contribute to, track your contributions, gain insights into your favorite open source projects, and find new contributors to connect with."),(0,r.kt)("h2",{id:"getting-started"},"Getting Started"),(0,r.kt)("p",null,"To get started, you will need to create an account on OpenSauced. You can do this by visiting the ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza"},"app.opensauced.pizza"),' and clicking the "Connect with GitHub" button. You will be prompted to sign in with your GitHub account. Once you have signed in, you will be redirected to the OpenSauced dashboard. The best place to get started is by creating your profile.'),(0,r.kt)("h2",{id:"creating-your-profile"},"Creating Your Profile"),(0,r.kt)("p",null,"Creating your profile is a great way to showcase your open source contributions, connect with other contributors and maintainers, and share during a job search. Here are some steps to help you get started:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After creating your account, navigate to "Settings."'),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"settings",src:o(1449).Z,width:"746",height:"178"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Once there, you will be asked to add your name, bio, links to your social media accounts, timezone, and other forms of contact information."),(0,r.kt)("admonition",{parentName:"li",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Don't forget to add your personal site, GitHub Sponsors URL, and LinkedIn so people can connect with you and learn more about your work."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'In the "Interests" section, select the various programming languages and topics you are interested in. Setting them helps us recommend open source projects that fit your interests.')),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Manage your email preferences."))),(0,r.kt)("h3",{id:"your-profile"},"Your Profile"),(0,r.kt)("p",null,"Your profile is a great resource for showcasing your contributions and sharing your open source work with others."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"your profile",src:o(232).Z,width:"955",height:"994"})),(0,r.kt)("p",null,'On your profile, you will see the "Highlights" tab, which you can learn more about ',(0,r.kt)("a",{parentName:"p",href:"#highlights-connecting-and-recognizing-contributions"},"in this section"),", and three other tabs:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Contributions"),": This tab includes a graph showing the number of PRs you have opened, ",(0,r.kt)("a",{parentName:"li",href:"/welcome/glossary#pr-velocity"},"the velocity of your PRs"),', and the number of repositories you have contributed to. Underneath the graph is a "Latest PRs" chart, which shows a list of current and recent PRs. This tab is helpful if you want to showcase a steady and consistent open source contribution experience.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Connections"),": For pro accounts, you can reach out to other contributors and maintainers to collaborate on projects or to learn from them."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Recommendations"),': This tab includes a list of open source projects that are chosen based on the programming languages you picked in the "Interests" section of your public profile. It is useful if you\'re looking for new projects to contribute to.')),(0,r.kt)("h2",{id:"explore-finding-your-next-open-source-project"},"Explore: Finding Your Next Open Source Project"),(0,r.kt)("p",null,'The "Explore" tab is a great place to start if you\'re looking for a new open source project to contribute to or want to find repositories for potential job opportunities. Here, you can find a list of open source projects and filter them by language, top repos, recent, most active, and more.'),(0,r.kt)("p",null,"Once you've selected your filters, you'll be able to see the contributors, spam, and activity levels of the repository. Understanding a repository's activity level and PR velocity can help you determine if it's a good fit for you to contribute to and what to expect when you submit a PR."),(0,r.kt)("p",null,'For example, if you wanted to look for a JavaScript project to contribute to, you would select "JavaScript" from the language dropdown and "Most Active" from the filter dropdown to see the most active JavaScript projects on GitHub. If you want to keep track of the repositories you\'re interested in contributing to, you can select and add them to your ',(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights Page"),"."),(0,r.kt)("h2",{id:"highlights-connecting-and-recognizing-contributions"},"Highlights: Connecting and Recognizing Contributions"),(0,r.kt)("p",null,"Leveraging OpenSauced's ",(0,r.kt)("a",{parentName:"p",href:"/features/highlights"},"Highlights")," feature is a great way for you to showcase your valuable contributions to open source projects. You can curate and share your achievements and milestones and bring visibility to your hard work."),(0,r.kt)("p",null,"The Highlights feature allows you to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"talk about issues that you raised,"),(0,r.kt)("li",{parentName:"ul"},"share Dev.to blog posts that you've written,"),(0,r.kt)("li",{parentName:"ul"},"display PRs that showcase your contributions.")),(0,r.kt)("h3",{id:"creating-a-new-highlight"},"Creating a New Highlight"),(0,r.kt)("p",null,"There are two ways to create a new highlight:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Paste the URL to your PR, issue, or Dev.to blog post (shown in blue below)."),(0,r.kt)("li",{parentName:"ol"},"Choose from a list of suggestions (shown in orange below).")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"highlight suggestions",src:o(4173).Z,width:"626",height:"633"})),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"If you're adding a blog post, you'll need to associate it to a repository by clicking the \"Add a repo\" button.")),(0,r.kt)("p",null,"Finally, it's time to add the details of your highlight. You can write the description yourself or use the auto-summarize button to generate one."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"gif of creating a highlight",src:o(7352).Z,width:"2294",height:"1066"})),(0,r.kt)("h3",{id:"writing-an-effective-highlight"},"Writing an Effective Highlight"),(0,r.kt)("p",null,"Sharing the story of your hard work is an opportunity to connect with the reader, which could include potential collaborators or recruiters. Here are some tips to help you write effective stories for your highlights:"),(0,r.kt)("h4",{id:"highlighting-issues"},"Highlighting Issues"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Share your motivation"),': Briefly explain why you raised the issue. For example, "I\'m passionate about improving accessibility because I believe everyone should have equal access to information."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Summarize the issue"),": Briefly describe the issue you wrote so your readers have context. For example, \"I raised an issue to add alt text to images in the project's 'About Us' page.\""),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the impact:"),' Briefly state how the resolution of the issue will improve the project. For example, "This will help people who use screen readers to understand the content of the images."')),(0,r.kt)("h4",{id:"highlighting-prs"},"Highlighting PRs"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the PR"),': Start with a clear summary of what your PR accomplishes. For example, "I added a new feature to the project\'s Chrome Extension that allows users to summarize content."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Highlight your solution and its impact"),': Briefly describe the solution, any challenges you faced, or any part of the PR you\'re particularly proud of. For example, "Initially, I faced challenges with the API, but I was able to resolve them using a different endpoint."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Reflect on your experience"),': Mention what you learned from working on the PR. For example, "I learned a lot about the Chrome Extension API and how to use it to create new features."')),(0,r.kt)("h4",{id:"highlighting-devto-blog-posts"},"Highlighting Dev.to Blog Posts"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the topic"),": Begin with an interesting blog post summary to help your peers and potential recruiters understand your writing."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Discuss the inspiration"),": Explain why you wrote this blog post. Is it to guide others on improving their coding skills, raise awareness about an issue in the tech community, or display your progress in learning a new programming language?"),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"End with a call-to-action"),": Encourage readers to read and engage with the post.")),(0,r.kt)("h2",{id:"repository-insights-connecting-your-repositories"},"Repository Insights: Connecting Your Repositories"),(0,r.kt)("p",null,"OpenSauced ",(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights")," allows you to track open source projects you are interested in. You can use Repository Insights Pages to track repositories' growth, analyze work, and connect with others."),(0,r.kt)("h3",{id:"why-create-a-repository-insights-page"},"Why Create a Repository Insights Page"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track projects you're working on"),": Tracking projects you're working on can help you stay up-to-date with the latest activity, trends, and connect with other contributors."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To identify potential projects to contribute to"),': If you\'re looking for a new project to contribute to, you can use the Repository Insights feature to track active projects that are looking for contributors. You can use the "Explore" tab to find new projects to contribute to and track them with your Repository Insights page.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To network and engage with the community"),': Finding people to work and connect with can be challenging. You can connect with your network through the feature\'s "Contributors" tab.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track the activity of a topic you're interested in"),": Keeping up with the latest trends and activity in a particular topic can be challenging. You can use the Repository Insights feature to track the activity of a specific topic and find new projects to contribute to. For example, you can create a ",(0,r.kt)("a",{parentName:"li",href:"https://app.opensauced.pizza/pages/BekahHW/1055/dashboard"},"Repository Insight Page for Active AI Repositories"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track the activity of your favorite programming languages"),": If you're interested in tracking the activity of your favorite programming languages, you can use the Repository Insights feature to track the open source projects that are using them."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To aid in the job search"),": If you're looking for a job, you can use the Repository Insights feature to track the activity of the organizations you're interested in working on. This can help you understand the activity level of the repositories and the types of contributions being made, and even identify which company you want to contribute to."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Curating collections for interest groups"),": You can curate and share repositories focusing on sectors and programming languages that interest you.")),(0,r.kt)("h3",{id:"creating-a-new-repository-insight-page"},"Creating a New Repository Insight Page"),(0,r.kt)("p",null,'To track the repositories, click the "+" next to "Insights" in the sidebar, then select "New Repository Insight." You will be redirected to a page where you can create your new Repository Insight Page.'),(0,r.kt)("p",null,"There are two ways to add repositories to your Repository Insight Page:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Sync GitHub organization"),": Syncing your GitHub organizations is a good idea if you want to keep track of their open source project activities and trends."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Connect individual repositories"),": Connecting individual repositories is a good idea if you want to keep track of the contributions of a specific repository or group of repositories.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"sync Repository Insights gif",src:o(7220).Z,width:"960",height:"543"})),(0,r.kt)("h3",{id:"using-your-repository-insights-page"},"Using Your Repository Insights Page"),(0,r.kt)("p",null,"Once you have connected your repositories, you will be redirected to your Repository Insight Page. Here, you will see a dashboard with an overview of the repositories and the contributors who have contributed to them."),(0,r.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,r.kt)("h4",{id:"repositories-dashboard"},"Repositories Dashboard"),(0,r.kt)("p",null,"If you're looking for an active project to contribute to, this tab can help you as it contains information such as activity levels, PR overview, PR velocity, spam PRs, contributors, and activity stats over the last 30 days. This information is also a good way to connect with others on the project or where to find support."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"repositories tab",src:o(7224).Z,width:"1148",height:"796"})),(0,r.kt)("h4",{id:"contributors"},"Contributors"),(0,r.kt)("p",null,'The "Contributors" tab allows you to view more detailed information about other contributors, including activity levels, the number of repositories they contributed to, the date of their last contribution, their most used language, their time zone, the number of contributions, and their activity stats over the last 30 days. This can be a great way to find others to collaborate with or recommend for jobs.'),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"contributors insight list",src:o(8967).Z,width:"1212",height:"628"})),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Want to learn more about your peers? You can select and add them to a Contributor Insight Page.")),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"To learn and understand more about the data provided, see ",(0,r.kt)("a",{parentName:"p",href:"/maintainers/understanding-repo-insights"},"Understanding Repository Insights Data"),".")),(0,r.kt)("h4",{id:"activity"},"Activity"),(0,r.kt)("p",null,"The \"Activity\" tab shows a graph of the last time each contributor created their PR and how many lines of code they've touched. It also provides more detailed information on each contributor when you hover over their image, including their latest PRs and repositories they've contributed to. Clicking their image will bring you to their profile on OpenSauced."),(0,r.kt)("p",null,"This information can help you find potential repositories to contribute to and peers to collaborate with or ask for mentorship."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"activity graph",src:o(8517).Z,width:"1592",height:"791"})),(0,r.kt)("h2",{id:"contributor-insights-connecting-with-contributors"},"Contributor Insights: Connecting with Contributors"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights")," feature helps you connect with other contributors or learn more about what others are up to in open source. With this feature, you can categorize, watch, and check out different groups of contributors within open source projects."),(0,r.kt)("h3",{id:"what-you-can-do-with-contributor-insights"},"What You can do with Contributor Insights?"),(0,r.kt)("p",null,"There are many things you can do with this feature, but here are some ideas to get you started:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Track personal contributions"),": If you create a list of your personal contributions, you can track them and see how you're doing over time, as well as get a breakdown of the type of contributions you're making, including commits, created PRs, reviewed PRs, and created issues."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Learn about what other contributors are doing in open source"),": You can learn where other contributors are contributing, what they're working on, and how active they are in the open source community."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"See who's using the OpenSauced Highlights feature"),": You can see who's using the Highlights feature and show them support by giving an emoji reaction."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Track contributors for job opportunities"),": If you're looking for a job, you can track the activity of the contributors you're interested in working with. This helps you understand the activity level of the repositories and the types of contributions being made, and you can even identify which company you want to contribute to.")),(0,r.kt)("h3",{id:"creating-a-new-contributor-insights-page"},"Creating a New Contributor Insights Page"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},'Click the "+" next to "Insights" in your sidebar.'),(0,r.kt)("li",{parentName:"ol"},'Select "New Contributor Insight" to start a new Contributor Insight Page.'),(0,r.kt)("li",{parentName:"ol"},"Give your page a name."),(0,r.kt)("li",{parentName:"ol"},"Add contributors to your page by searching for their GitHub username, syncing your GitHub Team, or importing your GitHub Following."),(0,r.kt)("li",{parentName:"ol"},"Once your page is created, you can edit and choose to make it public or private. By default, it is set to public. To create a private page, you can upgrade your account to a paid plan.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"contribution sync gif",src:o(2319).Z,width:"1324",height:"1030"})),(0,r.kt)("h2",{id:"using-your-contributor-insights-page"},"Using Your Contributor Insights Page"),(0,r.kt)("p",null,"Once you have created your list, you will be redirected to your Contributor Insights Page. Here, you will see a dashboard with an overview of the contributors."),(0,r.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,r.kt)("h3",{id:"overview"},"Overview"),(0,r.kt)("p",null,'The "Overview" tab gives you a high-level view of the contributors in your list, including the total number of commits in the last 30 days and the types of contributors: ',(0,r.kt)("a",{parentName:"p",href:"/welcome/glossary/#active-contributors"},"Active"),", ",(0,r.kt)("a",{parentName:"p",href:"/welcome/glossary#new-contributors"},"New"),", and ",(0,r.kt)("a",{parentName:"p",href:"/welcome/glossary#alumni-contributors"},"Alumni"),"."),(0,r.kt)("h3",{id:"activity-1"},"Activity"),(0,r.kt)("p",null,'The "Activity" tab gives you a graph view with more detailed information on each contributor, including the type of activity, repositories they\'ve contributed to, and how they compare to each other.'),(0,r.kt)("p",null,"You can filter your Contributor Insight Page by All Contributors, Active Contributors, New Contributors, and Alumni Contributors."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"list graph",src:o(7392).Z,width:"1147",height:"731"})),(0,r.kt)("h3",{id:"highlights"},"Highlights"),(0,r.kt)("p",null,'The "Highlights" tab gives you a list of the highlights that the contributors listed on your page have created. This is a great way to see what other contributors are up to and to show them support.'),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"To learn and understand more about the data provided, see ",(0,r.kt)("a",{parentName:"p",href:"/maintainers/understanding-contribs-insights"},"Understanding Contributor Insights Data"),".")),(0,r.kt)("h2",{id:"takeaways"},"Takeaways"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Create Your Profile"),": Creating your profile is a great way to display your open source contributions, connect with other contributors and maintainers, and share during a job search."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Explore"),': The "Explore" tab is a great place to find new open source projects to contribute to.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Highlights"),": Leveraging OpenSauced's Highlights feature is a great way for you to showcase your valuable contributions to open source projects."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Repository Insights"),": OpenSauced Repository Insights feature allows you to track open source projects you are interested in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Contributor Insights"),": The Contributor Insights feature helps you understand other contributors or track your own work in open source.")),(0,r.kt)("h2",{id:"conclusion"},"Conclusion"),(0,r.kt)("p",null,"We hope this guide has helped you get started with OpenSauced and that you're excited to use the platform to connect with other contributors and maintainers, track your contributions, and find new open source projects to contribute to. If you have any questions or need help, please don't hesitate to reach out to us. We're here to help you succeed in your open source journey."))}p.isMDXComponent=!0},2319:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/contributors-sync-list-b427c1971ecbd190a472a1a061bf63a6.gif"},7352:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/highlight-e3a2da2446fe91467a31d225755bf40a.gif"},7220:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif"},8517:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/activity-repos-insights-3734baf3ab38356a4de96d43dde41a3d.png"},8967:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/contributors-insights-1bc09dd6a32c3a16eba8b63ec351157f.png"},4173:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/highlights-fcc750f036bb2ea7c11166c8338d7f6c.png"},7392:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/list-graph-a730e101fea2e18df0d76faed967f4e6.png"},232:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/profile-d4fae85bbb516b6a5b5837a3d137c223.png"},7224:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/repos-insights-2db5d8c668cee2f528f47ae986d664c7.png"},1449:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/settings-748558f026c2a0b1c23cbb3648bf3a05.png"}}]); \ No newline at end of file diff --git a/assets/js/9b3a7c99.c132d029.js b/assets/js/9b3a7c99.c132d029.js deleted file mode 100644 index cb8b60dc..00000000 --- a/assets/js/9b3a7c99.c132d029.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[3100],{3905:(t,e,o)=>{o.d(e,{Zo:()=>c,kt:()=>d});var i=o(7294);function r(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function n(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.push.apply(o,i)}return o}function a(t){for(var e=1;e=0||(r[o]=t[o]);return r}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(r[o]=t[o])}return r}var u=i.createContext({}),l=function(t){var e=i.useContext(u),o=e;return t&&(o="function"==typeof t?t(e):a(a({},e),t)),o},c=function(t){var e=l(t.components);return i.createElement(u.Provider,{value:e},t.children)},h="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},g=i.forwardRef((function(t,e){var o=t.components,r=t.mdxType,n=t.originalType,u=t.parentName,c=s(t,["components","mdxType","originalType","parentName"]),h=l(o),g=r,d=h["".concat(u,".").concat(g)]||h[g]||p[g]||n;return o?i.createElement(d,a(a({ref:e},c),{},{components:o})):i.createElement(d,a({ref:e},c))}));function d(t,e){var o=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var n=o.length,a=new Array(n);a[0]=g;var s={};for(var u in e)hasOwnProperty.call(e,u)&&(s[u]=e[u]);s.originalType=t,s[h]="string"==typeof t?t:r,a[1]=s;for(var l=2;l{o.r(e),o.d(e,{assets:()=>u,contentTitle:()=>a,default:()=>p,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var i=o(7462),r=(o(7294),o(3905));const n={id:"contributors-guide-to-open-sauced",title:"Contributors Guide to OpenSauced",sidebar_label:"Contributors Guide to OpenSauced",keywords:["contributors","guides"]},a=void 0,s={unversionedId:"contributors/contributors-guide-to-open-sauced",id:"contributors/contributors-guide-to-open-sauced",title:"Contributors Guide to OpenSauced",description:"Introduction to OpenSauced for Contributors",source:"@site/docs/contributors/contributors-guide.md",sourceDirName:"contributors",slug:"/contributors/contributors-guide-to-open-sauced",permalink:"/contributors/contributors-guide-to-open-sauced",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributors/contributors-guide.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"contributors-guide-to-open-sauced",title:"Contributors Guide to OpenSauced",sidebar_label:"Contributors Guide to OpenSauced",keywords:["contributors","guides"]},sidebar:"docs",previous:{title:"Understanding Contributor Insights Data",permalink:"/maintainers/understanding-contribs-insights"},next:{title:"Welcome to the Community",permalink:"/community/welcome-to-the-community"}},u={},l=[{value:"Introduction to OpenSauced for Contributors",id:"introduction-to-opensauced-for-contributors",level:2},{value:"Getting Started",id:"getting-started",level:2},{value:"Creating Your Profile",id:"creating-your-profile",level:2},{value:"Your Profile",id:"your-profile",level:3},{value:"Explore: Finding Your Next Open Source Project",id:"explore-finding-your-next-open-source-project",level:2},{value:"Highlights: Connecting and Recognizing Contributions",id:"highlights-connecting-and-recognizing-contributions",level:2},{value:"Creating a New Highlight",id:"creating-a-new-highlight",level:3},{value:"Writing an Effective Highlight",id:"writing-an-effective-highlight",level:3},{value:"Highlighting Issues",id:"highlighting-issues",level:4},{value:"Highlighting PRs",id:"highlighting-prs",level:4},{value:"Highlighting Dev.to Blog Posts",id:"highlighting-devto-blog-posts",level:4},{value:"Repository Insights: Connecting Your Repositories",id:"repository-insights-connecting-your-repositories",level:2},{value:"Why Create a Repository Insights Page",id:"why-create-a-repository-insights-page",level:3},{value:"Creating a New Repository Insight Page",id:"creating-a-new-repository-insight-page",level:3},{value:"Using Your Repository Insights Page",id:"using-your-repository-insights-page",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard",level:4},{value:"Contributors",id:"contributors",level:4},{value:"Activity",id:"activity",level:4},{value:"Contributor Insights: Connecting with Contributors",id:"contributor-insights-connecting-with-contributors",level:2},{value:"What You can do with Contributor Insights?",id:"what-you-can-do-with-contributor-insights",level:3},{value:"Creating a New Contributor Insights Page",id:"creating-a-new-contributor-insights-page",level:3},{value:"Using Your Contributor Insights Page",id:"using-your-contributor-insights-page",level:2},{value:"Overview",id:"overview",level:3},{value:"Activity",id:"activity-1",level:3},{value:"Highlights",id:"highlights",level:3},{value:"Takeaways",id:"takeaways",level:2},{value:"Conclusion",id:"conclusion",level:2}],c={toc:l},h="wrapper";function p(t){let{components:e,...n}=t;return(0,r.kt)(h,(0,i.Z)({},c,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"introduction-to-opensauced-for-contributors"},"Introduction to OpenSauced for Contributors"),(0,r.kt)("p",null,"OpenSauced is a platform dedicated to empowering you, the contributor, in your open source journey. With OpenSauced, you can find repositories to contribute to, track your contributions, gain insights into your favorite open source projects, and find new contributors to connect with."),(0,r.kt)("h2",{id:"getting-started"},"Getting Started"),(0,r.kt)("p",null,"To get started, you will need to create an account on OpenSauced. You can do this by visiting the ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza"},"app.opensauced.pizza"),' and clicking the "Connect with GitHub" button. You will be prompted to sign in with your GitHub account. Once you have signed in, you will be redirected to the OpenSauced dashboard. The best place to get started is by creating your profile.'),(0,r.kt)("h2",{id:"creating-your-profile"},"Creating Your Profile"),(0,r.kt)("p",null,"Creating your profile is a great way to showcase your open source contributions, connect with other contributors and maintainers, and share during a job search. Here are some steps to help you get started:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After creating your account, navigate to "Settings."'),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"settings",src:o(1449).Z,width:"746",height:"178"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Once there, you will be asked to add your name, bio, links to your social media accounts, timezone, and other forms of contact information."),(0,r.kt)("admonition",{parentName:"li",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Don't forget to add your personal site, GitHub Sponsors URL, and LinkedIn so people can connect with you and learn more about your work."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'In the "Interests" section, select the various programming languages and topics you are interested in. Setting them helps us recommend open source projects that fit your interests.')),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Manage your email preferences."))),(0,r.kt)("h3",{id:"your-profile"},"Your Profile"),(0,r.kt)("p",null,"Your profile is a great resource for showcasing your contributions and sharing your open source work with others."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"your profile",src:o(232).Z,width:"955",height:"994"})),(0,r.kt)("p",null,'On your profile, you will see the "Highlights" tab, which you can learn more about ',(0,r.kt)("a",{parentName:"p",href:"#highlights-connecting-and-recognizing-contributions"},"in this section"),", and three other tabs:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Contributions"),": This tab includes a graph showing the number of PRs you have opened, ",(0,r.kt)("a",{parentName:"li",href:"/welcome/glossary#pr-velocity"},"the velocity of your PRs"),', and the number of repositories you have contributed to. Underneath the graph is a "Latest PRs" chart, which shows a list of current and recent PRs. This tab is helpful if you want to showcase a steady and consistent open source contribution experience.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Connections"),": For pro accounts, you can reach out to other contributors and maintainers to collaborate on projects or to learn from them."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Recommendations"),': This tab includes a list of open source projects that are chosen based on the programming languages you picked in the "Interests" section of your public profile. It is useful if you\'re looking for new projects to contribute to.')),(0,r.kt)("h2",{id:"explore-finding-your-next-open-source-project"},"Explore: Finding Your Next Open Source Project"),(0,r.kt)("p",null,'The "Explore" tab is a great place to start if you\'re looking for a new open source project to contribute to or want to find repositories for potential job opportunities. Here, you can find a list of open source projects and filter them by language, top repos, recent, most active, and more.'),(0,r.kt)("p",null,"Once you've selected your filters, you'll be able to see the contributors, spam, and activity levels of the repository. Understanding a repository's activity level and PR velocity can help you determine if it's a good fit for you to contribute to and what to expect when you submit a PR."),(0,r.kt)("p",null,'For example, if you wanted to look for a JavaScript project to contribute to, you would select "JavaScript" from the language dropdown and "Most Active" from the filter dropdown to see the most active JavaScript projects on GitHub. If you want to keep track of the repositories you\'re interested in contributing to, you can select and add them to your ',(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights Page"),"."),(0,r.kt)("h2",{id:"highlights-connecting-and-recognizing-contributions"},"Highlights: Connecting and Recognizing Contributions"),(0,r.kt)("p",null,"Leveraging OpenSauced's ",(0,r.kt)("a",{parentName:"p",href:"/features/highlights"},"Highlights")," feature is a great way for you to showcase your valuable contributions to open source projects. You can curate and share your achievements and milestones and bring visibility to your hard work."),(0,r.kt)("p",null,"The Highlights feature allows you to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"talk about issues that you raised,"),(0,r.kt)("li",{parentName:"ul"},"share Dev.to blog posts that you've written,"),(0,r.kt)("li",{parentName:"ul"},"display PRs that showcase your contributions.")),(0,r.kt)("h3",{id:"creating-a-new-highlight"},"Creating a New Highlight"),(0,r.kt)("p",null,"There are two ways to create a new highlight:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Paste the URL to your PR, issue, or Dev.to blog post (shown in blue below)."),(0,r.kt)("li",{parentName:"ol"},"Choose from a list of suggestions (shown in orange below).")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"highlight suggestions",src:o(4173).Z,width:"626",height:"633"})),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"If you're adding a blog post, you'll need to associate it to a repository by clicking the \"Add a repo\" button.")),(0,r.kt)("p",null,"Finally, it's time to add the details of your highlight. You can write the description yourself or use the auto-summarize button to generate one."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"gif of creating a highlight",src:o(7352).Z,width:"2294",height:"1066"})),(0,r.kt)("h3",{id:"writing-an-effective-highlight"},"Writing an Effective Highlight"),(0,r.kt)("p",null,"Sharing the story of your hard work is an opportunity to connect with the reader, which could include potential collaborators or recruiters. Here are some tips to help you write effective stories for your highlights:"),(0,r.kt)("h4",{id:"highlighting-issues"},"Highlighting Issues"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Share your motivation"),': Briefly explain why you raised the issue. For example, "I\'m passionate about improving accessibility because I believe everyone should have equal access to information."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Summarize the issue"),": Briefly describe the issue you wrote so your readers have context. For example, \"I raised an issue to add alt text to images in the project's 'About Us' page.\""),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the impact:"),' Briefly state how the resolution of the issue will improve the project. For example, "This will help people who use screen readers to understand the content of the images."')),(0,r.kt)("h4",{id:"highlighting-prs"},"Highlighting PRs"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the PR"),': Start with a clear summary of what your PR accomplishes. For example, "I added a new feature to the project\'s Chrome Extension that allows users to summarize content."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Highlight your solution and its impact"),': Briefly describe the solution, any challenges you faced, or any part of the PR you\'re particularly proud of. For example, "Initially, I faced challenges with the API, but I was able to resolve them using a different endpoint."'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Reflect on your experience"),': Mention what you learned from working on the PR. For example, "I learned a lot about the Chrome Extension API and how to use it to create new features."')),(0,r.kt)("h4",{id:"highlighting-devto-blog-posts"},"Highlighting Dev.to Blog Posts"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Describe the topic"),": Begin with an interesting blog post summary to help your peers and potential recruiters understand your writing."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Discuss the inspiration"),": Explain why you wrote this blog post. Is it to guide others on improving their coding skills, raise awareness about an issue in the tech community, or display your progress in learning a new programming language?"),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"End with a call-to-action"),": Encourage readers to read and engage with the post.")),(0,r.kt)("h2",{id:"repository-insights-connecting-your-repositories"},"Repository Insights: Connecting Your Repositories"),(0,r.kt)("p",null,"OpenSauced ",(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights")," allows you to track open source projects you are interested in. You can use Repository Insights Pages to track repositories' growth, analyze work, and connect with others."),(0,r.kt)("h3",{id:"why-create-a-repository-insights-page"},"Why Create a Repository Insights Page"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track projects you're working on"),": Tracking projects you're working on can help you stay up-to-date with the latest activity, trends, and connect with other contributors."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To identify potential projects to contribute to"),': If you\'re looking for a new project to contribute to, you can use the Repository Insights feature to track active projects that are looking for contributors. You can use the "Explore" tab to find new projects to contribute to and track them with your Repository Insights page.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To network and engage with the community"),': Finding people to work and connect with can be challenging. You can connect with your network through the feature\'s "Contributors" tab.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track the activity of a topic you're interested in"),": Keeping up with the latest trends and activity in a particular topic can be challenging. You can use the Repository Insights feature to track the activity of a specific topic and find new projects to contribute to. For example, you can create a ",(0,r.kt)("a",{parentName:"li",href:"https://app.opensauced.pizza/pages/BekahHW/1055/dashboard"},"Repository Insight Page for Active AI Repositories"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To track the activity of your favorite programming languages"),": If you're interested in tracking the activity of your favorite programming languages, you can use the Repository Insights feature to track the open source projects that are using them."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"To aid in the job search"),": If you're looking for a job, you can use the Repository Insights feature to track the activity of the organizations you're interested in working on. This can help you understand the activity level of the repositories and the types of contributions being made, and even identify which company you want to contribute to."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Curating collections for interest groups"),": You can curate and share repositories focusing on sectors and programming languages that interest you.")),(0,r.kt)("h3",{id:"creating-a-new-repository-insight-page"},"Creating a New Repository Insight Page"),(0,r.kt)("p",null,'To track the repositories, click the "+" next to "Insights" in the sidebar, then select "New Repository Insight." You will be redirected to a page where you can create your new Repository Insight Page.'),(0,r.kt)("p",null,"There are two ways to add repositories to your Repository Insight Page:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Sync GitHub organization"),": Syncing your GitHub organizations is a good idea if you want to keep track of their open source project activities and trends."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Connect individual repositories"),": Connecting individual repositories is a good idea if you want to keep track of the contributions of a specific repository or group of repositories.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"sync Repository Insights gif",src:o(7220).Z,width:"960",height:"543"})),(0,r.kt)("h3",{id:"using-your-repository-insights-page"},"Using Your Repository Insights Page"),(0,r.kt)("p",null,"Once you have connected your repositories, you will be redirected to your Repository Insight Page. Here, you will see a dashboard with an overview of the repositories and the contributors who have contributed to them."),(0,r.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,r.kt)("h4",{id:"repositories-dashboard"},"Repositories Dashboard"),(0,r.kt)("p",null,"If you're looking for an active project to contribute to, this tab can help you as it contains information such as activity levels, PR overview, PR velocity, spam PRs, contributors, and activity stats over the last 30 days. This information is also a good way to connect with others on the project or where to find support."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"repositories tab",src:o(7224).Z,width:"1148",height:"796"})),(0,r.kt)("h4",{id:"contributors"},"Contributors"),(0,r.kt)("p",null,'The "Contributors" tab allows you to view more detailed information about other contributors, including activity levels, the number of repositories they contributed to, the date of their last contribution, their most used language, their time zone, the number of contributions, and their activity stats over the last 30 days. This can be a great way to find others to collaborate with or recommend for jobs.'),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"contributors insight list",src:o(8967).Z,width:"1212",height:"628"})),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Want to learn more about your peers? You can select and add them to a Contributor Insight Page.")),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"To learn and understand more about the data provided, see ",(0,r.kt)("a",{parentName:"p",href:"/maintainers/understanding-repo-insights"},"Understanding Repository Insights Data"),".")),(0,r.kt)("h4",{id:"activity"},"Activity"),(0,r.kt)("p",null,"The \"Activity\" tab shows a graph of the last time each contributor created their PR and how many lines of code they've touched. It also provides more detailed information on each contributor when you hover over their image, including their latest PRs and repositories they've contributed to. Clicking their image will bring you to their profile on OpenSauced."),(0,r.kt)("p",null,"This information can help you find potential repositories to contribute to and peers to collaborate with or ask for mentorship."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"activity graph",src:o(8517).Z,width:"1592",height:"791"})),(0,r.kt)("h2",{id:"contributor-insights-connecting-with-contributors"},"Contributor Insights: Connecting with Contributors"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights")," feature helps you connect with other contributors or learn more about what others are up to in open source. With this feature, you can categorize, watch, and check out different groups of contributors within open source projects."),(0,r.kt)("h3",{id:"what-you-can-do-with-contributor-insights"},"What You can do with Contributor Insights?"),(0,r.kt)("p",null,"There are many things you can do with this feature, but here are some ideas to get you started:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Track personal contributions"),": If you create a list of your personal contributions, you can track them and see how you're doing over time, as well as get a breakdown of the type of contributions you're making, including commits, created PRs, reviewed PRs, and created issues."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Learn about what other contributors are doing in open source"),": You can learn where other contributors are contributing, what they're working on, and how active they are in the open source community."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"See who's using the OpenSauced Highlights feature"),": You can see who's using the Highlights feature and show them support by giving an emoji reaction."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Track contributors for job opportunities"),": If you're looking for a job, you can track the activity of the contributors you're interested in working with. This helps you understand the activity level of the repositories and the types of contributions being made, and you can even identify which company you want to contribute to.")),(0,r.kt)("h3",{id:"creating-a-new-contributor-insights-page"},"Creating a New Contributor Insights Page"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},'Click the "+" next to "Insights" in your sidebar.'),(0,r.kt)("li",{parentName:"ol"},'Select "New Contributor Insight" to start a new Contributor Insight Page.'),(0,r.kt)("li",{parentName:"ol"},"Give your page a name."),(0,r.kt)("li",{parentName:"ol"},"Add contributors to your page by searching for their GitHub username, syncing your GitHub Team, or importing your GitHub Following."),(0,r.kt)("li",{parentName:"ol"},"Once your page is created, you can edit and choose to make it public or private. By default, it is set to public. To create a private page, you can upgrade your account to a paid plan.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"contribution sync gif",src:o(2319).Z,width:"1324",height:"1030"})),(0,r.kt)("h2",{id:"using-your-contributor-insights-page"},"Using Your Contributor Insights Page"),(0,r.kt)("p",null,"Once you have created your list, you will be redirected to your Contributor Insights Page. Here, you will see a dashboard with an overview of the contributors."),(0,r.kt)("p",null,"There are three tabs that provide you with more information on these repositories:"),(0,r.kt)("h3",{id:"overview"},"Overview"),(0,r.kt)("p",null,'The "Overview" tab gives you a high-level view of the contributors in your list, including the total number of commits in the last 30 days and the types of contributors: ',(0,r.kt)("a",{parentName:"p",href:"/welcome/glossary/#active-contributors"},"Active"),", ",(0,r.kt)("a",{parentName:"p",href:"/welcome/glossary#new-contributors"},"New"),", and ",(0,r.kt)("a",{parentName:"p",href:"/welcome/glossary#alumni-contributors"},"Alumni"),"."),(0,r.kt)("h3",{id:"activity-1"},"Activity"),(0,r.kt)("p",null,'The "Activity" tab gives you a graph view with more detailed information on each contributor, including the type of activity, repositories they\'ve contributed to, and how they compare to each other.'),(0,r.kt)("p",null,"You can filter your Contributor Insight Page by All Contributors, Active Contributors, New Contributors, and Alumni Contributors."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"list graph",src:o(7392).Z,width:"1147",height:"731"})),(0,r.kt)("h3",{id:"highlights"},"Highlights"),(0,r.kt)("p",null,'The "Highlights" tab gives you a list of the highlights that the contributors listed on your page have created. This is a great way to see what other contributors are up to and to show them support.'),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"To learn and understand more about the data provided, see ",(0,r.kt)("a",{parentName:"p",href:"/maintainers/understanding-contribs-insights"},"Understanding Contributor Insights Data"),".")),(0,r.kt)("h2",{id:"takeaways"},"Takeaways"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Create Your Profile"),": Creating your profile is a great way to display your open source contributions, connect with other contributors and maintainers, and share during a job search."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Explore"),': The "Explore" tab is a great place to find new open source projects to contribute to.'),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Highlights"),": Leveraging OpenSauced's Highlights feature is a great way for you to showcase your valuable contributions to open source projects."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Repository Insights"),": OpenSauced Repository Insights feature allows you to track open source projects you are interested in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Contributor Insights"),": The Contributor Insights feature helps you understand other contributors or track your own work in open source.")),(0,r.kt)("h2",{id:"conclusion"},"Conclusion"),(0,r.kt)("p",null,"We hope this guide has helped you get started with OpenSauced and that you're excited to use the platform to connect with other contributors and maintainers, track your contributions, and find new open source projects to contribute to. If you have any questions or need help, please don't hesitate to reach out to us. We're here to help you succeed in your open source journey."))}p.isMDXComponent=!0},2319:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/contributors-sync-list-b427c1971ecbd190a472a1a061bf63a6.gif"},7352:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/highlight-e3a2da2446fe91467a31d225755bf40a.gif"},7220:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif"},8517:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/activity-repos-insights-3734baf3ab38356a4de96d43dde41a3d.png"},8967:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/contributors-insights-1bc09dd6a32c3a16eba8b63ec351157f.png"},4173:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/highlights-fcc750f036bb2ea7c11166c8338d7f6c.png"},7392:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/list-graph-a730e101fea2e18df0d76faed967f4e6.png"},232:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/profile-d4fae85bbb516b6a5b5837a3d137c223.png"},7224:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/repos-insights-2db5d8c668cee2f528f47ae986d664c7.png"},1449:(t,e,o)=>{o.d(e,{Z:()=>i});const i=o.p+"assets/images/settings-748558f026c2a0b1c23cbb3648bf3a05.png"}}]); \ No newline at end of file diff --git a/assets/js/a09c2993.06b0cc42.js b/assets/js/a09c2993.06b0cc42.js new file mode 100644 index 00000000..85fd26d1 --- /dev/null +++ b/assets/js/a09c2993.06b0cc42.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4128],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),u=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,h=d["".concat(c,".").concat(m)]||d[m]||l[m]||a;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var r=n(7462),o=(n(7294),n(3905));const a={slug:"/",title:"Introduction to OpenSauced \ud83c\udf55",sidebar_label:"Introduction to OpenSauced \ud83c\udf55",keywords:["introduction","introduction to opensauced","opensauced introduction","get to know opensauced"]},i=void 0,s={unversionedId:"introduction",id:"introduction",title:"Introduction to OpenSauced \ud83c\udf55",description:"Example banner",source:"@site/docs/introduction.md",sourceDirName:".",slug:"/",permalink:"/",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/introduction.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{slug:"/",title:"Introduction to OpenSauced \ud83c\udf55",sidebar_label:"Introduction to OpenSauced \ud83c\udf55",keywords:["introduction","introduction to opensauced","opensauced introduction","get to know opensauced"]},sidebar:"docs",next:{title:"What is OpenSauced?",permalink:"/welcome/opensauced-intro"}},c={},u=[],p={toc:u},d="wrapper";function l(e){let{components:t,...a}=e;return(0,o.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Example banner",src:n(4761).Z,width:"1920",height:"1080"})),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},'You can watch "',(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=h8gwrzis-dY&list=PLHyZ0Wz_A44XAE-6Gbd69pZLTdqWdwlBx&index=1&t=2s"},"What is OpenSauced?"),'" on YouTube.')),(0,o.kt)("p",null,"OpenSauced is a platform dedicated to empowering maintainers and teams and redefining the meaning of open source contributions. We believe that every contribution, big or small, is valuable and deserves to be recognized. Our platform provides a way to track contributions through a GitHub-powered dashboard, allowing users to showcase their contributions and gain insights into their open source projects."),(0,o.kt)("p",null,"Our mission is to:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"/maintainers/maintainers-guide-to-open-sauced"},(0,o.kt)("strong",{parentName:"a"},"Empower maintainers and teams")),": Track and showcase your contributions and projects, connect with contributors, collaborate with your team, and gain insights into your open source projects."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"/contributors/contributors-guide-to-open-sauced"},(0,o.kt)("strong",{parentName:"a"},"Support contributors")),": Showcase your contributions, tell your story, connect with new projects and other contributors, and gain insights into your open source journey."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"/features/highlights"},(0,o.kt)("strong",{parentName:"a"},"Highlight success")),": Showcase your contributions with our shareable Highlights, inspiring others to embark on their open source journey."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"/features/repo-insights"},(0,o.kt)("strong",{parentName:"a"},"Unlock Insights")),": Understand the health of your project, track contributions, and make data-driven decisions with OpenSauced Insights.")))}l.isMDXComponent=!0},4761:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/what-is-opensauced-borderless-0a51e6d81902d2866db643a60eae78c7.jpg"}}]); \ No newline at end of file diff --git a/assets/js/a09c2993.47eec192.js b/assets/js/a09c2993.47eec192.js deleted file mode 100644 index ca14c99e..00000000 --- a/assets/js/a09c2993.47eec192.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4128],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,h=d["".concat(s,".").concat(m)]||d[m]||l[m]||a;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var r=n(7462),o=(n(7294),n(3905));const a={slug:"/",title:"Introduction to OpenSauced \ud83c\udf55",sidebar_label:"Introduction to OpenSauced \ud83c\udf55",keywords:["introduction","introduction to opensauced","opensauced introduction","get to know opensauced"]},i=void 0,c={unversionedId:"introduction",id:"introduction",title:"Introduction to OpenSauced \ud83c\udf55",description:"Example banner",source:"@site/docs/introduction.md",sourceDirName:".",slug:"/",permalink:"/",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/introduction.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{slug:"/",title:"Introduction to OpenSauced \ud83c\udf55",sidebar_label:"Introduction to OpenSauced \ud83c\udf55",keywords:["introduction","introduction to opensauced","opensauced introduction","get to know opensauced"]},sidebar:"docs",next:{title:"What is OpenSauced?",permalink:"/welcome/opensauced-intro"}},s={},u=[],p={toc:u},d="wrapper";function l(e){let{components:t,...a}=e;return(0,o.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Example banner",src:n(4761).Z,width:"1920",height:"1080"})),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},'You can watch "',(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=h8gwrzis-dY&list=PLHyZ0Wz_A44XAE-6Gbd69pZLTdqWdwlBx&index=1&t=2s"},"What is OpenSauced?"),'" on YouTube.')),(0,o.kt)("p",null,"OpenSauced is a platform dedicated to empowering maintainers and teams and redefining the meaning of open source contributions. We believe that every contribution, big or small, is valuable and deserves to be recognized. Our platform provides a way to track contributions through a GitHub-powered dashboard, allowing users to showcase their contributions and gain insights into their open source projects."),(0,o.kt)("p",null,"Our mission is to:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"/maintainers/maintainers-guide-to-open-sauced"},(0,o.kt)("strong",{parentName:"a"},"Empower maintainers and teams")),": Track and showcase your contributions and projects, connect with contributors, collaborate with your team, and gain insights into your open source projects."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"/contributors/contributors-guide-to-open-sauced"},(0,o.kt)("strong",{parentName:"a"},"Support contributors")),": Showcase your contributions, tell your story, connect with new projects and other contributors, and gain insights into your open source journey."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"/features/highlights"},(0,o.kt)("strong",{parentName:"a"},"Highlight success")),": Showcase your contributions with our shareable Highlights, inspiring others to embark on their open source journey."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"/features/repo-insights"},(0,o.kt)("strong",{parentName:"a"},"Unlock Insights")),": Understand the health of your project, track contributions, and make data-driven decisions with OpenSauced Insights.")))}l.isMDXComponent=!0},4761:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/what-is-opensauced-borderless-0a51e6d81902d2866db643a60eae78c7.jpg"}}]); \ No newline at end of file diff --git a/assets/js/a93463cf.0ded9f8f.js b/assets/js/a93463cf.0ded9f8f.js new file mode 100644 index 00000000..af1326b4 --- /dev/null +++ b/assets/js/a93463cf.0ded9f8f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[9277],{3905:(t,n,e)=>{e.d(n,{Zo:()=>u,kt:()=>h});var i=e(7294);function r(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function o(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,i)}return e}function a(t){for(var n=1;n=0||(r[e]=t[e]);return r}(t,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(r[e]=t[e])}return r}var c=i.createContext({}),d=function(t){var n=i.useContext(c),e=n;return t&&(e="function"==typeof t?t(n):a(a({},n),t)),e},u=function(t){var n=d(t.components);return i.createElement(c.Provider,{value:n},t.children)},l="mdxType",p={inlineCode:"code",wrapper:function(t){var n=t.children;return i.createElement(i.Fragment,{},n)}},g=i.forwardRef((function(t,n){var e=t.components,r=t.mdxType,o=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),l=d(e),g=r,h=l["".concat(c,".").concat(g)]||l[g]||p[g]||o;return e?i.createElement(h,a(a({ref:n},u),{},{components:e})):i.createElement(h,a({ref:n},u))}));function h(t,n){var e=arguments,r=n&&n.mdxType;if("string"==typeof t||r){var o=e.length,a=new Array(o);a[0]=g;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=t,s[l]="string"==typeof t?t:r,a[1]=s;for(var d=2;d{e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var i=e(7462),r=(e(7294),e(3905));const o={id:"understanding-contribs-insights",title:"Understanding Contributor Insights Data",sidebar_label:"Understanding Contributor Insights Data",keywords:["maintainers","guides","Contributor Insights Analysis","List Data Exploration","Data Organization","Data Insight from Contributor Insights ","List Visualization","Data Representation in Contributor Insights ","List Data Interpretation","Organizing Data in Contributor Insights "]},a=void 0,s={unversionedId:"maintainers/understanding-contribs-insights",id:"maintainers/understanding-contribs-insights",title:"Understanding Contributor Insights Data",description:"Once you've created your Contributor Insight Page, it's time to understand the data provided. Understanding this data is key to effectively managing your projects and contributors.",source:"@site/docs/maintainers/understanding-contrib-insights.md",sourceDirName:"maintainers",slug:"/maintainers/understanding-contribs-insights",permalink:"/maintainers/understanding-contribs-insights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/understanding-contrib-insights.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"understanding-contribs-insights",title:"Understanding Contributor Insights Data",sidebar_label:"Understanding Contributor Insights Data",keywords:["maintainers","guides","Contributor Insights Analysis","List Data Exploration","Data Organization","Data Insight from Contributor Insights ","List Visualization","Data Representation in Contributor Insights ","List Data Interpretation","Organizing Data in Contributor Insights "]},sidebar:"docs",previous:{title:"Understanding Repo Insights Data",permalink:"/maintainers/understanding-repo-insights"},next:{title:"Contributors Guide to OpenSauced",permalink:"/contributors/contributors-guide-to-open-sauced"}},c={},d=[{value:"Understanding Contributor Insights Data",id:"understanding-contributor-insights-data",level:2},{value:"Interpreting Total Commits in the Last 30 Days",id:"interpreting-total-commits-in-the-last-30-days",level:3},{value:"Monitoring Active Contributors",id:"monitoring-active-contributors",level:3},{value:"Understanding Types of Contributors",id:"understanding-types-of-contributors",level:3},{value:"New Contributors",id:"new-contributors",level:4},{value:"Alumni Contributors",id:"alumni-contributors",level:4},{value:"Most Active Contributors",id:"most-active-contributors",level:4},{value:"Activity Across Other Repositories",id:"activity-across-other-repositories",level:3}],u={toc:d},l="wrapper";function p(t){let{components:n,...e}=t;return(0,r.kt)(l,(0,i.Z)({},u,e,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Once you've created your Contributor Insight Page, it's time to understand the data provided. Understanding this data is key to effectively managing your projects and contributors."),(0,r.kt)("h2",{id:"understanding-contributor-insights-data"},"Understanding Contributor Insights Data"),(0,r.kt)("h3",{id:"interpreting-total-commits-in-the-last-30-days"},"Interpreting Total Commits in the Last 30 Days"),(0,r.kt)("p",null,"Understanding the commits over the last 30 days helps in gauging the overall activity and productivity of the group."),(0,r.kt)("p",null,"High commit volume might indicate a highly active and engaged team. A sudden drop could signal potential issues or a need for additional support or motivation."),(0,r.kt)("h3",{id:"monitoring-active-contributors"},"Monitoring Active Contributors"),(0,r.kt)("p",null,"Identifying active contributors helps in recognizing reliable team members and planning future tasks."),(0,r.kt)("p",null,"Trends in active contributor numbers can indicate the health of the project community and the effectiveness of engagement strategies. Notice the ebbs and flows in individual contributors\u2019 activity."),(0,r.kt)("p",null,"A decline in a normally active contributor\u2019s engagement could indicate burnout or dissatisfaction, while a surge in activity might be tied to recent changes or enhancements in the project. Tracking activity levels can help you manage team burnout, understand resource needs, and spot potential issues before they escalate."),(0,r.kt)("h3",{id:"understanding-types-of-contributors"},"Understanding Types of Contributors"),(0,r.kt)("h4",{id:"new-contributors"},"New Contributors"),(0,r.kt)("p",null,"Tracking new contributors is key to understanding the growth and influx of new talent."),(0,r.kt)("p",null,"An influx of new contributors might be a positive sign of project popularity, successful outreach efforts, or the community health of your project. However, it could also indicate a need for more support and guidance for new contributors."),(0,r.kt)("h4",{id:"alumni-contributors"},"Alumni Contributors"),(0,r.kt)("p",null,"Alumni contributors are contributors who haven't been active in the last 30 days. Identifying contributors who have stopped contributing helps in assessing potential issues or dissatisfaction."),(0,r.kt)("p",null,"High churn rates could signal deeper problems within the project environment or community management."),(0,r.kt)("h4",{id:"most-active-contributors"},"Most Active Contributors"),(0,r.kt)("p",null,"Identifying key contributors and potential leaders is important for project health and growth. It can help with delegation of responsibilities and recognition of top performers. It can also identify potential mentors for new contributors and help in planning for succession."),(0,r.kt)("p",null,"If you see that a few active contributors are doing most of the work, it might be a sign that the project needs more support or that the workload needs to be better distributed."),(0,r.kt)("h3",{id:"activity-across-other-repositories"},"Activity Across Other Repositories"),(0,r.kt)("p",null,"Understanding the range of repositories to which contributors in a list have recently contributed shows the broader interests and skills of the community. It reveals contributors' engagement levels and potential specializations, which allows for effective task allocation and identifying mentorship or leadership candidates."),(0,r.kt)("p",null,"Additionally, it opens paths for potential cross-project collaborations and strategic project planning, aligning the project\u2019s goals with trends and interests in the open source ecosystem."),(0,r.kt)("p",null,"Understanding the recent history of each contributor's engagement assists in tracking individual contribution patterns and identifying potentially cooling interests."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a93463cf.d7a92ac7.js b/assets/js/a93463cf.d7a92ac7.js deleted file mode 100644 index 88689463..00000000 --- a/assets/js/a93463cf.d7a92ac7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[9277],{3905:(t,e,n)=>{n.d(e,{Zo:()=>u,kt:()=>h});var i=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function a(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var c=i.createContext({}),d=function(t){var e=i.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):a(a({},e),t)),n},u=function(t){var e=d(t.components);return i.createElement(c.Provider,{value:e},t.children)},l="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},g=i.forwardRef((function(t,e){var n=t.components,r=t.mdxType,o=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),l=d(n),g=r,h=l["".concat(c,".").concat(g)]||l[g]||p[g]||o;return n?i.createElement(h,a(a({ref:e},u),{},{components:n})):i.createElement(h,a({ref:e},u))}));function h(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=n.length,a=new Array(o);a[0]=g;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s[l]="string"==typeof t?t:r,a[1]=s;for(var d=2;d{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var i=n(7462),r=(n(7294),n(3905));const o={id:"understanding-contribs-insights",title:"Understanding Contributor Insights Data",sidebar_label:"Understanding Contributor Insights Data",keywords:["maintainers","guides","Contributor Insights Analysis","List Data Exploration","Data Organization","Data Insight from Contributor Insights ","List Visualization","Data Representation in Contributor Insights ","List Data Interpretation","Organizing Data in Contributor Insights "]},a=void 0,s={unversionedId:"maintainers/understanding-contribs-insights",id:"maintainers/understanding-contribs-insights",title:"Understanding Contributor Insights Data",description:"Once you've created your Contributor Insight Page, it's time to understand the data provided. Understanding this data is key to effectively managing your projects and contributors.",source:"@site/docs/maintainers/understanding-contrib-insights.md",sourceDirName:"maintainers",slug:"/maintainers/understanding-contribs-insights",permalink:"/maintainers/understanding-contribs-insights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/understanding-contrib-insights.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"understanding-contribs-insights",title:"Understanding Contributor Insights Data",sidebar_label:"Understanding Contributor Insights Data",keywords:["maintainers","guides","Contributor Insights Analysis","List Data Exploration","Data Organization","Data Insight from Contributor Insights ","List Visualization","Data Representation in Contributor Insights ","List Data Interpretation","Organizing Data in Contributor Insights "]},sidebar:"docs",previous:{title:"Understanding Repo Insights Data",permalink:"/maintainers/understanding-repo-insights"},next:{title:"Contributors Guide to OpenSauced",permalink:"/contributors/contributors-guide-to-open-sauced"}},c={},d=[{value:"Understanding Contributor Insights Data",id:"understanding-contributor-insights-data",level:2},{value:"Interpreting Total Commits in the Last 30 Days",id:"interpreting-total-commits-in-the-last-30-days",level:3},{value:"Monitoring Active Contributors",id:"monitoring-active-contributors",level:3},{value:"Understanding Types of Contributors",id:"understanding-types-of-contributors",level:3},{value:"New Contributors",id:"new-contributors",level:4},{value:"Alumni Contributors",id:"alumni-contributors",level:4},{value:"Most Active Contributors",id:"most-active-contributors",level:4},{value:"Activity Across Other Repositories",id:"activity-across-other-repositories",level:3}],u={toc:d},l="wrapper";function p(t){let{components:e,...n}=t;return(0,r.kt)(l,(0,i.Z)({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Once you've created your Contributor Insight Page, it's time to understand the data provided. Understanding this data is key to effectively managing your projects and contributors."),(0,r.kt)("h2",{id:"understanding-contributor-insights-data"},"Understanding Contributor Insights Data"),(0,r.kt)("h3",{id:"interpreting-total-commits-in-the-last-30-days"},"Interpreting Total Commits in the Last 30 Days"),(0,r.kt)("p",null,"Understanding the commits over the last 30 days helps in gauging the overall activity and productivity of the group."),(0,r.kt)("p",null,"High commit volume might indicate a highly active and engaged team. A sudden drop could signal potential issues or a need for additional support or motivation."),(0,r.kt)("h3",{id:"monitoring-active-contributors"},"Monitoring Active Contributors"),(0,r.kt)("p",null,"Identifying active contributors helps in recognizing reliable team members and planning future tasks."),(0,r.kt)("p",null,"Trends in active contributor numbers can indicate the health of the project community and the effectiveness of engagement strategies. Notice the ebbs and flows in individual contributors\u2019 activity."),(0,r.kt)("p",null,"A decline in a normally active contributor\u2019s engagement could indicate burnout or dissatisfaction, while a surge in activity might be tied to recent changes or enhancements in the project. Tracking activity levels can help you manage team burnout, understand resource needs, and spot potential issues before they escalate."),(0,r.kt)("h3",{id:"understanding-types-of-contributors"},"Understanding Types of Contributors"),(0,r.kt)("h4",{id:"new-contributors"},"New Contributors"),(0,r.kt)("p",null,"Tracking new contributors is key to understanding the growth and influx of new talent."),(0,r.kt)("p",null,"An influx of new contributors might be a positive sign of project popularity, successful outreach efforts, or the community health of your project. However, it could also indicate a need for more support and guidance for new contributors."),(0,r.kt)("h4",{id:"alumni-contributors"},"Alumni Contributors"),(0,r.kt)("p",null,"Alumni contributors are contributors who haven't been active in the last 30 days. Identifying contributors who have stopped contributing helps in assessing potential issues or dissatisfaction."),(0,r.kt)("p",null,"High churn rates could signal deeper problems within the project environment or community management."),(0,r.kt)("h4",{id:"most-active-contributors"},"Most Active Contributors"),(0,r.kt)("p",null,"Identifying key contributors and potential leaders is important for project health and growth. It can help with delegation of responsibilities and recognition of top performers. It can also identify potential mentors for new contributors and help in planning for succession."),(0,r.kt)("p",null,"If you see that a few active contributors are doing most of the work, it might be a sign that the project needs more support or that the workload needs to be better distributed."),(0,r.kt)("h3",{id:"activity-across-other-repositories"},"Activity Across Other Repositories"),(0,r.kt)("p",null,"Understanding the range of repositories to which contributors in a list have recently contributed shows the broader interests and skills of the community. It reveals contributors' engagement levels and potential specializations, which allows for effective task allocation and identifying mentorship or leadership candidates."),(0,r.kt)("p",null,"Additionally, it opens paths for potential cross-project collaborations and strategic project planning, aligning the project\u2019s goals with trends and interests in the open source ecosystem."),(0,r.kt)("p",null,"Understanding the recent history of each contributor's engagement assists in tracking individual contribution patterns and identifying potentially cooling interests."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ac97b6b0.548be16b.js b/assets/js/ac97b6b0.5ac7a27b.js similarity index 53% rename from assets/js/ac97b6b0.548be16b.js rename to assets/js/ac97b6b0.5ac7a27b.js index 18068f35..6b900c3d 100644 --- a/assets/js/ac97b6b0.548be16b.js +++ b/assets/js/ac97b6b0.5ac7a27b.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[300],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>m});var o=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=o.createContext({}),u=function(e){var n=o.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},l=function(e){var n=u(e.components);return o.createElement(s.Provider,{value:n},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},f=o.forwardRef((function(e,n){var t=e.components,r=e.mdxType,c=e.originalType,s=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),p=u(t),f=r,m=p["".concat(s,".").concat(f)]||p[f]||d[f]||c;return t?o.createElement(m,i(i({ref:n},l),{},{components:t})):o.createElement(m,i({ref:n},l))}));function m(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var c=t.length,i=new Array(c);i[0]=f;var a={};for(var s in n)hasOwnProperty.call(n,s)&&(a[s]=n[s]);a.originalType=e,a[p]="string"==typeof e?e:r,i[1]=a;for(var u=2;u{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>u});var o=t(7462),r=(t(7294),t(3905));const c={id:"connections",title:"Grow Your Network with Our Connections Feature!",sidebar_label:"Connections",keywords:["connections","Network connections","Professional connections","Building connections","Online connections","Networking opportunities","tech connections","grow network","grow connection","Community connections"]},i=void 0,a={unversionedId:"features/connections",id:"features/connections",title:"Grow Your Network with Our Connections Feature!",description:"What are Connections?",source:"@site/docs/features/connections.md",sourceDirName:"features",slug:"/features/connections",permalink:"/features/connections",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/connections.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"connections",title:"Grow Your Network with Our Connections Feature!",sidebar_label:"Connections",keywords:["connections","Network connections","Professional connections","Building connections","Online connections","Networking opportunities","tech connections","grow network","grow connection","Community connections"]}},s={},u=[{value:"What are Connections?",id:"what-are-connections",level:2},{value:"How do Connections Work?",id:"how-do-connections-work",level:2}],l={toc:u},p="wrapper";function d(e){let{components:n,...c}=e;return(0,r.kt)(p,(0,o.Z)({},l,c,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"what-are-connections"},"What are Connections?"),(0,r.kt)("p",null,"Connections on OpenSauced serve as a way to build and nurture your professional network within the open source ecosystem. Imagine you're searching for experts in Artificial Intelligence using our ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights")," feature, and you come across several promising developers. What's next?"),(0,r.kt)("p",null,"With Connections, you can now send a request to connect, bringing these experts into your professional circle for easy communication and collaboration."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"connections demo",src:t(89).Z,width:"3064",height:"2016"})),(0,r.kt)("h2",{id:"how-do-connections-work"},"How do Connections Work?"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Sending connection requests"),": Once you identify users you'd like to connect with, you can send them a connection request."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Acceptance"),": Upon acceptance of your connection request, both parties become 1st-degree connections."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Following highlights"),": After becoming 1st-degree connections, you can follow each other's highlights, keeping up-to-date with accomplishments, contributions, and other notable activities."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Contact information"),": Post-acceptance, you'll have access to contact information to foster direct communication and ongoing dialogue.")),(0,r.kt)("p",null,"Are you interested? Navigate to ",(0,r.kt)("a",{parentName:"p",href:"https://opensauced.pizza/"},"OpenSauced"),", create your Pro account, and start building!"))}d.isMDXComponent=!0},89:(e,n,t)=>{t.d(n,{Z:()=>o});const o=t.p+"assets/images/connections-fdbdf5ac9efdf36b2a8453bd48708302.gif"}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[300],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>m});var o=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=o.createContext({}),u=function(e){var n=o.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},l=function(e){var n=u(e.components);return o.createElement(s.Provider,{value:n},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},f=o.forwardRef((function(e,n){var t=e.components,r=e.mdxType,c=e.originalType,s=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),p=u(t),f=r,m=p["".concat(s,".").concat(f)]||p[f]||d[f]||c;return t?o.createElement(m,i(i({ref:n},l),{},{components:t})):o.createElement(m,i({ref:n},l))}));function m(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var c=t.length,i=new Array(c);i[0]=f;var a={};for(var s in n)hasOwnProperty.call(n,s)&&(a[s]=n[s]);a.originalType=e,a[p]="string"==typeof e?e:r,i[1]=a;for(var u=2;u{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>u});var o=t(7462),r=(t(7294),t(3905));const c={id:"connections",title:"Grow Your Network with Our Connections Feature!",sidebar_label:"Connections",keywords:["connections","Network connections","Professional connections","Building connections","Online connections","Networking opportunities","tech connections","grow network","grow connection","Community connections"]},i=void 0,a={unversionedId:"features/connections",id:"features/connections",title:"Grow Your Network with Our Connections Feature!",description:"What are Connections?",source:"@site/docs/features/connections.md",sourceDirName:"features",slug:"/features/connections",permalink:"/features/connections",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/connections.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"connections",title:"Grow Your Network with Our Connections Feature!",sidebar_label:"Connections",keywords:["connections","Network connections","Professional connections","Building connections","Online connections","Networking opportunities","tech connections","grow network","grow connection","Community connections"]}},s={},u=[{value:"What are Connections?",id:"what-are-connections",level:2},{value:"How do Connections Work?",id:"how-do-connections-work",level:2}],l={toc:u},p="wrapper";function d(e){let{components:n,...c}=e;return(0,r.kt)(p,(0,o.Z)({},l,c,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"what-are-connections"},"What are Connections?"),(0,r.kt)("p",null,"Connections on OpenSauced serve as a way to build and nurture your professional network within the open source ecosystem. Imagine you're searching for experts in Artificial Intelligence using our ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights")," feature, and you come across several promising developers. What's next?"),(0,r.kt)("p",null,"With Connections, you can now send a request to connect, bringing these experts into your professional circle for easy communication and collaboration."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"connections demo",src:t(89).Z,width:"3064",height:"2016"})),(0,r.kt)("h2",{id:"how-do-connections-work"},"How do Connections Work?"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Sending connection requests"),": Once you identify users you'd like to connect with, you can send them a connection request."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Acceptance"),": Upon acceptance of your connection request, both parties become 1st-degree connections."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Following highlights"),": After becoming 1st-degree connections, you can follow each other's highlights, keeping up-to-date with accomplishments, contributions, and other notable activities."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Contact information"),": Post-acceptance, you'll have access to contact information to foster direct communication and ongoing dialogue.")),(0,r.kt)("p",null,"Are you interested? Navigate to ",(0,r.kt)("a",{parentName:"p",href:"https://opensauced.pizza/"},"OpenSauced"),", create your Pro account, and start building!"))}d.isMDXComponent=!0},89:(e,n,t)=>{t.d(n,{Z:()=>o});const o=t.p+"assets/images/connections-fdbdf5ac9efdf36b2a8453bd48708302.gif"}}]); \ No newline at end of file diff --git a/assets/js/aef95fb0.226846ae.js b/assets/js/aef95fb0.226846ae.js new file mode 100644 index 00000000..1c77c569 --- /dev/null +++ b/assets/js/aef95fb0.226846ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[6138],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>h});var i=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=i.createContext({}),c=function(e){var t=i.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=c(e.components);return i.createElement(d.Provider,{value:t},e.children)},g="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,d=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),g=c(n),p=r,h=g["".concat(d,".").concat(p)]||g[p]||u[p]||a;return n?i.createElement(h,o(o({ref:t},l),{},{components:n})):i.createElement(h,o({ref:t},l))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,o=new Array(a);o[0]=p;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[g]="string"==typeof e?e:r,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var i=n(7462),r=(n(7294),n(3905));const a={id:"understanding-repo-insights",title:"Understanding Repo Insights Data",sidebar_label:"Understanding Repo Insights Data",keywords:["maintainers","guides","Insights Interpretation","Analytical Understanding","Insights Overview","Maintainer Insights","Guide to Data Understanding","Data Interpretation Methods","Insightful Data Examination","Guide to Understanding Data"]},o=void 0,s={unversionedId:"maintainers/understanding-repo-insights",id:"maintainers/understanding-repo-insights",title:"Understanding Repo Insights Data",description:"Once your repositories are connected, it's time to understand the data provided on your page. Understanding this data is key to effectively managing your projects and contributors.",source:"@site/docs/maintainers/understanding-repo-insights.md",sourceDirName:"maintainers",slug:"/maintainers/understanding-repo-insights",permalink:"/maintainers/understanding-repo-insights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/understanding-repo-insights.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"understanding-repo-insights",title:"Understanding Repo Insights Data",sidebar_label:"Understanding Repo Insights Data",keywords:["maintainers","guides","Insights Interpretation","Analytical Understanding","Insights Overview","Maintainer Insights","Guide to Data Understanding","Data Interpretation Methods","Insightful Data Examination","Guide to Understanding Data"]},sidebar:"docs",previous:{title:"Maintainers Guide to OpenSauced",permalink:"/maintainers/maintainers-guide-to-open-sauced"},next:{title:"Understanding Contributor Insights Data",permalink:"/maintainers/understanding-contribs-insights"}},d={},c=[{value:"Understanding Repository Insights Data",id:"understanding-repository-insights-data",level:2},{value:"Analyzing Contribution Trends",id:"analyzing-contribution-trends",level:3},{value:"Monitoring PR Activity",id:"monitoring-pr-activity",level:3},{value:"Measuring and Improving PR Velocity",id:"measuring-and-improving-pr-velocity",level:3},{value:"Understanding Repository Insights Contributor Data",id:"understanding-repository-insights-contributor-data",level:2},{value:"Identifying and Engaging with Key Contributors",id:"identifying-and-engaging-with-key-contributors",level:3},{value:"Tracking and Responding to Contributor Activity Levels",id:"tracking-and-responding-to-contributor-activity-levels",level:3},{value:"Activity Levels Across Repositories",id:"activity-levels-across-repositories",level:3},{value:"Understanding Activity Levels Over Time",id:"understanding-activity-levels-over-time",level:3},{value:"Using Programming Language Data",id:"using-programming-language-data",level:3},{value:"Creating Opportunities",id:"creating-opportunities",level:3}],l={toc:c},g="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(g,(0,i.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Once your repositories are connected, it's time to understand the data provided on your page. Understanding this data is key to effectively managing your projects and contributors."),(0,r.kt)("h2",{id:"understanding-repository-insights-data"},"Understanding Repository Insights Data"),(0,r.kt)("h3",{id:"analyzing-contribution-trends"},"Analyzing Contribution Trends"),(0,r.kt)("p",null,"Discover patterns in contributions over time. Look for spikes or drops in activity and correlate these with specific events or milestones. This can help you understand what drives engagement in your projects."),(0,r.kt)("h3",{id:"monitoring-pr-activity"},"Monitoring PR Activity"),(0,r.kt)("p",null,"Knowing the status of PRs (open, closed, draft, merged) helps in understanding the workflow efficiency and backlog. High volumes of open or draft PRs might indicate a need for more resources or a revision of your review process. Conversely, a steady flow of merged PRs can indicate a healthy, active development process."),(0,r.kt)("h3",{id:"measuring-and-improving-pr-velocity"},"Measuring and Improving PR Velocity"),(0,r.kt)("p",null,"Track how quickly PRs are being merged. The average time taken for PRs to merge is a critical metric for understanding the efficiency of the code review and deployment process. Longer PR merge times might signal issues in the review process or resource allocation or could indicate complex code changes that require more thorough checks. Use this data to set benchmarks and identify opportunities for streamlining your review and integration processes."),(0,r.kt)("h2",{id:"understanding-repository-insights-contributor-data"},"Understanding Repository Insights Contributor Data"),(0,r.kt)("h3",{id:"identifying-and-engaging-with-key-contributors"},"Identifying and Engaging with Key Contributors"),(0,r.kt)("p",null,"Recognizing key contributors helps in understanding the project's most active and influential members. Consider reaching out to them for deeper collaboration or acknowledging their efforts to keep them motivated and engaged."),(0,r.kt)("h3",{id:"tracking-and-responding-to-contributor-activity-levels"},"Tracking and Responding to Contributor Activity Levels"),(0,r.kt)("p",null,"Tracking how active contributors are and the trends in their activity levels is crucial for project health. Understanding the activity patterns of contributors helps in assessing their engagement and reliability. Regular contributors are often more familiar with the project and can be more dependable for critical tasks."),(0,r.kt)("p",null,"Notice the ebbs and flows in individual contributors\u2019 activity. A decline in a normally active contributor\u2019s engagement could indicate burnout or dissatisfaction, while a surge in activity might be tied to recent changes or enhancements in the project. Tracking activity levels can help you manage team burnout, understand resource needs, and spot potential issues before they escalate."),(0,r.kt)("h3",{id:"activity-levels-across-repositories"},"Activity Levels Across Repositories"),(0,r.kt)("p",null,"This indicates the breadth of a contributor's involvement in open source projects. A contributor active across multiple repositories might bring diverse experiences and ideas but may also have divided attention. Alternatively, a contributor active in a single repository might be more focused and familiar with the project."),(0,r.kt)("h3",{id:"understanding-activity-levels-over-time"},"Understanding Activity Levels Over Time"),(0,r.kt)("p",null,"Past activity levels can be a predictor of future contributions. Regular past contributions might suggest continued involvement. However, a contributor who has been inactive for a while might be less likely to contribute in the future."),(0,r.kt)("p",null,"Trends in activity levels and contributions can be indicators of the overall health of the project community. A decline in activity might signal issues that need addressing to keep the community vibrant and engaged."),(0,r.kt)("h3",{id:"using-programming-language-data"},"Using Programming Language Data"),(0,r.kt)("p",null,"Awareness of the programming languages a contributor is comfortable with enables maintainers to assign tasks more effectively, ensuring that contributors work in areas where they are most skilled and interested. This can help in identifying contributors for specific tasks or projects."),(0,r.kt)("h3",{id:"creating-opportunities"},"Creating Opportunities"),(0,r.kt)("p",null,"Understanding who contributes to what open source projects and when they do can help maintainers manage team dynamics. With this information, maintainers can make decisions to ensure workloads are balanced and contributors are working in areas that match their skills and interests. Identifying less experienced contributors who are active and showing potential can lead to mentorship opportunities, helping to grow the project\u2019s contributor base."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aef95fb0.50507b77.js b/assets/js/aef95fb0.50507b77.js deleted file mode 100644 index 66a94bea..00000000 --- a/assets/js/aef95fb0.50507b77.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[6138],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>h});var i=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=i.createContext({}),c=function(e){var t=i.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=c(e.components);return i.createElement(d.Provider,{value:t},e.children)},g="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,d=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),g=c(n),p=r,h=g["".concat(d,".").concat(p)]||g[p]||u[p]||a;return n?i.createElement(h,o(o({ref:t},l),{},{components:n})):i.createElement(h,o({ref:t},l))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,o=new Array(a);o[0]=p;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[g]="string"==typeof e?e:r,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var i=n(7462),r=(n(7294),n(3905));const a={id:"understanding-repo-insights",title:"Understanding Repo Insights Data",sidebar_label:"Understanding Repo Insights Data",keywords:["maintainers","guides","Insights Interpretation","Analytical Understanding","Insights Overview","Maintainer Insights","Guide to Data Understanding","Data Interpretation Methods","Insightful Data Examination","Guide to Understanding Data"]},o=void 0,s={unversionedId:"maintainers/understanding-repo-insights",id:"maintainers/understanding-repo-insights",title:"Understanding Repo Insights Data",description:"Once your repositories are connected, it's time to understand the data provided on your page. Understanding this data is key to effectively managing your projects and contributors.",source:"@site/docs/maintainers/understanding-repo-insights.md",sourceDirName:"maintainers",slug:"/maintainers/understanding-repo-insights",permalink:"/maintainers/understanding-repo-insights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/understanding-repo-insights.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"understanding-repo-insights",title:"Understanding Repo Insights Data",sidebar_label:"Understanding Repo Insights Data",keywords:["maintainers","guides","Insights Interpretation","Analytical Understanding","Insights Overview","Maintainer Insights","Guide to Data Understanding","Data Interpretation Methods","Insightful Data Examination","Guide to Understanding Data"]},sidebar:"docs",previous:{title:"Maintainers Guide to OpenSauced",permalink:"/maintainers/maintainers-guide-to-open-sauced"},next:{title:"Understanding Contributor Insights Data",permalink:"/maintainers/understanding-contribs-insights"}},d={},c=[{value:"Understanding Repository Insights Data",id:"understanding-repository-insights-data",level:2},{value:"Analyzing Contribution Trends",id:"analyzing-contribution-trends",level:3},{value:"Monitoring PR Activity",id:"monitoring-pr-activity",level:3},{value:"Measuring and Improving PR Velocity",id:"measuring-and-improving-pr-velocity",level:3},{value:"Understanding Repository Insights Contributor Data",id:"understanding-repository-insights-contributor-data",level:2},{value:"Identifying and Engaging with Key Contributors",id:"identifying-and-engaging-with-key-contributors",level:3},{value:"Tracking and Responding to Contributor Activity Levels",id:"tracking-and-responding-to-contributor-activity-levels",level:3},{value:"Activity Levels Across Repositories",id:"activity-levels-across-repositories",level:3},{value:"Understanding Activity Levels Over Time",id:"understanding-activity-levels-over-time",level:3},{value:"Using Programming Language Data",id:"using-programming-language-data",level:3},{value:"Creating Opportunities",id:"creating-opportunities",level:3}],l={toc:c},g="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(g,(0,i.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Once your repositories are connected, it's time to understand the data provided on your page. Understanding this data is key to effectively managing your projects and contributors."),(0,r.kt)("h2",{id:"understanding-repository-insights-data"},"Understanding Repository Insights Data"),(0,r.kt)("h3",{id:"analyzing-contribution-trends"},"Analyzing Contribution Trends"),(0,r.kt)("p",null,"Discover patterns in contributions over time. Look for spikes or drops in activity and correlate these with specific events or milestones. This can help you understand what drives engagement in your projects."),(0,r.kt)("h3",{id:"monitoring-pr-activity"},"Monitoring PR Activity"),(0,r.kt)("p",null,"Knowing the status of PRs (open, closed, draft, merged) helps in understanding the workflow efficiency and backlog. High volumes of open or draft PRs might indicate a need for more resources or a revision of your review process. Conversely, a steady flow of merged PRs can indicate a healthy, active development process."),(0,r.kt)("h3",{id:"measuring-and-improving-pr-velocity"},"Measuring and Improving PR Velocity"),(0,r.kt)("p",null,"Track how quickly PRs are being merged. The average time taken for PRs to merge is a critical metric for understanding the efficiency of the code review and deployment process. Longer PR merge times might signal issues in the review process or resource allocation or could indicate complex code changes that require more thorough checks. Use this data to set benchmarks and identify opportunities for streamlining your review and integration processes."),(0,r.kt)("h2",{id:"understanding-repository-insights-contributor-data"},"Understanding Repository Insights Contributor Data"),(0,r.kt)("h3",{id:"identifying-and-engaging-with-key-contributors"},"Identifying and Engaging with Key Contributors"),(0,r.kt)("p",null,"Recognizing key contributors helps in understanding the project's most active and influential members. Consider reaching out to them for deeper collaboration or acknowledging their efforts to keep them motivated and engaged."),(0,r.kt)("h3",{id:"tracking-and-responding-to-contributor-activity-levels"},"Tracking and Responding to Contributor Activity Levels"),(0,r.kt)("p",null,"Tracking how active contributors are and the trends in their activity levels is crucial for project health. Understanding the activity patterns of contributors helps in assessing their engagement and reliability. Regular contributors are often more familiar with the project and can be more dependable for critical tasks."),(0,r.kt)("p",null,"Notice the ebbs and flows in individual contributors\u2019 activity. A decline in a normally active contributor\u2019s engagement could indicate burnout or dissatisfaction, while a surge in activity might be tied to recent changes or enhancements in the project. Tracking activity levels can help you manage team burnout, understand resource needs, and spot potential issues before they escalate."),(0,r.kt)("h3",{id:"activity-levels-across-repositories"},"Activity Levels Across Repositories"),(0,r.kt)("p",null,"This indicates the breadth of a contributor's involvement in open source projects. A contributor active across multiple repositories might bring diverse experiences and ideas but may also have divided attention. Alternatively, a contributor active in a single repository might be more focused and familiar with the project."),(0,r.kt)("h3",{id:"understanding-activity-levels-over-time"},"Understanding Activity Levels Over Time"),(0,r.kt)("p",null,"Past activity levels can be a predictor of future contributions. Regular past contributions might suggest continued involvement. However, a contributor who has been inactive for a while might be less likely to contribute in the future."),(0,r.kt)("p",null,"Trends in activity levels and contributions can be indicators of the overall health of the project community. A decline in activity might signal issues that need addressing to keep the community vibrant and engaged."),(0,r.kt)("h3",{id:"using-programming-language-data"},"Using Programming Language Data"),(0,r.kt)("p",null,"Awareness of the programming languages a contributor is comfortable with enables maintainers to assign tasks more effectively, ensuring that contributors work in areas where they are most skilled and interested. This can help in identifying contributors for specific tasks or projects."),(0,r.kt)("h3",{id:"creating-opportunities"},"Creating Opportunities"),(0,r.kt)("p",null,"Understanding who contributes to what open source projects and when they do can help maintainers manage team dynamics. With this information, maintainers can make decisions to ensure workloads are balanced and contributors are working in areas that match their skills and interests. Identifying less experienced contributors who are active and showing potential can lead to mentorship opportunities, helping to grow the project\u2019s contributor base."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b44b9bb7.848d9943.js b/assets/js/b44b9bb7.848d9943.js new file mode 100644 index 00000000..a9bb14d6 --- /dev/null +++ b/assets/js/b44b9bb7.848d9943.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[7899],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(a),m=i,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||r;return a?n.createElement(h,o(o({ref:t},c),{},{components:a})):n.createElement(h,o({ref:t},c))}));function h(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var n=a(7462),i=(a(7294),a(3905));const r={id:"pizza-cli",title:"Introduction to the Pizza CLI",sidebar_label:"Pizza CLI",keywords:["introduction to the pizza cli","Pizza CLI Overview","Command Line Interface Introduction","CLI Basics","Pizza Command Line Tool","CLI Usage Guide","Pizza CLI Commands","Introduction to Command-Line Interfaces","Command Line Tool Features","CLI for Pizza Enthusiasts","Pizza Ordering CLI","Getting Started with Pizza CLI"]},o=void 0,l={unversionedId:"tools/pizza-cli",id:"tools/pizza-cli",title:"Introduction to the Pizza CLI",description:"The OpenSauced Pizza CLI",source:"@site/docs/tools/pizza-cli.md",sourceDirName:"tools",slug:"/tools/pizza-cli",permalink:"/tools/pizza-cli",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/pizza-cli.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"pizza-cli",title:"Introduction to the Pizza CLI",sidebar_label:"Pizza CLI",keywords:["introduction to the pizza cli","Pizza CLI Overview","Command Line Interface Introduction","CLI Basics","Pizza Command Line Tool","CLI Usage Guide","Pizza CLI Commands","Introduction to Command-Line Interfaces","Command Line Tool Features","CLI for Pizza Enthusiasts","Pizza Ordering CLI","Getting Started with Pizza CLI"]},sidebar:"docs",previous:{title:"Hot OpenSauced Project",permalink:"/tools/hot-opensauced"},next:{title:"Introduction to the Chrome Extension",permalink:"/tools/chrome-extension/introduction-to-the-chrome-extension"}},s={},p=[{value:"The OpenSauced Pizza CLI",id:"the-opensauced-pizza-cli",level:2},{value:"Key Features",id:"key-features",level:2},{value:"Installation and Instructions",id:"installation-and-instructions",level:2},{value:"\ud83d\udce6 Download and Install",id:"-download-and-install",level:3},{value:"\ud83d\udda5\ufe0f Local Development Setup",id:"\ufe0f-local-development-setup",level:3}],c={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,i.kt)(u,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"the-opensauced-pizza-cli"},"The OpenSauced Pizza CLI"),(0,i.kt)("p",null,"The OpenSauced Pizza CLI is a command-line utility designed specifically for OpenSauced. It provides a comprehensive set of functionalities that make it easier for users to gain insights and metrics and manage various tasks related to open source projects through OpenSauced."),(0,i.kt)("p",null,"Beyond just code commits, the pizza CLI reports on different ways individuals contribute to the open source ecosystem through community engagement, issue reporting, blog post writings, or pull request creations."),(0,i.kt)("h2",{id:"key-features"},"Key Features"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Bake"),": Seamlessly source git commits into OpenSauced with the metaphorical 'oven' of technology."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Insights"),": Dive deep into data about git contributors, repositories, users, and pull requests."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Repo-query"),": Get your questions about any GitHub repository answered."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Show"),": Visualize the metrics of a repository, providing a holistic view of its health and activity."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Login"),": Securely log into the application via GitHub, ensuring a streamlined and safe experience.")),(0,i.kt)("h2",{id:"installation-and-instructions"},"Installation and Instructions"),(0,i.kt)("h3",{id:"-download-and-install"},"\ud83d\udce6 Download and Install"),(0,i.kt)("p",null,"The pizza CLI provides multiple installation methods to cater to the varied preferences of its users:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Homebrew"),": For macOS users who prefer the Homebrew package manager."),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"brew install open-sauced/tap/pizza\n"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"NPM"),": For those who are fond of the Node Package Manager."),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"npm i -g pizza\n"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Direct script"),": A quick way to get started by directly fetching the installation script from GitHub."),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"curl -fsSL https://raw.githubusercontent.com/open-sauced/pizza-cli/main/install.sh\n")),(0,i.kt)("p",{parentName:"li"},"\u26a0\ufe0f ",(0,i.kt)("strong",{parentName:"p"},"Warning"),": Piping scripts directly from the web to your shell can be risky. Always ensure you trust the source. For a safer approach, download, inspect, and then execute the following commands:"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"curl -fsSL https://raw.githubusercontent.com/open-sauced/pizza-cli/main/install.sh > install.sh\nvim install.sh\n./install.sh\n"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Manual build and install"),": For those who like a hands-on approach."),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"make install\n")),(0,i.kt)("p",{parentName:"li"},"Ensure ",(0,i.kt)("inlineCode",{parentName:"p"},"/usr/local/bin/")," is in your path with:"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'export PATH="$PATH:/usr/local/bin"\n')),(0,i.kt)("p",{parentName:"li"},"Alternatively, after building with ",(0,i.kt)("inlineCode",{parentName:"p"},"make build"),", move the binary to your desired location:"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"mv build/pizza \n")))),(0,i.kt)("h3",{id:"\ufe0f-local-development-setup"},"\ud83d\udda5\ufe0f Local Development Setup"),(0,i.kt)("p",null,"To contribute to or modify the pizza CLI, you need a specific set of tools:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://go.dev/doc/install"},(0,i.kt)("strong",{parentName:"a"},"Go Toolchain")),": The foundational tool for building and managing Go applications.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://docs.docker.com/engine/install/"},(0,i.kt)("strong",{parentName:"a"},"Docker")),": Required for linting and other auxiliary tooling.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Make"),": A build automation tool."),(0,i.kt)("p",{parentName:"li"},"Development commands:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Linting"),": Ensure code quality with ",(0,i.kt)("inlineCode",{parentName:"li"},"make lint"),"."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Testing"),": Verify functionality with ",(0,i.kt)("inlineCode",{parentName:"li"},"make test"),"."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Building"),": Create the executable with ",(0,i.kt)("inlineCode",{parentName:"li"},"make build"),".")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b44b9bb7.d21a1ceb.js b/assets/js/b44b9bb7.d21a1ceb.js deleted file mode 100644 index b2788367..00000000 --- a/assets/js/b44b9bb7.d21a1ceb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[7899],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(a),m=i,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||r;return a?n.createElement(h,o(o({ref:t},c),{},{components:a})):n.createElement(h,o({ref:t},c))}));function h(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var n=a(7462),i=(a(7294),a(3905));const r={id:"pizza-cli",title:"Introduction to the Pizza CLI",sidebar_label:"Pizza CLI",keywords:["introduction to the pizza cli","Pizza CLI Overview","Command Line Interface Introduction","CLI Basics","Pizza Command Line Tool","CLI Usage Guide","Pizza CLI Commands","Introduction to Command-Line Interfaces","Command Line Tool Features","CLI for Pizza Enthusiasts","Pizza Ordering CLI","Getting Started with Pizza CLI"]},o=void 0,l={unversionedId:"tools/pizza-cli",id:"tools/pizza-cli",title:"Introduction to the Pizza CLI",description:"The OpenSauced Pizza CLI",source:"@site/docs/tools/pizza-cli.md",sourceDirName:"tools",slug:"/tools/pizza-cli",permalink:"/tools/pizza-cli",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/pizza-cli.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"pizza-cli",title:"Introduction to the Pizza CLI",sidebar_label:"Pizza CLI",keywords:["introduction to the pizza cli","Pizza CLI Overview","Command Line Interface Introduction","CLI Basics","Pizza Command Line Tool","CLI Usage Guide","Pizza CLI Commands","Introduction to Command-Line Interfaces","Command Line Tool Features","CLI for Pizza Enthusiasts","Pizza Ordering CLI","Getting Started with Pizza CLI"]},sidebar:"docs",previous:{title:"Hot OpenSauced Project",permalink:"/tools/hot-opensauced"},next:{title:"Introduction to the Chrome Extension",permalink:"/tools/chrome-extension/introduction-to-the-chrome-extension"}},s={},p=[{value:"The OpenSauced Pizza CLI",id:"the-opensauced-pizza-cli",level:2},{value:"Key Features",id:"key-features",level:2},{value:"Installation and Instructions",id:"installation-and-instructions",level:2},{value:"\ud83d\udce6 Download and Install",id:"-download-and-install",level:3},{value:"\ud83d\udda5\ufe0f Local Development Setup",id:"\ufe0f-local-development-setup",level:3}],c={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,i.kt)(u,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"the-opensauced-pizza-cli"},"The OpenSauced Pizza CLI"),(0,i.kt)("p",null,"The OpenSauced Pizza CLI is a command-line utility designed specifically for OpenSauced. It provides a comprehensive set of functionalities that make it easier for users to gain insights and metrics and manage various tasks related to open source projects through OpenSauced."),(0,i.kt)("p",null,"Beyond just code commits, the pizza CLI reports on different ways individuals contribute to the open source ecosystem through community engagement, issue reporting, blog post writings, or pull request creations."),(0,i.kt)("h2",{id:"key-features"},"Key Features"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Bake"),": Seamlessly source git commits into OpenSauced with the metaphorical 'oven' of technology."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Insights"),": Dive deep into data about git contributors, repositories, users, and pull requests."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Repo-query"),": Get your questions about any GitHub repository answered."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Show"),": Visualize the metrics of a repository, providing a holistic view of its health and activity."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Login"),": Securely log into the application via GitHub, ensuring a streamlined and safe experience.")),(0,i.kt)("h2",{id:"installation-and-instructions"},"Installation and Instructions"),(0,i.kt)("h3",{id:"-download-and-install"},"\ud83d\udce6 Download and Install"),(0,i.kt)("p",null,"The pizza CLI provides multiple installation methods to cater to the varied preferences of its users:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Homebrew"),": For macOS users who prefer the Homebrew package manager."),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"brew install open-sauced/tap/pizza\n"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"NPM"),": For those who are fond of the Node Package Manager."),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"npm i -g pizza\n"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Direct script"),": A quick way to get started by directly fetching the installation script from GitHub."),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"curl -fsSL https://raw.githubusercontent.com/open-sauced/pizza-cli/main/install.sh\n")),(0,i.kt)("p",{parentName:"li"},"\u26a0\ufe0f ",(0,i.kt)("strong",{parentName:"p"},"Warning"),": Piping scripts directly from the web to your shell can be risky. Always ensure you trust the source. For a safer approach, download, inspect, and then execute the following commands:"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"curl -fsSL https://raw.githubusercontent.com/open-sauced/pizza-cli/main/install.sh > install.sh\nvim install.sh\n./install.sh\n"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Manual build and install"),": For those who like a hands-on approach."),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"make install\n")),(0,i.kt)("p",{parentName:"li"},"Ensure ",(0,i.kt)("inlineCode",{parentName:"p"},"/usr/local/bin/")," is in your path with:"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'export PATH="$PATH:/usr/local/bin"\n')),(0,i.kt)("p",{parentName:"li"},"Alternatively, after building with ",(0,i.kt)("inlineCode",{parentName:"p"},"make build"),", move the binary to your desired location:"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"mv build/pizza \n")))),(0,i.kt)("h3",{id:"\ufe0f-local-development-setup"},"\ud83d\udda5\ufe0f Local Development Setup"),(0,i.kt)("p",null,"To contribute to or modify the pizza CLI, you need a specific set of tools:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://go.dev/doc/install"},(0,i.kt)("strong",{parentName:"a"},"Go Toolchain")),": The foundational tool for building and managing Go applications.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://docs.docker.com/engine/install/"},(0,i.kt)("strong",{parentName:"a"},"Docker")),": Required for linting and other auxiliary tooling.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Make"),": A build automation tool."),(0,i.kt)("p",{parentName:"li"},"Development commands:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Linting"),": Ensure code quality with ",(0,i.kt)("inlineCode",{parentName:"li"},"make lint"),"."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Testing"),": Verify functionality with ",(0,i.kt)("inlineCode",{parentName:"li"},"make test"),"."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Building"),": Create the executable with ",(0,i.kt)("inlineCode",{parentName:"li"},"make build"),".")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b77a626d.162e5bb6.js b/assets/js/b77a626d.162e5bb6.js deleted file mode 100644 index cd8f127e..00000000 --- a/assets/js/b77a626d.162e5bb6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[8573],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>g});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=i.createContext({}),c=function(e){var t=i.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return i.createElement(u.Provider,{value:t},e.children)},p="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,u=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(n),m=a,g=p["".concat(u,".").concat(m)]||p[m]||l[m]||r;return n?i.createElement(g,o(o({ref:t},d),{},{components:n})):i.createElement(g,o({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=m;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>l,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var i=n(7462),a=(n(7294),n(3905));const r={id:"maintainers-guide",title:"OpenSauced Maintainers Guide",sidebar_label:"OpenSauced Maintainers Guide",keywords:["maintainers guide","open source maintainers guide","open source maintainer","open source project management","community management in open-source"]},o=void 0,s={unversionedId:"contributing/opensauced-maintainers-guide/maintainers-guide",id:"contributing/opensauced-maintainers-guide/maintainers-guide",title:"OpenSauced Maintainers Guide",description:"Welcome to the OpenSauced Maintainers Guide for contributors who are interested in being part of the maintainer team for OpenSauced repositories.",source:"@site/docs/contributing/opensauced-maintainers-guide/maintainers-guide.md",sourceDirName:"contributing/opensauced-maintainers-guide",slug:"/contributing/opensauced-maintainers-guide/maintainers-guide",permalink:"/contributing/opensauced-maintainers-guide/maintainers-guide",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/opensauced-maintainers-guide/maintainers-guide.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"maintainers-guide",title:"OpenSauced Maintainers Guide",sidebar_label:"OpenSauced Maintainers Guide",keywords:["maintainers guide","open source maintainers guide","open source maintainer","open source project management","community management in open-source"]},sidebar:"docs",previous:{title:"Triage Guide",permalink:"/contributing/triage-guide"},next:{title:"Community Maintainers Guidelines",permalink:"/contributing/opensauced-maintainers-guide/community-maintainers-guide"}},u={},c=[{value:"How to Join the Maintainers Team",id:"how-to-join-the-maintainers-team",level:2},{value:"What does the Maintainers Team do?",id:"what-does-the-maintainers-team-do",level:2},{value:"Core Responsibilities",id:"core-responsibilities",level:3},{value:"Committing and Merging Changes",id:"committing-and-merging-changes",level:2}],d={toc:c},p="wrapper";function l(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,i.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Welcome to the OpenSauced Maintainers Guide for contributors who are interested in being part of the maintainer team for OpenSauced repositories."),(0,a.kt)("p",null,"At OpenSauced, we empower contributors to work in the open and support maintainers to make data-driven decisions for their projects."),(0,a.kt)("p",null,"It's important to us that we maintain a healthy environment for contributors and maintainers of our projects."),(0,a.kt)("h2",{id:"how-to-join-the-maintainers-team"},"How to Join the Maintainers Team"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sign up for ",(0,a.kt)("a",{parentName:"li",href:"https://opensauced.pizza/"},"opensauced.pizza"),"."),(0,a.kt)("li",{parentName:"ul"},"Join our ",(0,a.kt)("a",{parentName:"li",href:"https://discord.gg/opensauced"},"Discord community"),"."),(0,a.kt)("li",{parentName:"ul"},"Prove your pizza's worth!")),(0,a.kt)("h2",{id:"what-does-the-maintainers-team-do"},"What does the Maintainers Team do?"),(0,a.kt)("p",null,"Well, like all things in tech, it depends. We have different maintainer teams for each of the repositories. So, it's important that you communicate with the admin maintainer if you have any questions."),(0,a.kt)("h3",{id:"core-responsibilities"},"Core Responsibilities"),(0,a.kt)("p",null,"Your responsibilities may include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Reviewing and merging pull requests (PRs)."),(0,a.kt)("li",{parentName:"ul"},"Providing comments and responses on PRs, issues, discussions, and Discord messages."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/contributing/triage-guide#triage-process"},"Triage issues")," and bug reports."),(0,a.kt)("li",{parentName:"ul"},"Maintaining project documentation."),(0,a.kt)("li",{parentName:"ul"},"Collaborating with the community.")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Creating a positive space for contributors at all stages is one of your most important responsibilities.")),(0,a.kt)("p",null,"As a maintainer, you must:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"adhere to our ",(0,a.kt)("a",{parentName:"li",href:"/contributing/code-of-conduct"},"Code of Conduct")," and be an example for treating contributors with respect,"),(0,a.kt)("li",{parentName:"ul"},"communicate with the other maintainers in a timely and reasonable manner,"),(0,a.kt)("li",{parentName:"ul"},"understand and adhere to project standards.")),(0,a.kt)("h2",{id:"committing-and-merging-changes"},"Committing and Merging Changes"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"For commit and pull request standards, please refer to the ",(0,a.kt)("a",{parentName:"li",href:"/contributing/introduction-to-contributing"},"introduction to contributing"),"."),(0,a.kt)("li",{parentName:"ol"},"Before merging in changes, always run the project locally if UI changes were made."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},"Squash and merge commits")," when you merge in a PR.")),(0,a.kt)("p",null,"Thank you for being so interested in becoming a maintainer! Please reach out in our ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/docs/discussions/categories/team-discussions"},"team discussions")," if you need help, guidance, or clarification at any time."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b77a626d.f327e4f3.js b/assets/js/b77a626d.f327e4f3.js new file mode 100644 index 00000000..3902f359 --- /dev/null +++ b/assets/js/b77a626d.f327e4f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[8573],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>g});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=i.createContext({}),c=function(e){var t=i.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return i.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},l=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,u=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(n),l=a,g=p["".concat(u,".").concat(l)]||p[l]||m[l]||r;return n?i.createElement(g,o(o({ref:t},d),{},{components:n})):i.createElement(g,o({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=l;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var i=n(7462),a=(n(7294),n(3905));const r={id:"maintainers-guide",title:"OpenSauced Maintainers Guide",sidebar_label:"OpenSauced Maintainers Guide",keywords:["maintainers guide","open source maintainers guide","open source maintainer","open source project management","community management in open-source"]},o=void 0,s={unversionedId:"contributing/opensauced-maintainers-guide/maintainers-guide",id:"contributing/opensauced-maintainers-guide/maintainers-guide",title:"OpenSauced Maintainers Guide",description:"Welcome to the OpenSauced Maintainers Guide for contributors who are interested in being part of the maintainer team for OpenSauced repositories.",source:"@site/docs/contributing/opensauced-maintainers-guide/maintainers-guide.md",sourceDirName:"contributing/opensauced-maintainers-guide",slug:"/contributing/opensauced-maintainers-guide/maintainers-guide",permalink:"/contributing/opensauced-maintainers-guide/maintainers-guide",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/opensauced-maintainers-guide/maintainers-guide.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"maintainers-guide",title:"OpenSauced Maintainers Guide",sidebar_label:"OpenSauced Maintainers Guide",keywords:["maintainers guide","open source maintainers guide","open source maintainer","open source project management","community management in open-source"]},sidebar:"docs",previous:{title:"Triage Guide",permalink:"/contributing/triage-guide"},next:{title:"Community Maintainers Guidelines",permalink:"/contributing/opensauced-maintainers-guide/community-maintainers-guide"}},u={},c=[{value:"How to Join the Maintainers Team",id:"how-to-join-the-maintainers-team",level:2},{value:"What does the Maintainers Team do?",id:"what-does-the-maintainers-team-do",level:2},{value:"Core Responsibilities",id:"core-responsibilities",level:3},{value:"Committing and Merging Changes",id:"committing-and-merging-changes",level:2}],d={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,i.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Welcome to the OpenSauced Maintainers Guide for contributors who are interested in being part of the maintainer team for OpenSauced repositories."),(0,a.kt)("p",null,"At OpenSauced, we empower contributors to work in the open and support maintainers to make data-driven decisions for their projects."),(0,a.kt)("p",null,"It's important to us that we maintain a healthy environment for contributors and maintainers of our projects."),(0,a.kt)("h2",{id:"how-to-join-the-maintainers-team"},"How to Join the Maintainers Team"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sign up for ",(0,a.kt)("a",{parentName:"li",href:"https://opensauced.pizza/"},"opensauced.pizza"),"."),(0,a.kt)("li",{parentName:"ul"},"Join our ",(0,a.kt)("a",{parentName:"li",href:"https://discord.gg/opensauced"},"Discord community"),"."),(0,a.kt)("li",{parentName:"ul"},"Prove your pizza's worth!")),(0,a.kt)("h2",{id:"what-does-the-maintainers-team-do"},"What does the Maintainers Team do?"),(0,a.kt)("p",null,"Well, like all things in tech, it depends. We have different maintainer teams for each of the repositories. So, it's important that you communicate with the admin maintainer if you have any questions."),(0,a.kt)("h3",{id:"core-responsibilities"},"Core Responsibilities"),(0,a.kt)("p",null,"Your responsibilities may include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Reviewing and merging pull requests (PRs)."),(0,a.kt)("li",{parentName:"ul"},"Providing comments and responses on PRs, issues, discussions, and Discord messages."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/contributing/triage-guide#triage-process"},"Triage issues")," and bug reports."),(0,a.kt)("li",{parentName:"ul"},"Maintaining project documentation."),(0,a.kt)("li",{parentName:"ul"},"Collaborating with the community.")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Creating a positive space for contributors at all stages is one of your most important responsibilities.")),(0,a.kt)("p",null,"As a maintainer, you must:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"adhere to our ",(0,a.kt)("a",{parentName:"li",href:"/contributing/code-of-conduct"},"Code of Conduct")," and be an example for treating contributors with respect,"),(0,a.kt)("li",{parentName:"ul"},"communicate with the other maintainers in a timely and reasonable manner,"),(0,a.kt)("li",{parentName:"ul"},"understand and adhere to project standards.")),(0,a.kt)("h2",{id:"committing-and-merging-changes"},"Committing and Merging Changes"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"For commit and pull request standards, please refer to the ",(0,a.kt)("a",{parentName:"li",href:"/contributing/introduction-to-contributing"},"introduction to contributing"),"."),(0,a.kt)("li",{parentName:"ol"},"Before merging in changes, always run the project locally if UI changes were made."),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},"Squash and merge commits")," when you merge in a PR.")),(0,a.kt)("p",null,"Thank you for being so interested in becoming a maintainer! Please reach out in our ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/docs/discussions/categories/team-discussions"},"team discussions")," if you need help, guidance, or clarification at any time."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b8d96084.254e7560.js b/assets/js/b8d96084.254e7560.js new file mode 100644 index 00000000..57ecdcd5 --- /dev/null +++ b/assets/js/b8d96084.254e7560.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[8222],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>h});var n=o(7294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(o),m=a,h=c["".concat(l,".").concat(m)]||c[m]||d[m]||r;return o?n.createElement(h,i(i({ref:t},u),{},{components:o})):n.createElement(h,i({ref:t},u))}));function h(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var p=2;p{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=o(7462),a=(o(7294),o(3905));const r={id:"100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",sidebar_label:"#100DaysOfOSS",keywords:["100 days of open source","100 days of OSS","Open source contribution","Open source software development","Open source projects for beginners","Open source development"]},i=void 0,s={unversionedId:"community/100-days-of-oss",id:"community/100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",description:"Inspired by the great work of the #100DaysOfCode challenge, we're starting #100DaysOfOSS.",source:"@site/docs/community/100-days-of-oss.md",sourceDirName:"community",slug:"/community/100-days-of-oss",permalink:"/community/100-days-of-oss",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/100-days-of-oss.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",sidebarPosition:100,frontMatter:{id:"100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",sidebar_label:"#100DaysOfOSS",keywords:["100 days of open source","100 days of OSS","Open source contribution","Open source software development","Open source projects for beginners","Open source development"]},sidebar:"docs",previous:{title:"Welcome to the Community",permalink:"/community/welcome-to-the-community"},next:{title:"Hot OpenSauced Project",permalink:"/tools/hot-opensauced"}},l={},p=[{value:"How to Participate",id:"how-to-participate",level:2},{value:"Content Creation",id:"content-creation",level:3},{value:"Project Management",id:"project-management",level:3},{value:"Community Engagement and Leadership",id:"community-engagement-and-leadership",level:3},{value:"Technical Skills",id:"technical-skills",level:3},{value:"Tracking Your Progress",id:"tracking-your-progress",level:3},{value:"The Official Kickoff",id:"the-official-kickoff",level:2},{value:"Support",id:"support",level:2},{value:"Where to Start?",id:"where-to-start",level:2},{value:"The Power of the #100DaysOfOSS Challenge",id:"the-power-of-the-100daysofoss-challenge",level:2},{value:"Why Join the #100DaysOfOSS Challenge?",id:"why-join-the-100daysofoss-challenge",level:2},{value:"Weekly Office Hours",id:"weekly-office-hours",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(c,(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Inspired by the great work of the ",(0,a.kt)("a",{parentName:"p",href:"https://www.100daysofcode.com/"},"#100DaysOfCode challenge"),", we're starting #100DaysOfOSS."),(0,a.kt)("p",null,"With this challenge, OpenSauced hopes to help contributors enhance their skills, expand their abilities, gain practical experience over 100 days, support maintainers, onboard more contributors into open source, and expand the open source community. With a focus on open source software (OSS), we encourage contributors of all technical backgrounds to immerse themselves in the world of collaborative development and engage with a supportive community."),(0,a.kt)("h2",{id:"how-to-participate"},"How to Participate"),(0,a.kt)("p",null,"The beauty of this challenge is that you're not required to code. The main purpose is to grow in your understanding of open source software (OSS), contribute in ways that are meaningful to you, and further develop the skills and knowledge you're interested in pursuing. It's all about personal growth and making a positive impact on the OSS community. Because this challenge is focused on growth, you can participate in any way that helps you achieve your goals, including taking days off when you need it."),(0,a.kt)("p",null,"There are numerous ways to participate in the #100DaysOfOSS challenge, including:"),(0,a.kt)("h3",{id:"content-creation"},"Content Creation"),(0,a.kt)("p",null,"Love creating content? Here's how you can use this skill for the challenge:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Give a talk or presentation on OSS."),(0,a.kt)("li",{parentName:"ul"},"Participate in or even start an X Space."),(0,a.kt)("li",{parentName:"ul"},"Write a blog post or create a video about OSS.")),(0,a.kt)("h3",{id:"project-management"},"Project Management"),(0,a.kt)("p",null,"Want to improve your project management skills? Need to get better at communicating or giving feedback to others? Here's how you can use this skill for the challenge:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Review pull requests."),(0,a.kt)("li",{parentName:"ul"},"Triage issues."),(0,a.kt)("li",{parentName:"ul"},"Start meaningful discussions."),(0,a.kt)("li",{parentName:"ul"},"Write issues to identify bugs or suggest new features.")),(0,a.kt)("h3",{id:"community-engagement-and-leadership"},"Community Engagement and Leadership"),(0,a.kt)("p",null,"Community experience is involved in many different tech jobs, including support, success, Developer Relations, Developer Experience, and more. Community experience can be a valuable skill to develop. Some ways you can do this:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Engage in the community by sharing your insights and knowledge."),(0,a.kt)("li",{parentName:"ul"},"Support contributors working on OSS projects, providing guidance and support."),(0,a.kt)("li",{parentName:"ul"},"Create a study group or accountability group where you work on your goals.")),(0,a.kt)("h3",{id:"technical-skills"},"Technical Skills"),(0,a.kt)("p",null,"Now is a great time to show your technical growth. Here are some paths you can take:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Update or write documentation to improve clarity and usability."),(0,a.kt)("li",{parentName:"ul"},"Maintain a project: review pull requests, triage issues, and respond to questions."),(0,a.kt)("li",{parentName:"ul"},"Submit pull requests to contribute code changes.")),(0,a.kt)("h3",{id:"tracking-your-progress"},"Tracking Your Progress"),(0,a.kt)("p",null,"To keep track of your progress, post on social media, your blog, or any other platform you prefer with:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"progress you made,"),(0,a.kt)("li",{parentName:"ul"},"the day of the challenge indicated by 'D',"),(0,a.kt)("li",{parentName:"ul"},"the hashtag #100DaysOfOSS.")),(0,a.kt)("p",null,"For example, if you're on day one, you could say, \"Today, I reviewed the documentation for the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/app"},"OpenSauced/App"),' repository. D1 #100daysOfOSS." Then, on day two, you would continue with D2, and so on.'),(0,a.kt)("p",null,"Here's what you can do if you're ready to join this challenge:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://twitter.com/intent/tweet?text=I%27m%20joining%20the%20%23100DaysOfOSS%20challenge%20with%20%40saucedopen%20to%20grow%20my%20skills%2C%20gain%20real-world%20experience%20in%20open%20source%2C%20and%20to%20make%20a%20positive%20impact%20on%20the%20OSS%20Community!"},"Post your commitment today on X")," or share on your platform of choice!")),(0,a.kt)("h2",{id:"the-official-kickoff"},"The Official Kickoff"),(0,a.kt)("p",null," The #100DaysOfOSS challenge is flexible; you can join whenever you're ready. Just jump in at any point and begin with day one of your personal challenge."),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("p",null,"To make the most of your #100DaysOfOSS journey, here are some additional resources and events you can explore:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Weekly X Spaces:")," Join our X Spaces, where we discuss open source topics, share insights, and connect with like-minded individuals. Follow us on ",(0,a.kt)("a",{parentName:"p",href:"https://twitter.com/saucedopen"},"X")," to stay updated on upcoming sessions.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Community events:")," Discover a wide range of events on our ",(0,a.kt)("a",{parentName:"p",href:"https://docs.opensauced.pizza/community/welcome-to-the-community"},"community docs page"),". Whether hack days, workshops, or office hours, these events provide excellent opportunities to learn, collaborate, and find new projects to contribute to.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Contribution opportunities:")," If you're actively looking for open source projects to contribute to, check out the ",(0,a.kt)("a",{parentName:"p",href:"https://dev.to/bekahhw/series/23323"},"post")," for new contribution opportunities.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Weekly office hours:")," Have questions or need help? Join us on ",(0,a.kt)("a",{parentName:"p",href:"https://discord.gg/dXvGd8mz"},"Discord")," during our office hours or post on our ",(0,a.kt)("inlineCode",{parentName:"p"},"#100DaysOfOSS")," channel. We're here to help you succeed!"))),(0,a.kt)("h2",{id:"where-to-start"},"Where to Start?"),(0,a.kt)("p",null,"If you're ready to start your #100DaysOfOSS journey, here are some tips to help you get started:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Find a project:")," Explore the ",(0,a.kt)("a",{parentName:"li",href:"https://opensauced.pizza/"},"OpenSauced")," website to find a project that interests you. You can also check out the ",(0,a.kt)("a",{parentName:"li",href:"https://dev.to/bekahhw/series/"},"weekly post")," for exciting contribution opportunities."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Take our Intro To Open Source course:")," If you're new to open source, we recommend taking our ",(0,a.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source course")," to learn more about open source and how to get started."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Record your journey:")," You will learn a lot as you navigate this challenge, so we highly recommend using our ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/open-sauced/100-days-of-oss-template"},"#100DaysOfOSS journal template")," on GitHub or ",(0,a.kt)("a",{parentName:"li",href:"https://www.notion.so/a0m0rajab/100-Days-Of-Open-Source-2615e66772e14152897002e348c5f1bc?pvs=13"},"Notion")," to help you reflect. Remember, this is ",(0,a.kt)("em",{parentName:"li"},"your")," journey, so feel free to customize them however you like."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Check our Contributors Guide:")," If you're new to contributing to open source, we recommend checking out our ",(0,a.kt)("a",{parentName:"li",href:"https://docs.opensauced.pizza/contributors/contributors-guide-to-open-sauced/"},"Contributors Guide to OpenSauced")," to learn more about the process and best practices.")),(0,a.kt)("h2",{id:"the-power-of-the-100daysofoss-challenge"},"The Power of the #100DaysOfOSS Challenge"),(0,a.kt)("p",null,"The #100DaysOfOSS challenge offers a supportive community where developers can find encouragement, share experiences, and overcome roadblocks together."),(0,a.kt)("p",null,"Our hope is that the community will provide a safe space to discuss challenges, celebrate achievements, and exchange insights, creating an environment that helps individuals stay on track and avoid giving up."),(0,a.kt)("h2",{id:"why-join-the-100daysofoss-challenge"},"Why Join the #100DaysOfOSS Challenge?"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Skill enhancement"),": By working on real-world projects, you'll gain practical experience and exposure to different projects, documentation, communities, programming languages, frameworks, and tools. You'll also learn from experienced developers, receive feedback on your code, and improve your problem-solving abilities.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Collaboration and networking"),": You'll have the opportunity to work alongside other contributors, collaborate on shared goals, and build professional relationships. This experience can lead to networking opportunities, mentorship, and exposure to diverse perspectives in tech.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Resume and portfolio boost"),": Experience in open source demonstrates your ability to work in a team, follow best practices, and contribute to larger codebases. Open source contributions are tangible evidence of your skills, commitment, and ability to grow.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Learning from peers"),": By examining the codebase, participating in discussions, engaging in the community, and reviewing pull requests, contributors can gain insights into different approaches to community, projects, coding styles, architecture patterns, and software development best practices, accelerating a developer's learning curve.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Making a positive impact"),": Your contributions benefit other contributors who rely on these projects, fostering a sense of fulfillment and giving back to the community."))),(0,a.kt)("h3",{id:"weekly-office-hours"},"Weekly Office Hours"),(0,a.kt)("p",null,"Have questions or need help? Join us on ",(0,a.kt)("a",{parentName:"p",href:"https://discord.gg/opensauced"},"Discord")," and post on our ",(0,a.kt)("inlineCode",{parentName:"p"},"#100DaysOfOSS")," channel. We're here to help you succeed!"),(0,a.kt)("p",null,"Happy contributing, and best of luck on your #100DaysOfOSS adventure!"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b8d96084.da7cfe99.js b/assets/js/b8d96084.da7cfe99.js deleted file mode 100644 index 896862d3..00000000 --- a/assets/js/b8d96084.da7cfe99.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[8222],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>h});var n=o(7294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(o),m=a,h=c["".concat(l,".").concat(m)]||c[m]||d[m]||r;return o?n.createElement(h,i(i({ref:t},u),{},{components:o})):n.createElement(h,i({ref:t},u))}));function h(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var p=2;p{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=o(7462),a=(o(7294),o(3905));const r={id:"100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",sidebar_label:"#100DaysOfOSS",keywords:["100 days of open source","100 days of OSS","Open source contribution","Open source software development","Open source projects for beginners","Open source development"]},i=void 0,s={unversionedId:"community/100-days-of-oss",id:"community/100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",description:"Inspired by the great work of the #100DaysOfCode challenge, we're starting #100DaysOfOSS.",source:"@site/docs/community/100-days-of-oss.md",sourceDirName:"community",slug:"/community/100-days-of-oss",permalink:"/community/100-days-of-oss",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/100-days-of-oss.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",sidebarPosition:100,frontMatter:{id:"100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",sidebar_label:"#100DaysOfOSS",keywords:["100 days of open source","100 days of OSS","Open source contribution","Open source software development","Open source projects for beginners","Open source development"]},sidebar:"docs",previous:{title:"Welcome to the Community",permalink:"/community/welcome-to-the-community"},next:{title:"Hot OpenSauced Project",permalink:"/tools/hot-opensauced"}},l={},p=[{value:"How to Participate",id:"how-to-participate",level:2},{value:"Content Creation",id:"content-creation",level:3},{value:"Project Management",id:"project-management",level:3},{value:"Community Engagement and Leadership",id:"community-engagement-and-leadership",level:3},{value:"Technical Skills",id:"technical-skills",level:3},{value:"Tracking Your Progress",id:"tracking-your-progress",level:3},{value:"The Official Kickoff",id:"the-official-kickoff",level:2},{value:"Support",id:"support",level:2},{value:"Where to Start?",id:"where-to-start",level:2},{value:"The Power of the #100DaysOfOSS Challenge",id:"the-power-of-the-100daysofoss-challenge",level:2},{value:"Why Join the #100DaysOfOSS Challenge?",id:"why-join-the-100daysofoss-challenge",level:2},{value:"Weekly Office Hours",id:"weekly-office-hours",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(c,(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Inspired by the great work of the ",(0,a.kt)("a",{parentName:"p",href:"https://www.100daysofcode.com/"},"#100DaysOfCode challenge"),", we're starting #100DaysOfOSS."),(0,a.kt)("p",null,"With this challenge, OpenSauced hopes to help contributors enhance their skills, expand their abilities, gain practical experience over 100 days, support maintainers, onboard more contributors into open source, and expand the open source community. With a focus on open source software (OSS), we encourage contributors of all technical backgrounds to immerse themselves in the world of collaborative development and engage with a supportive community."),(0,a.kt)("h2",{id:"how-to-participate"},"How to Participate"),(0,a.kt)("p",null,"The beauty of this challenge is that you're not required to code. The main purpose is to grow in your understanding of open source software (OSS), contribute in ways that are meaningful to you, and further develop the skills and knowledge you're interested in pursuing. It's all about personal growth and making a positive impact on the OSS community. Because this challenge is focused on growth, you can participate in any way that helps you achieve your goals, including taking days off when you need it."),(0,a.kt)("p",null,"There are numerous ways to participate in the #100DaysOfOSS challenge, including:"),(0,a.kt)("h3",{id:"content-creation"},"Content Creation"),(0,a.kt)("p",null,"Love creating content? Here's how you can use this skill for the challenge:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Give a talk or presentation on OSS."),(0,a.kt)("li",{parentName:"ul"},"Participate in or even start an X Space."),(0,a.kt)("li",{parentName:"ul"},"Write a blog post or create a video about OSS.")),(0,a.kt)("h3",{id:"project-management"},"Project Management"),(0,a.kt)("p",null,"Want to improve your project management skills? Need to get better at communicating or giving feedback to others? Here's how you can use this skill for the challenge:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Review pull requests."),(0,a.kt)("li",{parentName:"ul"},"Triage issues."),(0,a.kt)("li",{parentName:"ul"},"Start meaningful discussions."),(0,a.kt)("li",{parentName:"ul"},"Write issues to identify bugs or suggest new features.")),(0,a.kt)("h3",{id:"community-engagement-and-leadership"},"Community Engagement and Leadership"),(0,a.kt)("p",null,"Community experience is involved in many different tech jobs, including support, success, Developer Relations, Developer Experience, and more. Community experience can be a valuable skill to develop. Some ways you can do this:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Engage in the community by sharing your insights and knowledge."),(0,a.kt)("li",{parentName:"ul"},"Support contributors working on OSS projects, providing guidance and support."),(0,a.kt)("li",{parentName:"ul"},"Create a study group or accountability group where you work on your goals.")),(0,a.kt)("h3",{id:"technical-skills"},"Technical Skills"),(0,a.kt)("p",null,"Now is a great time to show your technical growth. Here are some paths you can take:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Update or write documentation to improve clarity and usability."),(0,a.kt)("li",{parentName:"ul"},"Maintain a project: review pull requests, triage issues, and respond to questions."),(0,a.kt)("li",{parentName:"ul"},"Submit pull requests to contribute code changes.")),(0,a.kt)("h3",{id:"tracking-your-progress"},"Tracking Your Progress"),(0,a.kt)("p",null,"To keep track of your progress, post on social media, your blog, or any other platform you prefer with:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"progress you made,"),(0,a.kt)("li",{parentName:"ul"},"the day of the challenge indicated by 'D',"),(0,a.kt)("li",{parentName:"ul"},"the hashtag #100DaysOfOSS.")),(0,a.kt)("p",null,"For example, if you're on day one, you could say, \"Today, I reviewed the documentation for the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/app"},"OpenSauced/App"),' repository. D1 #100daysOfOSS." Then, on day two, you would continue with D2, and so on.'),(0,a.kt)("p",null,"Here's what you can do if you're ready to join this challenge:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://twitter.com/intent/tweet?text=I%27m%20joining%20the%20%23100DaysOfOSS%20challenge%20with%20%40saucedopen%20to%20grow%20my%20skills%2C%20gain%20real-world%20experience%20in%20open%20source%2C%20and%20to%20make%20a%20positive%20impact%20on%20the%20OSS%20Community!"},"Post your commitment today on X")," or share on your platform of choice!")),(0,a.kt)("h2",{id:"the-official-kickoff"},"The Official Kickoff"),(0,a.kt)("p",null," The #100DaysOfOSS challenge is flexible; you can join whenever you're ready. Just jump in at any point and begin with day one of your personal challenge."),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("p",null,"To make the most of your #100DaysOfOSS journey, here are some additional resources and events you can explore:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Weekly X Spaces:")," Join our X Spaces, where we discuss open source topics, share insights, and connect with like-minded individuals. Follow us on ",(0,a.kt)("a",{parentName:"p",href:"https://twitter.com/saucedopen"},"X")," to stay updated on upcoming sessions.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Community events:")," Discover a wide range of events on our ",(0,a.kt)("a",{parentName:"p",href:"https://docs.opensauced.pizza/community/welcome-to-the-community"},"community docs page"),". Whether hack days, workshops, or office hours, these events provide excellent opportunities to learn, collaborate, and find new projects to contribute to.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Contribution opportunities:")," If you're actively looking for open source projects to contribute to, check out the ",(0,a.kt)("a",{parentName:"p",href:"https://dev.to/bekahhw/series/23323"},"post")," for new contribution opportunities.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Weekly office hours:")," Have questions or need help? Join us on ",(0,a.kt)("a",{parentName:"p",href:"https://discord.gg/dXvGd8mz"},"Discord")," during our office hours or post on our ",(0,a.kt)("inlineCode",{parentName:"p"},"#100DaysOfOSS")," channel. We're here to help you succeed!"))),(0,a.kt)("h2",{id:"where-to-start"},"Where to Start?"),(0,a.kt)("p",null,"If you're ready to start your #100DaysOfOSS journey, here are some tips to help you get started:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Find a project:")," Explore the ",(0,a.kt)("a",{parentName:"li",href:"https://opensauced.pizza/"},"OpenSauced")," website to find a project that interests you. You can also check out the ",(0,a.kt)("a",{parentName:"li",href:"https://dev.to/bekahhw/series/"},"weekly post")," for exciting contribution opportunities."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Take our Intro To Open Source course:")," If you're new to open source, we recommend taking our ",(0,a.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source course")," to learn more about open source and how to get started."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Record your journey:")," You will learn a lot as you navigate this challenge, so we highly recommend using our ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/open-sauced/100-days-of-oss-template"},"#100DaysOfOSS journal template")," on GitHub or ",(0,a.kt)("a",{parentName:"li",href:"https://www.notion.so/a0m0rajab/100-Days-Of-Open-Source-2615e66772e14152897002e348c5f1bc?pvs=13"},"Notion")," to help you reflect. Remember, this is ",(0,a.kt)("em",{parentName:"li"},"your")," journey, so feel free to customize them however you like."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Check our Contributors Guide:")," If you're new to contributing to open source, we recommend checking out our ",(0,a.kt)("a",{parentName:"li",href:"https://docs.opensauced.pizza/contributors/contributors-guide-to-open-sauced/"},"Contributors Guide to OpenSauced")," to learn more about the process and best practices.")),(0,a.kt)("h2",{id:"the-power-of-the-100daysofoss-challenge"},"The Power of the #100DaysOfOSS Challenge"),(0,a.kt)("p",null,"The #100DaysOfOSS challenge offers a supportive community where developers can find encouragement, share experiences, and overcome roadblocks together."),(0,a.kt)("p",null,"Our hope is that the community will provide a safe space to discuss challenges, celebrate achievements, and exchange insights, creating an environment that helps individuals stay on track and avoid giving up."),(0,a.kt)("h2",{id:"why-join-the-100daysofoss-challenge"},"Why Join the #100DaysOfOSS Challenge?"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Skill enhancement"),": By working on real-world projects, you'll gain practical experience and exposure to different projects, documentation, communities, programming languages, frameworks, and tools. You'll also learn from experienced developers, receive feedback on your code, and improve your problem-solving abilities.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Collaboration and networking"),": You'll have the opportunity to work alongside other contributors, collaborate on shared goals, and build professional relationships. This experience can lead to networking opportunities, mentorship, and exposure to diverse perspectives in tech.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Resume and portfolio boost"),": Experience in open source demonstrates your ability to work in a team, follow best practices, and contribute to larger codebases. Open source contributions are tangible evidence of your skills, commitment, and ability to grow.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Learning from peers"),": By examining the codebase, participating in discussions, engaging in the community, and reviewing pull requests, contributors can gain insights into different approaches to community, projects, coding styles, architecture patterns, and software development best practices, accelerating a developer's learning curve.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Making a positive impact"),": Your contributions benefit other contributors who rely on these projects, fostering a sense of fulfillment and giving back to the community."))),(0,a.kt)("h3",{id:"weekly-office-hours"},"Weekly Office Hours"),(0,a.kt)("p",null,"Have questions or need help? Join us on ",(0,a.kt)("a",{parentName:"p",href:"https://discord.gg/opensauced"},"Discord")," and post on our ",(0,a.kt)("inlineCode",{parentName:"p"},"#100DaysOfOSS")," channel. We're here to help you succeed!"),(0,a.kt)("p",null,"Happy contributing, and best of luck on your #100DaysOfOSS adventure!"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c01322eb.8d90c00c.js b/assets/js/c01322eb.1132e2b7.js similarity index 64% rename from assets/js/c01322eb.8d90c00c.js rename to assets/js/c01322eb.1132e2b7.js index 569bd3e7..198c7ed7 100644 --- a/assets/js/c01322eb.8d90c00c.js +++ b/assets/js/c01322eb.1132e2b7.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4205],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=o.createContext({}),h=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=h(e.components);return o.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},g=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=h(n),g=i,m=p["".concat(l,".").concat(g)]||p[g]||u[g]||r;return n?o.createElement(m,a(a({ref:t},c),{},{components:n})):o.createElement(m,a({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,a=new Array(r);a[0]=g;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,a[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var o=n(7462),i=(n(7294),n(3905));const r={id:"highlights",title:"Highlight",sidebar_label:"Highlight",keywords:["highlights","posting","Content Highlights","Featured Content","Noteworthy Points","Key Takeaways","Highlighted Information","Standout Features","Important Details","Highlighted Sections",'Posting Highlights"',"Notable Content","Highlighted Insights"]},a=void 0,s={unversionedId:"tools/chrome-extension/highlights",id:"tools/chrome-extension/highlights",title:"Highlight",description:"You can access the post to highlight it from the popup window in the extension. When you clicked, it will automatically, populate the PR or issue title, here you can use our AI functions to get a summary of the highlight similar to the PR summary.",source:"@site/docs/tools/chrome-extension/highlights.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/highlights",permalink:"/tools/chrome-extension/highlights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/highlights.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"highlights",title:"Highlight",sidebar_label:"Highlight",keywords:["highlights","posting","Content Highlights","Featured Content","Noteworthy Points","Key Takeaways","Highlighted Information","Standout Features","Important Details","Highlighted Sections",'Posting Highlights"',"Notable Content","Highlighted Insights"]},sidebar:"docs",previous:{title:"PR Description",permalink:"/tools/chrome-extension/pr-description"},next:{title:"Refactoring and Testing",permalink:"/tools/chrome-extension/refactoring-and-testing"}},l={},h=[],c={toc:h},p="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"You can access the post to highlight it from the popup window in the extension. When you clicked, it will automatically, populate the PR or issue title, here you can use our AI functions to get a summary of the highlight similar to the PR summary."),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241761099-e7a745c8-204e-4a4d-b313-867ab99af0b2.png",alt:"location of post to highlight"})),(0,i.kt)("p",null,"If your Highlight is successfully posted, you will get a message with an option to see the Highlight on the OpenSauced website."),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://github.com/open-sauced/docs.opensauced.pizza/assets/18273833/723ac624-e996-45f8-acdf-0d3ff08af90b",alt:"Successful message example"})),(0,i.kt)("p",null,"But if there is an error with the summarization, you will see it in the text area, as in the example below:"),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241762187-f6968a71-c344-495f-8eed-f1de9aff7599.gif",alt:"Error message"})))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4205],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=o.createContext({}),h=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=h(e.components);return o.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},g=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=h(n),g=i,m=p["".concat(l,".").concat(g)]||p[g]||u[g]||r;return n?o.createElement(m,a(a({ref:t},c),{},{components:n})):o.createElement(m,a({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,a=new Array(r);a[0]=g;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,a[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var o=n(7462),i=(n(7294),n(3905));const r={id:"highlights",title:"Highlight",sidebar_label:"Highlight",keywords:["highlights","posting","Content Highlights","Featured Content","Noteworthy Points","Key Takeaways","Highlighted Information","Standout Features","Important Details","Highlighted Sections",'Posting Highlights"',"Notable Content","Highlighted Insights"]},a=void 0,s={unversionedId:"tools/chrome-extension/highlights",id:"tools/chrome-extension/highlights",title:"Highlight",description:"You can access the post to highlight it from the popup window in the extension. When you clicked, it will automatically, populate the PR or issue title, here you can use our AI functions to get a summary of the highlight similar to the PR summary.",source:"@site/docs/tools/chrome-extension/highlights.md",sourceDirName:"tools/chrome-extension",slug:"/tools/chrome-extension/highlights",permalink:"/tools/chrome-extension/highlights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/tools/chrome-extension/highlights.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"highlights",title:"Highlight",sidebar_label:"Highlight",keywords:["highlights","posting","Content Highlights","Featured Content","Noteworthy Points","Key Takeaways","Highlighted Information","Standout Features","Important Details","Highlighted Sections",'Posting Highlights"',"Notable Content","Highlighted Insights"]},sidebar:"docs",previous:{title:"PR Description",permalink:"/tools/chrome-extension/pr-description"},next:{title:"Refactoring and Testing",permalink:"/tools/chrome-extension/refactoring-and-testing"}},l={},h=[],c={toc:h},p="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"You can access the post to highlight it from the popup window in the extension. When you clicked, it will automatically, populate the PR or issue title, here you can use our AI functions to get a summary of the highlight similar to the PR summary."),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241761099-e7a745c8-204e-4a4d-b313-867ab99af0b2.png",alt:"location of post to highlight"})),(0,i.kt)("p",null,"If your Highlight is successfully posted, you will get a message with an option to see the Highlight on the OpenSauced website."),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://github.com/open-sauced/docs.opensauced.pizza/assets/18273833/723ac624-e996-45f8-acdf-0d3ff08af90b",alt:"Successful message example"})),(0,i.kt)("p",null,"But if there is an error with the summarization, you will see it in the text area, as in the example below:"),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241762187-f6968a71-c344-495f-8eed-f1de9aff7599.gif",alt:"Error message"})))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cf3cdde3.c472a238.js b/assets/js/cf3cdde3.6b22b1a0.js similarity index 56% rename from assets/js/cf3cdde3.c472a238.js rename to assets/js/cf3cdde3.6b22b1a0.js index ac172e12..c2a963cd 100644 --- a/assets/js/cf3cdde3.c472a238.js +++ b/assets/js/cf3cdde3.6b22b1a0.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[3644],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var o=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var u=o.createContext({}),l=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},h=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},g=o.forwardRef((function(e,t){var r=e.components,i=e.mdxType,n=e.originalType,u=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=l(r),g=i,d=p["".concat(u,".").concat(g)]||p[g]||c[g]||n;return r?o.createElement(d,a(a({ref:t},h),{},{components:r})):o.createElement(d,a({ref:t},h))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=r.length,a=new Array(n);a[0]=g;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:i,a[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>c,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var o=r(7462),i=(r(7294),r(3905));const n={id:"highlights",title:"Highlight Your Open Source Contributions",sidebar_label:"Highlights",keywords:["Highlights","Open Source Highlights","Contribution Highlights","Highlight your open source contributiions","Open Source Contribution Highlights"]},a=void 0,s={unversionedId:"features/highlights",id:"features/highlights",title:"Highlight Your Open Source Contributions",description:"The Highlights feature is the place you can display your favorite open source contributions, share the story, and inspire others to join you in your open source journey. For maintainers, it's a great way to showcase your project and the issues that need support and attract new contributors.",source:"@site/docs/features/highlights.md",sourceDirName:"features",slug:"/features/highlights",permalink:"/features/highlights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/highlights.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"highlights",title:"Highlight Your Open Source Contributions",sidebar_label:"Highlights",keywords:["Highlights","Open Source Highlights","Contribution Highlights","Highlight your open source contributiions","Open Source Contribution Highlights"]},sidebar:"docs",previous:{title:"Repository Pages",permalink:"/features/repo-pages"},next:{title:"Dev Card",permalink:"/features/dev-card"}},u={},l=[{value:"How to Add a Highlight",id:"how-to-add-a-highlight",level:2}],h={toc:l},p="wrapper";function c(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,o.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The Highlights feature is the place you can display your favorite open source contributions, share the story, and inspire others to join you in your open source journey. For maintainers, it's a great way to showcase your project and the issues that need support and attract new contributors."),(0,i.kt)("p",null,"There are currently three types of highlights you can add to your profile:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Dev.to blog post"),(0,i.kt)("li",{parentName:"ul"},"Pull request"),(0,i.kt)("li",{parentName:"ul"},"Issue")),(0,i.kt)("h2",{id:"how-to-add-a-highlight"},"How to Add a Highlight"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("a",{parentName:"li",href:"https://app.opensauced.pizza/feed"},"OpenSauced's Highlights feed"),"."),(0,i.kt)("li",{parentName:"ul"},'Click the "Post a highlight to show your work!" input.'),(0,i.kt)("li",{parentName:"ul"},"Paste the URL to your blog post, pull request, or issue in the bottom input."),(0,i.kt)("li",{parentName:"ul"},"Either use our Auto-Summarize feature or write your own summary.")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"highlights demo",src:r(7352).Z,width:"2294",height:"1066"})),(0,i.kt)("p",null,"For more examples of highlights, go to the ",(0,i.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/feed"},"OpenSauced Highlights feed"),"."),(0,i.kt)("p",null,"Eager to get started? Check out the ",(0,i.kt)("a",{parentName:"p",href:"https://intro.opensauced.pizza/#/06-the-secret-sauce?id=effectively-highlight-your-contributions"},"Effectively Highlight Your Contribution"),' section in our free "Intro to Open Source" course to learn more.'))}c.isMDXComponent=!0},7352:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/highlight-e3a2da2446fe91467a31d225755bf40a.gif"}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[3644],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>d});var o=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var u=o.createContext({}),l=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},h=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},g=o.forwardRef((function(e,t){var r=e.components,i=e.mdxType,n=e.originalType,u=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=l(r),g=i,d=p["".concat(u,".").concat(g)]||p[g]||c[g]||n;return r?o.createElement(d,a(a({ref:t},h),{},{components:r})):o.createElement(d,a({ref:t},h))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=r.length,a=new Array(n);a[0]=g;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:i,a[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>c,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var o=r(7462),i=(r(7294),r(3905));const n={id:"highlights",title:"Highlight Your Open Source Contributions",sidebar_label:"Highlights",keywords:["Highlights","Open Source Highlights","Contribution Highlights","Highlight your open source contributiions","Open Source Contribution Highlights"]},a=void 0,s={unversionedId:"features/highlights",id:"features/highlights",title:"Highlight Your Open Source Contributions",description:"The Highlights feature is the place you can display your favorite open source contributions, share the story, and inspire others to join you in your open source journey. For maintainers, it's a great way to showcase your project and the issues that need support and attract new contributors.",source:"@site/docs/features/highlights.md",sourceDirName:"features",slug:"/features/highlights",permalink:"/features/highlights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/highlights.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"highlights",title:"Highlight Your Open Source Contributions",sidebar_label:"Highlights",keywords:["Highlights","Open Source Highlights","Contribution Highlights","Highlight your open source contributiions","Open Source Contribution Highlights"]},sidebar:"docs",previous:{title:"Repository Pages",permalink:"/features/repo-pages"},next:{title:"Dev Card",permalink:"/features/dev-card"}},u={},l=[{value:"How to Add a Highlight",id:"how-to-add-a-highlight",level:2}],h={toc:l},p="wrapper";function c(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,o.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The Highlights feature is the place you can display your favorite open source contributions, share the story, and inspire others to join you in your open source journey. For maintainers, it's a great way to showcase your project and the issues that need support and attract new contributors."),(0,i.kt)("p",null,"There are currently three types of highlights you can add to your profile:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Dev.to blog post"),(0,i.kt)("li",{parentName:"ul"},"Pull request"),(0,i.kt)("li",{parentName:"ul"},"Issue")),(0,i.kt)("h2",{id:"how-to-add-a-highlight"},"How to Add a Highlight"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("a",{parentName:"li",href:"https://app.opensauced.pizza/feed"},"OpenSauced's Highlights feed"),"."),(0,i.kt)("li",{parentName:"ul"},'Click the "Post a highlight to show your work!" input.'),(0,i.kt)("li",{parentName:"ul"},"Paste the URL to your blog post, pull request, or issue in the bottom input."),(0,i.kt)("li",{parentName:"ul"},"Either use our Auto-Summarize feature or write your own summary.")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"highlights demo",src:r(7352).Z,width:"2294",height:"1066"})),(0,i.kt)("p",null,"For more examples of highlights, go to the ",(0,i.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/feed"},"OpenSauced Highlights feed"),"."),(0,i.kt)("p",null,"Eager to get started? Check out the ",(0,i.kt)("a",{parentName:"p",href:"https://intro.opensauced.pizza/#/06-the-secret-sauce?id=effectively-highlight-your-contributions"},"Effectively Highlight Your Contribution"),' section in our free "Intro to Open Source" course to learn more.'))}c.isMDXComponent=!0},7352:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/highlight-e3a2da2446fe91467a31d225755bf40a.gif"}}]); \ No newline at end of file diff --git a/assets/js/d55a4e5f.8fecf01e.js b/assets/js/d55a4e5f.8fecf01e.js deleted file mode 100644 index a76b3d6a..00000000 --- a/assets/js/d55a4e5f.8fecf01e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4955],{3905:(e,t,o)=>{o.d(t,{Zo:()=>l,kt:()=>k});var a=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function s(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function n(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=a.createContext({}),p=function(e){var t=a.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):n(n({},t),e)),o},l=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var o=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),u=p(o),h=r,k=u["".concat(c,".").concat(h)]||u[h]||d[h]||s;return o?a.createElement(k,n(n({ref:t},l),{},{components:o})):a.createElement(k,n({ref:t},l))}));function k(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=o.length,n=new Array(s);n[0]=h;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:r,n[1]=i;for(var p=2;p{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>n,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var a=o(7462),r=(o(7294),o(3905));const s={id:"workspaces",title:"Share, Collaborate, and Track with Workspaces",sidebar_label:"Workspaces",keywords:["contributors","Monitor Contributors","Track open source projects","open source teams","open source companies","open source contributors","open source maintainers"]},n=void 0,i={unversionedId:"features/workspaces",id:"features/workspaces",title:"Share, Collaborate, and Track with Workspaces",description:"In the OpenSauced app, your work unfolds within a Workspace: a virtual environment for managing information\u2014whether for individual productivity, team collaboration, or company-wide operations. Workspaces serve as a centralized hub for sharing, collaborating on, and tracking multiple repositories and organizations and their contributors in one place. This feature is designed to streamline your open source involvement, making it more efficient and interconnected.",source:"@site/docs/features/workspaces.md",sourceDirName:"features",slug:"/features/workspaces",permalink:"/features/workspaces",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/workspaces.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"workspaces",title:"Share, Collaborate, and Track with Workspaces",sidebar_label:"Workspaces",keywords:["contributors","Monitor Contributors","Track open source projects","open source teams","open source companies","open source contributors","open source maintainers"]},sidebar:"docs",previous:{title:"FAQs",permalink:"/welcome/faqs"},next:{title:"Repository Insights",permalink:"/features/repo-insights"}},c={},p=[{value:"Understanding Workspaces",id:"understanding-workspaces",level:2},{value:"The Sidebar",id:"the-sidebar",level:3},{value:"Your Workspaces",id:"your-workspaces",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard",level:4},{value:"How to Create or Access a Workspace",id:"how-to-create-or-access-a-workspace",level:2},{value:"How to Add Repositories to a Workspace",id:"how-to-add-repositories-to-a-workspace",level:3},{value:"Changing Workspaces",id:"changing-workspaces",level:3},{value:"How to Share a Workspace",id:"how-to-share-a-workspace",level:2},{value:"Team Workspaces",id:"team-workspaces",level:2}],l={toc:p},u="wrapper";function d(e){let{components:t,...s}=e;return(0,r.kt)(u,(0,a.Z)({},l,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"In the OpenSauced app, your work unfolds within a Workspace: a virtual environment for managing information\u2014whether for individual productivity, team collaboration, or company-wide operations. Workspaces serve as a centralized hub for sharing, collaborating on, and ",(0,r.kt)("strong",{parentName:"p"},"tracking multiple repositories and organizations and their contributors in one place"),". This feature is designed to streamline your open source involvement, making it more efficient and interconnected."),(0,r.kt)("h2",{id:"understanding-workspaces"},"Understanding Workspaces"),(0,r.kt)("p",null,"You can navigate your workspaces from the sidebar. Each workspace has its own dashboard, which includes the repositories you're tracking in the workspace."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Workspace Access",src:o(96).Z,width:"1257",height:"477"})),(0,r.kt)("p",null,"By default, all workspaces are public. This means that anyone with the link to your workspace can view it, including all of your Insight Pages in the workspace. If you want to make your workspace private, you can upgrade your account to a PRO plan."),(0,r.kt)("h3",{id:"the-sidebar"},"The Sidebar"),(0,r.kt)("p",null,"The expandable sidebar includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Options for creating and viewing workspaces."),(0,r.kt)("li",{parentName:"ul"},"Access to your Contributor and Repository Insights pages."),(0,r.kt)("li",{parentName:"ul"},"Links to support.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Sidebar",src:o(7769).Z,width:"1444",height:"965"})),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"We recently had a naming change. The ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributors Insights")," feature was previously called Lists, and the ",(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repositories Insights")," feature was previously called Insights.")),(0,r.kt)("h3",{id:"your-workspaces"},"Your Workspaces"),(0,r.kt)("p",null,"In your workspace dashboards, you can create, view, and manage your workspaces."),(0,r.kt)("h4",{id:"repositories-dashboard"},"Repositories Dashboard"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Workspaces",src:o(4255).Z,width:"3200",height:"1800"})),(0,r.kt)("p",null,"Within the repositories dashboard, you can view the following metrics, which are over a period of thirty days by default:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Pull Requests"),": This includes the total opened and merged pull requests for the repositories included in your workspace, as well as the velocity of pull requests being merged."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Issues"),": This includes the total opened and closed issues for the repositories included in your workspace, as well as the velocity of issues being closed."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Engagement"),": This includes the total stars, forks, and activity ratio for the repositories included in your workspace.")),(0,r.kt)("h2",{id:"how-to-create-or-access-a-workspace"},"How to Create or Access a Workspace"),(0,r.kt)("p",null,"To create a workspace, start by accessing the ",(0,r.kt)("strong",{parentName:"p"},"Workspace switcher")," in the sidebar. From there, you can create a new workspace or view an existing one."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"workspace switcher",src:o(7281).Z,width:"1877",height:"888"})),(0,r.kt)("br",null),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},'Whenever you select "Home", you\'ll be taken to the last workspace you opened.')),(0,r.kt)("h3",{id:"how-to-add-repositories-to-a-workspace"},"How to Add Repositories to a Workspace"),(0,r.kt)("p",null,"If you're creating a new workspace, you'll have the option to add repositories at the time of creation."),(0,r.kt)("p",null,'Start by creating a workspace name, then click "Add repositories." You\'ll have three options for adding repositories:'),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Search for Repositories"),": Use our search tool by adding an organization name, followed by the repository name, and add them to your workspace."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Import a GitHub Organization"),": Connect to your GitHub organizations to create a workspace from an organization. (If you're having trouble with this, see the \"",(0,r.kt)("a",{parentName:"li",href:"/welcome/faqs#sync-your-github-team"},"Sync Your GitHub Team"),'" section in our FAQs.)'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Import Repositories"),": Paste a list of repositories to add to your workspace.")),(0,r.kt)("p",null,"Once your repositories are added, you'll be able to see them in your repository dashboard. You can also edit your workspace to add or remove repositories anytime."),(0,r.kt)("h3",{id:"changing-workspaces"},"Changing Workspaces"),(0,r.kt)("p",null,"Anything you create in a workspace is specific to that workspace. When you switch workspaces, you'll see the Repository and Contributor Insights specific to that workspace."),(0,r.kt)("h2",{id:"how-to-share-a-workspace"},"How to Share a Workspace"),(0,r.kt)("p",null,"You can share your workspace with others by copying the URL and sending it to them. If your workspace is private (a PRO plan feature), only those with access to the workspace will be able to view it."),(0,r.kt)("h2",{id:"team-workspaces"},"Team Workspaces"),(0,r.kt)("p",null,"Team workspaces are part of the PRO plan and are designed to help teams collaborate on and understand open source projects. Team workspaces are public by default. However, you can switch it to private in your settings so only team members can view the workspace."),(0,r.kt)("p",null,"By upgrading to a team workspace, you'll have unlimited Contributor and Repository Insights, as well as the ability to toggle between private and public visibility. "),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"The visibility of your Insights Pages is determined by the visibility of the workspace. If your workspace is public, your insights will be public. If your workspace is private, your insights will be private.")),(0,r.kt)("p",null,'You can add someone to your workspace by clicking on the "Edit" button located at the top right of the workspace dashboard and entering the username of the workspace member you would like to add.'),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Add People",src:o(4958).Z,width:"916",height:"141"})),(0,r.kt)("p",null,"Once you add a member to a workspace, they will be able to view the workspace and its contents. You will also be able to edit their permissions for the workspace, including owner, editor, or viewer permissions. This workspace will now appear in their workspace switcher."))}d.isMDXComponent=!0},4958:(e,t,o)=>{o.d(t,{Z:()=>a});const a=o.p+"assets/images/add-to-workspace-e8e843efa9c124bbce60110af201612a.png"},96:(e,t,o)=>{o.d(t,{Z:()=>a});const a=o.p+"assets/images/workspace-access-72e8f9933caa4b45be55046d94f84fdb.png"},7769:(e,t,o)=>{o.d(t,{Z:()=>a});const a=o.p+"assets/images/workspace-sidebar-258a48d99ed9cb31f7449da2de965d86.png"},7281:(e,t,o)=>{o.d(t,{Z:()=>a});const a=o.p+"assets/images/workspace-switcher-b2400ec5c309a762f822268b44779930.png"},4255:(e,t,o)=>{o.d(t,{Z:()=>a});const a=o.p+"assets/images/workspace-644e59bed496d2a0df7502aaa833129e.png"}}]); \ No newline at end of file diff --git a/assets/js/d55a4e5f.91d02e07.js b/assets/js/d55a4e5f.91d02e07.js new file mode 100644 index 00000000..b6294914 --- /dev/null +++ b/assets/js/d55a4e5f.91d02e07.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[4955],{3905:(e,t,o)=>{o.d(t,{Zo:()=>l,kt:()=>k});var a=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function s(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function n(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=a.createContext({}),p=function(e){var t=a.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):n(n({},t),e)),o},l=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var o=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),u=p(o),h=r,k=u["".concat(c,".").concat(h)]||u[h]||d[h]||s;return o?a.createElement(k,n(n({ref:t},l),{},{components:o})):a.createElement(k,n({ref:t},l))}));function k(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=o.length,n=new Array(s);n[0]=h;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:r,n[1]=i;for(var p=2;p{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>n,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var a=o(7462),r=(o(7294),o(3905));const s={id:"workspaces",title:"Share, Collaborate, and Track with Workspaces",sidebar_label:"Workspaces",keywords:["contributors","Monitor Contributors","Track open source projects","open source teams","open source companies","open source contributors","open source maintainers"]},n=void 0,i={unversionedId:"features/workspaces",id:"features/workspaces",title:"Share, Collaborate, and Track with Workspaces",description:"In the OpenSauced app, your work unfolds within a Workspace: a virtual environment for managing information\u2014whether for individual productivity, team collaboration, or company-wide operations. Workspaces serve as a centralized hub for sharing, collaborating on, and tracking multiple repositories and organizations and their contributors in one place. This feature is designed to streamline your open source involvement, making it more efficient and interconnected.",source:"@site/docs/features/workspaces.md",sourceDirName:"features",slug:"/features/workspaces",permalink:"/features/workspaces",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/workspaces.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"workspaces",title:"Share, Collaborate, and Track with Workspaces",sidebar_label:"Workspaces",keywords:["contributors","Monitor Contributors","Track open source projects","open source teams","open source companies","open source contributors","open source maintainers"]},sidebar:"docs",previous:{title:"FAQs",permalink:"/welcome/faqs"},next:{title:"Repository Insights",permalink:"/features/repo-insights"}},c={},p=[{value:"Understanding Workspaces",id:"understanding-workspaces",level:2},{value:"The Sidebar",id:"the-sidebar",level:3},{value:"Your Workspaces",id:"your-workspaces",level:3},{value:"Repositories Dashboard",id:"repositories-dashboard",level:4},{value:"How to Create or Access a Workspace",id:"how-to-create-or-access-a-workspace",level:2},{value:"How to Add Repositories to a Workspace",id:"how-to-add-repositories-to-a-workspace",level:3},{value:"Changing Workspaces",id:"changing-workspaces",level:3},{value:"How to Share a Workspace",id:"how-to-share-a-workspace",level:2},{value:"Team Workspaces",id:"team-workspaces",level:2}],l={toc:p},u="wrapper";function d(e){let{components:t,...s}=e;return(0,r.kt)(u,(0,a.Z)({},l,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"In the OpenSauced app, your work unfolds within a Workspace: a virtual environment for managing information\u2014whether for individual productivity, team collaboration, or company-wide operations. Workspaces serve as a centralized hub for sharing, collaborating on, and ",(0,r.kt)("strong",{parentName:"p"},"tracking multiple repositories and organizations and their contributors in one place"),". This feature is designed to streamline your open source involvement, making it more efficient and interconnected."),(0,r.kt)("h2",{id:"understanding-workspaces"},"Understanding Workspaces"),(0,r.kt)("p",null,"You can navigate your workspaces from the sidebar. Each workspace has its own dashboard, which includes the repositories you're tracking in the workspace."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Workspace Access",src:o(96).Z,width:"1257",height:"477"})),(0,r.kt)("p",null,"By default, all workspaces are public. This means that anyone with the link to your workspace can view it, including all of your Insight Pages in the workspace. If you want to make your workspace private, you can upgrade your account to a PRO plan."),(0,r.kt)("h3",{id:"the-sidebar"},"The Sidebar"),(0,r.kt)("p",null,"The expandable sidebar includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Options for creating and viewing workspaces."),(0,r.kt)("li",{parentName:"ul"},"Access to your Contributor and Repository Insights pages."),(0,r.kt)("li",{parentName:"ul"},"Links to support.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Sidebar",src:o(7769).Z,width:"1444",height:"965"})),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"We recently had a naming change. The ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributors Insights")," feature was previously called Lists, and the ",(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repositories Insights")," feature was previously called Insights.")),(0,r.kt)("h3",{id:"your-workspaces"},"Your Workspaces"),(0,r.kt)("p",null,"In your workspace dashboards, you can create, view, and manage your workspaces."),(0,r.kt)("h4",{id:"repositories-dashboard"},"Repositories Dashboard"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Workspaces",src:o(4255).Z,width:"3200",height:"1800"})),(0,r.kt)("p",null,"Within the repositories dashboard, you can view the following metrics, which are over a period of thirty days by default:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Pull Requests"),": This includes the total opened and merged pull requests for the repositories included in your workspace, as well as the velocity of pull requests being merged."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Issues"),": This includes the total opened and closed issues for the repositories included in your workspace, as well as the velocity of issues being closed."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Engagement"),": This includes the total stars, forks, and activity ratio for the repositories included in your workspace.")),(0,r.kt)("h2",{id:"how-to-create-or-access-a-workspace"},"How to Create or Access a Workspace"),(0,r.kt)("p",null,"To create a workspace, start by accessing the ",(0,r.kt)("strong",{parentName:"p"},"Workspace switcher")," in the sidebar. From there, you can create a new workspace or view an existing one."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"workspace switcher",src:o(7281).Z,width:"1877",height:"888"})),(0,r.kt)("br",null),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},'Whenever you select "Home", you\'ll be taken to the last workspace you opened.')),(0,r.kt)("h3",{id:"how-to-add-repositories-to-a-workspace"},"How to Add Repositories to a Workspace"),(0,r.kt)("p",null,"If you're creating a new workspace, you'll have the option to add repositories at the time of creation."),(0,r.kt)("p",null,'Start by creating a workspace name, then click "Add repositories." You\'ll have three options for adding repositories:'),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Search for Repositories"),": Use our search tool by adding an organization name, followed by the repository name, and add them to your workspace."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Import a GitHub Organization"),": Connect to your GitHub organizations to create a workspace from an organization. (If you're having trouble with this, see the \"",(0,r.kt)("a",{parentName:"li",href:"/welcome/faqs#sync-your-github-team"},"Sync Your GitHub Team"),'" section in our FAQs.)'),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Import Repositories"),": Paste a list of repositories to add to your workspace.")),(0,r.kt)("p",null,"Once your repositories are added, you'll be able to see them in your repository dashboard. You can also edit your workspace to add or remove repositories anytime."),(0,r.kt)("h3",{id:"changing-workspaces"},"Changing Workspaces"),(0,r.kt)("p",null,"Anything you create in a workspace is specific to that workspace. When you switch workspaces, you'll see the Repository and Contributor Insights specific to that workspace."),(0,r.kt)("h2",{id:"how-to-share-a-workspace"},"How to Share a Workspace"),(0,r.kt)("p",null,"You can share your workspace with others by copying the URL and sending it to them. If your workspace is private (a PRO plan feature), only those with access to the workspace will be able to view it."),(0,r.kt)("h2",{id:"team-workspaces"},"Team Workspaces"),(0,r.kt)("p",null,"Team workspaces are part of the PRO plan and are designed to help teams collaborate on and understand open source projects. Team workspaces are public by default. However, you can switch it to private in your settings so only team members can view the workspace."),(0,r.kt)("p",null,"By upgrading to a team workspace, you'll have unlimited Contributor and Repository Insights, as well as the ability to toggle between private and public visibility. "),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"The visibility of your Insights Pages is determined by the visibility of the workspace. If your workspace is public, your insights will be public. If your workspace is private, your insights will be private.")),(0,r.kt)("p",null,'You can add someone to your workspace by clicking on the "Edit" button located at the top right of the workspace dashboard and entering the username of the workspace member you would like to add.'),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Add People",src:o(4958).Z,width:"916",height:"141"})),(0,r.kt)("p",null,"Once you add a member to a workspace, they will be able to view the workspace and its contents. You will also be able to edit their permissions for the workspace, including owner, editor, or viewer permissions. This workspace will now appear in their workspace switcher."))}d.isMDXComponent=!0},4958:(e,t,o)=>{o.d(t,{Z:()=>a});const a=o.p+"assets/images/add-to-workspace-e8e843efa9c124bbce60110af201612a.png"},96:(e,t,o)=>{o.d(t,{Z:()=>a});const a=o.p+"assets/images/workspace-access-72e8f9933caa4b45be55046d94f84fdb.png"},7769:(e,t,o)=>{o.d(t,{Z:()=>a});const a=o.p+"assets/images/workspace-sidebar-258a48d99ed9cb31f7449da2de965d86.png"},7281:(e,t,o)=>{o.d(t,{Z:()=>a});const a=o.p+"assets/images/workspace-switcher-b2400ec5c309a762f822268b44779930.png"},4255:(e,t,o)=>{o.d(t,{Z:()=>a});const a=o.p+"assets/images/workspace-644e59bed496d2a0df7502aaa833129e.png"}}]); \ No newline at end of file diff --git a/assets/js/dd5175af.868771d5.js b/assets/js/dd5175af.868771d5.js deleted file mode 100644 index 8003fa1d..00000000 --- a/assets/js/dd5175af.868771d5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[7174],{3905:(t,e,n)=>{n.d(e,{Zo:()=>p,kt:()=>k});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function i(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var s=a.createContext({}),u=function(t){var e=a.useContext(s),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},p=function(t){var e=u(t.components);return a.createElement(s.Provider,{value:e},t.children)},d="mdxType",c={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},m=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,o=t.originalType,s=t.parentName,p=l(t,["components","mdxType","originalType","parentName"]),d=u(n),m=r,k=d["".concat(s,".").concat(m)]||d[m]||c[m]||o;return n?a.createElement(k,i(i({ref:e},p),{},{components:n})):a.createElement(k,i({ref:e},p))}));function k(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in e)hasOwnProperty.call(e,s)&&(l[s]=e[s]);l.originalType=t,l[d]="string"==typeof t?t:r,i[1]=l;for(var u=2;u{n.r(e),n.d(e,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var a=n(7462),r=(n(7294),n(3905));const o={id:"how-to-translate-open-source-contributions-into-career-opportunities",title:"How to Translate Open Source Contributions into Career Opportunities",sidebar_label:"How to Translate Open Source Contributions into Career Opportunities",keywords:["how to get a job with open source contributions","benefits of open source contributions for career development","open source projects to boost your resume","how to showcase your open source work to employers","open source skills that employers look for","how to find open source opportunities in your field","best practices for open source contributors","open source success stories and tips"]},i=void 0,l={unversionedId:"opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities",id:"opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities",title:"How to Translate Open Source Contributions into Career Opportunities",description:"It is important to keep track of your open source contributions and show the impact you have left on the projects and organizations. By organizing your work, you will be able to talk about these meaningful contributions on your resume and in job interviews.",source:"@site/docs/opensauced-guides/job-seekers-guide/categorize-contributions.md",sourceDirName:"opensauced-guides/job-seekers-guide",slug:"/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities",permalink:"/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-guides/job-seekers-guide/categorize-contributions.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"how-to-translate-open-source-contributions-into-career-opportunities",title:"How to Translate Open Source Contributions into Career Opportunities",sidebar_label:"How to Translate Open Source Contributions into Career Opportunities",keywords:["how to get a job with open source contributions","benefits of open source contributions for career development","open source projects to boost your resume","how to showcase your open source work to employers","open source skills that employers look for","how to find open source opportunities in your field","best practices for open source contributors","open source success stories and tips"]},sidebar:"docs",previous:{title:"Introduction",permalink:"/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction"},next:{title:"Students Guide to OpenSauced",permalink:"/opensauced-guides/students-guide/"}},s={},u=[{value:"Personal Information",id:"personal-information",level:2},{value:"Career Goals",id:"career-goals",level:2},{value:"Matching Job Requirements to Your Current Skills",id:"matching-job-requirements-to-your-current-skills",level:2},{value:"Finding Open Source Projects to Contribute to",id:"finding-open-source-projects-to-contribute-to",level:2},{value:"Open Source Project Contribution",id:"open-source-project-contribution",level:2},{value:"Basic Project Information",id:"basic-project-information",level:3},{value:"Learn and Development",id:"learn-and-development",level:3},{value:"Contribution Tracking",id:"contribution-tracking",level:3},{value:"Using the Highlights Feature to Track Your Contributions",id:"using-the-highlights-feature-to-track-your-contributions",level:3},{value:"Using the Contributor Insight Feature to Follow People",id:"using-the-contributor-insight-feature-to-follow-people",level:3},{value:"Using the Repository Insights Feature to Track the Repositories You Contributed to",id:"using-the-repository-insights-feature-to-track-the-repositories-you-contributed-to",level:3},{value:"Networking and Professional Development",id:"networking-and-professional-development",level:3},{value:"Using Your OpenSauced Dev Card for Networking",id:"using-your-opensauced-dev-card-for-networking",level:3},{value:"Reflection and Next Steps",id:"reflection-and-next-steps",level:3},{value:"Using the Highlights Feature to Update Your Professional Profile",id:"using-the-highlights-feature-to-update-your-professional-profile",level:3},{value:"Example Chart for Frontend Developer",id:"example-chart-for-frontend-developer",level:2},{value:"Additional Resources",id:"additional-resources",level:2}],p={toc:u},d="wrapper";function c(t){let{components:e,...o}=t;return(0,r.kt)(d,(0,a.Z)({},p,o,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"It is important to keep track of your open source contributions and show the impact you have left on the projects and organizations. By organizing your work, you will be able to talk about these meaningful contributions on your resume and in job interviews."),(0,r.kt)("p",null,"In this guide, we have created a table that you can use to categorize and keep detailed notes for each contribution you have made. We will break down each table component and talk about how to use these in your resume and job profile. You can see a complete example at the end of this guide."),(0,r.kt)("h2",{id:"personal-information"},"Personal Information"),(0,r.kt)("p",null,"In this section of the table, you can include information like your name, email, GitHub profile, LinkedIn profile, OpenSauced profile, blog, etc. When it comes to professional profiles, consider which profiles you want to show off to employers that highlight your skills and experience relevant to the types of jobs you are interested in."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Personal Information")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Name"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contact Information"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"LinkedIn"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"GitHub profile"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OpenSauced profile"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h2",{id:"career-goals"},"Career Goals"),(0,r.kt)("p",null,"If you are new to the industry, you will want to list which area of tech you are interested in pursuing. If you are looking for your next tech role, you can list your current role or the role you wish to switch to."),(0,r.kt)("p",null,"If you want to level up your role, you should list the key skills required for that next level in this section. You should also link to a few job posts to get an idea of key skills are required for that next level you are working towards."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Career Goals")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Desired Job Role"),(0,r.kt)("td",{parentName:"tr",align:null},"[Your desired role]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Desired Job level"),(0,r.kt)("td",{parentName:"tr",align:null},"[Junior, Mid, Senior, etc.]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Skills to Develop"),(0,r.kt)("td",{parentName:"tr",align:null},"[Skills to focus on]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Industry/Area of Interest"),(0,r.kt)("td",{parentName:"tr",align:null},"[Frontend, Backend, Fullstack, ML, AI, etc.]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Example Job Links"),(0,r.kt)("td",{parentName:"tr",align:null},"[Link to desired jobs]")))),(0,r.kt)("h2",{id:"matching-job-requirements-to-your-current-skills"},"Matching Job Requirements to Your Current Skills"),(0,r.kt)("p",null,"A common mistake for many job seekers is to send out the same resume template to all jobs. But in today's tech market, it is important to stand out and tailor your resume to match your skills with the requirements listed."),(0,r.kt)("p",null,"In the previous section, you identified desired roles and key skills needed for those jobs. When you are reading through job descriptions, you will want to identify key skills that are repeatedly mentioned and add that to your career goals section."),(0,r.kt)("p",null,"As you fill out the remaining sections for project contributions, check to see if the contributions match the common skills requested in those jobs. If not, then you have just identified a skill gap and will need to find projects and issues that will allow you to strengthen those skills."),(0,r.kt)("h2",{id:"finding-open-source-projects-to-contribute-to"},"Finding Open Source Projects to Contribute to"),(0,r.kt)("p",null,"After you have filled out the career section of the table, you will want to find open source projects that align with your goals. You can use the explore feature on OpenSauced to explore new repositories in a variety of topics like ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/javascript/dashboard/filter/recent?range=30"},"JavaScript"),", ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/python/dashboard/filter/recent?range=30"},"Python"),", and ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/ml/dashboard/filter/recent?range=30"},"Machine Learning"),"."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Explore Machine Learning projects in OpenSauced",src:n(3515).Z,width:"2592",height:"1338"})),(0,r.kt)("p",null,"Finding a good project to contribute to takes time. So, make sure to look at the frequency of contributions to the project and the types of issues and features the project needs help with. If it aligns with your career goals, then start off with smaller issues before moving to larger features. You will also want to join the project's community chat room or Discord channel to connect with other contributors and core team members of the project."),(0,r.kt)("h2",{id:"open-source-project-contribution"},"Open Source Project Contribution"),(0,r.kt)("p",null,"In this next section, you will want to list your meaningful contributions to different open source projects. This can include documentation, code features, bug fixes, etc. Remember that you will want to list out meaningful contributions that match the goals you laid out earlier."),(0,r.kt)("h3",{id:"basic-project-information"},"Basic Project Information"),(0,r.kt)("p",null,"For each project contribution, you will want to list the project name and the PR and issue links. Then, describe in a few short sentences why you chose this project and how it will help you with your career goals."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Project Name"),(0,r.kt)("td",{parentName:"tr",align:null},"[Project Name]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Project URL"),(0,r.kt)("td",{parentName:"tr",align:null},"[Project URL]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Why This Project?"),(0,r.kt)("td",{parentName:"tr",align:null},"[Reasons for choosing this project]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Type of Contribution"),(0,r.kt)("td",{parentName:"tr",align:null},"[Code, documentation, community support, etc.]")))),(0,r.kt)("h3",{id:"learn-and-development"},"Learn and Development"),(0,r.kt)("p",null,"Once your contribution has been approved and merged into the project, you will want to reflect on what you have learned during this process. What new skills or technologies did you learn while working on this issue? What challenges did you face? How did you interact with the community when you needed clarification on an issue or help with the PR?"),(0,r.kt)("p",null,"Keeping track of this information is helpful because you can reference these experiences later when crafting your resume. Potential employers will want to see how you work with others, solve problems, and deliver solutions in a project."),(0,r.kt)("p",null,"Feel free to link to the PR and issue discussions as references on how you worked with contributors in this project."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Learning and Development")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"New Skills Learned"),(0,r.kt)("td",{parentName:"tr",align:null},"[List of new skills]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Challenges Overcome"),(0,r.kt)("td",{parentName:"tr",align:null},"[Challenges faced and resolved]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Community Interaction"),(0,r.kt)("td",{parentName:"tr",align:null},"[Meetups, Discussions, etc.]")))),(0,r.kt)("h3",{id:"contribution-tracking"},"Contribution Tracking"),(0,r.kt)("p",null,"For each project contribution, you will want to list the date, a brief summary of the issue, and how you solved it. Also, list any acknowledgments you received from other contributors or core team members on the project because it highlights your impact."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Contribution Tracking")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Date"),(0,r.kt)("td",{parentName:"tr",align:null},"[Date of contribution]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contribution Summary"),(0,r.kt)("td",{parentName:"tr",align:null},"[Summary of contribution with links]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Feedback Received/Milestones Achieved"),(0,r.kt)("td",{parentName:"tr",align:null},"[Feedback and achievements]")))),(0,r.kt)("h3",{id:"using-the-highlights-feature-to-track-your-contributions"},"Using the Highlights Feature to Track Your Contributions"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"/features/highlights"},"Highlights feature")," is where you can display your favorite open source contributions and share your open source story."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"OpenSauced Highlights",src:n(7352).Z,width:"2294",height:"1066"})),(0,r.kt)("p",null,"You can use this feature to help you track the open source contributions you are most proud of and share your accomplishments with your network. All your highlights will appear on your OpenSauced profile. So, sharing your profile is another way to let potential employers see the types of contributions you've made and the highlights you've identified as the most important."),(0,r.kt)("h3",{id:"using-the-contributor-insight-feature-to-follow-people"},"Using the Contributor Insight Feature to Follow People"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights feature")," enables you to categorize, monitor, and analyze different groups of contributors within open source projects."),(0,r.kt)("p",null,"You can use this feature to create a list of people you interacted with during your open source work. If you continually work with the same individuals, they can act as referrals and references for jobs."),(0,r.kt)("p",null,"Contributor Insights can also be used to track other people in your network to reach out to about their contributions."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Contributor Insights page",src:n(6008).Z,width:"1440",height:"1124"})),(0,r.kt)("h3",{id:"using-the-repository-insights-feature-to-track-the-repositories-you-contributed-to"},"Using the Repository Insights Feature to Track the Repositories You Contributed to"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights feature")," is a comprehensive view of a project's health and individual contributions. You can use it to track the repositories you contributed to or to track repositories of open source companies that are hiring."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"insight-pages-demo",src:n(7220).Z,width:"960",height:"543"})),(0,r.kt)("h3",{id:"networking-and-professional-development"},"Networking and Professional Development"),(0,r.kt)("p",null,"Some larger features can lead to networking and other professional development opportunities, like speaking at meetups or writing for tech publications. It is important that you list out who you mainly corresponded with for each contribution and any opportunities that came from this contribution."),(0,r.kt)("p",null,"If you have corresponded with the same core contributors and maintainers over the past few contributions, try reaching out about collaborating on other projects. You never know where an opportunity will lead."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Networking and Professional Development")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contacts Made"),(0,r.kt)("td",{parentName:"tr",align:null},"[Contacts made and their roles]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Insights Gained from Networking"),(0,r.kt)("td",{parentName:"tr",align:null},"[What you learned from networking]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Future Networking Opportunities"),(0,r.kt)("td",{parentName:"tr",align:null},"[Planned networking activities]")))),(0,r.kt)("h3",{id:"using-your-opensauced-dev-card-for-networking"},"Using Your OpenSauced Dev Card for Networking"),(0,r.kt)("p",null,"Your ",(0,r.kt)("a",{parentName:"p",href:"/features/dev-card"},"OpenSauced Dev Card"),' serves as your "open source business card" to showcase all of your recent open source activities. You will find recent activity concerning the projects you contribute to, the frequency of PRs, and projects you are interested in.'),(0,r.kt)("p",null,"You can easily share your Dev Card on social media platforms like X/Twitter and LinkedIn to gain attention from potential recruiters and hiring managers."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"OpenSauced Dev card",src:n(2).Z,width:"940",height:"658"})),(0,r.kt)("h3",{id:"reflection-and-next-steps"},"Reflection and Next Steps"),(0,r.kt)("p",null,"In this section, you will want to reflect on what went well with this contribution and the areas you struggled with."),(0,r.kt)("p",null,"Tying these reflections back to your career goals and desired job roles you defined earlier is important. If you are weaker in skills that are required for the jobs you are seeking, use future open source contributions as a way to strengthen these skills."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Reflection and Next Steps")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Takeaways from This Project"),(0,r.kt)("td",{parentName:"tr",align:null},"[What you learned]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Areas for Improvement"),(0,r.kt)("td",{parentName:"tr",align:null},"[Areas to work on for future projects]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Next Project/Contribution Goal"),(0,r.kt)("td",{parentName:"tr",align:null},"[Your next Goal in open source contribution]")))),(0,r.kt)("h3",{id:"using-the-highlights-feature-to-update-your-professional-profile"},"Using the Highlights Feature to Update Your Professional Profile"),(0,r.kt)("p",null,"After each contribution, you will want to update your LinkedIn profile and resume to highlight your recent achievements. Many recruiters and hiring managers are looking for talented individuals on LinkedIn, so it is important to keep your profile up to date on your recent accomplishments."),(0,r.kt)("p",null,"The Highlights feature allows you to post about your recent open source contributions on OpenSauced and share them with other social media outlets like Twitter and LinkedIn."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"OpenSauced Highlights Feature",src:n(4173).Z,width:"626",height:"633"})),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Resume and Professional Profile Update")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Updates Made to Resume/LinkedIn"),(0,r.kt)("td",{parentName:"tr",align:null},"[Details of updates]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Accomplishments Highlighted"),(0,r.kt)("td",{parentName:"tr",align:null},"[Key points highlighted]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Future Plans for Profile Enhancement"),(0,r.kt)("td",{parentName:"tr",align:null},"[Plans for further enhancing your profile]")))),(0,r.kt)("h2",{id:"example-chart-for-frontend-developer"},"Example Chart for Frontend Developer"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Personal Information")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Name"),(0,r.kt)("td",{parentName:"tr",align:null},"Jane Smith")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contact Information"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"mailto:jane.smith@email.com"},"jane.smith@email.com"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Professional Profile (LinkedIn/GitHub/OpenSauced profile)"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://www.linkedin.com/in/janesmith"},"LinkedIn"),", ",(0,r.kt)("a",{parentName:"td",href:"https://github.com/janesmith"},"GitHub"),", ",(0,r.kt)("a",{parentName:"td",href:"https://app.opensauced.pizza/BekahHW"},"OpenSauced"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Career Goals")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Desired Job Role"),(0,r.kt)("td",{parentName:"tr",align:null},"Frontend Developer")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Skills to Develop"),(0,r.kt)("td",{parentName:"tr",align:null},"React.js, CSS-in-JS, Web Accessibility")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Industry/Area of Interest"),(0,r.kt)("td",{parentName:"tr",align:null},"Web Development, UI/UX Design")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Open Source Project Contribution No.1")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Project Name"),(0,r.kt)("td",{parentName:"tr",align:null},"Awesome React Components")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Project URL"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/awesome-react/components"},"GitHub Repository"),", ",(0,r.kt)("a",{parentName:"td",href:"https://app.opensauced.pizza/pages/BekahHW/655/dashboard?range=30"},"OpenSauced Insight Page"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Why This Project?"),(0,r.kt)("td",{parentName:"tr",align:null},"Interested in learning about creating reusable UI components.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Type of Contribution"),(0,r.kt)("td",{parentName:"tr",align:null},"Implemented a new responsive carousel component.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Learning and Development")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"New Skills Learned"),(0,r.kt)("td",{parentName:"tr",align:null},"Styled Components, Carousel Design Patterns")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Challenges Overcome"),(0,r.kt)("td",{parentName:"tr",align:null},"Overcame performance issues with large datasets.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Community Interaction"),(0,r.kt)("td",{parentName:"tr",align:null},"Participated in design discussions on the project's Discord channel.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Contribution Tracking")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Date"),(0,r.kt)("td",{parentName:"tr",align:null},"2023-03-10")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contribution Summary"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/awesome-react/components/pull/456"},"Pull Request #456"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Feedback Received/Milestones Achieved"),(0,r.kt)("td",{parentName:"tr",align:null},"Positive feedback on the elegant design; milestone: merged into the main branch.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Networking and Professional Development")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contacts Made"),(0,r.kt)("td",{parentName:"tr",align:null},"Connected with project maintainers and frontend enthusiasts.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Repository Insights Gained from Networking"),(0,r.kt)("td",{parentName:"tr",align:null},"Learned about upcoming trends in frontend development.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Future Networking Opportunities"),(0,r.kt)("td",{parentName:"tr",align:null},"Planning to attend the project's monthly virtual meetup.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Reflection and Next Steps")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Takeaways from This Project"),(0,r.kt)("td",{parentName:"tr",align:null},"Improved skills in component design and collaboration.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Areas for Improvement"),(0,r.kt)("td",{parentName:"tr",align:null},"Intend to deepen knowledge in state management with Redux.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Next Project/Contribution Goal"),(0,r.kt)("td",{parentName:"tr",align:null},"Contribute to a project focused on enhancing web accessibility.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Resume and Professional Profile Update")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Updates Made to Resume/LinkedIn"),(0,r.kt)("td",{parentName:"tr",align:null},"Successfully implemented a responsive carousel component, enhancing user experience and receiving positive feedback. Demonstrated expertise in React.js and CSS-in-JS.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Accomplishments Highlighted"),(0,r.kt)("td",{parentName:"tr",align:null},"Highlighted successful implementation of the responsive carousel.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Future Plans for Profile Enhancement"),(0,r.kt)("td",{parentName:"tr",align:null},"Attend frontend development conferences and workshops.")))),(0,r.kt)("h2",{id:"additional-resources"},"Additional Resources"),(0,r.kt)("p",null,"If you're looking for more resources about the job hunt, check out these OpenSauced posts:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://dev.to/opensauced/building-your-devrel-resume-with-open-source-4km3"},"Building Your DevRel Resume with Open Source")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://dev.to/opensauced/how-to-talk-about-your-open-source-experience-in-a-tech-interview-3l96"},"How to Talk About Your Open Source Experience in a Tech Interview"))))}c.isMDXComponent=!0},7352:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/highlight-e3a2da2446fe91467a31d225755bf40a.gif"},7220:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif"},2:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/a-dev-card-f7b01f48467c20d93ddb9814e8e54918.png"},4173:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/highlights-fcc750f036bb2ea7c11166c8338d7f6c.png"},6008:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/lists-page-ba64789ac5cf5f607e2784276240dc5e.svg"},3515:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/ml-explore-page-704a5b0153e392938e6f0e34a7e3a82d.png"}}]); \ No newline at end of file diff --git a/assets/js/dd5175af.bd08cef2.js b/assets/js/dd5175af.bd08cef2.js new file mode 100644 index 00000000..1a91248c --- /dev/null +++ b/assets/js/dd5175af.bd08cef2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[7174],{3905:(t,e,n)=>{n.d(e,{Zo:()=>p,kt:()=>k});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function i(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var s=a.createContext({}),u=function(t){var e=a.useContext(s),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},p=function(t){var e=u(t.components);return a.createElement(s.Provider,{value:e},t.children)},d="mdxType",c={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},m=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,o=t.originalType,s=t.parentName,p=l(t,["components","mdxType","originalType","parentName"]),d=u(n),m=r,k=d["".concat(s,".").concat(m)]||d[m]||c[m]||o;return n?a.createElement(k,i(i({ref:e},p),{},{components:n})):a.createElement(k,i({ref:e},p))}));function k(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in e)hasOwnProperty.call(e,s)&&(l[s]=e[s]);l.originalType=t,l[d]="string"==typeof t?t:r,i[1]=l;for(var u=2;u{n.r(e),n.d(e,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var a=n(7462),r=(n(7294),n(3905));const o={id:"how-to-translate-open-source-contributions-into-career-opportunities",title:"How to Translate Open Source Contributions into Career Opportunities",sidebar_label:"How to Translate Open Source Contributions into Career Opportunities",keywords:["how to get a job with open source contributions","benefits of open source contributions for career development","open source projects to boost your resume","how to showcase your open source work to employers","open source skills that employers look for","how to find open source opportunities in your field","best practices for open source contributors","open source success stories and tips"]},i=void 0,l={unversionedId:"opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities",id:"opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities",title:"How to Translate Open Source Contributions into Career Opportunities",description:"It is important to keep track of your open source contributions and show the impact you have left on the projects and organizations. By organizing your work, you will be able to talk about these meaningful contributions on your resume and in job interviews.",source:"@site/docs/opensauced-guides/job-seekers-guide/categorize-contributions.md",sourceDirName:"opensauced-guides/job-seekers-guide",slug:"/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities",permalink:"/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-guides/job-seekers-guide/categorize-contributions.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"how-to-translate-open-source-contributions-into-career-opportunities",title:"How to Translate Open Source Contributions into Career Opportunities",sidebar_label:"How to Translate Open Source Contributions into Career Opportunities",keywords:["how to get a job with open source contributions","benefits of open source contributions for career development","open source projects to boost your resume","how to showcase your open source work to employers","open source skills that employers look for","how to find open source opportunities in your field","best practices for open source contributors","open source success stories and tips"]},sidebar:"docs",previous:{title:"Introduction",permalink:"/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction"},next:{title:"Students Guide to OpenSauced",permalink:"/opensauced-guides/students-guide/"}},s={},u=[{value:"Personal Information",id:"personal-information",level:2},{value:"Career Goals",id:"career-goals",level:2},{value:"Matching Job Requirements to Your Current Skills",id:"matching-job-requirements-to-your-current-skills",level:2},{value:"Finding Open Source Projects to Contribute to",id:"finding-open-source-projects-to-contribute-to",level:2},{value:"Open Source Project Contribution",id:"open-source-project-contribution",level:2},{value:"Basic Project Information",id:"basic-project-information",level:3},{value:"Learn and Development",id:"learn-and-development",level:3},{value:"Contribution Tracking",id:"contribution-tracking",level:3},{value:"Using the Highlights Feature to Track Your Contributions",id:"using-the-highlights-feature-to-track-your-contributions",level:3},{value:"Using the Contributor Insight Feature to Follow People",id:"using-the-contributor-insight-feature-to-follow-people",level:3},{value:"Using the Repository Insights Feature to Track the Repositories You Contributed to",id:"using-the-repository-insights-feature-to-track-the-repositories-you-contributed-to",level:3},{value:"Networking and Professional Development",id:"networking-and-professional-development",level:3},{value:"Using Your OpenSauced Dev Card for Networking",id:"using-your-opensauced-dev-card-for-networking",level:3},{value:"Reflection and Next Steps",id:"reflection-and-next-steps",level:3},{value:"Using the Highlights Feature to Update Your Professional Profile",id:"using-the-highlights-feature-to-update-your-professional-profile",level:3},{value:"Example Chart for Frontend Developer",id:"example-chart-for-frontend-developer",level:2},{value:"Additional Resources",id:"additional-resources",level:2}],p={toc:u},d="wrapper";function c(t){let{components:e,...o}=t;return(0,r.kt)(d,(0,a.Z)({},p,o,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"It is important to keep track of your open source contributions and show the impact you have left on the projects and organizations. By organizing your work, you will be able to talk about these meaningful contributions on your resume and in job interviews."),(0,r.kt)("p",null,"In this guide, we have created a table that you can use to categorize and keep detailed notes for each contribution you have made. We will break down each table component and talk about how to use these in your resume and job profile. You can see a complete example at the end of this guide."),(0,r.kt)("h2",{id:"personal-information"},"Personal Information"),(0,r.kt)("p",null,"In this section of the table, you can include information like your name, email, GitHub profile, LinkedIn profile, OpenSauced profile, blog, etc. When it comes to professional profiles, consider which profiles you want to show off to employers that highlight your skills and experience relevant to the types of jobs you are interested in."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Personal Information")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Name"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contact Information"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"LinkedIn"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"GitHub profile"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OpenSauced profile"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h2",{id:"career-goals"},"Career Goals"),(0,r.kt)("p",null,"If you are new to the industry, you will want to list which area of tech you are interested in pursuing. If you are looking for your next tech role, you can list your current role or the role you wish to switch to."),(0,r.kt)("p",null,"If you want to level up your role, you should list the key skills required for that next level in this section. You should also link to a few job posts to get an idea of key skills are required for that next level you are working towards."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Career Goals")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Desired Job Role"),(0,r.kt)("td",{parentName:"tr",align:null},"[Your desired role]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Desired Job level"),(0,r.kt)("td",{parentName:"tr",align:null},"[Junior, Mid, Senior, etc.]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Skills to Develop"),(0,r.kt)("td",{parentName:"tr",align:null},"[Skills to focus on]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Industry/Area of Interest"),(0,r.kt)("td",{parentName:"tr",align:null},"[Frontend, Backend, Fullstack, ML, AI, etc.]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Example Job Links"),(0,r.kt)("td",{parentName:"tr",align:null},"[Link to desired jobs]")))),(0,r.kt)("h2",{id:"matching-job-requirements-to-your-current-skills"},"Matching Job Requirements to Your Current Skills"),(0,r.kt)("p",null,"A common mistake for many job seekers is to send out the same resume template to all jobs. But in today's tech market, it is important to stand out and tailor your resume to match your skills with the requirements listed."),(0,r.kt)("p",null,"In the previous section, you identified desired roles and key skills needed for those jobs. When you are reading through job descriptions, you will want to identify key skills that are repeatedly mentioned and add that to your career goals section."),(0,r.kt)("p",null,"As you fill out the remaining sections for project contributions, check to see if the contributions match the common skills requested in those jobs. If not, then you have just identified a skill gap and will need to find projects and issues that will allow you to strengthen those skills."),(0,r.kt)("h2",{id:"finding-open-source-projects-to-contribute-to"},"Finding Open Source Projects to Contribute to"),(0,r.kt)("p",null,"After you have filled out the career section of the table, you will want to find open source projects that align with your goals. You can use the explore feature on OpenSauced to explore new repositories in a variety of topics like ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/javascript/dashboard/filter/recent?range=30"},"JavaScript"),", ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/python/dashboard/filter/recent?range=30"},"Python"),", and ",(0,r.kt)("a",{parentName:"p",href:"https://app.opensauced.pizza/ml/dashboard/filter/recent?range=30"},"Machine Learning"),"."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Explore Machine Learning projects in OpenSauced",src:n(3515).Z,width:"2592",height:"1338"})),(0,r.kt)("p",null,"Finding a good project to contribute to takes time. So, make sure to look at the frequency of contributions to the project and the types of issues and features the project needs help with. If it aligns with your career goals, then start off with smaller issues before moving to larger features. You will also want to join the project's community chat room or Discord channel to connect with other contributors and core team members of the project."),(0,r.kt)("h2",{id:"open-source-project-contribution"},"Open Source Project Contribution"),(0,r.kt)("p",null,"In this next section, you will want to list your meaningful contributions to different open source projects. This can include documentation, code features, bug fixes, etc. Remember that you will want to list out meaningful contributions that match the goals you laid out earlier."),(0,r.kt)("h3",{id:"basic-project-information"},"Basic Project Information"),(0,r.kt)("p",null,"For each project contribution, you will want to list the project name and the PR and issue links. Then, describe in a few short sentences why you chose this project and how it will help you with your career goals."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Project Name"),(0,r.kt)("td",{parentName:"tr",align:null},"[Project Name]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Project URL"),(0,r.kt)("td",{parentName:"tr",align:null},"[Project URL]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Why This Project?"),(0,r.kt)("td",{parentName:"tr",align:null},"[Reasons for choosing this project]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Type of Contribution"),(0,r.kt)("td",{parentName:"tr",align:null},"[Code, documentation, community support, etc.]")))),(0,r.kt)("h3",{id:"learn-and-development"},"Learn and Development"),(0,r.kt)("p",null,"Once your contribution has been approved and merged into the project, you will want to reflect on what you have learned during this process. What new skills or technologies did you learn while working on this issue? What challenges did you face? How did you interact with the community when you needed clarification on an issue or help with the PR?"),(0,r.kt)("p",null,"Keeping track of this information is helpful because you can reference these experiences later when crafting your resume. Potential employers will want to see how you work with others, solve problems, and deliver solutions in a project."),(0,r.kt)("p",null,"Feel free to link to the PR and issue discussions as references on how you worked with contributors in this project."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Learning and Development")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"New Skills Learned"),(0,r.kt)("td",{parentName:"tr",align:null},"[List of new skills]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Challenges Overcome"),(0,r.kt)("td",{parentName:"tr",align:null},"[Challenges faced and resolved]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Community Interaction"),(0,r.kt)("td",{parentName:"tr",align:null},"[Meetups, Discussions, etc.]")))),(0,r.kt)("h3",{id:"contribution-tracking"},"Contribution Tracking"),(0,r.kt)("p",null,"For each project contribution, you will want to list the date, a brief summary of the issue, and how you solved it. Also, list any acknowledgments you received from other contributors or core team members on the project because it highlights your impact."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Contribution Tracking")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Date"),(0,r.kt)("td",{parentName:"tr",align:null},"[Date of contribution]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contribution Summary"),(0,r.kt)("td",{parentName:"tr",align:null},"[Summary of contribution with links]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Feedback Received/Milestones Achieved"),(0,r.kt)("td",{parentName:"tr",align:null},"[Feedback and achievements]")))),(0,r.kt)("h3",{id:"using-the-highlights-feature-to-track-your-contributions"},"Using the Highlights Feature to Track Your Contributions"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"/features/highlights"},"Highlights feature")," is where you can display your favorite open source contributions and share your open source story."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"OpenSauced Highlights",src:n(7352).Z,width:"2294",height:"1066"})),(0,r.kt)("p",null,"You can use this feature to help you track the open source contributions you are most proud of and share your accomplishments with your network. All your highlights will appear on your OpenSauced profile. So, sharing your profile is another way to let potential employers see the types of contributions you've made and the highlights you've identified as the most important."),(0,r.kt)("h3",{id:"using-the-contributor-insight-feature-to-follow-people"},"Using the Contributor Insight Feature to Follow People"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"/features/contributor-insights"},"Contributor Insights feature")," enables you to categorize, monitor, and analyze different groups of contributors within open source projects."),(0,r.kt)("p",null,"You can use this feature to create a list of people you interacted with during your open source work. If you continually work with the same individuals, they can act as referrals and references for jobs."),(0,r.kt)("p",null,"Contributor Insights can also be used to track other people in your network to reach out to about their contributions."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Contributor Insights page",src:n(6008).Z,width:"1440",height:"1124"})),(0,r.kt)("h3",{id:"using-the-repository-insights-feature-to-track-the-repositories-you-contributed-to"},"Using the Repository Insights Feature to Track the Repositories You Contributed to"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"/features/repo-insights"},"Repository Insights feature")," is a comprehensive view of a project's health and individual contributions. You can use it to track the repositories you contributed to or to track repositories of open source companies that are hiring."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"insight-pages-demo",src:n(7220).Z,width:"960",height:"543"})),(0,r.kt)("h3",{id:"networking-and-professional-development"},"Networking and Professional Development"),(0,r.kt)("p",null,"Some larger features can lead to networking and other professional development opportunities, like speaking at meetups or writing for tech publications. It is important that you list out who you mainly corresponded with for each contribution and any opportunities that came from this contribution."),(0,r.kt)("p",null,"If you have corresponded with the same core contributors and maintainers over the past few contributions, try reaching out about collaborating on other projects. You never know where an opportunity will lead."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Networking and Professional Development")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contacts Made"),(0,r.kt)("td",{parentName:"tr",align:null},"[Contacts made and their roles]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Insights Gained from Networking"),(0,r.kt)("td",{parentName:"tr",align:null},"[What you learned from networking]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Future Networking Opportunities"),(0,r.kt)("td",{parentName:"tr",align:null},"[Planned networking activities]")))),(0,r.kt)("h3",{id:"using-your-opensauced-dev-card-for-networking"},"Using Your OpenSauced Dev Card for Networking"),(0,r.kt)("p",null,"Your ",(0,r.kt)("a",{parentName:"p",href:"/features/dev-card"},"OpenSauced Dev Card"),' serves as your "open source business card" to showcase all of your recent open source activities. You will find recent activity concerning the projects you contribute to, the frequency of PRs, and projects you are interested in.'),(0,r.kt)("p",null,"You can easily share your Dev Card on social media platforms like X/Twitter and LinkedIn to gain attention from potential recruiters and hiring managers."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"OpenSauced Dev card",src:n(2).Z,width:"940",height:"658"})),(0,r.kt)("h3",{id:"reflection-and-next-steps"},"Reflection and Next Steps"),(0,r.kt)("p",null,"In this section, you will want to reflect on what went well with this contribution and the areas you struggled with."),(0,r.kt)("p",null,"Tying these reflections back to your career goals and desired job roles you defined earlier is important. If you are weaker in skills that are required for the jobs you are seeking, use future open source contributions as a way to strengthen these skills."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Reflection and Next Steps")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Takeaways from This Project"),(0,r.kt)("td",{parentName:"tr",align:null},"[What you learned]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Areas for Improvement"),(0,r.kt)("td",{parentName:"tr",align:null},"[Areas to work on for future projects]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Next Project/Contribution Goal"),(0,r.kt)("td",{parentName:"tr",align:null},"[Your next Goal in open source contribution]")))),(0,r.kt)("h3",{id:"using-the-highlights-feature-to-update-your-professional-profile"},"Using the Highlights Feature to Update Your Professional Profile"),(0,r.kt)("p",null,"After each contribution, you will want to update your LinkedIn profile and resume to highlight your recent achievements. Many recruiters and hiring managers are looking for talented individuals on LinkedIn, so it is important to keep your profile up to date on your recent accomplishments."),(0,r.kt)("p",null,"The Highlights feature allows you to post about your recent open source contributions on OpenSauced and share them with other social media outlets like Twitter and LinkedIn."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"OpenSauced Highlights Feature",src:n(4173).Z,width:"626",height:"633"})),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Resume and Professional Profile Update")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Updates Made to Resume/LinkedIn"),(0,r.kt)("td",{parentName:"tr",align:null},"[Details of updates]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Accomplishments Highlighted"),(0,r.kt)("td",{parentName:"tr",align:null},"[Key points highlighted]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Future Plans for Profile Enhancement"),(0,r.kt)("td",{parentName:"tr",align:null},"[Plans for further enhancing your profile]")))),(0,r.kt)("h2",{id:"example-chart-for-frontend-developer"},"Example Chart for Frontend Developer"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Section")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Details")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Personal Information")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Name"),(0,r.kt)("td",{parentName:"tr",align:null},"Jane Smith")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contact Information"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"mailto:jane.smith@email.com"},"jane.smith@email.com"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Professional Profile (LinkedIn/GitHub/OpenSauced profile)"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://www.linkedin.com/in/janesmith"},"LinkedIn"),", ",(0,r.kt)("a",{parentName:"td",href:"https://github.com/janesmith"},"GitHub"),", ",(0,r.kt)("a",{parentName:"td",href:"https://app.opensauced.pizza/BekahHW"},"OpenSauced"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Career Goals")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Desired Job Role"),(0,r.kt)("td",{parentName:"tr",align:null},"Frontend Developer")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Skills to Develop"),(0,r.kt)("td",{parentName:"tr",align:null},"React.js, CSS-in-JS, Web Accessibility")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Industry/Area of Interest"),(0,r.kt)("td",{parentName:"tr",align:null},"Web Development, UI/UX Design")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Open Source Project Contribution No.1")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Project Name"),(0,r.kt)("td",{parentName:"tr",align:null},"Awesome React Components")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Project URL"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/awesome-react/components"},"GitHub Repository"),", ",(0,r.kt)("a",{parentName:"td",href:"https://app.opensauced.pizza/pages/BekahHW/655/dashboard?range=30"},"OpenSauced Insight Page"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Why This Project?"),(0,r.kt)("td",{parentName:"tr",align:null},"Interested in learning about creating reusable UI components.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Type of Contribution"),(0,r.kt)("td",{parentName:"tr",align:null},"Implemented a new responsive carousel component.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Learning and Development")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"New Skills Learned"),(0,r.kt)("td",{parentName:"tr",align:null},"Styled Components, Carousel Design Patterns")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Challenges Overcome"),(0,r.kt)("td",{parentName:"tr",align:null},"Overcame performance issues with large datasets.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Community Interaction"),(0,r.kt)("td",{parentName:"tr",align:null},"Participated in design discussions on the project's Discord channel.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Contribution Tracking")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Date"),(0,r.kt)("td",{parentName:"tr",align:null},"2023-03-10")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contribution Summary"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/awesome-react/components/pull/456"},"Pull Request #456"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Feedback Received/Milestones Achieved"),(0,r.kt)("td",{parentName:"tr",align:null},"Positive feedback on the elegant design; milestone: merged into the main branch.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Networking and Professional Development")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Contacts Made"),(0,r.kt)("td",{parentName:"tr",align:null},"Connected with project maintainers and frontend enthusiasts.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Repository Insights Gained from Networking"),(0,r.kt)("td",{parentName:"tr",align:null},"Learned about upcoming trends in frontend development.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Future Networking Opportunities"),(0,r.kt)("td",{parentName:"tr",align:null},"Planning to attend the project's monthly virtual meetup.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Reflection and Next Steps")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Takeaways from This Project"),(0,r.kt)("td",{parentName:"tr",align:null},"Improved skills in component design and collaboration.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Areas for Improvement"),(0,r.kt)("td",{parentName:"tr",align:null},"Intend to deepen knowledge in state management with Redux.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Next Project/Contribution Goal"),(0,r.kt)("td",{parentName:"tr",align:null},"Contribute to a project focused on enhancing web accessibility.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"Resume and Professional Profile Update")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Updates Made to Resume/LinkedIn"),(0,r.kt)("td",{parentName:"tr",align:null},"Successfully implemented a responsive carousel component, enhancing user experience and receiving positive feedback. Demonstrated expertise in React.js and CSS-in-JS.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Key Accomplishments Highlighted"),(0,r.kt)("td",{parentName:"tr",align:null},"Highlighted successful implementation of the responsive carousel.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Future Plans for Profile Enhancement"),(0,r.kt)("td",{parentName:"tr",align:null},"Attend frontend development conferences and workshops.")))),(0,r.kt)("h2",{id:"additional-resources"},"Additional Resources"),(0,r.kt)("p",null,"If you're looking for more resources about the job hunt, check out these OpenSauced posts:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://dev.to/opensauced/building-your-devrel-resume-with-open-source-4km3"},"Building Your DevRel Resume with Open Source")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://dev.to/opensauced/how-to-talk-about-your-open-source-experience-in-a-tech-interview-3l96"},"How to Talk About Your Open Source Experience in a Tech Interview"))))}c.isMDXComponent=!0},7352:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/highlight-e3a2da2446fe91467a31d225755bf40a.gif"},7220:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif"},2:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/a-dev-card-f7b01f48467c20d93ddb9814e8e54918.png"},4173:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/highlights-fcc750f036bb2ea7c11166c8338d7f6c.png"},6008:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/lists-page-ba64789ac5cf5f607e2784276240dc5e.svg"},3515:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/ml-explore-page-704a5b0153e392938e6f0e34a7e3a82d.png"}}]); \ No newline at end of file diff --git a/assets/js/e0315c91.0fc51d64.js b/assets/js/e0315c91.0fc51d64.js deleted file mode 100644 index 8782a6e8..00000000 --- a/assets/js/e0315c91.0fc51d64.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[6519],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),u=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},c=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),p=u(r),y=n,m=p["".concat(l,".").concat(y)]||p[y]||d[y]||i;return r?o.createElement(m,s(s({ref:t},c),{},{components:r})):o.createElement(m,s({ref:t},c))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,s=new Array(i);s[0]=y;var a={};for(var l in t)hasOwnProperty.call(t,l)&&(a[l]=t[l]);a.originalType=e,a[p]="string"==typeof e?e:n,s[1]=a;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var o=r(7462),n=(r(7294),r(3905));const i={id:"glossary",title:"OpenSauced Glossary",sidebar_label:"OpenSauced Glossary",keywords:["glossary","openSauced","OpenSauced Glossary","Tech Glossary","OpenSauced Glossary Guide","Open Source Project Glossary"]},s=void 0,a={unversionedId:"welcome/glossary",id:"welcome/glossary",title:"OpenSauced Glossary",description:"Welcome to the glossary, where we define concepts used on our platform to help you get the most out of OpenSauced.",source:"@site/docs/welcome/glossary.md",sourceDirName:"welcome",slug:"/welcome/glossary",permalink:"/welcome/glossary",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/welcome/glossary.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"glossary",title:"OpenSauced Glossary",sidebar_label:"OpenSauced Glossary",keywords:["glossary","openSauced","OpenSauced Glossary","Tech Glossary","OpenSauced Glossary Guide","Open Source Project Glossary"]},sidebar:"docs",previous:{title:"What is OpenSauced?",permalink:"/welcome/opensauced-intro"},next:{title:"FAQs",permalink:"/welcome/faqs"}},l={},u=[{value:"Active Contributors",id:"active-contributors",level:2},{value:"Activity",id:"activity",level:2},{value:"Alumni Contributors",id:"alumni-contributors",level:2},{value:"Contributor Insights",id:"contributor-insights",level:2},{value:"New Contributors",id:"new-contributors",level:2},{value:"PR Overview",id:"pr-overview",level:2},{value:"PR Velocity",id:"pr-velocity",level:2},{value:"Repository Insights",id:"repository-insights",level:2}],c={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Welcome to the glossary, where we define concepts used on our platform to help you get the most out of OpenSauced."),(0,n.kt)("h2",{id:"active-contributors"},"Active Contributors"),(0,n.kt)("p",null,"A contributor who has been active in the last 30 days."),(0,n.kt)("h2",{id:"activity"},"Activity"),(0,n.kt)("p",null,"Activity tracks Pull Requests (PRs) over the last 30 days:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"High"),": More than 80 PRs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Medium"),": Between 5 and 80 PRs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Low"),": Below 5 PRs.")),(0,n.kt)("h2",{id:"alumni-contributors"},"Alumni Contributors"),(0,n.kt)("p",null,"A contributor who has not been active on a project in the last 30 days."),(0,n.kt)("h2",{id:"contributor-insights"},"Contributor Insights"),(0,n.kt)("p",null,"The Contributor Insights feature enables you to categorize, monitor, and analyze different groups of contributors within open source projects. With the Contributor Insights feature, gain granular insights into each contributor's activity and contributions."),(0,n.kt)("h2",{id:"new-contributors"},"New Contributors"),(0,n.kt)("p",null,"A contributor who has recently made their first contribution to a project."),(0,n.kt)("h2",{id:"pr-overview"},"PR Overview"),(0,n.kt)("p",null,"PR Overview tells the story of the Pull Requests (PRs) submitted in the last 30 days:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Green line"),": Open PRs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Red line"),": Closed PRs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Purple line"),": Merged PRs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Grey line"),": Draft PRs.")),(0,n.kt)("h2",{id:"pr-velocity"},"PR Velocity"),(0,n.kt)("p",null,"PR Velocity tracks how quickly Pull Requests (PRs) are being merged in by identifying the average time to completion from the request submission."),(0,n.kt)("h2",{id:"repository-insights"},"Repository Insights"),(0,n.kt)("p",null,"The Repository Insights feature is a one-stop solution for understanding the pulse of your open-source projects and contributions. This feature is designed to provide a comprehensive view of your project's health and your individual contributions."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e0315c91.1b1eaa99.js b/assets/js/e0315c91.1b1eaa99.js new file mode 100644 index 00000000..a7802827 --- /dev/null +++ b/assets/js/e0315c91.1b1eaa99.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[6519],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),u=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},c=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),p=u(r),y=n,m=p["".concat(l,".").concat(y)]||p[y]||d[y]||i;return r?o.createElement(m,s(s({ref:t},c),{},{components:r})):o.createElement(m,s({ref:t},c))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,s=new Array(i);s[0]=y;var a={};for(var l in t)hasOwnProperty.call(t,l)&&(a[l]=t[l]);a.originalType=e,a[p]="string"==typeof e?e:n,s[1]=a;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var o=r(7462),n=(r(7294),r(3905));const i={id:"glossary",title:"OpenSauced Glossary",sidebar_label:"OpenSauced Glossary",keywords:["glossary","openSauced","OpenSauced Glossary","Tech Glossary","OpenSauced Glossary Guide","Open Source Project Glossary"]},s=void 0,a={unversionedId:"welcome/glossary",id:"welcome/glossary",title:"OpenSauced Glossary",description:"Welcome to the glossary, where we define concepts used on our platform to help you get the most out of OpenSauced.",source:"@site/docs/welcome/glossary.md",sourceDirName:"welcome",slug:"/welcome/glossary",permalink:"/welcome/glossary",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/welcome/glossary.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"glossary",title:"OpenSauced Glossary",sidebar_label:"OpenSauced Glossary",keywords:["glossary","openSauced","OpenSauced Glossary","Tech Glossary","OpenSauced Glossary Guide","Open Source Project Glossary"]},sidebar:"docs",previous:{title:"What is OpenSauced?",permalink:"/welcome/opensauced-intro"},next:{title:"FAQs",permalink:"/welcome/faqs"}},l={},u=[{value:"Active Contributors",id:"active-contributors",level:2},{value:"Activity",id:"activity",level:2},{value:"Alumni Contributors",id:"alumni-contributors",level:2},{value:"Contributor Insights",id:"contributor-insights",level:2},{value:"New Contributors",id:"new-contributors",level:2},{value:"PR Overview",id:"pr-overview",level:2},{value:"PR Velocity",id:"pr-velocity",level:2},{value:"Repository Insights",id:"repository-insights",level:2}],c={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Welcome to the glossary, where we define concepts used on our platform to help you get the most out of OpenSauced."),(0,n.kt)("h2",{id:"active-contributors"},"Active Contributors"),(0,n.kt)("p",null,"A contributor who has been active in the last 30 days."),(0,n.kt)("h2",{id:"activity"},"Activity"),(0,n.kt)("p",null,"Activity tracks Pull Requests (PRs) over the last 30 days:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"High"),": More than 80 PRs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Medium"),": Between 5 and 80 PRs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Low"),": Below 5 PRs.")),(0,n.kt)("h2",{id:"alumni-contributors"},"Alumni Contributors"),(0,n.kt)("p",null,"A contributor who has not been active on a project in the last 30 days."),(0,n.kt)("h2",{id:"contributor-insights"},"Contributor Insights"),(0,n.kt)("p",null,"The Contributor Insights feature enables you to categorize, monitor, and analyze different groups of contributors within open source projects. With the Contributor Insights feature, gain granular insights into each contributor's activity and contributions."),(0,n.kt)("h2",{id:"new-contributors"},"New Contributors"),(0,n.kt)("p",null,"A contributor who has recently made their first contribution to a project."),(0,n.kt)("h2",{id:"pr-overview"},"PR Overview"),(0,n.kt)("p",null,"PR Overview tells the story of the Pull Requests (PRs) submitted in the last 30 days:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Green line"),": Open PRs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Red line"),": Closed PRs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Purple line"),": Merged PRs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Grey line"),": Draft PRs.")),(0,n.kt)("h2",{id:"pr-velocity"},"PR Velocity"),(0,n.kt)("p",null,"PR Velocity tracks how quickly Pull Requests (PRs) are being merged in by identifying the average time to completion from the request submission."),(0,n.kt)("h2",{id:"repository-insights"},"Repository Insights"),(0,n.kt)("p",null,"The Repository Insights feature is a one-stop solution for understanding the pulse of your open-source projects and contributions. This feature is designed to provide a comprehensive view of your project's health and your individual contributions."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e4e25c8b.08017724.js b/assets/js/e4e25c8b.08017724.js deleted file mode 100644 index 524f018c..00000000 --- a/assets/js/e4e25c8b.08017724.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[9708],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=i.createContext({}),l=function(e){var t=i.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},m=function(e){var t=l(e.components);return i.createElement(u.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,u=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),p=l(n),d=a,h=p["".concat(u,".").concat(d)]||p[d]||c[d]||s;return n?i.createElement(h,r(r({ref:t},m),{},{components:n})):i.createElement(h,r({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,r=new Array(s);r[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:a,r[1]=o;for(var l=2;l{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>r,default:()=>c,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var i=n(7462),a=(n(7294),n(3905));const s={id:"community-maintainers-guide",title:"OpenSauced Community Maintainers Guidelines",sidebar_label:"Community Maintainers Guidelines",keywords:["opensauced community maintainers guidelines","opensauced community maintainers","maintainers guidelines","open source maintainers guidelines","open source maintainer","open source project management","community management in open source"]},r=void 0,o={unversionedId:"contributing/opensauced-maintainers-guide/community-maintainers-guide",id:"contributing/opensauced-maintainers-guide/community-maintainers-guide",title:"OpenSauced Community Maintainers Guidelines",description:"Welcome to OpenSauced Community Maintainers guidelines!",source:"@site/docs/contributing/opensauced-maintainers-guide/community-maintainers-guide.md",sourceDirName:"contributing/opensauced-maintainers-guide",slug:"/contributing/opensauced-maintainers-guide/community-maintainers-guide",permalink:"/contributing/opensauced-maintainers-guide/community-maintainers-guide",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/opensauced-maintainers-guide/community-maintainers-guide.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"community-maintainers-guide",title:"OpenSauced Community Maintainers Guidelines",sidebar_label:"Community Maintainers Guidelines",keywords:["opensauced community maintainers guidelines","opensauced community maintainers","maintainers guidelines","open source maintainers guidelines","open source maintainer","open source project management","community management in open source"]},sidebar:"docs",previous:{title:"OpenSauced Maintainers Guide",permalink:"/contributing/opensauced-maintainers-guide/maintainers-guide"},next:{title:"Set Up Authentication",permalink:"/contributing/set-up-authentication"}},u={},l=[{value:"Maintainers Best Practices",id:"maintainers-best-practices",level:2},{value:"Issues Management",id:"issues-management",level:2},{value:"Triaging Issues",id:"triaging-issues",level:3},{value:"Creating Issues",id:"creating-issues",level:3},{value:"Good First Issue",id:"good-first-issue",level:3},{value:"Assigning Issues",id:"assigning-issues",level:3},{value:"Pull Request Management",id:"pull-request-management",level:2},{value:"Timeline",id:"timeline",level:3},{value:"Pull Request Review",id:"pull-request-review",level:3},{value:"Merging Pull Request",id:"merging-pull-request",level:3},{value:"Closing Pull Requests",id:"closing-pull-requests",level:3},{value:"OpenSauced Community Maintainers",id:"opensauced-community-maintainers",level:2},{value:"OpenSauced Community Repositories",id:"opensauced-community-repositories",level:2}],m={toc:l},p="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,i.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Welcome to OpenSauced Community Maintainers guidelines!"),(0,a.kt)("p",null,"These guidelines provide expectations and responsibilities for OpenSauced Community Maintainers to foster a welcoming, supportive, and inclusive community and encourage healthy collaboration."),(0,a.kt)("h2",{id:"maintainers-best-practices"},"Maintainers Best Practices"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Open communication"),": Always communicate everything as much as you can openly on GitHub to keep the community in the loop."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Courtesy"),": Always use polite and clear words when asking for changes or giving feedback."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Intention"),": Always tell the reason behind closing an issue or pull request."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Take the time needed"),": Maintainers are human. It\u2019s okay to take time to respond.")),(0,a.kt)("h2",{id:"issues-management"},"Issues Management"),(0,a.kt)("h3",{id:"triaging-issues"},"Triaging Issues"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},'Label issues to classify them. Refer to the "',(0,a.kt)("a",{parentName:"li",href:"/contributing/triage-guide#adding-issue-and-pr-labels"},"Adding Issue and PR Labels"),'" section on the OpenSauced docs.'),(0,a.kt)("li",{parentName:"ul"},"If a feature request needs to be more convincing, ask contributors to convince you why OpenSauced wants to enhance the project with the feature."),(0,a.kt)("li",{parentName:"ul"},"When unsure whether to go on or close the issue, seek the opinions of other maintainers by tagging them in the comment.")),(0,a.kt)("h3",{id:"creating-issues"},"Creating Issues"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Create an issue whenever there's a necessity for change, even without discussing it first with the team."),(0,a.kt)("li",{parentName:"ul"},'All issues should start with a descriptive title that begins with a verb. For example, "',(0,a.kt)("strong",{parentName:"li"},"Add"),' a section on how to use X feature."'),(0,a.kt)("li",{parentName:"ul"},"Creating several small issues is better than one consisting of big changes. Contributors can work on the issues faster, and it can save time for maintainers to review the pull requests."),(0,a.kt)("li",{parentName:"ul"},"Leave the ",(0,a.kt)("inlineCode",{parentName:"li"},"needs triage")," label and tag other maintainers to triage before releasing it for contributions when in doubt."),(0,a.kt)("li",{parentName:"ul"},"Add a ",(0,a.kt)("inlineCode",{parentName:"li"},"beginner"),' label for low-effort issues requiring less expectation for the maintainers\' time and support. Provide clear and enough information about how you want the change to be. For example, "Add a section about X. Give a brief explanation about it. You can read these resources to help you."')),(0,a.kt)("h3",{id:"good-first-issue"},"Good First Issue"),(0,a.kt)("p",null,"Good first issues mainly aim for complete beginners and someone new to OpenSauced projects. A good first issue has to have:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Clear description"),": Why do you want to have the change? What do you want to achieve with the change?"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Proposed solution"),": How can this issue be solved?"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Files and code blocks"),": Point to the file and the code blocks causing the issue. Read the instructions on the GitHub documentation to ",(0,a.kt)("a",{parentName:"li",href:"https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-a-permanent-link-to-a-code-snippet"},"create a permanent link to a code snippet"),".")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Tip"),": Add checkboxes to the issue and ask the contributor to check them as they complete them to help create a clear path to completion."),(0,a.kt)("h3",{id:"assigning-issues"},"Assigning Issues"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The ",(0,a.kt)("inlineCode",{parentName:"li"},"good first issue")," can only be assigned ",(0,a.kt)("strong",{parentName:"li"},"once per contributor"),". ",(0,a.kt)("br",null),' Respond with something like, "Hey {username}, we appreciate all the contributions lately! We\'d love to give someone new a chance to take on this good first issue, but keep checking back as we post new issues frequently."'),(0,a.kt)("li",{parentName:"ul"},"Issues outside the ",(0,a.kt)("inlineCode",{parentName:"li"},"good first issue")," can be assigned ",(0,a.kt)("strong",{parentName:"li"},"max. 2 issues per contributor at a time"),". ",(0,a.kt)("br",null)," We love contributions. But we want to equip contributors to succeed by giving them time to complete issues. Through experience, we've found that two issues at a time allows them to focus on completing the issue and supports maintainers by not having issues open for long periods.")),(0,a.kt)("h2",{id:"pull-request-management"},"Pull Request Management"),(0,a.kt)("h3",{id:"timeline"},"Timeline"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Small pull requests that don't require updates should be merged in up to one week."),(0,a.kt)("li",{parentName:"ul"},"Take time to review long pull requests to prevent merging incomplete, broken, or unresolved pull requests. Communicate with contributors when more time is needed to review the pull requests."),(0,a.kt)("li",{parentName:"ul"},'Pull requests that have requested updates that are stale after two weeks should be put into draft mode with a note to the contributor that says something like: "We haven\u2019t seen any updates to this PR in the last two weeks, so we\u2019ve put it in draft mode. Please let us know if you\u2019re going to continue to work on it."'),(0,a.kt)("li",{parentName:"ul"},"Stale pull requests should be closed when unresolved or inactive (no commits, comment responses, etc.) in 5 weeks. In these circumstances, communicate with contributors that they may reopen if they want to continue working on it only when no one claims the issue. ",(0,a.kt)("br",null)," ",(0,a.kt)("strong",{parentName:"li"},"Note"),": If you close their pull request, you should also unassign any related issues.")),(0,a.kt)("h3",{id:"pull-request-review"},"Pull Request Review"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Ensure that the pull request form is completed. Ask contributors to provide any missing information before reviewing."),(0,a.kt)("li",{parentName:"ul"},"Always ",(0,a.kt)("a",{parentName:"li",href:"https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally"},"pull the pull request's branch")," and test the changes locally."),(0,a.kt)("li",{parentName:"ul"},"Always provide feedback and suggestions when requesting changes. To give code suggestions, please read the ",(0,a.kt)("a",{parentName:"li",href:"https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request"},"GitHub documentation"),"."),(0,a.kt)("li",{parentName:"ul"},"Pull requests should only include what is requested in the issue. If there's another fix that someone (contributor or maintainer) wants to make, it requires another issue and a pull request. If the person has already made the fix in the pull request, politely ask them to remove the update, create a new issue, and wait to be assigned."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.github.com/en/get-started/writing-on-github/working-with-saved-replies/creating-a-saved-reply"},"Creating saved replies")," is helpful when frequently adding the same comment over and over, such as thanking contributors for pull requests or changes made, asking to resolve merge conflicts, etc.")),(0,a.kt)("h3",{id:"merging-pull-request"},"Merging Pull Request"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Always ",(0,a.kt)("strong",{parentName:"p"},"squash and merge commits")," when merging in a pull request.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"When two maintainers review and approve a pull request, the first reviewer is the one who merges the pull request if there are no requested changes.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"When there is a request for changes, the one who requested changes or the last one whose requests got resolved is the one who merges the pull request.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Refrain from resolving conversations started by other maintainers even if the contributor has verified. When it's necessary to merge the pull request fast, tag the maintainer and ask them to do a final check before merging.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Do not approve changes or dismiss reviews from a maintainer even if the contributor has completed the change requests. Re-request review instead.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"If you have the time, it's great to encourage contributors with a positive message like these:"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},'"Thanks for contributing, ',"[name of contributor]",". Join our ",(0,a.kt)("a",{parentName:"p",href:"https://discord.com/invite/U2peSNf23P"},"Discord"),' community for more updates on OpenSauced and to find more projects."')),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A personal message acknowledging their impact.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Send a GIF like this one:"),(0,a.kt)("p",{parentName:"li"},(0,a.kt)("img",{parentName:"p",src:"https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExb2JhdGI5czh4MDlyeWhlNXpicmdrbGZ2Znk0MnM4dnV0ZHMyamNkOSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/cFkiFMDg3iFoI/giphy.gif",alt:"git merge"})))))),(0,a.kt)("h3",{id:"closing-pull-requests"},"Closing Pull Requests"),(0,a.kt)("p",null,"Below are the circumstances when you can close pull requests:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Stand-alone pull requests that don't have issues related to them."),(0,a.kt)("li",{parentName:"ul"},"Pull requests for issues that are not assigned to the contributors."),(0,a.kt)("li",{parentName:"ul"},"Stale pull requests.")),(0,a.kt)("h2",{id:"opensauced-community-maintainers"},"OpenSauced Community Maintainers"),(0,a.kt)("p",null,"See the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/open-sauced/teams/community"},"@open-sauced/community")," team."),(0,a.kt)("h2",{id:"opensauced-community-repositories"},"OpenSauced Community Repositories"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null}),(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"Repository Name")))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"1."),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/open-sauced/guestbook"},"guestbook"))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"2."),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/open-sauced/pizza-verse"},"pizza-verse"))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"3."),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/open-sauced/intro"},"intro"))))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e4e25c8b.9f77d7cc.js b/assets/js/e4e25c8b.9f77d7cc.js new file mode 100644 index 00000000..b48bde33 --- /dev/null +++ b/assets/js/e4e25c8b.9f77d7cc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[9708],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=i.createContext({}),l=function(e){var t=i.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},m=function(e){var t=l(e.components);return i.createElement(u.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,u=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),p=l(n),d=a,h=p["".concat(u,".").concat(d)]||p[d]||c[d]||s;return n?i.createElement(h,r(r({ref:t},m),{},{components:n})):i.createElement(h,r({ref:t},m))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,r=new Array(s);r[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:a,r[1]=o;for(var l=2;l{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>r,default:()=>c,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var i=n(7462),a=(n(7294),n(3905));const s={id:"community-maintainers-guide",title:"OpenSauced Community Maintainers Guidelines",sidebar_label:"Community Maintainers Guidelines",keywords:["opensauced community maintainers guidelines","opensauced community maintainers","maintainers guidelines","open source maintainers guidelines","open source maintainer","open source project management","community management in open source"]},r=void 0,o={unversionedId:"contributing/opensauced-maintainers-guide/community-maintainers-guide",id:"contributing/opensauced-maintainers-guide/community-maintainers-guide",title:"OpenSauced Community Maintainers Guidelines",description:"Welcome to OpenSauced Community Maintainers guidelines!",source:"@site/docs/contributing/opensauced-maintainers-guide/community-maintainers-guide.md",sourceDirName:"contributing/opensauced-maintainers-guide",slug:"/contributing/opensauced-maintainers-guide/community-maintainers-guide",permalink:"/contributing/opensauced-maintainers-guide/community-maintainers-guide",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/opensauced-maintainers-guide/community-maintainers-guide.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"community-maintainers-guide",title:"OpenSauced Community Maintainers Guidelines",sidebar_label:"Community Maintainers Guidelines",keywords:["opensauced community maintainers guidelines","opensauced community maintainers","maintainers guidelines","open source maintainers guidelines","open source maintainer","open source project management","community management in open source"]},sidebar:"docs",previous:{title:"OpenSauced Maintainers Guide",permalink:"/contributing/opensauced-maintainers-guide/maintainers-guide"},next:{title:"Set Up Authentication",permalink:"/contributing/set-up-authentication"}},u={},l=[{value:"Maintainers Best Practices",id:"maintainers-best-practices",level:2},{value:"Issues Management",id:"issues-management",level:2},{value:"Triaging Issues",id:"triaging-issues",level:3},{value:"Creating Issues",id:"creating-issues",level:3},{value:"Good First Issue",id:"good-first-issue",level:3},{value:"Assigning Issues",id:"assigning-issues",level:3},{value:"Pull Request Management",id:"pull-request-management",level:2},{value:"Timeline",id:"timeline",level:3},{value:"Pull Request Review",id:"pull-request-review",level:3},{value:"Merging Pull Request",id:"merging-pull-request",level:3},{value:"Closing Pull Requests",id:"closing-pull-requests",level:3},{value:"OpenSauced Community Maintainers",id:"opensauced-community-maintainers",level:2},{value:"OpenSauced Community Repositories",id:"opensauced-community-repositories",level:2}],m={toc:l},p="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,i.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Welcome to OpenSauced Community Maintainers guidelines!"),(0,a.kt)("p",null,"These guidelines provide expectations and responsibilities for OpenSauced Community Maintainers to foster a welcoming, supportive, and inclusive community and encourage healthy collaboration."),(0,a.kt)("h2",{id:"maintainers-best-practices"},"Maintainers Best Practices"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Open communication"),": Always communicate everything as much as you can openly on GitHub to keep the community in the loop."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Courtesy"),": Always use polite and clear words when asking for changes or giving feedback."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Intention"),": Always tell the reason behind closing an issue or pull request."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Take the time needed"),": Maintainers are human. It\u2019s okay to take time to respond.")),(0,a.kt)("h2",{id:"issues-management"},"Issues Management"),(0,a.kt)("h3",{id:"triaging-issues"},"Triaging Issues"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},'Label issues to classify them. Refer to the "',(0,a.kt)("a",{parentName:"li",href:"/contributing/triage-guide#adding-issue-and-pr-labels"},"Adding Issue and PR Labels"),'" section on the OpenSauced docs.'),(0,a.kt)("li",{parentName:"ul"},"If a feature request needs to be more convincing, ask contributors to convince you why OpenSauced wants to enhance the project with the feature."),(0,a.kt)("li",{parentName:"ul"},"When unsure whether to go on or close the issue, seek the opinions of other maintainers by tagging them in the comment.")),(0,a.kt)("h3",{id:"creating-issues"},"Creating Issues"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Create an issue whenever there's a necessity for change, even without discussing it first with the team."),(0,a.kt)("li",{parentName:"ul"},'All issues should start with a descriptive title that begins with a verb. For example, "',(0,a.kt)("strong",{parentName:"li"},"Add"),' a section on how to use X feature."'),(0,a.kt)("li",{parentName:"ul"},"Creating several small issues is better than one consisting of big changes. Contributors can work on the issues faster, and it can save time for maintainers to review the pull requests."),(0,a.kt)("li",{parentName:"ul"},"Leave the ",(0,a.kt)("inlineCode",{parentName:"li"},"needs triage")," label and tag other maintainers to triage before releasing it for contributions when in doubt."),(0,a.kt)("li",{parentName:"ul"},"Add a ",(0,a.kt)("inlineCode",{parentName:"li"},"beginner"),' label for low-effort issues requiring less expectation for the maintainers\' time and support. Provide clear and enough information about how you want the change to be. For example, "Add a section about X. Give a brief explanation about it. You can read these resources to help you."')),(0,a.kt)("h3",{id:"good-first-issue"},"Good First Issue"),(0,a.kt)("p",null,"Good first issues mainly aim for complete beginners and someone new to OpenSauced projects. A good first issue has to have:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Clear description"),": Why do you want to have the change? What do you want to achieve with the change?"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Proposed solution"),": How can this issue be solved?"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Files and code blocks"),": Point to the file and the code blocks causing the issue. Read the instructions on the GitHub documentation to ",(0,a.kt)("a",{parentName:"li",href:"https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-a-permanent-link-to-a-code-snippet"},"create a permanent link to a code snippet"),".")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Tip"),": Add checkboxes to the issue and ask the contributor to check them as they complete them to help create a clear path to completion."),(0,a.kt)("h3",{id:"assigning-issues"},"Assigning Issues"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The ",(0,a.kt)("inlineCode",{parentName:"li"},"good first issue")," can only be assigned ",(0,a.kt)("strong",{parentName:"li"},"once per contributor"),". ",(0,a.kt)("br",null),' Respond with something like, "Hey {username}, we appreciate all the contributions lately! We\'d love to give someone new a chance to take on this good first issue, but keep checking back as we post new issues frequently."'),(0,a.kt)("li",{parentName:"ul"},"Issues outside the ",(0,a.kt)("inlineCode",{parentName:"li"},"good first issue")," can be assigned ",(0,a.kt)("strong",{parentName:"li"},"max. 2 issues per contributor at a time"),". ",(0,a.kt)("br",null)," We love contributions. But we want to equip contributors to succeed by giving them time to complete issues. Through experience, we've found that two issues at a time allows them to focus on completing the issue and supports maintainers by not having issues open for long periods.")),(0,a.kt)("h2",{id:"pull-request-management"},"Pull Request Management"),(0,a.kt)("h3",{id:"timeline"},"Timeline"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Small pull requests that don't require updates should be merged in up to one week."),(0,a.kt)("li",{parentName:"ul"},"Take time to review long pull requests to prevent merging incomplete, broken, or unresolved pull requests. Communicate with contributors when more time is needed to review the pull requests."),(0,a.kt)("li",{parentName:"ul"},'Pull requests that have requested updates that are stale after two weeks should be put into draft mode with a note to the contributor that says something like: "We haven\u2019t seen any updates to this PR in the last two weeks, so we\u2019ve put it in draft mode. Please let us know if you\u2019re going to continue to work on it."'),(0,a.kt)("li",{parentName:"ul"},"Stale pull requests should be closed when unresolved or inactive (no commits, comment responses, etc.) in 5 weeks. In these circumstances, communicate with contributors that they may reopen if they want to continue working on it only when no one claims the issue. ",(0,a.kt)("br",null)," ",(0,a.kt)("strong",{parentName:"li"},"Note"),": If you close their pull request, you should also unassign any related issues.")),(0,a.kt)("h3",{id:"pull-request-review"},"Pull Request Review"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Ensure that the pull request form is completed. Ask contributors to provide any missing information before reviewing."),(0,a.kt)("li",{parentName:"ul"},"Always ",(0,a.kt)("a",{parentName:"li",href:"https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally"},"pull the pull request's branch")," and test the changes locally."),(0,a.kt)("li",{parentName:"ul"},"Always provide feedback and suggestions when requesting changes. To give code suggestions, please read the ",(0,a.kt)("a",{parentName:"li",href:"https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request"},"GitHub documentation"),"."),(0,a.kt)("li",{parentName:"ul"},"Pull requests should only include what is requested in the issue. If there's another fix that someone (contributor or maintainer) wants to make, it requires another issue and a pull request. If the person has already made the fix in the pull request, politely ask them to remove the update, create a new issue, and wait to be assigned."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.github.com/en/get-started/writing-on-github/working-with-saved-replies/creating-a-saved-reply"},"Creating saved replies")," is helpful when frequently adding the same comment over and over, such as thanking contributors for pull requests or changes made, asking to resolve merge conflicts, etc.")),(0,a.kt)("h3",{id:"merging-pull-request"},"Merging Pull Request"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Always ",(0,a.kt)("strong",{parentName:"p"},"squash and merge commits")," when merging in a pull request.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"When two maintainers review and approve a pull request, the first reviewer is the one who merges the pull request if there are no requested changes.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"When there is a request for changes, the one who requested changes or the last one whose requests got resolved is the one who merges the pull request.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Refrain from resolving conversations started by other maintainers even if the contributor has verified. When it's necessary to merge the pull request fast, tag the maintainer and ask them to do a final check before merging.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Do not approve changes or dismiss reviews from a maintainer even if the contributor has completed the change requests. Re-request review instead.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"If you have the time, it's great to encourage contributors with a positive message like these:"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},'"Thanks for contributing, ',"[name of contributor]",". Join our ",(0,a.kt)("a",{parentName:"p",href:"https://discord.com/invite/U2peSNf23P"},"Discord"),' community for more updates on OpenSauced and to find more projects."')),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"A personal message acknowledging their impact.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Send a GIF like this one:"),(0,a.kt)("p",{parentName:"li"},(0,a.kt)("img",{parentName:"p",src:"https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExb2JhdGI5czh4MDlyeWhlNXpicmdrbGZ2Znk0MnM4dnV0ZHMyamNkOSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/cFkiFMDg3iFoI/giphy.gif",alt:"git merge"})))))),(0,a.kt)("h3",{id:"closing-pull-requests"},"Closing Pull Requests"),(0,a.kt)("p",null,"Below are the circumstances when you can close pull requests:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Stand-alone pull requests that don't have issues related to them."),(0,a.kt)("li",{parentName:"ul"},"Pull requests for issues that are not assigned to the contributors."),(0,a.kt)("li",{parentName:"ul"},"Stale pull requests.")),(0,a.kt)("h2",{id:"opensauced-community-maintainers"},"OpenSauced Community Maintainers"),(0,a.kt)("p",null,"See the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/orgs/open-sauced/teams/community"},"@open-sauced/community")," team."),(0,a.kt)("h2",{id:"opensauced-community-repositories"},"OpenSauced Community Repositories"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null}),(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"Repository Name")))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"1."),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/open-sauced/guestbook"},"guestbook"))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"2."),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/open-sauced/pizza-verse"},"pizza-verse"))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"3."),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("a",{parentName:"td",href:"https://github.com/open-sauced/intro"},"intro"))))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e5a72a0c.12117172.js b/assets/js/e5a72a0c.12117172.js new file mode 100644 index 00000000..7093e564 --- /dev/null +++ b/assets/js/e5a72a0c.12117172.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[7051],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>g});var o=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=o.createContext({}),p=function(e){var n=o.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},l=function(e){var n=p(e.components);return o.createElement(s.Provider,{value:n},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},u=o.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,l=r(e,["components","mdxType","originalType","parentName"]),m=p(t),u=a,g=m["".concat(s,".").concat(u)]||m[u]||d[u]||i;return t?o.createElement(g,c(c({ref:n},l),{},{components:t})):o.createElement(g,c({ref:n},l))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,c=new Array(i);c[0]=u;var r={};for(var s in n)hasOwnProperty.call(n,s)&&(r[s]=n[s]);r.originalType=e,r[m]="string"==typeof e?e:a,c[1]=r;for(var p=2;p{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>p});var o=t(7462),a=(t(7294),t(3905));const i={id:"conventional-commit",title:"@open-sauced/conventional-commit",sidebar_label:"@open-sauced/conventional-commit",keywords:["commitizen conventional commit","open source commit standards","how to use @open-sauced/conventional-commit","npm package for conventional commit","open sauced commit guide","conventional commit best practices","Commit Message Standards","Semantic Versioning","Git Commit Conventions","Standardized Commit Messages","Version Control Best Practices"]},c=void 0,r={unversionedId:"opensauced-packages/conventional-commit",id:"opensauced-packages/conventional-commit",title:"@open-sauced/conventional-commit",description:"Description",source:"@site/docs/opensauced-packages/conventional-commit.md",sourceDirName:"opensauced-packages",slug:"/opensauced-packages/conventional-commit",permalink:"/opensauced-packages/conventional-commit",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-packages/conventional-commit.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"conventional-commit",title:"@open-sauced/conventional-commit",sidebar_label:"@open-sauced/conventional-commit",keywords:["commitizen conventional commit","open source commit standards","how to use @open-sauced/conventional-commit","npm package for conventional commit","open sauced commit guide","conventional commit best practices","Commit Message Standards","Semantic Versioning","Git Commit Conventions","Standardized Commit Messages","Version Control Best Practices"]},sidebar:"docs",previous:{title:"@open-sauced/check-engines",permalink:"/opensauced-packages/check-engines"},next:{title:"@open-sauced/semantic-release-conventional-config",permalink:"/opensauced-packages/semantic-release"}},s={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Advanced Usage",id:"advanced-usage",level:2},{value:"FAQs",id:"faqs",level:2},{value:"Contributing",id:"contributing",level:2}],l={toc:p},m="wrapper";function d(e){let{components:n,...t}=e;return(0,a.kt)(m,(0,o.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"description"},"Description"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,a.kt)("inlineCode",{parentName:"p"},"@open-sauced/conventional-commit")," is designed to help users ",(0,a.kt)("inlineCode",{parentName:"p"},"git commit")," using ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/commitizen/cz-cli"},"commitizen")," and ",(0,a.kt)("a",{parentName:"p",href:"https://www.conventionalcommits.org/en/v1.0.0/"},"conventional commits"),"."),(0,a.kt)("h2",{id:"dependencies"},"Dependencies"),(0,a.kt)("p",null,"This package uses the following modules:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/commitizen/cz-cli"},"cz-cli")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/commitizen/cz-conventional-changelog"},"cz-conventional-changelog"))),(0,a.kt)("h2",{id:"installation"},"Installation"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"npm install --save-dev @open-sauced/conventional-commit\n")),(0,a.kt)("p",null,"Add the verification scripts to your ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts")," section in the ",(0,a.kt)("inlineCode",{parentName:"p"},"package.json")," file:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx @open-sauced/conventional-commit"\n }\n}\n')),(0,a.kt)("p",null,"The reason why we provide ",(0,a.kt)("inlineCode",{parentName:"p"},"npx")," in the ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts")," section is for the people using this as a development enhancement, interactive configurations, or trimmed dependency trees, where using ",(0,a.kt)("inlineCode",{parentName:"p"},"npx")," is preferred over installing all the dependencies at once."),(0,a.kt)("h2",{id:"usage"},"Usage"),(0,a.kt)("p",null,"All you have to do is run the script next to your ",(0,a.kt)("inlineCode",{parentName:"p"},"package.json"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"npx @open-sauced/conventional-commit\n# or\nnpx conventional-commit\n")),(0,a.kt)("h2",{id:"advanced-usage"},"Advanced Usage"),(0,a.kt)("p",null,"The most common use case for this package is to run it instead of the ",(0,a.kt)("inlineCode",{parentName:"p"},"git commit")," command inside your ",(0,a.kt)("inlineCode",{parentName:"p"},"npm")," scripts:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx @open-sauced/conventional-commit"\n }\n}\n')),(0,a.kt)("p",null,"or"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx conventional-commit"\n }\n}\n')),(0,a.kt)("p",null,"If you want to ensure local-only usage:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "conventional-commit"\n }\n}\n')),(0,a.kt)("h2",{id:"faqs"},"FAQs"),(0,a.kt)("h2",{id:"contributing"},"Contributing"),(0,a.kt)("p",null,"We're always happy to onboard people into open source!"),(0,a.kt)("p",null,"Check out the repository at ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/conventional-commit"},"@open-sauced/conventional-commit"),". \u2764\ufe0f"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e5a72a0c.6a1ed462.js b/assets/js/e5a72a0c.6a1ed462.js deleted file mode 100644 index 95b671cd..00000000 --- a/assets/js/e5a72a0c.6a1ed462.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[7051],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>g});var o=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=o.createContext({}),p=function(e){var n=o.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},l=function(e){var n=p(e.components);return o.createElement(s.Provider,{value:n},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},u=o.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,l=r(e,["components","mdxType","originalType","parentName"]),m=p(t),u=a,g=m["".concat(s,".").concat(u)]||m[u]||d[u]||i;return t?o.createElement(g,c(c({ref:n},l),{},{components:t})):o.createElement(g,c({ref:n},l))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,c=new Array(i);c[0]=u;var r={};for(var s in n)hasOwnProperty.call(n,s)&&(r[s]=n[s]);r.originalType=e,r[m]="string"==typeof e?e:a,c[1]=r;for(var p=2;p{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>p});var o=t(7462),a=(t(7294),t(3905));const i={id:"conventional-commit",title:"@open-sauced/conventional-commit",sidebar_label:"@open-sauced/conventional-commit",keywords:["commitizen conventional commit","open source commit standards","how to use @open-sauced/conventional-commit","npm package for conventional commit","open sauced commit guide","conventional commit best practices","Commit Message Standards","Semantic Versioning","Git Commit Conventions","Standardized Commit Messages","Version Control Best Practices"]},c=void 0,r={unversionedId:"opensauced-packages/conventional-commit",id:"opensauced-packages/conventional-commit",title:"@open-sauced/conventional-commit",description:"Description",source:"@site/docs/opensauced-packages/conventional-commit.md",sourceDirName:"opensauced-packages",slug:"/opensauced-packages/conventional-commit",permalink:"/opensauced-packages/conventional-commit",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/opensauced-packages/conventional-commit.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"conventional-commit",title:"@open-sauced/conventional-commit",sidebar_label:"@open-sauced/conventional-commit",keywords:["commitizen conventional commit","open source commit standards","how to use @open-sauced/conventional-commit","npm package for conventional commit","open sauced commit guide","conventional commit best practices","Commit Message Standards","Semantic Versioning","Git Commit Conventions","Standardized Commit Messages","Version Control Best Practices"]},sidebar:"docs",previous:{title:"@open-sauced/check-engines",permalink:"/opensauced-packages/check-engines"},next:{title:"@open-sauced/semantic-release-conventional-config",permalink:"/opensauced-packages/semantic-release"}},s={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Advanced Usage",id:"advanced-usage",level:2},{value:"FAQs",id:"faqs",level:2},{value:"Contributing",id:"contributing",level:2}],l={toc:p},m="wrapper";function d(e){let{components:n,...t}=e;return(0,a.kt)(m,(0,o.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"description"},"Description"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,a.kt)("inlineCode",{parentName:"p"},"@open-sauced/conventional-commit")," is designed to help users ",(0,a.kt)("inlineCode",{parentName:"p"},"git commit")," using ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/commitizen/cz-cli"},"commitizen")," and ",(0,a.kt)("a",{parentName:"p",href:"https://www.conventionalcommits.org/en/v1.0.0/"},"conventional commits"),"."),(0,a.kt)("h2",{id:"dependencies"},"Dependencies"),(0,a.kt)("p",null,"This package uses the following modules:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/commitizen/cz-cli"},"cz-cli")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/commitizen/cz-conventional-changelog"},"cz-conventional-changelog"))),(0,a.kt)("h2",{id:"installation"},"Installation"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"npm install --save-dev @open-sauced/conventional-commit\n")),(0,a.kt)("p",null,"Add the verification scripts to your ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts")," section in the ",(0,a.kt)("inlineCode",{parentName:"p"},"package.json")," file:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx @open-sauced/conventional-commit"\n }\n}\n')),(0,a.kt)("p",null,"The reason why we provide ",(0,a.kt)("inlineCode",{parentName:"p"},"npx")," in the ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts")," section is for the people using this as a development enhancement, interactive configurations, or trimmed dependency trees, where using ",(0,a.kt)("inlineCode",{parentName:"p"},"npx")," is preferred over installing all the dependencies at once."),(0,a.kt)("h2",{id:"usage"},"Usage"),(0,a.kt)("p",null,"All you have to do is run the script next to your ",(0,a.kt)("inlineCode",{parentName:"p"},"package.json"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"npx @open-sauced/conventional-commit\n# or\nnpx conventional-commit\n")),(0,a.kt)("h2",{id:"advanced-usage"},"Advanced Usage"),(0,a.kt)("p",null,"The most common use case for this package is to run it instead of the ",(0,a.kt)("inlineCode",{parentName:"p"},"git commit")," command inside your ",(0,a.kt)("inlineCode",{parentName:"p"},"npm")," scripts:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx @open-sauced/conventional-commit"\n }\n}\n')),(0,a.kt)("p",null,"or"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx conventional-commit"\n }\n}\n')),(0,a.kt)("p",null,"If you want to ensure local-only usage:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "conventional-commit"\n }\n}\n')),(0,a.kt)("h2",{id:"faqs"},"FAQs"),(0,a.kt)("h2",{id:"contributing"},"Contributing"),(0,a.kt)("p",null,"We're always happy to onboard people into open source!"),(0,a.kt)("p",null,"Check out the repository at ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/conventional-commit"},"@open-sauced/conventional-commit"),". \u2764\ufe0f"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ea6e505e.6bbb0928.js b/assets/js/ea6e505e.c4d3a724.js similarity index 53% rename from assets/js/ea6e505e.6bbb0928.js rename to assets/js/ea6e505e.c4d3a724.js index 397115fd..2c1db57c 100644 --- a/assets/js/ea6e505e.6bbb0928.js +++ b/assets/js/ea6e505e.c4d3a724.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[2747],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),l=s(n),m=o,f=l["".concat(u,".").concat(m)]||l[m]||d[m]||a;return n?r.createElement(f,c(c({ref:t},p),{},{components:n})):r.createElement(f,c({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[l]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var r=n(7462),o=(n(7294),n(3905));const a={id:"opensauced-intro",title:"What is OpenSauced?",sidebar_label:"What is OpenSauced?",keywords:["opensauced","what is opensauced","get to know opensauced"]},c=void 0,i={unversionedId:"welcome/opensauced-intro",id:"welcome/opensauced-intro",title:"What is OpenSauced?",description:"OpenSauced: Your Open Source Partner",source:"@site/docs/welcome/opensauced-intro.md",sourceDirName:"welcome",slug:"/welcome/opensauced-intro",permalink:"/welcome/opensauced-intro",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/welcome/opensauced-intro.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"opensauced-intro",title:"What is OpenSauced?",sidebar_label:"What is OpenSauced?",keywords:["opensauced","what is opensauced","get to know opensauced"]},sidebar:"docs",previous:{title:"Introduction to OpenSauced \ud83c\udf55",permalink:"/"},next:{title:"OpenSauced Glossary",permalink:"/welcome/glossary"}},u={},s=[{value:"OpenSauced: Your Open Source Partner",id:"opensauced-your-open-source-partner",level:2},{value:"Who is OpenSauced for?",id:"who-is-opensauced-for",level:2}],p={toc:s},l="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(l,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"opensauced-your-open-source-partner"},"OpenSauced: Your Open Source Partner"),(0,o.kt)("p",null,"OpenSauced is a platform dedicated to nurturing and expanding your open source community while recognizing every contributor's impact."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Our OpenSauced dashboard allows you to:")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Understand open source projects:")," Get a comprehensive view of open source contributors and their engagement."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Discover valuable insights:")," Identify key contributors, emerging trends, and valuable project insights."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Engage effectively:")," Reach out to community members to foster involvement and collaboration."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Generate reports:")," Create insightful reports to visualize and communicate the influence of your community."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Collaborate with your team:")," Work together with your team or other contributors for a holistic approach to open source."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"See beyond the green squares:")," Connect with various aspects of open source contribution and community activities.")),(0,o.kt)("h2",{id:"who-is-opensauced-for"},"Who is OpenSauced for?"),(0,o.kt)("p",null,"OpenSauced is for maintainers, Open Source Program Offices (OSPOs), contributors, companies, community managers, and anyone interested in what's happening in the open source ecosystem."),(0,o.kt)("p",null,"Embarking on an OpenSauced journey enhances your growth and community engagement. Let's launch your open source success story! \ud83d\ude80"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[2747],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),l=s(n),m=o,f=l["".concat(u,".").concat(m)]||l[m]||d[m]||a;return n?r.createElement(f,c(c({ref:t},p),{},{components:n})):r.createElement(f,c({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[l]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var r=n(7462),o=(n(7294),n(3905));const a={id:"opensauced-intro",title:"What is OpenSauced?",sidebar_label:"What is OpenSauced?",keywords:["opensauced","what is opensauced","get to know opensauced"]},c=void 0,i={unversionedId:"welcome/opensauced-intro",id:"welcome/opensauced-intro",title:"What is OpenSauced?",description:"OpenSauced: Your Open Source Partner",source:"@site/docs/welcome/opensauced-intro.md",sourceDirName:"welcome",slug:"/welcome/opensauced-intro",permalink:"/welcome/opensauced-intro",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/welcome/opensauced-intro.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"opensauced-intro",title:"What is OpenSauced?",sidebar_label:"What is OpenSauced?",keywords:["opensauced","what is opensauced","get to know opensauced"]},sidebar:"docs",previous:{title:"Introduction to OpenSauced \ud83c\udf55",permalink:"/"},next:{title:"OpenSauced Glossary",permalink:"/welcome/glossary"}},u={},s=[{value:"OpenSauced: Your Open Source Partner",id:"opensauced-your-open-source-partner",level:2},{value:"Who is OpenSauced for?",id:"who-is-opensauced-for",level:2}],p={toc:s},l="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(l,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"opensauced-your-open-source-partner"},"OpenSauced: Your Open Source Partner"),(0,o.kt)("p",null,"OpenSauced is a platform dedicated to nurturing and expanding your open source community while recognizing every contributor's impact."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Our OpenSauced dashboard allows you to:")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Understand open source projects:")," Get a comprehensive view of open source contributors and their engagement."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Discover valuable insights:")," Identify key contributors, emerging trends, and valuable project insights."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Engage effectively:")," Reach out to community members to foster involvement and collaboration."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Generate reports:")," Create insightful reports to visualize and communicate the influence of your community."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Collaborate with your team:")," Work together with your team or other contributors for a holistic approach to open source."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"See beyond the green squares:")," Connect with various aspects of open source contribution and community activities.")),(0,o.kt)("h2",{id:"who-is-opensauced-for"},"Who is OpenSauced for?"),(0,o.kt)("p",null,"OpenSauced is for maintainers, Open Source Program Offices (OSPOs), contributors, companies, community managers, and anyone interested in what's happening in the open source ecosystem."),(0,o.kt)("p",null,"Embarking on an OpenSauced journey enhances your growth and community engagement. Let's launch your open source success story! \ud83d\ude80"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f3a8e19a.6dc4238b.js b/assets/js/f3a8e19a.6dc4238b.js new file mode 100644 index 00000000..e4095a71 --- /dev/null +++ b/assets/js/f3a8e19a.6dc4238b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[667],{3905:(e,r,t)=>{t.d(r,{Zo:()=>d,kt:()=>y});var o=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function n(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=o.createContext({}),u=function(e){var r=o.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},d=function(e){var r=u(e.components);return o.createElement(s.Provider,{value:r},e.children)},p="mdxType",l={inlineCode:"code",wrapper:function(e){var r=e.children;return o.createElement(o.Fragment,{},r)}},f=o.forwardRef((function(e,r){var t=e.components,a=e.mdxType,n=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=u(t),f=a,y=p["".concat(s,".").concat(f)]||p[f]||l[f]||n;return t?o.createElement(y,c(c({ref:r},d),{},{components:t})):o.createElement(y,c({ref:r},d))}));function y(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var n=t.length,c=new Array(n);c[0]=f;var i={};for(var s in r)hasOwnProperty.call(r,s)&&(i[s]=r[s]);i.originalType=e,i[p]="string"==typeof e?e:a,c[1]=i;for(var u=2;u{t.r(r),t.d(r,{assets:()=>s,contentTitle:()=>c,default:()=>l,frontMatter:()=>n,metadata:()=>i,toc:()=>u});var o=t(7462),a=(t(7294),t(3905));const n={id:"dev-card",title:"Showcase Your Open Source Stats with Your Dev Card",sidebar_label:"Dev Card",keywords:["dev card","DevCard","OpenSource","Open Source DevCard","Showcase DevCard","Showcase Your Open Source Stats","Open Source Stats DevCard"]},c=void 0,i={unversionedId:"features/dev-card",id:"features/dev-card",title:"Showcase Your Open Source Stats with Your Dev Card",description:'The Dev Card feature is what we like to call your "open source business card."',source:"@site/docs/features/dev-card.md",sourceDirName:"features",slug:"/features/dev-card",permalink:"/features/dev-card",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/dev-card.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"dev-card",title:"Showcase Your Open Source Stats with Your Dev Card",sidebar_label:"Dev Card",keywords:["dev card","DevCard","OpenSource","Open Source DevCard","Showcase DevCard","Showcase Your Open Source Stats","Open Source Stats DevCard"]},sidebar:"docs",previous:{title:"Highlights",permalink:"/features/highlights"},next:{title:"Introduction",permalink:"/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction"}},s={},u=[],d={toc:u},p="wrapper";function l(e){let{components:r,...n}=e;return(0,a.kt)(p,(0,o.Z)({},d,n,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("p",null,'The Dev Card feature is what we like to call your "open source business card."'),(0,a.kt)("p",null,"On the front of your card, you see your profile picture, username, the number of pull requests you have created, the number of repositories you contributed to, and a graph icon that describes your activity rate."),(0,a.kt)("p",null,"You'll see the back side of your card when you click it. It shows more information, including your profile's picture and headline, the number of pull requests you have created, the date of your first contribution on GitHub, activity rate, ",(0,a.kt)("a",{parentName:"p",href:"https://docs.opensauced.pizza/welcome/glossary/#pr-velocity"},"PR velocity")," rate, and a ",(0,a.kt)("inlineCode",{parentName:"p"},"View Profile")," button that takes you to your dashboard."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"front and back sides of a dev card",src:t(2).Z,width:"940",height:"658"})),(0,a.kt)("p",null,"Whether you are just beginning your open source journey or a maintainer looking for more contributors and sponsors, you can share your Dev Card as a snapshot of your contributions, skills, and engagement in the open source community."),(0,a.kt)("p",null,"Eager to get your Dev Card? Here's how you can get yours today:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Log in to your OpenSauced account."),(0,a.kt)("li",{parentName:"ol"},"Navigate to your ",(0,a.kt)("a",{parentName:"li",href:"https://app.opensauced.pizza/user/%7Busername%7D"},"profile"),"."),(0,a.kt)("li",{parentName:"ol"},"Click the Dev Card icon on your profile image.")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"dev card icon on user profile",src:t(2124).Z,width:"266",height:"256"})))}l.isMDXComponent=!0},2:(e,r,t)=>{t.d(r,{Z:()=>o});const o=t.p+"assets/images/a-dev-card-f7b01f48467c20d93ddb9814e8e54918.png"},2124:(e,r,t)=>{t.d(r,{Z:()=>o});const o=t.p+"assets/images/get-dev-card-c62768aa8c13ad8dd99b2ee0e83cfa12.png"}}]); \ No newline at end of file diff --git a/assets/js/f3a8e19a.9c0e6511.js b/assets/js/f3a8e19a.9c0e6511.js deleted file mode 100644 index d4f25b7e..00000000 --- a/assets/js/f3a8e19a.9c0e6511.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[667],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>y});var o=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=o.createContext({}),s=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},d=function(e){var t=s(e.components);return o.createElement(u.Provider,{value:t},e.children)},p="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},f=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=s(r),f=a,y=p["".concat(u,".").concat(f)]||p[f]||l[f]||n;return r?o.createElement(y,c(c({ref:t},d),{},{components:r})):o.createElement(y,c({ref:t},d))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,c=new Array(n);c[0]=f;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>l,frontMatter:()=>n,metadata:()=>i,toc:()=>s});var o=r(7462),a=(r(7294),r(3905));const n={id:"dev-card",title:"Showcase Your Open Source Stats with Your Dev Card",sidebar_label:"Dev Card",keywords:["dev card","DevCard","OpenSource","Open Source DevCard","Showcase DevCard","Showcase Your Open Source Stats","Open Source Stats DevCard"]},c=void 0,i={unversionedId:"features/dev-card",id:"features/dev-card",title:"Showcase Your Open Source Stats with Your Dev Card",description:'The Dev Card feature is what we like to call your "open source business card."',source:"@site/docs/features/dev-card.md",sourceDirName:"features",slug:"/features/dev-card",permalink:"/features/dev-card",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/features/dev-card.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"dev-card",title:"Showcase Your Open Source Stats with Your Dev Card",sidebar_label:"Dev Card",keywords:["dev card","DevCard","OpenSource","Open Source DevCard","Showcase DevCard","Showcase Your Open Source Stats","Open Source Stats DevCard"]},sidebar:"docs",previous:{title:"Highlights",permalink:"/features/highlights"},next:{title:"Introduction",permalink:"/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction"}},u={},s=[],d={toc:s},p="wrapper";function l(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,'The Dev Card feature is what we like to call your "open source business card."'),(0,a.kt)("p",null,"On the front of your card, you see your profile picture, username, the number of pull requests you have created, the number of repositories you contributed to, and a graph icon that describes your activity rate."),(0,a.kt)("p",null,"You'll see the back side of your card when you click it. It shows more information, including your profile's picture and headline, the number of pull requests you have created, the date of your first contribution on GitHub, activity rate, ",(0,a.kt)("a",{parentName:"p",href:"https://docs.opensauced.pizza/welcome/glossary/#pr-velocity"},"PR velocity")," rate, and a ",(0,a.kt)("inlineCode",{parentName:"p"},"View Profile")," button that takes you to your dashboard."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"front and back sides of a dev card",src:r(2).Z,width:"940",height:"658"})),(0,a.kt)("p",null,"Whether you are just beginning your open source journey or a maintainer looking for more contributors and sponsors, you can share your Dev Card as a snapshot of your contributions, skills, and engagement in the open source community."),(0,a.kt)("p",null,"Eager to get your Dev Card? Here's how you can get yours today:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Log in to your OpenSauced account."),(0,a.kt)("li",{parentName:"ol"},"Navigate to your ",(0,a.kt)("a",{parentName:"li",href:"https://app.opensauced.pizza/user/%7Busername%7D"},"profile"),"."),(0,a.kt)("li",{parentName:"ol"},"Click the Dev Card icon on your profile image.")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"dev card icon on user profile",src:r(2124).Z,width:"266",height:"256"})))}l.isMDXComponent=!0},2:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/a-dev-card-f7b01f48467c20d93ddb9814e8e54918.png"},2124:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/get-dev-card-c62768aa8c13ad8dd99b2ee0e83cfa12.png"}}]); \ No newline at end of file diff --git a/assets/js/f8d965ab.91fa9ec8.js b/assets/js/f8d965ab.91fa9ec8.js deleted file mode 100644 index 0308d0f9..00000000 --- a/assets/js/f8d965ab.91fa9ec8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[9349],{3905:(e,t,o)=>{o.d(t,{Zo:()=>l,kt:()=>b});var r=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function i(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var u=r.createContext({}),c=function(e){var t=r.useContext(u),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},l=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=c(o),h=n,b=p["".concat(u,".").concat(h)]||p[h]||f[h]||a;return o?r.createElement(b,i(i({ref:t},l),{},{components:o})):r.createElement(b,i({ref:t},l))}));function b(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,i=new Array(a);i[0]=h;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:n,i[1]=s;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>f,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=o(7462),n=(o(7294),o(3905));const a={id:"hacktoberfest",title:"Join us for Hacktoberfest! \ud83c\udf83",sidebar_label:"Join us for Hacktoberfest! \ud83c\udf83",keywords:["hacktoberfest","Open source contributions for Hacktoberfest","Hacktoberfest participation guide","Open source collaboration in October","Hacktoberfest beginner-friendly projects","How to get involved in Hacktoberfest"]},i=void 0,s={unversionedId:"community/hacktoberfest",id:"community/hacktoberfest",title:"Join us for Hacktoberfest! \ud83c\udf83",description:"At OpenSauced, we love open source just as much as pizza! That's why we are participating in Hacktoberfest! \ud83c\udf83",source:"@site/docs/community/hacktoberfest.md",sourceDirName:"community",slug:"/community/hacktoberfest",permalink:"/community/hacktoberfest",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/hacktoberfest.md",tags:[],version:"current",lastUpdatedBy:"BekahHW",lastUpdatedAt:1712780631,formattedLastUpdatedAt:"Apr 10, 2024",frontMatter:{id:"hacktoberfest",title:"Join us for Hacktoberfest! \ud83c\udf83",sidebar_label:"Join us for Hacktoberfest! \ud83c\udf83",keywords:["hacktoberfest","Open source contributions for Hacktoberfest","Hacktoberfest participation guide","Open source collaboration in October","Hacktoberfest beginner-friendly projects","How to get involved in Hacktoberfest"]}},u={},c=[{value:"What is Hacktoberfest?",id:"what-is-hacktoberfest",level:2},{value:"Why Should I Participate in Hacktoberfest?",id:"why-should-i-participate-in-hacktoberfest",level:2},{value:"I want to join Hacktoberfest, but I have no idea what open source is",id:"i-want-to-join-hacktoberfest-but-i-have-no-idea-what-open-source-is",level:2},{value:"What should I expect during Hacktoberfest?",id:"what-should-i-expect-during-hacktoberfest",level:2},{value:"I'm ready for Hacktoberfest",id:"im-ready-for-hacktoberfest",level:2}],l={toc:c},p="wrapper";function f(e){let{components:t,...o}=e;return(0,n.kt)(p,(0,r.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"At OpenSauced, we love open source just as much as pizza! That's why we are participating in Hacktoberfest! \ud83c\udf83"),(0,n.kt)("h2",{id:"what-is-hacktoberfest"},"What is Hacktoberfest?"),(0,n.kt)("p",null,"From October 1st-31st, people around the globe do a challenge where they submit four pull requests participating projects. Here's how to join:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("a",{parentName:"li",href:"https://hacktoberfest.com/"},"the official Hacktoberfest website")),(0,n.kt)("li",{parentName:"ol"},"Click on the Register Now! button"),(0,n.kt)("li",{parentName:"ol"},"Sign in with your ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/"},"GitHub")," and/or ",(0,n.kt)("a",{parentName:"li",href:"https://gitlab.com/users/sign_in"},"GitLab")," accounts.")),(0,n.kt)("h2",{id:"why-should-i-participate-in-hacktoberfest"},"Why Should I Participate in Hacktoberfest?"),(0,n.kt)("p",null,"This event is a great way to jumpstart your journey in open source, to meet other people in the tech community, and build your skills. Curious to learn more about the value of contributing to open source? Check out these resources:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://dev.to/opensauced/hacktoberfest-2023-beyond-green-squares-4d6j"},"Hacktoberfest 2023: Beyond Green Squares")," to learn how to make this a meaningful Hacktoberfest focused on growth, impact, and building relationships."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://dev.to/opensauced/setting-goals-for-your-open-source-contributions-349b"},"Setting Goals for Your Open Source Contributions")," for resources on how to grow your experience through open source.")),(0,n.kt)("h2",{id:"i-want-to-join-hacktoberfest-but-i-have-no-idea-what-open-source-is"},"I want to join Hacktoberfest, but I have no idea what open source is"),(0,n.kt)("p",null,"No problem! \ud83d\ude04 Here is a list of resources we recommend for first-time contributors:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Take our ",(0,n.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source")," course to learn the history of open source, the tools to succeed in the community, and how to showcase your contributions."),(0,n.kt)("li",{parentName:"ul"},"Check out GitHub's ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/skills/introduction-to-github"},"introductory course")," to learn how to use the platform when making open source contributions."),(0,n.kt)("li",{parentName:"ul"},"Read our ",(0,n.kt)("a",{parentName:"li",href:"https://dev.to/opensauced/the-power-of-git-a-guide-to-collaborative-version-control-dl6"},"The Power of Git")," blog post to learn how to harness the power of Git, your trusty weapon in Hacktoberfest.")),(0,n.kt)("h2",{id:"what-should-i-expect-during-hacktoberfest"},"What should I expect during Hacktoberfest?"),(0,n.kt)("p",null,"During Hacktoberfest, expect to feel excited and a bit competitive on your quest to submit your four pull requests. While those feelings are understandable, it's important to remember the following:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Think first, work later: It's best to share your ideas and/or request to work on an issue before submitting a pull request. It'll make it easier for maintainers to assess whether your suggestion fits in with their project. It will also help you develop your communication skills."),(0,n.kt)("li",{parentName:"ul"},"Be patient: Maintainers are people with lives outside of open source, so avoid constantly messaging them about when your pull request be reviewed and merged."),(0,n.kt)("li",{parentName:"ul"},"Try new things: While revising typos is helpful, it's best to diversify contributions. This would help expand your skills, which is very useful if you plan on using your Hacktoberfest contributions as samples for your portfolio.")),(0,n.kt)("h2",{id:"im-ready-for-hacktoberfest"},"I'm ready for Hacktoberfest"),(0,n.kt)("p",null,"Great! \ud83d\ude04 If you're looking for a project to contribute to, check out ",(0,n.kt)("a",{parentName:"p",href:"https://insights.opensauced.pizza/pages/BekahHW/655/repositories"},"this list of beginner-friendly projects for Hacktoberfest"),"."),(0,n.kt)("p",null,"Happy Contributing! \ud83d\ude04"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f8d965ab.b203773f.js b/assets/js/f8d965ab.b203773f.js new file mode 100644 index 00000000..18248c1a --- /dev/null +++ b/assets/js/f8d965ab.b203773f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[9349],{3905:(e,t,o)=>{o.d(t,{Zo:()=>l,kt:()=>b});var r=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function i(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var u=r.createContext({}),c=function(e){var t=r.useContext(u),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},l=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=c(o),h=n,b=p["".concat(u,".").concat(h)]||p[h]||f[h]||a;return o?r.createElement(b,i(i({ref:t},l),{},{components:o})):r.createElement(b,i({ref:t},l))}));function b(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,i=new Array(a);i[0]=h;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:n,i[1]=s;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>f,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=o(7462),n=(o(7294),o(3905));const a={id:"hacktoberfest",title:"Join us for Hacktoberfest! \ud83c\udf83",sidebar_label:"Join us for Hacktoberfest! \ud83c\udf83",keywords:["hacktoberfest","Open source contributions for Hacktoberfest","Hacktoberfest participation guide","Open source collaboration in October","Hacktoberfest beginner-friendly projects","How to get involved in Hacktoberfest"]},i=void 0,s={unversionedId:"community/hacktoberfest",id:"community/hacktoberfest",title:"Join us for Hacktoberfest! \ud83c\udf83",description:"At OpenSauced, we love open source just as much as pizza! That's why we are participating in Hacktoberfest! \ud83c\udf83",source:"@site/docs/community/hacktoberfest.md",sourceDirName:"community",slug:"/community/hacktoberfest",permalink:"/community/hacktoberfest",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/hacktoberfest.md",tags:[],version:"current",lastUpdatedBy:"Omkar Phansopkar",lastUpdatedAt:1712864087,formattedLastUpdatedAt:"Apr 11, 2024",frontMatter:{id:"hacktoberfest",title:"Join us for Hacktoberfest! \ud83c\udf83",sidebar_label:"Join us for Hacktoberfest! \ud83c\udf83",keywords:["hacktoberfest","Open source contributions for Hacktoberfest","Hacktoberfest participation guide","Open source collaboration in October","Hacktoberfest beginner-friendly projects","How to get involved in Hacktoberfest"]}},u={},c=[{value:"What is Hacktoberfest?",id:"what-is-hacktoberfest",level:2},{value:"Why Should I Participate in Hacktoberfest?",id:"why-should-i-participate-in-hacktoberfest",level:2},{value:"I want to join Hacktoberfest, but I have no idea what open source is",id:"i-want-to-join-hacktoberfest-but-i-have-no-idea-what-open-source-is",level:2},{value:"What should I expect during Hacktoberfest?",id:"what-should-i-expect-during-hacktoberfest",level:2},{value:"I'm ready for Hacktoberfest",id:"im-ready-for-hacktoberfest",level:2}],l={toc:c},p="wrapper";function f(e){let{components:t,...o}=e;return(0,n.kt)(p,(0,r.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"At OpenSauced, we love open source just as much as pizza! That's why we are participating in Hacktoberfest! \ud83c\udf83"),(0,n.kt)("h2",{id:"what-is-hacktoberfest"},"What is Hacktoberfest?"),(0,n.kt)("p",null,"From October 1st-31st, people around the globe do a challenge where they submit four pull requests participating projects. Here's how to join:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("a",{parentName:"li",href:"https://hacktoberfest.com/"},"the official Hacktoberfest website")),(0,n.kt)("li",{parentName:"ol"},"Click on the Register Now! button"),(0,n.kt)("li",{parentName:"ol"},"Sign in with your ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/"},"GitHub")," and/or ",(0,n.kt)("a",{parentName:"li",href:"https://gitlab.com/users/sign_in"},"GitLab")," accounts.")),(0,n.kt)("h2",{id:"why-should-i-participate-in-hacktoberfest"},"Why Should I Participate in Hacktoberfest?"),(0,n.kt)("p",null,"This event is a great way to jumpstart your journey in open source, to meet other people in the tech community, and build your skills. Curious to learn more about the value of contributing to open source? Check out these resources:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://dev.to/opensauced/hacktoberfest-2023-beyond-green-squares-4d6j"},"Hacktoberfest 2023: Beyond Green Squares")," to learn how to make this a meaningful Hacktoberfest focused on growth, impact, and building relationships."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://dev.to/opensauced/setting-goals-for-your-open-source-contributions-349b"},"Setting Goals for Your Open Source Contributions")," for resources on how to grow your experience through open source.")),(0,n.kt)("h2",{id:"i-want-to-join-hacktoberfest-but-i-have-no-idea-what-open-source-is"},"I want to join Hacktoberfest, but I have no idea what open source is"),(0,n.kt)("p",null,"No problem! \ud83d\ude04 Here is a list of resources we recommend for first-time contributors:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Take our ",(0,n.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source")," course to learn the history of open source, the tools to succeed in the community, and how to showcase your contributions."),(0,n.kt)("li",{parentName:"ul"},"Check out GitHub's ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/skills/introduction-to-github"},"introductory course")," to learn how to use the platform when making open source contributions."),(0,n.kt)("li",{parentName:"ul"},"Read our ",(0,n.kt)("a",{parentName:"li",href:"https://dev.to/opensauced/the-power-of-git-a-guide-to-collaborative-version-control-dl6"},"The Power of Git")," blog post to learn how to harness the power of Git, your trusty weapon in Hacktoberfest.")),(0,n.kt)("h2",{id:"what-should-i-expect-during-hacktoberfest"},"What should I expect during Hacktoberfest?"),(0,n.kt)("p",null,"During Hacktoberfest, expect to feel excited and a bit competitive on your quest to submit your four pull requests. While those feelings are understandable, it's important to remember the following:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Think first, work later: It's best to share your ideas and/or request to work on an issue before submitting a pull request. It'll make it easier for maintainers to assess whether your suggestion fits in with their project. It will also help you develop your communication skills."),(0,n.kt)("li",{parentName:"ul"},"Be patient: Maintainers are people with lives outside of open source, so avoid constantly messaging them about when your pull request be reviewed and merged."),(0,n.kt)("li",{parentName:"ul"},"Try new things: While revising typos is helpful, it's best to diversify contributions. This would help expand your skills, which is very useful if you plan on using your Hacktoberfest contributions as samples for your portfolio.")),(0,n.kt)("h2",{id:"im-ready-for-hacktoberfest"},"I'm ready for Hacktoberfest"),(0,n.kt)("p",null,"Great! \ud83d\ude04 If you're looking for a project to contribute to, check out ",(0,n.kt)("a",{parentName:"p",href:"https://insights.opensauced.pizza/pages/BekahHW/655/repositories"},"this list of beginner-friendly projects for Hacktoberfest"),"."),(0,n.kt)("p",null,"Happy Contributing! \ud83d\ude04"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.2b369c0d.js b/assets/js/main.59f6ac3d.js similarity index 99% rename from assets/js/main.2b369c0d.js rename to assets/js/main.59f6ac3d.js index 30943de7..2a63a68c 100644 --- a/assets/js/main.2b369c0d.js +++ b/assets/js/main.59f6ac3d.js @@ -1,2 +1,2 @@ -/*! For license information please see main.2b369c0d.js.LICENSE.txt */ -(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"0f97bf69":[()=>n.e(4158).then(n.bind(n,1553)),"@site/docs/opensauced-packages/semantic-release.md",1553],"163a28f8":[()=>n.e(2610).then(n.bind(n,7888)),"@site/docs/maintainers/maintainers-guide.md",7888],17896441:[()=>Promise.all([n.e(532),n.e(272),n.e(7918)]).then(n.bind(n,903)),"@theme/DocItem",903],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,6675)),"@theme/SearchPage",6675],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1f391b9e":[()=>Promise.all([n.e(532),n.e(272),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"32aa117d":[()=>n.e(3116).then(n.bind(n,1114)),"@site/docs/welcome/faqs.md",1114],"348cc82b":[()=>n.e(4642).then(n.bind(n,6526)),"@site/docs/features/repo-insights.md",6526],"393be207":[()=>n.e(7414).then(n.bind(n,3123)),"@site/src/pages/markdown-page.md",3123],"43ab1095":[()=>n.e(1568).then(n.bind(n,3799)),"@site/docs/tools/chrome-extension/pr-description.md",3799],"43d9ba09":[()=>n.e(4726).then(n.bind(n,75)),"@site/docs/tools/chrome-extension/code-explanation.md",75],"455b852b":[()=>n.e(358).then(n.bind(n,1138)),"@site/docs/tools/chrome-extension/introduction-to-the-chrome-extension.md",1138],"48b9cea9":[()=>n.e(247).then(n.bind(n,2342)),"@site/docs/contributing/set-up-authentication.md",2342],"4c2521ce":[()=>n.e(4657).then(n.bind(n,1231)),"@site/docs/contributing/technical/setup-repo-with-git.md",1231],"4d1cfcdd":[()=>n.e(4046).then(n.bind(n,6352)),"@site/docs/tools/chrome-extension/viewing-insights-and-invitations.md",6352],"51fe39eb":[()=>n.e(5994).then(n.bind(n,9840)),"@site/docs/opensauced-packages/check-engines.md",9840],"561e6817":[()=>n.e(1161).then(n.bind(n,3701)),"@site/docs/community/welcome-to-the-community.md",3701],"580fd761":[()=>n.e(7607).then(n.bind(n,4994)),"@site/docs/contributing/code-of-conduct.md",4994],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5a367a69":[()=>n.e(216).then(n.bind(n,2430)),"@site/docs/contributing/technical/resolve-merge-conflicts.md",2430],"5c57b204":[()=>n.e(4782).then(n.bind(n,7346)),"@site/docs/tools/hot-opensauced.md",7346],"6308756d":[()=>n.e(1461).then(n.bind(n,2683)),"@site/docs/contributing/introduction-to-contributing.md",2683],"7132722c":[()=>n.e(9946).then(n.bind(n,230)),"@site/docs/opensauced-guides/job-seekers-guide/introduction.md",230],"731f462e":[()=>n.e(8331).then(n.bind(n,6468)),"@site/docs/features/repo-pages.md",6468],"814ea625":[()=>n.e(4986).then(n.bind(n,9593)),"@site/docs/features/contributor-insights.md",9593],"88e6cb4a":[()=>n.e(8710).then(n.bind(n,3781)),"@site/docs/contributing/triage-guide.md",3781],"908b0867":[()=>n.e(2698).then(n.bind(n,8762)),"@site/docs/opensauced-guides/students-guide/students-guide.md",8762],"914479fa":[()=>n.e(457).then(n.bind(n,6414)),"@site/docs/tools/chrome-extension/refactoring-and-testing.md",6414],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9b3a7c99":[()=>n.e(3100).then(n.bind(n,346)),"@site/docs/contributors/contributors-guide.md",346],a09c2993:[()=>n.e(4128).then(n.bind(n,8495)),"@site/docs/introduction.md",8495],a7434565:[()=>n.e(7645).then(n.t.bind(n,5745,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],a93463cf:[()=>n.e(9277).then(n.bind(n,8364)),"@site/docs/maintainers/understanding-contrib-insights.md",8364],ac97b6b0:[()=>n.e(300).then(n.bind(n,2565)),"@site/docs/features/connections.md",2565],aef95fb0:[()=>n.e(6138).then(n.bind(n,3604)),"@site/docs/maintainers/understanding-repo-insights.md",3604],b44b9bb7:[()=>n.e(7899).then(n.bind(n,5277)),"@site/docs/tools/pizza-cli.md",5277],b77a626d:[()=>n.e(8573).then(n.bind(n,8040)),"@site/docs/contributing/opensauced-maintainers-guide/maintainers-guide.md",8040],b8d96084:[()=>n.e(8222).then(n.bind(n,9631)),"@site/docs/community/100-days-of-oss.md",9631],c01322eb:[()=>n.e(4205).then(n.bind(n,3775)),"@site/docs/tools/chrome-extension/highlights.md",3775],cf3cdde3:[()=>n.e(3644).then(n.bind(n,6407)),"@site/docs/features/highlights.md",6407],d55a4e5f:[()=>n.e(4955).then(n.bind(n,1037)),"@site/docs/features/workspaces.md",1037],dd5175af:[()=>n.e(7174).then(n.bind(n,1629)),"@site/docs/opensauced-guides/job-seekers-guide/categorize-contributions.md",1629],e0315c91:[()=>n.e(6519).then(n.bind(n,8634)),"@site/docs/welcome/glossary.md",8634],e4e25c8b:[()=>n.e(9708).then(n.bind(n,4038)),"@site/docs/contributing/opensauced-maintainers-guide/community-maintainers-guide.md",4038],e5a72a0c:[()=>n.e(7051).then(n.bind(n,948)),"@site/docs/opensauced-packages/conventional-commit.md",948],ea6e505e:[()=>n.e(2747).then(n.bind(n,8466)),"@site/docs/welcome/opensauced-intro.md",8466],f3a8e19a:[()=>n.e(667).then(n.bind(n,5304)),"@site/docs/features/dev-card.md",5304],f8d965ab:[()=>n.e(9349).then(n.bind(n,6969)),"@site/docs/community/hacktoberfest.md",6969]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(9670),d=n(226);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/markdown-page/",component:f("/markdown-page/","fc3"),exact:!0},{path:"/search/",component:f("/search/","db4"),exact:!0},{path:"/",component:f("/","f08"),routes:[{path:"/",component:f("/","6b0"),exact:!0,sidebar:"docs"},{path:"/community/100-days-of-oss/",component:f("/community/100-days-of-oss/","874"),exact:!0,sidebar:"docs"},{path:"/community/hacktoberfest/",component:f("/community/hacktoberfest/","b37"),exact:!0},{path:"/community/welcome-to-the-community/",component:f("/community/welcome-to-the-community/","a42"),exact:!0,sidebar:"docs"},{path:"/contributing/code-of-conduct/",component:f("/contributing/code-of-conduct/","63a"),exact:!0,sidebar:"docs"},{path:"/contributing/introduction-to-contributing/",component:f("/contributing/introduction-to-contributing/","c53"),exact:!0,sidebar:"docs"},{path:"/contributing/opensauced-maintainers-guide/community-maintainers-guide/",component:f("/contributing/opensauced-maintainers-guide/community-maintainers-guide/","1bc"),exact:!0,sidebar:"docs"},{path:"/contributing/opensauced-maintainers-guide/maintainers-guide/",component:f("/contributing/opensauced-maintainers-guide/maintainers-guide/","cba"),exact:!0,sidebar:"docs"},{path:"/contributing/set-up-authentication/",component:f("/contributing/set-up-authentication/","4ce"),exact:!0,sidebar:"docs"},{path:"/contributing/technical/resolve-merge-conflicts/",component:f("/contributing/technical/resolve-merge-conflicts/","b31"),exact:!0,sidebar:"docs"},{path:"/contributing/technical/setup-repo-with-git/",component:f("/contributing/technical/setup-repo-with-git/","138"),exact:!0,sidebar:"docs"},{path:"/contributing/triage-guide/",component:f("/contributing/triage-guide/","a0a"),exact:!0,sidebar:"docs"},{path:"/contributors/contributors-guide-to-open-sauced/",component:f("/contributors/contributors-guide-to-open-sauced/","6c9"),exact:!0,sidebar:"docs"},{path:"/features/connections/",component:f("/features/connections/","1cd"),exact:!0},{path:"/features/contributor-insights/",component:f("/features/contributor-insights/","c29"),exact:!0,sidebar:"docs"},{path:"/features/dev-card/",component:f("/features/dev-card/","2f0"),exact:!0,sidebar:"docs"},{path:"/features/highlights/",component:f("/features/highlights/","14a"),exact:!0,sidebar:"docs"},{path:"/features/repo-insights/",component:f("/features/repo-insights/","c88"),exact:!0,sidebar:"docs"},{path:"/features/repo-pages/",component:f("/features/repo-pages/","fc1"),exact:!0,sidebar:"docs"},{path:"/features/workspaces/",component:f("/features/workspaces/","d11"),exact:!0,sidebar:"docs"},{path:"/maintainers/maintainers-guide-to-open-sauced/",component:f("/maintainers/maintainers-guide-to-open-sauced/","3b4"),exact:!0,sidebar:"docs"},{path:"/maintainers/understanding-contribs-insights/",component:f("/maintainers/understanding-contribs-insights/","4a3"),exact:!0,sidebar:"docs"},{path:"/maintainers/understanding-repo-insights/",component:f("/maintainers/understanding-repo-insights/","f7a"),exact:!0,sidebar:"docs"},{path:"/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities/",component:f("/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities/","327"),exact:!0,sidebar:"docs"},{path:"/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction/",component:f("/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction/","494"),exact:!0,sidebar:"docs"},{path:"/opensauced-guides/students-guide/",component:f("/opensauced-guides/students-guide/","313"),exact:!0,sidebar:"docs"},{path:"/opensauced-packages/check-engines/",component:f("/opensauced-packages/check-engines/","a43"),exact:!0,sidebar:"docs"},{path:"/opensauced-packages/conventional-commit/",component:f("/opensauced-packages/conventional-commit/","018"),exact:!0,sidebar:"docs"},{path:"/opensauced-packages/semantic-release/",component:f("/opensauced-packages/semantic-release/","35d"),exact:!0,sidebar:"docs"},{path:"/tools/chrome-extension/code-explanation/",component:f("/tools/chrome-extension/code-explanation/","52b"),exact:!0,sidebar:"docs"},{path:"/tools/chrome-extension/highlights/",component:f("/tools/chrome-extension/highlights/","6d1"),exact:!0,sidebar:"docs"},{path:"/tools/chrome-extension/introduction-to-the-chrome-extension/",component:f("/tools/chrome-extension/introduction-to-the-chrome-extension/","289"),exact:!0,sidebar:"docs"},{path:"/tools/chrome-extension/pr-description/",component:f("/tools/chrome-extension/pr-description/","a02"),exact:!0,sidebar:"docs"},{path:"/tools/chrome-extension/refactoring-and-testing/",component:f("/tools/chrome-extension/refactoring-and-testing/","d9f"),exact:!0,sidebar:"docs"},{path:"/tools/chrome-extension/viewing-insights-and-invitations/",component:f("/tools/chrome-extension/viewing-insights-and-invitations/","f4b"),exact:!0,sidebar:"docs"},{path:"/tools/hot-opensauced/",component:f("/tools/hot-opensauced/","b72"),exact:!0,sidebar:"docs"},{path:"/tools/pizza-cli/",component:f("/tools/pizza-cli/","f92"),exact:!0,sidebar:"docs"},{path:"/welcome/faqs/",component:f("/welcome/faqs/","647"),exact:!0,sidebar:"docs"},{path:"/welcome/glossary/",component:f("/welcome/glossary/","bee"),exact:!0,sidebar:"docs"},{path:"/welcome/opensauced-intro/",component:f("/welcome/opensauced-intro/","0ba"),exact:!0,sidebar:"docs"}]},{path:"*",component:f("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},9383:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295),n(8968)];var u=n(723),c=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(5742),h=n(2263),g=n(4996),b=n(6668),v=n(833),y=n(4711),w=n(9727),k=n(3320),E=n(197);function S(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(S,null),r.createElement(E.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const _=new Map;function T(e){if(_.has(e.pathname))return{...e,pathname:_.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return _.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return _.set(e.pathname,t),{...e,pathname:t}}var A=n(8934),L=n(8940);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class P extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=P,D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner",F="docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(4763);function H(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(f,null,r.createElement($,null),r.createElement(C,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var G=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(9670);const W=new Set,K=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Q={prefetch(e){if(!(e=>!Y()&&!K.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!K.has(e))(e)&&(K.add(e),O(e))},X=Object.freeze(Q);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"introduction","docs":[{"id":"community/100-days-of-oss","path":"/community/100-days-of-oss","sidebar":"docs"},{"id":"community/hacktoberfest","path":"/community/hacktoberfest"},{"id":"community/welcome-to-the-community","path":"/community/welcome-to-the-community","sidebar":"docs"},{"id":"contributing/code-of-conduct","path":"/contributing/code-of-conduct","sidebar":"docs"},{"id":"contributing/introduction-to-contributing","path":"/contributing/introduction-to-contributing","sidebar":"docs"},{"id":"contributing/opensauced-maintainers-guide/community-maintainers-guide","path":"/contributing/opensauced-maintainers-guide/community-maintainers-guide","sidebar":"docs"},{"id":"contributing/opensauced-maintainers-guide/maintainers-guide","path":"/contributing/opensauced-maintainers-guide/maintainers-guide","sidebar":"docs"},{"id":"contributing/set-up-authentication","path":"/contributing/set-up-authentication","sidebar":"docs"},{"id":"contributing/technical/resolve-merge-conflicts","path":"/contributing/technical/resolve-merge-conflicts","sidebar":"docs"},{"id":"contributing/technical/setup-repo-with-git","path":"/contributing/technical/setup-repo-with-git","sidebar":"docs"},{"id":"contributing/triage-guide","path":"/contributing/triage-guide","sidebar":"docs"},{"id":"contributors/contributors-guide-to-open-sauced","path":"/contributors/contributors-guide-to-open-sauced","sidebar":"docs"},{"id":"features/connections","path":"/features/connections"},{"id":"features/contributor-insights","path":"/features/contributor-insights","sidebar":"docs"},{"id":"features/dev-card","path":"/features/dev-card","sidebar":"docs"},{"id":"features/highlights","path":"/features/highlights","sidebar":"docs"},{"id":"features/repo-insights","path":"/features/repo-insights","sidebar":"docs"},{"id":"features/repo-pages","path":"/features/repo-pages","sidebar":"docs"},{"id":"features/workspaces","path":"/features/workspaces","sidebar":"docs"},{"id":"introduction","path":"/","sidebar":"docs"},{"id":"maintainers/maintainers-guide-to-open-sauced","path":"/maintainers/maintainers-guide-to-open-sauced","sidebar":"docs"},{"id":"maintainers/understanding-contribs-insights","path":"/maintainers/understanding-contribs-insights","sidebar":"docs"},{"id":"maintainers/understanding-repo-insights","path":"/maintainers/understanding-repo-insights","sidebar":"docs"},{"id":"opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities","path":"/opensauced-guides/job-seekers-guide/how-to-translate-open-source-contributions-into-career-opportunities","sidebar":"docs"},{"id":"opensauced-guides/job-seekers-guide/job-seekers-guide-introduction","path":"/opensauced-guides/job-seekers-guide/job-seekers-guide-introduction","sidebar":"docs"},{"id":"opensauced-guides/students-guide/students-guide","path":"/opensauced-guides/students-guide/","sidebar":"docs"},{"id":"opensauced-packages/check-engines","path":"/opensauced-packages/check-engines","sidebar":"docs"},{"id":"opensauced-packages/conventional-commit","path":"/opensauced-packages/conventional-commit","sidebar":"docs"},{"id":"opensauced-packages/semantic-release","path":"/opensauced-packages/semantic-release","sidebar":"docs"},{"id":"tools/chrome-extension/code-explanation","path":"/tools/chrome-extension/code-explanation","sidebar":"docs"},{"id":"tools/chrome-extension/highlights","path":"/tools/chrome-extension/highlights","sidebar":"docs"},{"id":"tools/chrome-extension/introduction-to-the-chrome-extension","path":"/tools/chrome-extension/introduction-to-the-chrome-extension","sidebar":"docs"},{"id":"tools/chrome-extension/pr-description","path":"/tools/chrome-extension/pr-description","sidebar":"docs"},{"id":"tools/chrome-extension/refactoring-and-testing","path":"/tools/chrome-extension/refactoring-and-testing","sidebar":"docs"},{"id":"tools/chrome-extension/viewing-insights-and-invitations","path":"/tools/chrome-extension/viewing-insights-and-invitations","sidebar":"docs"},{"id":"tools/hot-opensauced","path":"/tools/hot-opensauced","sidebar":"docs"},{"id":"tools/pizza-cli","path":"/tools/pizza-cli","sidebar":"docs"},{"id":"welcome/faqs","path":"/welcome/faqs","sidebar":"docs"},{"id":"welcome/glossary","path":"/welcome/glossary","sidebar":"docs"},{"id":"welcome/opensauced-intro","path":"/welcome/opensauced-intro","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/","label":"introduction"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.0","siteVersion":"1.70.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.0"},"docusaurus-plugin-pwa":{"type":"package","name":"@docusaurus/plugin-pwa","version":"2.4.0"}}}'),u={siteConfig:a.Z,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(412),o=n(5742),i=n(8780),l=n(7452);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7462),a=n(7294),o=n(3727),i=n(8780),l=n(2263),s=n(3919),u=n(412);const c=a.createContext({collectLink:()=>{}}),d=()=>(0,a.useContext)(c);var f=n(4996);const p=e=>e.startsWith("/");function m(e,t){let{isNavLink:n,to:c,href:m,activeClassName:h,isActive:g,"data-noBrokenLinkCheck":b,autoAddBaseUrl:v=!0,...y}=e;const{siteConfig:{trailingSlash:w,baseUrl:k}}=(0,l.Z)(),{withBaseUrl:E}=(0,f.C)(),S=d(),x=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>x.current));const C=c||m;const _=(0,s.Z)(C),T=C?.replace("pathname://","");let A=void 0!==T?(L=T,v&&p(L)?E(L):L):void 0;var L;A&&_&&(A=(0,i.applyTrailingSlash)(A,{trailingSlash:w,baseUrl:k}));const R=(0,a.useRef)(!1),N=n?o.OL:o.rU,O=u.Z.canUseIntersectionObserver,P=(0,a.useRef)(),I=()=>{R.current||null==A||(window.docusaurus.preload(A),R.current=!0)};(0,a.useEffect)((()=>(!O&&_&&null!=A&&window.docusaurus.prefetch(A),()=>{O&&P.current&&P.current.disconnect()})),[P,A,O,_]);const D=A?.startsWith("#")??!1,M=!A||!_||D;return M||b||S.collectLink(A),M?a.createElement("a",(0,r.Z)({ref:x,href:A},C&&!_&&{target:"_blank",rel:"noopener noreferrer"},y)):a.createElement(N,(0,r.Z)({},y,{onMouseEnter:I,onTouchStart:I,innerRef:e=>{x.current=e,O&&e&&_&&(P.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(P.current.unobserve(e),P.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),P.current.observe(e))},to:A},n&&{isActive:g,activeClassName:h}))}const h=a.forwardRef(m)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t=".",n={};return function e(a,o){Object.entries(a).forEach((a=>{let[i,l]=a;const s=o?`${o}${t}${i}`:i;r(l)?e(l,s):n[s]=l}))}(e),n}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>f,yW:()=>g,gB:()=>h});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8968:(e,t,n)=>{"use strict";n.r(t);var r=n(412),a=n(12);const o="/sw.js",i=["appInstalled","standalone","queryString"],l=!0,s=(0,a.WA)("docusaurus.pwa.event.appInstalled.fired");function u(e,t){l&&(void 0===t?console.log(`[Docusaurus-PWA][registerSw]: ${e}`):console.log(`[Docusaurus-PWA][registerSw]: ${e}`,t))}async function c(){const e=await navigator.serviceWorker.getRegistrations();u("will unregister all service workers",{registrations:e}),await Promise.all(e.map((e=>e.unregister().then((t=>u("unregister service worker",{registration:e,result:t})))))),u("unregistered all service workers",{registrations:e}),window.location.reload()}const d={always:()=>!0,mobile:()=>window.innerWidth<=996,saveData:()=>!!navigator.connection?.saveData,appInstalled:()=>"true"===s.get()||async function(){return"getInstalledRelatedApps"in window.navigator&&(await navigator.getInstalledRelatedApps()).some((e=>"webapp"===e.platform))}(),standalone:()=>window.matchMedia("(display-mode: standalone)").matches,queryString:()=>"true"===new URLSearchParams(window.location.search).get("offlineMode")};async function f(){const e=await async function(){return(await Promise.all(i.map((e=>Promise.resolve(d[e]()).then((t=>t?e:void 0)))))).filter(Boolean)}(),t=e.length>0;return u(t?"offline mode enabled, because of activation strategies":"offline mode disabled, because none of the offlineModeActivationStrategies could be used",{activeStrategies:e,availableStrategies:i}),t}r.Z.canUseDOM&&(u("debug mode enabled"),"serviceWorker"in navigator&&(u("addLegacyAppInstalledEventsListeners"),window.addEventListener("appinstalled",(e=>{u("event appinstalled",{event:e}),s.set("true"),u("AppInstalledEventFiredStorage.set('true')"),c()})),window.addEventListener("beforeinstallprompt",(e=>{u("event beforeinstallprompt",{event:e});const t=s.get();u("AppInstalledEventFiredStorage.get()",{appInstalledEventFired:t}),t&&(s.del(),u("AppInstalledEventFiredStorage.del()"),c())})),u("legacy appinstalled and beforeinstallprompt event listeners installed"),async function(){const[{Workbox:e},t]=await Promise.all([n.e(5131).then(n.bind(n,5131)),f()]),r=new e(function(e){const t=JSON.stringify(e),n=`${o}?params=${encodeURIComponent(t)}`;return u("service worker url",{url:n,params:e}),n}({offlineMode:t,debug:l})),a=()=>r.messageSW({type:"SKIP_WAITING"}),i=()=>(u("handleServiceWorkerWaiting"),t?n.e(5283).then(n.bind(n,5283)).then((e=>{let{renderReloadPopup:t}=e;return t({onReload(){r.addEventListener("controlling",(()=>{window.location.reload()})),a()}})})):a());r.addEventListener("waiting",(e=>{u("event waiting",{event:e}),i()})),r.addEventListener("externalwaiting",(e=>{u("event externalwaiting",{event:e}),i()}));const s=await r.register();s&&(s.active&&u("registration.active",{registration:s}),s.installing&&u("registration.installing",{registration:s}),s.waiting&&(u("registration.waiting",{registration:s}),await i()))}().catch((e=>console.error("registerSW failed",e)))))},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.Z,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},7452:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Nt});var r=n(7294),a=n(6010),o=n(4763),i=n(833),l=n(7462),s=n(6550),u=n(5999),c=n(5936);const d="docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(5281),b=n(9727);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(6668),k=n(9689);function E(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",S.closeButton,e.className)}),r.createElement(E,{width:14,height:14,strokeWidth:3.1}))}const C={content:"content_knG7"};function _(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(C.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(_,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(3163),R=n(2466);var N=n(902),O=n(3102);const P=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,O.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,N.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(P.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(P);if(!e)throw new N.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,O.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(2949),j=n(2389);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,B.I)();return a?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(1327);function W(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(E,{color:"var(--ifm-color-emphasis-600)"}))}function Y(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(W,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(K,null))}var Q=n(9960),X=n(4996),J=n(3919),ee=n(8022),te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,X.Z)(a),p=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Q.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Q.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(6043),le=n(8596),se=n(2263);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(He,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(He,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var pe=n(4711);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he={iconLanguage:"iconLanguage_nlXk"};function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Se="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Ee(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],f=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Se))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Se?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),Ce=n(5742),_e=n(6177),Te=n(239),Ae=n(3320);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Ne=null;function Oe(e){let{hit:t,children:n}=e;return r.createElement(Q.Z,{to:t.url},n)}function Pe(e){let{state:t,onClose:n}=e;const a=(0,_e.M)();return r.createElement(Q.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,p={...o.searchParameters,facetFilters:f},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Ne?Promise.resolve():Promise.all([n.e(6780).then(n.bind(n,6780)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,8894))]).then((e=>{let[{DocSearchModal:t}]=e;Ne=t}))),[]),E=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),S=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),C=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,_=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Pe,(0,l.Z)({},e,{onClose:S}))),[S]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){(27===e.keyCode&&t||"k"===e.key.toLowerCase()&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:E,onClose:S,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(Ce.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:E,ref:g,translations:Re.button}),b&&Ne&&h.current&&(0,Le.createPortal)(r.createElement(Ne,(0,l.Z)({onClose:S,initialScrollY:window.scrollY,initialQuery:y,navigator:C,transformItems:_,hitComponent:Oe,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:p,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Be=n(143),je=n(2802);const ze=e=>e.docs.find((t=>t.id===e.mainDocId));var Ue=n(373);const $e=e=>e.docs.find((t=>t.id===e.mainDocId));const qe={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(fe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he.iconLanguage}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(De,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],s=t??i.label,u=n??ze(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,Be.Iw)(n),m=(0,Be.gB)(n),{savePreferredVersionName:h}=(0,Ue.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??$e(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:$e(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(fe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function He(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=qe[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(He,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ze(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ve(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(Ze,{onClick:()=>t.hide()}),t.content)}function We(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(Y,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ve,null)}):null}const Ke={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ye(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Qe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Ke.navbarHideable,!s&&Ke.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(Ye,{onClick:i.toggle}),r.createElement(We,null))}var Xe=n(8780);const Je={errorBoundaryError:"errorBoundaryError_a6uf"};function et(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function tt(e){let{error:t}=e;const n=(0,Xe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Je.errorBoundaryError},n)}class nt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const rt="right";function at(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function ot(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(at,null))}const it={colorModeToggle:"colorModeToggle_DEke"};function lt(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(nt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(He,e)))))}function st(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function ut(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??rt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(st,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(ot,null),r.createElement(W,null),r.createElement(lt,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(lt,{items:a}),r.createElement(Z,{className:it.colorModeToggle}),!o&&r.createElement(Fe,null,r.createElement(De,null)))})}function ct(){return r.createElement(Qe,null,r.createElement(ut,null))}function dt(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Q.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function ft(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(dt,{item:t}))}function pt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(ft,{key:t,item:e})))))}function mt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(pt,{key:t,column:e}))))}function ht(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function gt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(dt,{item:t})}function bt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(gt,{item:e}),t.length!==n+1&&r.createElement(ht,null))))))}function vt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(mt,{columns:t}):r.createElement(bt,{links:t})}var yt=n(941);const wt={footerLogoLink:"footerLogoLink_BH7S"};function kt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(yt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function Et(e){let{logo:t}=e;return t.href?r.createElement(Q.Z,{href:t.href,className:wt.footerLogoLink,target:t.target},r.createElement(kt,{logo:t})):r.createElement(kt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function xt(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function Ct(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(xt,{style:o,links:n&&n.length>0&&r.createElement(vt,{links:n}),logo:a&&r.createElement(Et,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(Ct),Tt=(0,N.Qc)([B.S,k.pl,R.OC,Ue.L5,i.VC,function(e){let{children:t}=e;return r.createElement(O.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function At(e){let{children:t}=e;return r.createElement(Tt,null,t)}function Lt(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(et,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(tt,{error:t})))))}const Rt={mainWrapper:"mainWrapper_z2l0"};function Nt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(At,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ct,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Rt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(Lt,e)},t)),!n&&r.createElement(_t,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(9960),i=n(4996),l=n(2263),s=n(6668),u=n(941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(5742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(6010),i=n(2389),l=n(2949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>g});var r=n(7462),a=n(7294),o=n(412);const i="ease-in-out";function l(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){const n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return 0;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=function(){const t=e.scrollHeight;return{transition:`height ${r?.duration??d(t)}ms ${r?.easing??i}`,height:`${t}px`}}();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return c(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(a(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{a()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!o.Z.canUseDOM)return e?s:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(c(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(2389),o=n(12),i=n(902),l=n(6668);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(412),o=n(902),i=n(12),l=n(6668);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{c.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(143),o=n(9935),i=n(6668),l=n(2802),s=n(902),u=n(12);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(7294),a=n(3102),o=n(7524),i=n(1980),l=n(6668),s=n(902);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},6177:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(2263),o=n(1980);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},2802:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>f,_F:()=>h,cE:()=>d,hI:()=>k,lO:()=>v,vY:()=>w,oz:()=>y,s1:()=>b});var r=n(7294),a=n(6550),o=n(8790),i=n(143),l=n(373),s=n(1116);function u(e){return Array.from(new Set(e))}var c=n(8596);const d=!!i._r;function f(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=f(t);if(e)return e}}}const p=(e,t)=>void 0!==e&&(0,c.Mg)(e,t),m=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?p(e.href,t):"category"===e.type&&(p(e.href,t)||m(e.items,t))}function g(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,c.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,c.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function b(){const e=(0,s.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?g({sidebarItems:e.items,pathname:t}):null}function v(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>u([t,n,a].filter(Boolean))),[t,n,a])}function y(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function w(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function k(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}},2128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(2263);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},1980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l});var r=n(7294),a=n(6550),o=n(1688),i=n(902);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),u=n(2128);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8022:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d});var r=n(7294),a=n(412),o=n(2389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(143),a=n(2263),o=n(373);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294),n(1688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(2263),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(8022),o=n(4996),i=n(6278);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>_,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,E="+"===y||"*"===y,S="?"===y||"*"===y,x=n[2]||c,C=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:S,repeat:E,partial:k,asterisk:!!w,pattern:C?u(C):w?".*":"[^"+s(x)+"]+?"})}}return i{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof a)){var C,_=1;if(v){if(!(C=o(k,S,e,b))||C.index>=e.length)break;var T=C.index,A=C.index+C[0].length,L=S;for(L+=E.value.length;T>=L;)L+=(E=E.next).value.length;if(S=L-=E.value.length,E.value instanceof a)continue;for(var R=E;R!==t.tail&&(Ld.reach&&(d.reach=I);var D=E.prev;if(O&&(D=s(t,D,O),S+=O.length),u(t,D,_),E=s(t,D,new a(f,g?r.tokenize(N,g):N,y,N)),P&&s(t,E,P),_>1){var M={cause:f+","+m,reach:I};i(e,t,n,E.prev,S,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a"+o.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in p(b))if(v in c){f[b]=!0;break}for(var y in m=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n