vac.dev/tools-and-workflows.md

47 lines
2.0 KiB
Markdown
Raw Normal View History

# Tools and workflows
This is a stub. The goal is to list some commonly used tools and workflows. Please edit this page directly.
## Tools for communication
Because Vac is collaborating with many different teams we use different communication mediums for different areas of work.
The primary ones are that you'll use on a daily basis are:
- Vac Discord
- Github (issues, PRs, etc)
Here's a non-exhaustive list of other tools that are used:
- Command line Waku app (for dogfooding)
- Status and Nimbus discord (for conversations related to Status and Nimbus)
- Status app
- Vac Forum (for long term posts)
- Status
- Telegram (for example in collaboration with other projects)
- Signal (for example in collaboration with other projects)
- Google Meet (for video calls)
## Work principles
- Async over sync (atemporal vs temporal, different timezones)
- Public over private
- Proactively reaching out vs waiting for something to happen or asking for permission
For example, if you have a problem it is better to create a Github issue, try to solve it yourself and ping a few people.
## Workflows
When it comes to code contributions we are generally quite process-light, but follow generally accepted principles around separation of concerns, testing code etc. As well as:
- Kanban style development with Github project boards
- Trunk based development https://trunkbaseddevelopment.com/ and small, incremental PRs
- Don't break master (revert commit, then fix)
- 1-2 PR reviews
Please squash to a single commit and rebase before merging to `master` (Github's `Squash and Merge` option for PRs is sufficient). Use a [semantic commit message](chore/update-submodules) for the merged commit. We also use code signing for commits.
For Nim development, follow the [Status Nim style guide](https://status-im.github.io/nim-style-guide/).
It is expected that you watch your GH inbox and do PR reviews every day in order to unblock other team members.
## Channel overview
This is a stub and should eventually contain a brief overview of various channels.