New Development Process
How we develop, test, and ship code — starting today
March 2026
mastermastergit pull origin master| Branch | Environment | URL | Purpose | Who deploys |
|---|---|---|---|---|
develop |
Staging | stg.diagnostic.ly | Integration testing — see your feature in a real environment | Auto on merge |
uat |
UAT | uat.diagnostic.ly | QA verification — test before production | Auto on merge |
main |
Production | diagnostic.ly | Live production — only tested code goes here | Release Owner |
master has been renamed to main. Update your local clone: git branch -m master main && git fetch origin && git branch -u origin/main main
main, uat, or develop. Always use pull requests.
| Prefix | Use for | Example |
|---|---|---|
| feature/ | New features | feature/scheduling-calendar |
| fix/ | Bug fixes | fix/login-otp-expiry |
| hotfix/ | Urgent production fixes | hotfix/payment-crash |
| refactor/ | Code refactoring | refactor/user-service |
| docs/ | Documentation | docs/api-guide |
| test/ | Test additions | test/payment-edge-cases |
All branches are created from and PR'd back to develop — except hotfixes, which go to main.
git checkout develop && git pullgit checkout -b feature/my-featuregit commit -m "feat(module): add thing"git push -u origin feature/my-featuregh pr create --base developstg.diagnostic.lyCI must pass before any merge. Staging and UAT deploys now also run CI first — no broken code reaches any environment.
All your commits become one clean commit on develop. Keeps history clean and readable.
gh pr merge --squash
Preserves all commits for QA traceability. QA can see exactly what changed.
gh pr merge --merge
Full audit trail. Each merge to main represents a tested, approved release.
gh pr merge --merge
stg.diagnostic.lygh pr create --base uat --head develop --title "release: promote to UAT"uat.diagnostic.lygh pr create --base main --head uat --title "release: promote to production"For urgent production issues (P1/P2) only. This is the one exception to the normal flow.
master to main:main, uat, or develop directly. Always create a feature branch and PR.feat(scope): description, fix(scope): descriptiondocs/branching-workflow.md in the repo| New feature? | Branch from develop, PR to develop |
| Bug fix? | Branch from develop, PR to develop |
| Production on fire? | Branch from main, PR to main, back-merge |
| Ready for QA? | PR from develop → uat |
| Ready for prod? | PR from uat → main |
| CI failing? | Fix it in your branch, push again |
Full documentation: docs/branching-workflow.md
Questions? Reach out to Jostein or check the docs.