Skip to content

Commit a15e882

Browse files
GitHub Flow migration (#10)
: Historical Background Back on July 22 2017, this style guide for Git was created that also included the compliance with Git Flow [1]. Generally this branching model is really dynamic and can help a larger team to keep the overview of different story implementations while being able to build and deploy version backports. Using `develop` as the main branch also helps to make sure the `master` branch always contains stable versions. Anyway, the model also comes with disadvantages like the overhead of keeping both `develop` and `master` in sync when tagging a new release version. The main target groups for this model are larger teams that work on projects with legacy support. I've adapted Git Flow because I liked the idea of having one branch that reflects the actual development state, but after using it for over 6 years I don't see any advantages in it anymore compared to other great models like GitHub Flow [2]. I've checked the original Git Flow blog post of Vincent Driessen again and was amazed that he recently (March 5, 2020) added an update at the top of the post that exactly matches my opinion regarding the fact that Git Flow is not suitable these days, comes with too much overhead and that he now recommends to use GitHub Flow instead: > Note of reflection (March 5, 2020) > > This model was conceived in 2010, now more than 10 years ago, and not > very long after Git itself came into being. In those 10 years, > git-flow (the branching model laid out in this article) has become > hugely popular in many a software team to the point where people have > started treating it like a standard of sorts — but unfortunately also > as a dogma or panacea. > > During those 10 years, Git itself has taken the world by a storm, > and the most popular type of software that is being developed with Git > is shifting more towards web apps — at least in my filter bubble. Web > apps are typically continuously delivered, not rolled back, and you > don't have to support multiple versions of the software running in the > wild. > > This is not the class of software that I had in mind when I wrote the > blog post 10 years ago. If your team is doing continuous delivery of > software, I would suggest to adopt a much simpler workflow (like > GitHub flow) instead of trying to shoehorn git-flow into your team. > > If, however, you are building software that is explicitly versioned, > or if you need to support multiple versions of your software in the > wild, then git-flow may still be as good of a fit to your team as it > has been to people in the last 10 years. In that case, please read on. > > To conclude, always remember that panaceas don't exist. Consider your > own context. Don't be hating. Decide for yourself. This update perfectly reflects the way I thought about the Git Flow model quite a while now. Therefore I've finally decided to switch to GitHub Flow and retire the good old `develop` in favor of `master` as the one and only single-source-of-truth™️. : Migration Tasks Since all Arctic Ice Studio projects adhere to this guide each repository must gradually adapt to this change one after the other. Large projects like Nord [3] with all of it's port projects [4] will require a lot more time and effort to migrate regarding the goal and tooling compatibility of the actual project. Smaller projects like my igloo [5] dotfile repository, snowsaw [6] as well as this style guide repository itself are way easier and can be done within the next few weeks. [1]: https://nvie.com/posts/a-successful-git-branching-model [2]: https://guides.github.com/introduction/flow [3]: https://www.nordtheme.com [4]: https://www.nordtheme.com/ports [5]: https://github.com/arcticicestudio/igloo [6]: https://github.com/arcticicestudio/snowsaw Related to GH-9
1 parent 3de2eeb commit a15e882

File tree

6 files changed

+23529
-2432
lines changed

6 files changed

+23529
-2432
lines changed

CHANGELOG.md

+31-40
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,43 @@
1-
<p align="center"><img src="https://rawgit.com/arcticicestudio/styleguide-git/develop/src/assets/styleguide-git-banner-typography.svg"/></p>
1+
<div align="center"><img src="https://raw.githubusercontent.com/arcticicestudio/styleguide-git/develop/assets/banner-repository.svg?sanitize=true"/></div>
22

3-
---
3+
<p align="center">Changelog for the official <em>Arctic Ice Studio</em> <a href="https://git-scm.com" target="_blank">Git</a> Style Guide.</p>
44

55
# 0.2.0
6-
<details>
7-
<summary>Version Details</summary>
8-
<p>
9-
Release Date: *2017-07-24*
10-
<a href="https://github.com/arcticicestudio/styleguide-git/milestone/2">Milestone</a>
11-
<a href="https://github.com/arcticicestudio/styleguide-git/projects/3">Project Board</a>
12-
</p>
13-
</details>
6+
7+
![Release Date: 2017-07-24](https://img.shields.io/badge/Release_Date-2017--07--24-88C0D0.svg?style=flat-square) [![Project Board](https://img.shields.io/badge/Project_Board-0.2.0-88C0D0.svg?style=flat-square)](https://github.com/arcticicestudio/styleguide-git/projects/3) [![Milestone](https://img.shields.io/badge/Milestone-0.2.0-88C0D0.svg?style=flat-square)](https://github.com/arcticicestudio/styleguide-git/milestone/2)
148

159
## Features
16-
### Style Guide
17-
❯ Added [branch naming][src-branch-naming] conventions and guidelines for [core][src-branch-naming-core]- and [story branches][src-branch-naming-story] following the [gitflow][gitflow] branching model. (#3 in PR #6)
1810

19-
❯ Added conventions and guidelines for [tags][src-tags] following the [Arctic Versioning Specification][arcver]. (#4 in PR #5)
11+
### Documentation
12+
13+
**Branch naming conventions and guidelines**#3#6 (⊶ d1493353)
14+
↠ Added [branch naming][src-docs-branch-naming] conventions and guidelines for [core][src-docs-branch-naming-core]- and [story branches][src-docs-branch-naming-story] following the [Git Flow][git_flow] branching model.
15+
16+
**Tag naming conventions and guidelines**#4#5 (⊶ 89924cb9)
17+
↠ Added conventions and guidelines for [tags][src-docs-tags] following the [Arctic Versioning Specification][arcver].
2018

2119
# 0.1.0
22-
<details>
23-
<summary>Version Details</summary>
24-
<p>
25-
Release Date: *2017-07-22*
26-
<a href="https://github.com/arcticicestudio/styleguide-git/milestone/1">Milestone</a>
27-
<a href="https://github.com/arcticicestudio/styleguide-git/projects/2">Project Board</a>
28-
</p>
29-
</details>
20+
21+
![Release Date: 2017-07-22](https://img.shields.io/badge/Release_Date-2017--07--22-88C0D0.svg?style=flat-square) [![Project Board](https://img.shields.io/badge/Project_Board-0.1.0-88C0D0.svg?style=flat-square)](https://github.com/arcticicestudio/styleguide-git/projects/2) [![Milestone](https://img.shields.io/badge/Milestone-0.1.0-88C0D0.svg?style=flat-square)](https://github.com/arcticicestudio/styleguide-git/milestone/1)
3022

3123
## Features
32-
### Style Guide
33-
❯ Added the initial style guide [introduction][src-introdcution], information about the [structural split of changes][src-structural-split], [bad practices][src-structural-split-bad-practices] and the main chapter about [commit messages][src-commit-messages] with the [summary][src-commit-messages-summary], [body][src-commit-messages-body] and [footer][src-commit-messages-footer] elements and their [structure][src-commit-messages-structure]. (#1 in PR #2)
24+
25+
### Documentation
26+
27+
**Initial style guide and project documentation**#1#2 (⊶ 7c746dae)
28+
↠ Added the initial style guide [introduction][src-docs-introdcution], information about the [structural split of changes][src-docs-structural-split], [bad practices][src-docs-structural-split-bad-practices] and the main chapter about [commit messages][src-docs-commit-messages] with the [summary][src-docs-commit-messages-summary], [body][src-docs-commit-messages-body] and [footer][src-docs-commit-messages-footer] elements and their [structure][src-docs-commit-messages-structure].
3429

3530
[arcver]: https://github.com/arcticicestudio/arcver
36-
[checkstyle-github]: https://github.com/checkstyle/checkstyle
37-
[checkstyle-jetbrains-plugin]: https://plugins.jetbrains.com/plugin/1065-checkstyle-idea
38-
[checkstyle-version]: https://github.com/checkstyle/checkstyle/releases/tag/checkstyle-8.0
39-
[gitflow]: http://nvie.com/posts/a-successful-git-branching-model/
40-
[scrot-ide-setup-intellij-checkstyle-activate]: https://raw.githubusercontent.com/arcticicestudio/styleguide-java/develop/src/assets/scrot-ide-setup-intellij-checkstyle-activate.png
41-
[src-branch-naming]: https://github.com/arcticicestudio/styleguide-git#branch-naming
42-
[src-branch-naming-core]: https://github.com/arcticicestudio/styleguide-git#core-branches
43-
[src-branch-naming-story]: https://github.com/arcticicestudio/styleguide-git#story-branches
44-
[src-commit-messages]: https://github.com/arcticicestudio/styleguide-git#commit-messages
45-
[src-commit-messages-body]: https://github.com/arcticicestudio/styleguide-git#message-body
46-
[src-commit-messages-footer]: https://github.com/arcticicestudio/styleguide-git#message-footer
47-
[src-commit-messages-structure]: https://github.com/arcticicestudio/styleguide-git#elements-and-their-structure
48-
[src-commit-messages-summary]: https://github.com/arcticicestudio/styleguide-git#message-summary
49-
[src-introdcution]: https://github.com/arcticicestudio/styleguide-git#introduction
50-
[src-structural-split]: https://github.com/arcticicestudio/styleguide-git#structural-split-of-changes
51-
[src-structural-split-bad-practices]: https://github.com/arcticicestudio/styleguide-git#bad-practices
52-
[src-tags]: https://github.com/arcticicestudio/styleguide-git#tags
31+
[git_flow]: http://nvie.com/posts/a-successful-git-branching-model/
32+
[src-docs-branch-naming-core]: https://github.com/arcticicestudio/styleguide-git#core-branches
33+
[src-docs-branch-naming-story]: https://github.com/arcticicestudio/styleguide-git#story-branches
34+
[src-docs-branch-naming]: https://github.com/arcticicestudio/styleguide-git#branch-naming
35+
[src-docs-commit-messages-body]: https://github.com/arcticicestudio/styleguide-git#message-body
36+
[src-docs-commit-messages-footer]: https://github.com/arcticicestudio/styleguide-git#message-footer
37+
[src-docs-commit-messages-structure]: https://github.com/arcticicestudio/styleguide-git#elements-and-their-structure
38+
[src-docs-commit-messages-summary]: https://github.com/arcticicestudio/styleguide-git#message-summary
39+
[src-docs-commit-messages]: https://github.com/arcticicestudio/styleguide-git#commit-messages
40+
[src-docs-introdcution]: https://github.com/arcticicestudio/styleguide-git#introduction
41+
[src-docs-structural-split-bad-practices]: https://github.com/arcticicestudio/styleguide-git#bad-practices
42+
[src-docs-structural-split]: https://github.com/arcticicestudio/styleguide-git#structural-split-of-changes
43+
[src-docs-tags]: https://github.com/arcticicestudio/styleguide-git#tags

0 commit comments

Comments
 (0)