{"version":3,"sources":["webpack:///./src/pages/docs/contributing-page.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,sNAE5B,IAKMC,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeI,EAAf,CAAsBD,WAAYA,EAAYE,QAAQ,cAC3D,iBAAQ,CACN,GAAM,4BADR,4BAGA,kEAEE,gBAAO,CACL,KAAQ,iDACR,WAAc,KAFhB,kCAFF,sIASA,sBAEE,iBAAQ,CACN,WAAc,MACb,gBAAO,CACN,KAAQ,6DACR,WAAc,MAFf,iBAMH,iBAAQ,CACN,WAAc,MACb,gBAAO,CACN,KAAQ,4FACR,WAAc,MAFf,oCAMH,iBAAQ,CACN,WAAc,MACb,gBAAO,CACN,KAAQ,sDACR,WAAc,MAFf,4BAML,qHAEE,gBAAO,CACL,KAAQ,2EACR,WAAc,KAFhB,gCAFF,iEAQA,sBAEE,iBAAQ,CACN,WAAc,MACb,gBAAO,CACN,KAAQ,kGACR,WAAc,MAFf,uCAMH,iBAAQ,CACN,WAAc,MACb,gBAAO,CACN,KAAQ,mGACR,WAAc,MAFf,4BAMH,iBAAQ,CACN,WAAc,MACb,gBAAO,CACN,KAAQ,mGACR,WAAc,MAFf,6BAMH,iBAAQ,CACN,WAAc,MACb,gBAAO,CACN,KAAQ,mHACR,WAAc,MAFf,wD,oNAUTH,EAAWI,gBAAiB","file":"component---src-pages-docs-contributing-page-mdx-56b2631585d39f56a5c4.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/max/code/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\n\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return <div {...props} />;\n};\n\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...props} components={components} mdxType=\"MDXLayout\">\n    <h2 {...{\n      \"id\": \"contributing-to-superset\"\n    }}>{`Contributing to Superset`}</h2>\n    <p>{`Superset is currently being incubated at\n`}\n      <a {...{\n        \"href\": \"https://www.apache.org/theapacheway/index.html\",\n        \"parentName\": \"p\"\n      }}>{`the Apache Software Foundation`}</a>\n      {`. The core\ncontributors (or committers) to Superset communicate primarily in the following channels (all of\nwhich you can join):`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><a {...{\n          \"href\": \"https://lists.apache.org/list.html?dev@superset.apache.org\",\n          \"parentName\": \"li\"\n        }}>{`Mailing list`}</a></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><a {...{\n          \"href\": \"https://apache-superset.slack.com/join/shared_invite/zt-g8lpruog-HeqpgYrwdfrD5OYhlU7hPQ#/\",\n          \"parentName\": \"li\"\n        }}>{`Apache Superset Slack community`}</a></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><a {...{\n          \"href\": \"https://github.com/apache/incubator-superset/issues\",\n          \"parentName\": \"li\"\n        }}>{`Github issues and PR's`}</a></li>\n\n    </ul>\n    <p>{`If you're interested in contributing, we recommend reading the Community Contribution Guide\n`}\n      <a {...{\n        \"href\": \"https://github.com/apache/incubator-superset/blob/master/CONTRIBUTING.md\",\n        \"parentName\": \"p\"\n      }}>{`described in CONTRIBUTING.MD`}</a>\n      {`\nto get started. Here are some helpful links from that page:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><a {...{\n          \"href\": \"https://github.com/apache/incubator-superset/blob/master/CONTRIBUTING.md#types-of-contributions\",\n          \"parentName\": \"li\"\n        }}>{`Overview of types of contributions`}</a></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><a {...{\n          \"href\": \"https://github.com/apache/incubator-superset/blob/master/CONTRIBUTING.md#pull-request-guidelines\",\n          \"parentName\": \"li\"\n        }}>{`Pull request guidelines`}</a></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><a {...{\n          \"href\": \"https://github.com/apache/incubator-superset/blob/master/CONTRIBUTING.md#managing-issues-and-prs\",\n          \"parentName\": \"li\"\n        }}>{`Managing Issues and PR's`}</a></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><a {...{\n          \"href\": \"https://github.com/apache/incubator-superset/blob/master/CONTRIBUTING.md#setup-local-environment-for-development\",\n          \"parentName\": \"li\"\n        }}>{`Setting up local environment for development`}</a></li>\n\n    </ul>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}