[{"data":1,"prerenderedAt":308},["ShallowReactive",2],{"/open_source/contribution/development_workflow":3,"surround-/open_source/contribution/development_workflow":294},{"id":4,"title":5,"avatar":6,"banner":6,"body":7,"category":6,"desc":6,"description":13,"extension":288,"links":6,"meta":289,"navigation":6,"path":290,"seo":291,"stem":292,"__hash__":293},"docs/en/open_source/contribution/development_workflow.md","Development Workflow",null,{"type":8,"value":9,"toc":286},"minimark",[10,14,282],[11,12,13],"p",{},"Follow these steps to contribute to the project.",[15,16,18,23,26,101,105,108,125,129,132,147,151,154,167,171,174,201,210,214,217,232,236,239],"steps",{"level":17},"4",[19,20,22],"h4",{"id":21},"sync-with-upstream","Sync with Upstream",[11,24,25],{},"If you've previously forked the repository, sync with the upstream changes:",[27,28,33],"pre",{"className":29,"code":30,"language":31,"meta":32,"style":32},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git checkout dev        # switch to dev branch\ngit fetch upstream      # fetch latest changes from upstream\ngit pull upstream dev   # merge changes into your local dev branch\ngit push origin dev     # push changes to your fork\n","bash","",[34,35,36,56,70,85],"code",{"__ignoreMap":32},[37,38,41,45,49,52],"span",{"class":39,"line":40},"line",1,[37,42,44],{"class":43},"sBMFI","git",[37,46,48],{"class":47},"sfazB"," checkout",[37,50,51],{"class":47}," dev",[37,53,55],{"class":54},"sHwdD","        # switch to dev branch\n",[37,57,59,61,64,67],{"class":39,"line":58},2,[37,60,44],{"class":43},[37,62,63],{"class":47}," fetch",[37,65,66],{"class":47}," upstream",[37,68,69],{"class":54},"      # fetch latest changes from upstream\n",[37,71,73,75,78,80,82],{"class":39,"line":72},3,[37,74,44],{"class":43},[37,76,77],{"class":47}," pull",[37,79,66],{"class":47},[37,81,51],{"class":47},[37,83,84],{"class":54},"   # merge changes into your local dev branch\n",[37,86,88,90,93,96,98],{"class":39,"line":87},4,[37,89,44],{"class":43},[37,91,92],{"class":47}," push",[37,94,95],{"class":47}," origin",[37,97,51],{"class":47},[37,99,100],{"class":54},"     # push changes to your fork\n",[19,102,104],{"id":103},"create-a-feature-branch","Create a Feature Branch",[11,106,107],{},"Create a new branch for your feature or fix:",[27,109,111],{"className":29,"code":110,"language":31,"meta":32,"style":32},"git checkout -b feat/descriptive-name\n",[34,112,113],{"__ignoreMap":32},[37,114,115,117,119,122],{"class":39,"line":40},[37,116,44],{"class":43},[37,118,48],{"class":47},[37,120,121],{"class":47}," -b",[37,123,124],{"class":47}," feat/descriptive-name\n",[19,126,128],{"id":127},"make-your-changes","Make Your Changes",[11,130,131],{},"Implement your feature, fix, or improvement in the appropriate files.",[133,134,135],"ul",{},[136,137,138,139,142,143,146],"li",{},"For example, you might add a function in ",[34,140,141],{},"src/memos/hello_world.py"," and create corresponding tests in ",[34,144,145],{},"tests/test_hello_world.py",".",[19,148,150],{"id":149},"test-your-changes","Test Your Changes",[11,152,153],{},"Run the test suite to ensure your changes work correctly:",[27,155,157],{"className":29,"code":156,"language":31,"meta":32,"style":32},"make test\n",[34,158,159],{"__ignoreMap":32},[37,160,161,164],{"class":39,"line":40},[37,162,163],{"class":43},"make",[37,165,166],{"class":47}," test\n",[19,168,170],{"id":169},"commit-your-changes","Commit Your Changes",[11,172,173],{},"Before committing or creating a PR, rebase to the latest upstream/dev:",[27,175,177],{"className":29,"code":176,"language":31,"meta":32,"style":32},"git fetch upstream\ngit rebase upstream/dev      # Replay your feat branch on top of the latest dev\n",[34,178,179,188],{"__ignoreMap":32},[37,180,181,183,185],{"class":39,"line":40},[37,182,44],{"class":43},[37,184,63],{"class":47},[37,186,187],{"class":47}," upstream\n",[37,189,190,192,195,198],{"class":39,"line":58},[37,191,44],{"class":43},[37,193,194],{"class":47}," rebase",[37,196,197],{"class":47}," upstream/dev",[37,199,200],{"class":54},"      # Replay your feat branch on top of the latest dev\n",[11,202,203,204,209],{},"Follow the project's commit guidelines (see ",[205,206,208],"a",{"href":207},"./commit_guidelines","Commit Guidelines",") when committing your changes.",[19,211,213],{"id":212},"push-to-your-fork","Push to Your Fork",[11,215,216],{},"Push your feature branch to your forked repository:",[27,218,220],{"className":29,"code":219,"language":31,"meta":32,"style":32},"git push origin feat/descriptive-name\n",[34,221,222],{"__ignoreMap":32},[37,223,224,226,228,230],{"class":39,"line":40},[37,225,44],{"class":43},[37,227,92],{"class":47},[37,229,95],{"class":47},[37,231,124],{"class":47},[19,233,235],{"id":234},"create-a-pull-request","Create a Pull Request",[11,237,238],{},"Submit your changes for review:",[133,240,241,264,267,270,273,279],{},[136,242,243,247,248],{},[244,245,246],"strong",{},"Important:"," Please create your pull request against\n",[133,249,250,257],{},[136,251,252,253,256],{},"✅ the ",[34,254,255],{},"dev"," branch of the upstream repository,",[136,258,259,260,263],{},"❎ not the ",[34,261,262],{},"main"," branch of the upstream repository.",[136,265,266],{},"Go to the original repository on GitHub",[136,268,269],{},"Click on \"Pull Requests\"",[136,271,272],{},"Click on \"New Pull Request\"",[136,274,275,276,278],{},"Select ",[34,277,255],{}," as the base branch, and your branch as compare",[136,280,281],{},"Fulfill the PR description carefully.",[283,284,285],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":32,"searchDepth":58,"depth":58,"links":287},[],"md",{},"/en/open_source/contribution/development_workflow",{"title":5,"description":13},"en/open_source/contribution/development_workflow","ACSZzUNhvHxzTrL8rIc5xCmJpsP5UlPfnOfTQ4tPI1s",[295,303],{"title":296,"path":297,"stem":298,"icon":299,"framework":6,"module":6,"class":300,"target":-1,"active":301,"defaultOpen":301,"children":-1,"description":302},"Setting Up","/open_source/contribution/setting_up","open_source/contribution/setting_up","i-ri-tools-line",[],false,"To contribute to MemOS, you'll need to set up your local development environment.",{"title":208,"path":304,"stem":305,"icon":306,"framework":6,"module":6,"class":307,"target":-1,"active":301,"defaultOpen":301,"children":-1,"description":-1},"/open_source/contribution/commit_guidelines","open_source/contribution/commit_guidelines","i-ri-git-commit-line",[],1770372091045]