1. Start working off the main branch. git checkout -B my_branch

  2. Migrate your dev and test databases to ensure your databases have the latest schema

    deno task local db:reset
    
  3. Make changes locally. If working on the web app, you should be able to manually test everything locally before going to production.

  4. If you need to change the data model you may use Migrations to do so.

  5. Test your changes manually, including any migrations, locally on a feature branch.

  6. Add automated tests that ensure the feature works. deno task test runs the test suite

  7. Run deno fmt and deno task check

  8. Make a Pull Request into the main branch for your changes.

  9. Add a description in the PR of what and why the changes were made. Include a screenshot and/or videos of it working — showing how to go through a new workflow, for example.

  10. Ensure that the build runs green

  11. Ensure that your commits are ahead of the main branch (prefer rebase relative to pull/merge for this)

  12. Message your teammates on Slack asking them to review the change.

  13. Reviewers can review code asynchronously or folks can meet up over a Slack huddle.

  14. Merge the changes to the main branch with sign off from another teammate.

  15. Run migrations if necessary

  16. Test your change manually on production web

  17. If it broke, roll back and notify the team

  18. If it passed, notify that the changes are live and working as expected

  19. You just shipped! 🚢