Skip to content

Instantly share code, notes, and snippets.

@ksindi
Last active October 30, 2019 23:06
Show Gist options
  • Save ksindi/32308e736574b946e3309c16ad7602b3 to your computer and use it in GitHub Desktop.
Save ksindi/32308e736574b946e3309c16ad7602b3 to your computer and use it in GitHub Desktop.

Contributing Guidelines

  1. Only assign yourself 1-2 tickets at a time
  2. Split up tickets that take longer than 3 days
  3. Always use ISO-8601 internally
  4. Always use UTC internally unless it's for future datetimes
  5. Always use UTF-8 internally
  6. Commit messages can complete the following sentence in under 50 characters: "If applied, this commit will "
  7. Always rebase from master and squash "maintenance" commits (WIP, etc.)
  8. Make PRs short in time and length - max of 4 days and 400 lines of code
  9. PRs should have a ticket attached unless they're doc changes
  10. PRs that shouldn't be merged must have a WIP label
  11. PRs need at least one reviewer sign off before merge; emojis (:rocket:) in comments are sufficient
  12. PRs with UI changes must have a screenshot attached
  13. PR review comments must be addressed unless they explicitly say "non blocking"
  14. Use black to format Python code
  15. Use judgment - rules only solve 95% of cases

Services checklist

Every service should have the following:

  • README
  • Dockerfile
  • Makefile
    • make test: test application
    • make local: run application locally
  • Ensure your server listens on 0.0.0.0
  • Expose a health check endpoint under /health that returns 200
  • Structured logging (structlog for Python)
  • Sentry configuration
  • Up-to-date CA certificates (ca-certificates package in Alpine)

Deploying a new service

This section is org specific

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment