Contribution guide

Project Contribution #

Gitlab flow #

  • If you aren’t familiar with gitlab flow, please take a look. We adhere strictly to the gitlab flow and it essential to get learn it.
  • Always follow [/docs/development-experience/release-process](Release process guidelines)
  • Read no breaking change policy
  • TODO: Link to the Release powerhouse

Working with service #

  • If you are working with a service for the first time, understand its depenencies and make sure you can run tests locally
  • Every service has an owner, its a person who can help if you’ll have any questions or problems with a service
  • Always, dont forget to pull master branch before working with service
  • Take a look on open PRs to understand if anyone else is also currently working with a service
  • Branch agains master and open PRs into master
  • Run tests after merging to master

For the owners #

  • If you are an owner, don’t forget to keep readme, swagger and service description updated
  • TODO: create a good example of the service

Git guidelines #

  • Work in your branch and keep your git history flat
  • Separate subject from body with a blank line, git shortlog, must how subject line for concision:
$ git shortlog
Kevin Flynn (1):
      Derezz the master control program

Alan Bradley (1):
      Introduce security program "Tron"

Ed Dillinger (3):
      Rename chess program to "MCP"
      Modify chess program
      Upgrade chess program

Walter Gibbs (1):
      Introduce protoype chess program

General recommendations #

  • Commit early, commit often
  • Read the documentation (and then read it again)
  • Optimize CI stages, failures are easy to identify and fix
  • Make builds fast and simple
  • Use failures to improve processes. Focus on cultural shift for continuous improvement
  • Test environment should mirror production
  • Wanna read more? follow gitlab blog!

Workflow #

  1. Read, understand the task.
  2. Pull master changes, create new branch using git branch guidelines.
  3. Start working with task by creating tests and thinking through the whole solution.
  4. Implement your code.
  5. Make sure your tests are working.
  6. Rebase your branch agains master before you open PR
  7. Open PR to the master branch and wait for the comments/approvement from other engineers
  8. Move your ticket and PR to the review column
  9. Address comments from your teammates
  10. Merge your PR once it approved
  11. Test your changes on development environment to make sure its properly working
  12. TODO: Move your ticket to the dome column??