# Workflow Guide This guide covers the basic development workflow for projects based on https://github.com/ssube/rollup-template/. ## Contents - [Workflow Guide](#workflow-guide) - [Contents](#contents) - [Common Tasks](#common-tasks) - [Branch Development](#branch-development) - [Deploying Releases](#deploying-releases) - [Merging Changes](#merging-changes) - [Test Coverage](#test-coverage) ## Common Tasks These guides primarily reference terminal commands. If you are using VS Code or Github's desktop client instead: - [Using Version Control in VS Code](https://code.visualstudio.com/docs/editor/versioncontrol) - [Contributing and Collaborating Using Github Desktop](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/) ### Branch Development Development for each issue is done on a different branch: - select an issue - assign it to yourself - move it to the `status/progress` state - `git checkout -b feat/XX-brief-title` - write some code - write some tests - `make ci` - add or update docs, as needed - create [merge request](#merging-changes) Branch names are based on ticket type: - bug fix: `fix/XX-brief-title` - feature: `feat/XX-brief-title` Commit messages use the Conventional Commits specification: https://www.conventionalcommits.org/en/v1.0.0/#summary Messages should finish the prompt "This commit will..." and follow the form: `type(scope): what will be changed`. For example: ```none feat(build): deploy new versions automatically feat(labels): set flux capacitance per label fix(sync): stop erasing all labels by accident ``` ### Deploying Releases TODO ### Merging Changes To stage your changes: ```shell > git add # adds a single file to staging > git add # adds all files in a single directory to staging ``` To commit your changes to the checked out branch: ```shell > git commit # commits any changes you've added to staging > git commit -a # commits all files; does not require staging changes first > git commit -m "your commit message" # allows you to add your commit message inline ``` To push your local changes to the repository: ```shell > git push origin ``` After you have pushed your local changes, you can create a pull request and merge from Github: [Proposing Changes to Your Work with Pull Requests](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests) ### Test Coverage To see how much of your code is covered by your tests: ```shell > google-chrome ./out/coverage/index.html # change google-chrome to your web browser of choice ```