flowchart LR A[<font size=4> Daniel v1] --> B[<font size=4> Daniel v2] B --> C[<font size=4> Daniel v3] B --> D[<font size=4> Ryan v1] D --> E[<font size=4> Ryan + Daniel v4] C --> E
openstatsware Course: Good Software Engineering Practice for R Packages
September 26, 2023
Photo by Rich @ rhubbardstockfootage on Unsplash
Key issue:
 Manage complexity over time or between people
Photo from Tim Mossholder on Unsplash
flowchart LR A[<font size=4> Daniel v1] --> B[<font size=4> Daniel v2] B --> C[<font size=4> Daniel v3] B --> D[<font size=4> Ryan v1] D --> E[<font size=4> Ryan + Daniel 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.RPhoto 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 A as Daniel
    participant GH as GitHub server
    participant B as Ryan
    A->>A: make change locally & commit to <feature>
    A->>GH: push commit
    A->>GH: open pull request
    GH->>GH: run automated checks
    A->>B: request review
    B->>B: review code
    B->>A: request changes
    A->>A: implement changes locally & commit
    A->>GH: push commit
    GH->>GH: run automated checks
    A->>B: request review
    B->>B: review code
    B->>GH: approve changes, unblocking merge
    A->>GH: merge <feature> into <main>
    GH->>GH: run automated checks on <main>
    B->>GH: pull newest version of <main>
\(\leadsto\) making code-collaboration scalable
README.md file and set up your environment in posit cloud