{"componentChunkName":"component---src-components-templates-handbook-index-js","path":"/handbook/contribute/pull-requests/","result":{"data":{"allMdx":{"totalCount":38,"edges":[{"node":{"id":"54cba6d0-f522-5fa8-8710-3585c4b7c3b8","frontmatter":{"order":10,"title":"Lexicon"},"fields":{"slug":"/handbook/lexicon/"}}},{"node":{"id":"50ac40c3-3676-53d5-9b0d-80f4e24a1025","frontmatter":{"order":10,"title":"Principles"},"fields":{"slug":"/handbook/principles/"}}},{"node":{"id":"9d516640-a4c2-59e5-bd1a-5b3e46c3f380","frontmatter":{"order":99,"title":"Resources"},"fields":{"slug":"/handbook/resources/"}}},{"node":{"id":"70df8b4b-4ee2-5236-b4f4-8217e44f91ab","frontmatter":{"order":10,"title":"Editorial Workflow"},"fields":{"slug":"/handbook/advocate/editorial-workflow/"}}},{"node":{"id":"d8cf7f5a-e2c3-5c5c-a184-3f6b75569321","frontmatter":{"order":40,"title":"Advocate"},"fields":{"slug":"/handbook/advocate/"}}},{"node":{"id":"35dcbfa3-d93f-5507-b799-602887574080","frontmatter":{"order":30,"title":"Collaborate"},"fields":{"slug":"/handbook/collaborate/"}}},{"node":{"id":"054ee6c7-2da9-549e-a0c0-3943efceb777","frontmatter":{"order":1,"title":"Globally"},"fields":{"slug":"/handbook/collaborate/globally/"}}},{"node":{"id":"559b0c25-3062-5dd2-bfa7-33a2ff5cfd47","frontmatter":{"order":10,"title":"Issues"},"fields":{"slug":"/handbook/contribute/issues/"}}},{"node":{"id":"da97614f-0625-5e6f-bb79-30678a697f31","frontmatter":{"order":80,"title":"Contribute"},"fields":{"slug":"/handbook/contribute/"}}},{"node":{"id":"43bf8329-8b79-544f-aeff-6299a26f2eb5","frontmatter":{"order":40,"title":"Communication Design"},"fields":{"slug":"/handbook/grow/communication-design/"}}},{"node":{"id":"6db6d2d4-0259-5cc5-81cd-386ad7781bd1","frontmatter":{"order":20,"title":"Pull Requests"},"fields":{"slug":"/handbook/contribute/pull-requests/"}}},{"node":{"id":"34975f8a-0458-52d3-aaa1-7e347bb432fa","frontmatter":{"order":60,"title":"Grow"},"fields":{"slug":"/handbook/grow/"}}},{"node":{"id":"80c8d6b2-84af-5717-bec7-61eca9e436e4","frontmatter":{"order":30,"title":"Core Skills"},"fields":{"slug":"/handbook/grow/core-skills/"}}},{"node":{"id":"783bcb05-0883-572c-b273-2a75a46cac6b","frontmatter":{"order":10,"title":"Introduction"},"fields":{"slug":"/handbook/grow/introduction/"}}},{"node":{"id":"d11ba5a8-d345-5f7a-b16d-d858ef1b25a8","frontmatter":{"order":50,"title":"Product Design"},"fields":{"slug":"/handbook/grow/product-design/"}}},{"node":{"id":"b819eba3-91da-5f70-9047-c66217ddc144","frontmatter":{"order":10,"title":"Calendar"},"fields":{"slug":"/handbook/tools/google-calendar/"}}},{"node":{"id":"c22e66f1-9303-590e-9b80-19ce25408b1b","frontmatter":{"order":15,"title":"Tools"},"fields":{"slug":"/handbook/tools/"}}},{"node":{"id":"31b3caf7-0c46-5d00-8b63-51e026a200e6","frontmatter":{"order":60,"title":"lpn"},"fields":{"slug":"/handbook/tools/lpn/"}}},{"node":{"id":"daf82da2-5880-5dd7-9d6e-6fd03c0ff554","frontmatter":{"order":70,"title":"Slack"},"fields":{"slug":"/handbook/tools/slack/"}}},{"node":{"id":"ec410cf6-bbf6-50c6-8419-192d2648b1de","frontmatter":{"order":20,"title":"Meetings"},"fields":{"slug":"/handbook/work/meetings/"}}},{"node":{"id":"09d72400-fa24-5f32-81b1-1758e9ad1aa5","frontmatter":{"order":11,"title":"Work"},"fields":{"slug":"/handbook/work/"}}},{"node":{"id":"e80bb696-b437-5646-8486-c976b48c9eec","frontmatter":{"order":90,"title":"References"},"fields":{"slug":"/handbook/work/references/"}}},{"node":{"id":"558d95ef-cfb5-5b27-a89c-25c8cafc7bd9","frontmatter":{"order":10,"title":"Remotely"},"fields":{"slug":"/handbook/work/remotely/"}}},{"node":{"id":"c6944da2-7c80-5945-8792-4b57a7235a46","frontmatter":{"order":20,"title":"Locally"},"fields":{"slug":"/handbook/collaborate/locally/"}}},{"node":{"id":"d3a6cc95-ae7d-524a-8e20-4738f207e8cd","frontmatter":{"order":1,"title":"Update"},"fields":{"slug":"/handbook/collaborate/locally/update/"}}},{"node":{"id":"fe6e372b-c259-5eda-b158-83c39fe81631","frontmatter":{"order":40,"title":"Evaluation"},"fields":{"slug":"/handbook/grow/career-paths/evaluations/"}}},{"node":{"id":"b347cabc-ab4b-5625-9c96-22224a2666d0","frontmatter":{"order":20,"title":"Career Paths"},"fields":{"slug":"/handbook/grow/career-paths/"}}},{"node":{"id":"bf2dccc0-0c56-5f7b-af11-90e64245ffd6","frontmatter":{"order":10,"title":"Individual Contributor"},"fields":{"slug":"/handbook/grow/career-paths/individual-contributor/"}}},{"node":{"id":"89206b32-e594-53a9-aac5-bdbfe8d02b47","frontmatter":{"order":20,"title":"Management"},"fields":{"slug":"/handbook/grow/career-paths/management/"}}},{"node":{"id":"ea722ec4-8ec1-52c8-958d-d8e25fbbbd98","frontmatter":{"order":10,"title":"Setup"},"fields":{"slug":"/handbook/tools/github/setup/"}}},{"node":{"id":"2971087d-aea0-54c9-b78f-006cb72c8afe","frontmatter":{"order":30,"title":"Github"},"fields":{"slug":"/handbook/tools/github/"}}},{"node":{"id":"d832a220-52ca-587f-8d09-d4915fe36368","frontmatter":{"order":1,"title":"Running Demos"},"fields":{"slug":"/handbook/tools/liferay/running-demos/"}}},{"node":{"id":"9da86172-7f7f-5600-aa46-85ee7e826777","frontmatter":{"order":20,"title":"Forum"},"fields":{"slug":"/handbook/collaborate/locally/forum/"}}},{"node":{"id":"ce104212-e696-5d3d-969e-2b53f0fc2c66","frontmatter":{"order":50,"title":"Liferay"},"fields":{"slug":"/handbook/tools/liferay/"}}},{"node":{"id":"681441e4-88a5-5658-8b0b-814d62bbf948","frontmatter":{"order":1,"title":"Installing Portal"},"fields":{"slug":"/handbook/tools/liferay/installing-portal/"}}},{"node":{"id":"08e320a0-5213-5330-9d0f-6e4a94ff309a","frontmatter":{"order":20,"title":"Figma"},"fields":{"slug":"/handbook/tools/figma/"}}},{"node":{"id":"6e7cd898-80dc-588a-8d7b-6a918ff97983","frontmatter":{"order":1,"title":"Your laptop"},"fields":{"slug":"/handbook/tools/your-laptop/"}}},{"node":{"id":"4c27ed81-9078-5b87-8916-8f51b73197b7","frontmatter":{"order":10,"title":"Critique"},"fields":{"slug":"/handbook/collaborate/locally/critique/"}}}]},"mdx":{"frontmatter":{"title":"Pull Requests","template":null},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Pull Requests\",\n  \"description\": \"How to request updates or new features in Liferay Design Handbook\",\n  \"order\": 20,\n  \"publish\": true\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"See full the full \", mdx(\"a\", _extends({\n    parentName: \"em\"\n  }, {\n    \"href\": \"https://github.com/liferay-design/liferay.design/blob/master/CONTRIBUTING.md#best-practices\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Contributing\"), \" guidelines for a more exhaustive process.\")), mdx(\"h3\", {\n    \"id\": \"1-before-starting-any-new-work\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"#1-before-starting-any-new-work\",\n    \"aria-label\": \"1 before starting any new work permalink\",\n    \"className\": \"nice-anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  })))), \"1. Before starting any new work\"), mdx(\"p\", null, \"If you don't have a pull-request in review, so that you are using the freshest code, pull the latest from upstream:\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"bash\"\n  }, mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-bash\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-bash\"\n  }), \" \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token function\"\n  }), \"git\"), \" pull upstream master\"))), mdx(\"p\", null, \"If you're prompted to do a merge commit (you probably will be), hit \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \":wq\"), \" to close the merge comment, and then do a hard reset so that your local matches what is upstream:\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"bash\"\n  }, mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-bash\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-bash\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"code\"\n  }, {\n    \"className\": \"token function\"\n  }), \"git\"), \" reset --hard upstream/master\"))), mdx(\"h3\", {\n    \"id\": \"2-before-your-pull-request-is-merged\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"#2-before-your-pull-request-is-merged\",\n    \"aria-label\": \"2 before your pull request is merged permalink\",\n    \"className\": \"nice-anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  })))), \"2. Before your pull-request is merged\"), mdx(\"p\", null, \"Continue to push your commits up to your origin \\u2014\\xA0they will automatically get added to your open pull-request.\"), mdx(\"h3\", {\n    \"id\": \"3-after-your-pull-request-is-merged\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"#3-after-your-pull-request-is-merged\",\n    \"aria-label\": \"3 after your pull request is merged permalink\",\n    \"className\": \"nice-anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  })))), \"3. After your pull-request is merged\"), mdx(\"p\", null, \"Be sure to follow step #1 \\u2014 pull fresh from upstream and do a hard reset (shortcut: \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"git pull upstream master && git reset --hard upstream/master\"), \") \\u2014 this ensures that your next pull-request will only include new commits.\"), mdx(\"p\", null, \"If you don't pull from upstream after your PR gets merged; you will get errors because the commit hashes change one they are merged into upstream.\"), mdx(\"h2\", {\n    \"id\": \"pushing-to-production\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#pushing-to-production\",\n    \"aria-label\": \"pushing to production permalink\",\n    \"className\": \"nice-anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  })))), \"Pushing to Production\"), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"This is only for those with admin permissions.\")), mdx(\"p\", null, \"If you have \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"write\"), \" permissions to the repo, once you ensure the site works using Netlify's deploy previews, you can push to production.\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Ensure what you have locally is even with what is on upstream/master: \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"git pull upstream master && git reset --hard upstream/master\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Rename your local \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"master\"), \" branch to \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"production\"), \": \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"git branch -m production\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Use the force, and push your local \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"production\"), \" branch to upstream: \", mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"git push upstream production --force\"))), mdx(\"p\", null, \"That's it! In 2-4 minutes, the site will be built, deployed, and all updates will be reflected live on \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://liferay.design\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"liferay.design\"), \".\"));\n}\n;\nMDXContent.isMDXComponent = true;","excerpt":"See full the full  Contributing  guidelines for a more exhaustive process. 1. Before starting any new work If you don't have a pull-request…","parent":{"__typename":"File","mtime":"2020-06-03T06:36:12.178Z","relativePath":"markdown/handbook/contribute/pull-requests.mdx"}}},"pageContext":{"slug":"/handbook/contribute/pull-requests/"}}}