---
tags: v3, blacksmiths, show & tell
---
# v3 Blacksmiths Show & Tell (4/15/22)
## Git Workflow
- How do we want to work?
- `develop` as base branch
- merges into `master` have CI/CD
- small feature and bug branches off `develop`
- PR into `develop` for each feature
- `feature/feature-name`
- `hotfix/fix-name`
- PR would include the link to the issue/card
- Rebase & Squashing Process
- What do we want to do with this?
- Squash and merge process and delete the branch after merge
- Rebasing `develop` while working on feature branch to help keep up to date
- Keeping branches up to date
- Commit often and merge in where we can
- How do we tie this all in to our Review process?
## Review Process
- How many reviewers do we want?
- Start with 1
- Every branch has CI on it so that each branch is fully linted and fully tested
- This would run and then the review would be about the code
- Deluxe Review: have folks sync on specific topics where requested by the author
- Pattern PRs
- More substantial PRs -- share knowledge and establish our patterns
- Code reviews in meetings
- Schedule these as they come up for these types of reviews
- Can we set up notifications in the Discord? Set up a **code-review** channel?
- CI & Review Enforcement:
- Enforce this via GitHub Actions
- Prevent merging unless CI passes
- Require at least 1 Review
- SLA for Review:
- Goal to get a review within 24 hours as a goal we aim toward
## Versioning
- In libraries, when we push to master we should bump our version
- Can we enforce this with linting?
- Can we automate this via GH Actions?
- We'd have a failed build on npm if we don't
## Questions
- Having the checks in CI, but what do we do if the deploy breaks on a different library (as opposed to one directly impacted in the PR)
- Can we have the CI only check impacted or changed packages?
- Tests and checks:
- These should also exist locally
- What do we do when things break?
- Can keep pushing to the branch even if the CI fails -- we'd not *merge* things with failed builds
- Process:
- Ping an ops person or a 'lead' for each package
- How would we handle multiple PRs per day?
- Balance of feature branch PR approach with review speed
- CI for hotfixes:
- We won't be worrying as much about a QA/prod environment as we're pre-release, but what do we want to do if we have a hotfix in prod?
- If it goes to master, we'd want to see how we re-merge back to `develop`?
- Would we want to do a promotion process instead?
- Depends on policies for how long things hang out in develop?
- Longer standing feature branches -- everyone works on this for larger features
- Every branch creates a QA environment -- anything merged into staging is then ready for prod
- How often do we want to merge `develop` into `prod`?
- Code style guide / contributor guide
- https://daohaus.club/docs/devs/goals-and-ideals
- Rage vs. Sage
- We should probably revisit our `.gitignore` and review