tradeit.gg
← Back to Index

Architecture · ops.tradeit.gg

Development Cycle and Release Process

Contents


Purpose

Define how work moves from task pickup to production using our Git Flow process.


Branch Model

Permanent branches

Production branch. Releases and hotfixes are merged here and tagged.

Main integration branch for ongoing work. Features and releases start from here, and completed work merges back here.

Working branches

Used for new functionality. Created from develop and merged back into develop.

Used for non-production bug fixes that should go into the next release. In our flow, bugfix branches follow the same lifecycle as features: branch from develop, PR into develop, QA, then release with the next version.

Used to prepare a production release. Created from develop. When finished, it is merged into master, tagged, and back-merged into develop.

Used only for urgent production fixes. Created from master, then merged back into both master and develop, with a tag on master.


Development Cycle

1. ToDo

Task is defined and ready to be picked up.

2. In Development

Create a branch from develop.

For a feature:

git flow feature start <name>

For a bugfix in the next normal release:

git checkout develop
git checkout -b bugfix/<name>

Work done in this stage:

Optional publish for collaboration:

git flow feature publish <name>

3. PR in Review

Open a pull request into develop.

If review requests changes, move back to In Development on the same branch.

4. PR Approved

Code review passed. The branch is ready for QA validation.

5. QA - Feature Staging

Deploy the branch to feature staging and validate it.

If QA fails:

If QA passes:

6. Merge to Develop

After QA approval, merge the PR into develop.

This is the point where the work becomes part of the next release candidate.

7. Ready for Prod

Once the required set of features and bugfixes is in develop, create a release branch.

git flow release start <version>

Optional publish:

git flow release publish <version>

8. Release QA / Hardening

QA validates the release/<version> branch.

Only release-safe changes go here, such as:

9. Production Release

When release QA passes, finish the release:

git flow release finish <version>
git push origin --tags

This does the following:


Emergency Production Fixes

If production is broken, do not open a normal bugfix branch from develop.

Use a hotfix from master:

git flow hotfix start <version>

After the fix and QA:

git flow hotfix finish <version>
git push origin --tags

This does the following:


When to Use Each Branch Type

Use feature/* when

Use bugfix/* when

Use hotfix/* when


Semantic Commit Standard

We use Conventional Commits for semantic commit messages.

Format:

<type>[optional scope]: <description>

Common types

Breaking changes

Use ! after the type or scope, or add a BREAKING CHANGE: footer.

Examples:

feat(inventory): add delayed refresh after trade completion
fix(auth): handle expired steam session correctly
refactor(opensearch): simplify item query builder
test(trade): add coverage for escrow timeout flow
chore(deps): bump datadog library
feat(api)!: remove deprecated inventory response fields

Commit rules


Minimal Working Examples

Normal feature

git checkout develop
git pull origin develop
git flow feature start inventory-resync

git commit -m "feat(inventory): add resync endpoint"

# open PR to develop
# QA on feature staging
# merge PR to develop

git flow release start 1.24.0
# release QA
git flow release finish 1.24.0
git push origin --tags

Normal bugfix for next release

git checkout develop
git pull origin develop
git checkout -b bugfix/staging-login-loop

git commit -m "fix(auth): stop redirect loop on staging"

# open PR to develop
# QA on feature staging
# merge PR to develop

git flow release start 1.24.1
# release QA
git flow release finish 1.24.1
git push origin --tags

Emergency production hotfix

git checkout master
git pull origin master
git flow hotfix start 1.24.2

git commit -m "fix(payment): handle provider timeout fallback"

# QA the hotfix
git flow hotfix finish 1.24.2
git push origin --tags

Summary


ops.tradeit.gg — Internal Engineering Docs