-
Notifications
You must be signed in to change notification settings - Fork 15
Git commit workflow
Git commit workflow for Storeman
This is the commit workflow @mentaljam originally designed and which is still used for the OpenRepos client app harbour-storeman
.
Pull requests Release branch specific PRs
│ │
▼ │
devel
───►master
─┬─►sfos3.3
│
├─►sfos4.2
◄─┤
└─►sfos3.1
◄─┘
All "horizontal" pull requests (i.e., from devel
to master
and from master
to the release branches) must be regular merge commits. Do not perform "squash merge"-commits "horizontally". Hence stubbornly always perform merge commits "horizontally".
Release branch specific commits (i.e., pull requests which are directed at a git branch out of {sfos3.1
,sfos3.3
,sfos4.2
}), should be "squash merge"-commits; regular merge commits may be deliberately used in select cases for these branches.
Note that above diagram also tries to depict that the sfos3.3
branch should not contain branch-specific commits (except for the uncommented dependencies on SailfishOS release versions) compared to master
or devel
(i.e., these are just temporally staged), in contrast to the sfos3.1
- and sfos4.2
-branches, which do differ by code and configuration specifically for the SailfishOS releases they support. For details see the Wiki page "Differences between git branches".
Also note that the basic idea is to accumulate pull requests (PRs) merged into the devel
branch, move them in tranches (i.e., from time to time) into the master
branch (which is subjected to different CI builds for quality assurance, see below). When preparing for a release, PRs are posed from the master
branch to the release branches, so the CI for these PRs runs the actual code which would be released when these PRs are merged.
The CI and release building is described at its own Wiki page.
The few differences compared to @mentaljam's original scheme are:
- The
dev
branch was renamed todevel
. - The
devel
(ex-dev
) branch is auto-build at GitHub for a tighter integration and quicker feedback, because the build results are directly displayed and build-logs accessible in pull requests. - The
master
branch instead of thedevel
(ex-dev
) branch is build-checked asharbour-storeman-testing
at the SailfishOS-OBS. - [September 2023] Rename branch
sfos3.2
tosfos3.1
in order to reflect reality and avoid confusion (PR #454).
Reference: See issue #163.