They might differ on project-to-project basis but all should be present in some form.
Grammarly or something similar for correct spelling and grammar.
GitHub has the best reach and is the go-to platform for open source projects.
GitHub has their own CI which is also available for self-hosting. This mitigates the possibility of leaking code through various third party services and puts them on par with GitLab. They have various security features (1, 2, 3) and we found thier service to be much more stable than GitLab.
- Dev platform's issue tracker
- Keep decisions and (excerpts of) technical discussion in the issues
- Record time spent (referencing the topic) in a shared space, e.g. Clockify
- GitHub Actions
- Linter
- Coverage
- For coverage-critical projects the threshold must be set at 100% and specific parts may be exlcuded from coverage with an explanation
- Heroku
- GitHub pages
- lint
- test
- report coverage
- build
- deploy
- Work on feature branches
- Include issue reference in branch name
- Review PRs before merge
- Remove merged branches to keep the repo thin
It's a good practice to do "clean" commits where the CI is always expected to pass. It's useful to e.g.
- be able to revert to any state of master (depending on the merge strategy this isn't always possible with failing commits)
- ensure that the work can be continued without having to wait for the CI
One way to force checks before committing is via pre-commit hooks. Nowadays there're libraries that support storing this configuration in the repo.
Run at least test
and lint
steps.
- technical design
- for FE
- wireframe design
- functional / interaction design
- visual design
- draw.io - diagrams, wireframes
- balsamiq.cloud - wireframes
- figma - visual