mirror of
https://github.com/LostArtefacts/TRX.git
synced 2025-04-28 20:58:07 +03:00
docs: improve release process documentation
This commit is contained in:
parent
a859d668f9
commit
b20f414e82
1 changed files with 48 additions and 15 deletions
|
@ -266,30 +266,63 @@ request number, but it's important to carefully review the body field, as it
|
||||||
often includes unwanted content.
|
often includes unwanted content.
|
||||||
|
|
||||||
|
|
||||||
### Branching model
|
|
||||||
|
|
||||||
We have two branches: `develop` and `stable`. `develop` is where all changes
|
|
||||||
about to be published in the next release land. `stable` is the latest release.
|
|
||||||
We avoid creating merge commits between these two – they should always point to
|
|
||||||
the same HEAD when applicable. This means that any hotfixes that need to be
|
|
||||||
released ahead of unpublished work in `develop` are merged directly to
|
|
||||||
`stable`, and `develop` needs to be then rebased on top of the now-patched
|
|
||||||
`stable`.
|
|
||||||
|
|
||||||
|
|
||||||
### Tooling
|
### Tooling
|
||||||
|
|
||||||
Internal tools are typically coded in a reasonably recent version of Python,
|
Internal tools are typically coded in a reasonably recent version of Python,
|
||||||
while avoiding the use of bash, shell, and similar languages.
|
while avoiding the use of bash, shell, and similar languages.
|
||||||
|
|
||||||
|
|
||||||
|
### Branching model
|
||||||
|
|
||||||
|
We have two branches: `develop` and `stable`. `develop` is where all changes
|
||||||
|
about to be published in the next release land. `stable` is the latest release.
|
||||||
|
|
||||||
|
|
||||||
### Releasing a new version
|
### Releasing a new version
|
||||||
|
|
||||||
New version releases happen automatically whenever a new tag is pushed to the
|
New version releases are published automatically whenever a new tag is pushed
|
||||||
`stable` branch with the help of GitHub actions. In general this is accompanied
|
to the `stable` branch with the help of GitHub actions.
|
||||||
with a special commit `docs: release X.Y.Z` that also adjusts the changelog.
|
The general workflow is this:
|
||||||
See git history for details.
|
|
||||||
|
|
||||||
|
```console
|
||||||
|
TR_VERSION=...
|
||||||
|
RELEASE_VERSION=...
|
||||||
|
|
||||||
|
# Switch to the stable branch.
|
||||||
|
git checkout stable
|
||||||
|
|
||||||
|
# Merge `develop` into it.
|
||||||
|
git merge develop
|
||||||
|
|
||||||
|
# Create a special commit `docs: release X.Y.Z` marking the release in the
|
||||||
|
# relevant changelog file. Then tag it with `tr1-X.Y.Z` or `tr2-X.Y.Z`.
|
||||||
|
# You can do that by hand, or run the command below:
|
||||||
|
tools/release commit ${TR_VERSION} ${RELEASE_VERSION}
|
||||||
|
|
||||||
|
# Review the changelog content.
|
||||||
|
|
||||||
|
# Switch back to develop.
|
||||||
|
git checkout develop
|
||||||
|
|
||||||
|
# Merge stable using fast-forward.
|
||||||
|
git merge --ff stable
|
||||||
|
|
||||||
|
# Review both branches and changes. If everything is okay, push to GitHub.
|
||||||
|
# You can do this by hand: git push origin develop stable tr1-X.Y.Z, or:
|
||||||
|
# tools/release push ${TR_VERSION} ${RELEASE_VERSION}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Hotfixes
|
||||||
|
|
||||||
|
Hotfix releases are a bit different as we try to not include non-bugfix changes
|
||||||
|
in them. Here instead of merging `develop` to `stable` we cherry-pick relevant
|
||||||
|
changes, resolving conflicts along the way.
|
||||||
|
|
||||||
|
### Versioning
|
||||||
|
|
||||||
|
We increase the major version for significant releases based on judgment,
|
||||||
|
typically defaulting to increasing the minor version. Hotfixes increase the
|
||||||
|
patch version.
|
||||||
|
|
||||||
|
|
||||||
## Glossary
|
## Glossary
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue