Skip to content

Commit

Permalink
JNG-3834 prepare release (#49)
Browse files Browse the repository at this point in the history
* JNG-3834 Bump versions

* JNG-3834 Add jococo and bumb versions

* Fixing snapshot handling

* Bump versions and fixing CI

* Bump version

* Bump versions

* Update CI scripts

* Fixing pom

Co-authored-by: Robert Csakany <[email protected]>
  • Loading branch information
robertcsakany and Robert Csakany authored Sep 26, 2022
1 parent d1b4c97 commit 4657f3c
Show file tree
Hide file tree
Showing 21 changed files with 1,403 additions and 164 deletions.
269 changes: 269 additions & 0 deletions .github/CIFLOW.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,269 @@
= Development version and branch handling
:toc:
:icons: font

== Branches

Versioning policy of JUDO NG modules are based on GitFlow: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow.

Branches:

* **develop**: development branch contains latest development sources of the last active version
* **feature/JNG-NUMBER_short_summary**: feature branches are based on **develop** and contains sources of new features that will be included in last active version
* **(release/)1_0_beta1**: release branches of 1.0-beta1 (release/ prefix is still reserved for CI)
* **bugfix/JNG-NUMBER_short_summary**, **support/JNG-NUMBER_short_summary**: bugfix and support branches are based on release branches and must be applied to release and development branches of newer versions too
* **master**: contains latest released sources of the last active version

ifdef::env-github[image::branches.png[title="branches.yml"]]
ifndef::env-github[]
[[branches]]
.branches.yml
[plantuml, branches, alt="branches.yml"]
---------------------------------------------------------------------
digraph GitFlow {
rankdir="LR";
bgcolor="transparent";
node[width=0.15, height=0.15, shape=point];
edge[weight=2, arrowhead=vee];
0[shape=box, style=filled, label="master", color=chartreuse]
1[shape=box, style=filled, label="develop", color=cornflowerblue]
2[shape=box, style=filled, label="feature/JNG-1", color=gold]
4[shape=box, style=filled, label="feature/JNG-2", color=gold]
12[shape=box, style=filled, label="feature/JNG-3", color=gold]
14[shape=box, style=filled, label="(release/)1.0-beta1", color=cyan]
17[shape=box, style=filled, label="bugfix/JNG-4", color=firebrick1]
19[shape=box, style=filled, label="release/1.0-beta2", color=cyan]
23[shape=box, style=filled, label="support/JNG-5", color=aquamarine]
26[shape=box, style=filled, label="hotfix/JNG-6", color=firebrick2]
27[shape=box, style=filled, label="release/1.1-beta1", color=cyan]
node[group=develop, color=cornflowerblue];
0 -> 1 -> 7 -> 8 -> 9 -> 10 -> 11 -> 30 -> 31;
node[group=feature_JNG_1, color=gold];
1 -> 4 -> 5 -> 6 -> 8;
node[group=feature_JNG_2, color=gold];
1 -> 2 -> 3 -> 7;
node[group=feature_JNG_3, color=gold];
8 -> 12 -> 13 -> 9;
node[group=release_1_0_beta1, color=cyan];
8 -> 14 -> 15 -> 16 -> 10;
node[group=bugfix_JNG_4, color=firebrick1];
14 -> 17 -> 18 -> 16;
node[group=release_1_0_beta2, color=cyan];
9 -> 19 -> 20 -> 21 -> 33;
16 -> 21;
26 -> 33;
node[group=support_JNG_5, color=aquamarine];
19 -> 23 -> 24 -> 20;
node[group=master, color=chartreuse];
0 -> 22 -> 25 -> 32;
21 -> 22;
21 -> 11;
node[group=hotfix_JNG_6, color=firebrick2];
22 -> 26 -> 25;
26 -> 30;
node[group=release_1_1_beta1, color=cyan];
11 -> 27 -> 28 -> 29 -> 31;
26 -> 28;
29 -> 32;
}
---------------------------------------------------------------------
endif::[]

== Version numbers

Version numbers are increased using semantic versioning:

* do not change version numbers on starting feature/ branches
* 2nd number in version of *develop* branch is increased when a release branch started
* do not change version numbers on bugfix/ branches - that are applied on release branches during testing before releasing it (merging to master)
* 3rd number in version of support/ branches is increased when started - it is used to support a previous release including new (minor) changes; support/ branches are merged back to release branch when update is released (without merging changes to master)
* 3rd number in version of hotfix/ branches is increased when started (that are applied on both release and master branches)

=== Gihub action flows

ifdef::env-github[image::build.png[title="build.yml"]]
ifndef::env-github[]
[[build]]
.build.yml
[plantuml, build, alt="build.yml"]
---------------------------------------------------------------------
@startuml
partition build.yml {
skinparam shadowing false
skinparam ActivityBackgroundColor WhiteSmoke
skinparam ActivityBorderColor Black
skinparam ActivityBorderThickness 1
skinparam ArrowColor Black
skinparam ActivityDiamondBackgroundColor WhiteSmoke
skinparam ActivityDiamondBorderColor Black
#business:**when**\npush on **__develop__** branch\nor\npull request on **__develop__**, **__master__**, **__increment/*__**, **__release/*__** __branch__;
if (Commit or Pull request's base branch?) then (master, release/*)
:set **__version__**\nfrom project **pom.xml** (version without '-SNAPSHOT');
else (develop, increment/*)
:set __version__ **major.minor.qualifier.date_commitId_branchName**\nfrom project **pom.xml** (version without '-SNAPSHOT');
endif
:build and deploy to nexus;
:create git __tag__ **v__<version>__**;
if (Pull request or commit base branch?) then (increment/*, release/*)
:create __tag__ **merge-pr/__<version>__**;
fork
#palegreen:**trigger merge-pr-tagged.yml**;
end
fork again
end fork
endif
if (Pull request's or commit base branch?) then (develop)
:build change log;
:create **github release** (prerelease) with change log;
endif
end
}
@enduml
---------------------------------------------------------------------
endif::[]


ifdef::env-github[image::merge-pr-tagged.png[title="merge-pr-tagged.yml"]]
ifndef::env-github[]
[[merge-pr-tagged]]
.merge-pr-tagged.yml
[plantuml, merge-pr-tagged, alt="merge-pr-tagged.yml"]
---------------------------------------------------------------------
@startuml
partition merge-pr-tagged.yml {
skinparam shadowing false
skinparam ActivityBackgroundColor WhiteSmoke
skinparam ActivityBorderColor Black
skinparam ActivityBorderThickness 1
skinparam ArrowColor Black
skinparam ActivityDiamondBackgroundColor WhiteSmoke
skinparam ActivityDiamondBorderColor Black
#business:**when**\npush on **__merge-pr/*__** tag;
:get __<version>__ from tag name;
if (check __<version>__ format) then (major.minor.qualifier)
:merge pull request to __master__;
fork
#palegreen:**trigger create-release-on-master.yml**;
end
fork again
end fork
else
:squash pull request to __develop__;
fork
#palegreen:**trigger build.yml**;
end
fork again
end fork
endif
:delete __tag__ **merge-pr/__<version>__**;
end
}
@enduml
---------------------------------------------------------------------
endif::[]

ifdef::env-github[image::create-release-on-master.png[title="create-release-on-master.yml"]]
ifndef::env-github[]
[[create-release-on-master]]
.create-release-on-master.yml
[plantuml, create-release-on-master, alt="create-release-on-master.yml"]
---------------------------------------------------------------------
@startuml
partition create-release-on-master.yml {
skinparam shadowing false
skinparam ActivityBackgroundColor WhiteSmoke
skinparam ActivityBorderColor Black
skinparam ActivityBorderThickness 1
skinparam ArrowColor Black
skinparam ActivityDiamondBackgroundColor WhiteSmoke
skinparam ActivityDiamondBorderColor Black
#business:**when**\npush on **__master__** __branch__;
:get __<version>__ from __tag__ name;
:build change log;
:create **github release** (last) with change log;
end
}
@enduml
---------------------------------------------------------------------
endif::[]


ifdef::env-github[image::release.png[title="release.yml"]]
ifndef::env-github[]
[[release]]
.release.yml
[plantuml, release, alt="release.yml"]
---------------------------------------------------------------------
@startuml
partition release.yml {
skinparam shadowing false
skinparam ActivityBackgroundColor WhiteSmoke
skinparam ActivityBorderColor Black
skinparam ActivityBorderThickness 1
skinparam ArrowColor Black
skinparam ActivityDiamondBackgroundColor WhiteSmoke
skinparam ActivityDiamondBorderColor Black
#business:**when**\nmanually triggred with **__given version__**\nwhich is **'auto'** or any other in **major.minor.qualifier** form;
if (__given version__ is) then ('auto')
:set **__release version__**\nfrom project **pom.xml** (version without '-SNAPSHOT');
else
:set **__release version__** to given **version**;
endif
:set **__next version__** to **__release version__**'s qualifier + 1;
:create pull request on **__master__** with **__release version__**;
fork
#palegreen:**trigger build.yml**;
end
fork again
end fork
:create pull request on **__develop__** with **__next version__**;
fork
#palegreen:**trigger build.yml**;
end
fork again
end fork
end
}
@enduml
---------------------------------------------------------------------
endif::[]


== How to develop

For issue tracking we are using https://blackbelt.atlassian.net/jira/dashboards[JIRA]. Golden rule:

IMPORTANT: *There is no commit without ticket number*

So for pull request or commit `JNG-xxx` have to be presented in the commit.
Binary file added .github/branches.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/build.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/create-release-on-master.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/create-release-tagged.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2
updates:
- package-ecosystem: maven
directory: "/"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 10
ignore:
- dependency-name: com.google.guava:guava
- dependency-name: org.slf4j:slf4j-api
- dependency-name: org.jruby:jruby-complete
60 changes: 60 additions & 0 deletions .github/labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
- name: "bug"
description: "Something isn't working"
color: "d73a4a"
- name: "documentation"
description: "Improvements or additions to documentation"
color: "0075ca"
- name: "duplicate"
description: "This issue or pull request already exists"
color: "cfd3d7"
- name: "enhancement"
description: "New feature or request"
color: "a2eeef"
- name: "good first issue"
description: "Good for newcomers"
color: "7057ff"
- name: "help wanted"
description: "Extra attention is needed"
color: "008672"
- name: "invalid"
description: "This doesn't seem right"
color: "e4e669"
- name: "question"
description: "Further information is requested"
color: "d876e3"

## Action labels
- name: "automated pr"
description: "Automated Pull Request"
color: "fbca04"
- name: "increment-version"
description: "Increment Version PR"
color: "fbca04"
- name: "release"
description: "Release"
color: "fbca04"
- name: "release-version"
description: "Release Version"
color: "fbca04"
- name: "wontfix"
description: "Won't fix"
color: "fbca04"

# Release note labels
- name: "fix"
color: "d73a4a"
description: "BugFix"
- name: "feature"
color: "a2eeef"
description: "Feature improvement"
- name: "other"
color: "abdbe3"
description: "Other"
- name: "other"
color: "abdbe3"
description: "Other"
- name: "test"
color: "008672"
description: "Test"


Binary file added .github/merge-pr-tagged.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/release.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 4657f3c

Please sign in to comment.