flowchart LR A[Matt v1] --> B[Ya v2] B --> C[Matt v3] B --> D[Ya v1] D --> E[Ya+Matt v4] C --> E
Good Software Engineering Practice for R Packages
July 20, 2023
Photo by Rich @ rhubbardstockfootage on Unsplash
flowchart LR A[Matt v1] --> B[Ya v2] B --> C[Matt v3] B --> D[Ya v1] D --> E[Ya+Matt v4] C --> E
Photo by Lf Asia & the Archive Team CC BY 3.0
gitGraph commit commit commit commit commit
\(\leadsto\) Chain of versions with incremental changes
Photo by Felicia Montenegro on Unsplash
git checkout [commit hash to browse]
git reset --hard [commit hash to reset to]
my-file_final_v2_2019.R
Photo by Mila Tovar on Unsplash
gitGraph commit commit branch feature checkout feature commit commit checkout main commit
git checkout -b [my new branch]
git checkout [branch name]
Photo by Mila Tovar on Unsplash
gitGraph commit commit branch feature checkout feature commit commit checkout main commit merge feature
Photo by Max LaRochelle on Unsplash
gitGraph commit tag: "v0.0.1" commit branch feature-1 checkout feature-1 commit commit checkout main branch feature-2 checkout feature-2 commit checkout feature-1 commit checkout main commit tag: "bugfix" merge feature-1 tag: "v0.1.0" checkout feature-2 commit
sequenceDiagram participant M as Matt participant GH as GitHub server participant Y as Ya M->>M: make change locally & commit to <feature> M->>GH: push commit M->>GH: open pull request GH->>GH: run automated checks M->>Y: request review Y->>Y: review code Y->>M: request changes M->>M: implement changes locally & commit M->>GH: push commit GH->>GH: run automated checks M->>Y: request review Y->>Y: review code Y->>GH: approve changes, unblocking merge M->>GH: merge <feature> into <main> GH->>GH: run automated checks on <main> Y->>GH: pull newest version of <main>
\(\leadsto\) making code-collaboration scalable
README.md
file and set up your environment in posit cloud