Build1 publisherNot yet confirmed elsewhere3 min readPublished Updated
The stability step is a branch, not a pipeline: inside one team's release-candidate discipline
A published Git process makes one step unskippable: testing the release-candidate branch before it lands in master. CI/CD, by the author's own account, is optional.
The Engineer · Build desk
What happened
- The article's author states he developed the Git methodology while managing software development, and that it reduces risk by stabilizing the code that gets merged into master right before a release, producing stable releases and a stable master.
- CI/CD automation is implied by the process, but the lack of automation does not prevent adopting it.
- The process is built on the feature branch workflow: master is always stable, there is one branch per task, and releases use tags created from master named using SemVer.
- Release Candidate branches hold all changes going into a release, are named rc-* (example: rc-v1.5.24), and go through a stabilization phase before being merged into master.
- The release branch is created from the up-to-date master, and it is recommended to explicitly sync master before creating it; every other branch is likewise created from up-to-date master.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
A developer writing on dev.to has published the Git methodology he says he developed while managing software development, and its load-bearing claim is unfashionable: stable releases come from where you stabilise code, not from how much you automate [17]. The process assumes CI/CD but states plainly that a lack of automation does not prevent adoption [1], while making two other things non-negotiable: a release-candidate branch that is tested before it merges to master, and an issue tracker that mints short readable IDs [15].
The shape is ordinary feature-branch work. master is always stable, there is one branch per task, and releases are tags cut from master using SemVer names [2]. What differs is that task branches never reach master directly. Changes bound for a release live in a release-candidate branch named rc-*, the worked example being rc-v1.5.24, created from an up-to-date master and put through a stabilisation phase before it merges [3][4]. Code review still happens in a merge request opened from the task branch into master, but each of those MRs is closed automatically when the RC merges [5]. The review target and the merge path are deliberately different objects.
Admission to a release has three gates: the task's MR has passed review, it has no conflicts with master, and the task's changes have been tested [6]. The version number falls out of the task list plus SemVer, and creating a release entity in the tracker is optional but is presented as improving the link between tracker and Git [7].
Then comes the requirement that decides whether a given team can adopt this at all. Because branch names carry issue identifiers, the tracker has to generate a short, human-readable unique ID automatically [8]. Jira and YouTrack do that out of the box, and the Issues features in GitHub, GitLab or Gitea work using either the local or global identifier, for example 42 or acme/service#42 [9]. Trello, Asana and Notion, the author writes, probably will not fit, because they do not produce a readable unique ID [10]. That is a tooling veto written into the process, not a taste preference.
On testing the author allows latitude everywhere except one place: testing the release branch cannot be skipped, because that is the step that stabilises what will reach master and then production [11]. Testing a task in isolation, or using a shared test environment, is offered as an option [12]. The recommended pipelines are modest by current standards: builds of fixed environments from their branches, an on-demand environment for an individual task, and static analysis plus automated tests in task MRs [13].
The claimed payoff is operational rather than aesthetic. According to the author, a clear link between Git history, build artifacts and production instance tags simplifies incident management [18], and the history graph gives an overview of the state of development or the cost of a project without time tracking [19]. There is one escape hatch: under a "green trunk" practice, shared code that does not affect users can go straight into master, bypassing the release cycle, treated as an exception requiring extra control [14].
Worth watching, if you try this. The account is experiential, drawn from cross-functional, product-based and outsourcing teams of three to twenty people [20], and the material carries no defect-rate or lead-time figures to compare against trunk-based alternatives [16]. The pressure points are obvious from the design: the stabilisation window becomes the queue every task waits in, the green-trunk exception is the thing that will quietly widen, and the auto-closing MR behaviour [5] is the part most likely to depend on which forge you run.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence32
- Adoption
- Insufficient
- Hype gap+18
- Incentives52
- Confidence42
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
CI/CD automation is implied by the process, but the lack of automation does not prevent adopting it.
- [2]
The process is built on the feature branch workflow: master is always stable, there is one branch per task, and releases use tags created from master named using SemVer.
- [3]
Release Candidate branches hold all changes going into a release, are named rc-* (example: rc-v1.5.24), and go through a stabilization phase before being merged into master.
- [4]
The release branch is created from the up-to-date master, and it is recommended to explicitly sync master before creating it; every other branch is likewise created from up-to-date master.
- [5]
Changes for an individual task are not merged into master directly but through the RC branch; for code review a Merge Request is created from the task branch into master, and each MR is closed automatically when the Release Candidate is merged into master.
- [6]
Tasks selected for a release must have code that has passed review in the task's Merge Request, an MR with no conflicts with master, and changes that have been tested.
- [7]
The next version number is determined from the task list following SemVer; creating a release entity in the tracker (explicitly or as a parent task) is optional but improves the connection between the tracker and Git.
- [8]
Because the process relies on a close link between change history and planning, it requires an issue tracker that automatically creates a short, human-readable identifier for each task or issue.
- [9]
Jira and YouTrack provide a short auto-increment task ID out of the box; the Issues functionality in GitHub, GitLab or Gitea can also be used, with either the local or the global issue identifier in the branch name (for example 42 or acme/service#42).
- [10]
The author writes that tools like Trello, Asana or Notion probably will not fit the process, because they do not generate a readable unique ID for a task.
- [11]
Testing the release branch (release candidate) is the most important step and cannot be skipped, because it stabilizes the code that will end up in master and later in production.
- [12]
Besides release testing, a task can also be tested in isolation or on a shared test environment; the methodology gives flexibility in organizing testing, and possible environments are listed in a table.
- [13]
Recommended CI/CD pipelines are: automatic builds of fixed environments from their corresponding branches; automatic build of an environment for an individual task on demand; and running static code analyzers and automated tests in the MRs of individual tasks.
- [14]
Under the optional 'green trunk' practice, code shared by several tasks that does not affect users can be merged directly into master, bypassing the release cycle; such cases should be treated as exceptions requiring extra control over the changes merged.
- [15]
The process makes CI/CD optional while treating two other elements as mandatory: testing the RC branch before it merges to master, and a tracker that auto-generates short readable task IDs for branch names.
- [16]
The reporting contains no quantitative outcome measures (defect rates, lead times, release frequency) for the methodology; its support is the author's reported experience across team types and sizes.
- [17]
The article's author states he developed the Git methodology while managing software development, and that it reduces risk by stabilizing the code that gets merged into master right before a release, producing stable releases and a stable master.
ReportedInsufficientSource: dev.to article by denisinvader2 sources— create a free account to open themView cited source - [18]
The author claims a clear link between Git history, build artifacts and production instance tags simplifies incident management.
ReportedInsufficientSource: dev.to article by denisinvader2 sources— create a free account to open themView cited source - [19]
The author claims the branching canonical history graph gives an overview of the current state of development or the cost of a project without using time tracking.
ReportedInsufficientSource: dev.to article by denisinvader2 sources— create a free account to open themView cited source - [20]
The author reports applying the approaches in cross-functional, product-based and outsourcing teams, with team sizes ranging from three to twenty people.
Sources
1 independent publisher whose own reporting we read for this story.
- dev.toGit Playbook: Team-sync and Stable Releases
1 article · August 21, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.