You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.6 KiB
35 lines
1.6 KiB
4 months ago
|
# Flow
|
||
|
```mermaid
|
||
|
flowchart TB;
|
||
|
stable([stable]);
|
||
|
production([production]);
|
||
|
validated([validated]);
|
||
|
|
||
|
branch-- [1] -->branch;
|
||
|
branch-- [2] -->develop;
|
||
|
develop-- [3] -->stable;
|
||
|
stable-- [4] -->production;
|
||
|
production-- [5] --> validated;
|
||
|
```
|
||
|
1. Branches are tested with quick tests; builds happen in 1 or 2 OSes
|
||
|
2. Once the branch is marked as "Ok", it can be merged back into develop
|
||
|
3. Every time there is a commit on develop, a larger test, which runs more cases and builds for different OSes and compiler versions is run; when it passes, a tag "stable" is set on this commit
|
||
|
1. The execution is not interrupted on new commits, but if there were new commits during this execution, a new execution is triggered just after
|
||
|
2. On failure, "stable" does not move.
|
||
|
4. Every time stable is updated, the midsized tests are run (in the same fashion the short ones are); when it passes the tag "production" is updated
|
||
|
1. Same as "stable", executions are not interrupted, but queue for next
|
||
|
2. Same as "stable", on failure the "production" is not changed
|
||
|
5. Every time production is updated, the large cases are run; when they pass, the tag "validated" is updated
|
||
|
|
||
|
# Versioning/Distribution
|
||
|
|
||
|
For versioning, we could use the base branch as reference:
|
||
|
- "develop" would use "stable-vd.e.v", "production-vd.e.v" and "validated-vd.e.v"
|
||
|
- "v4.2" would use "stable-v4.2", "production-v.4.2" and "validated-v.4.2"
|
||
|
- Final versions could be tagged "v4.2.1", for example, inside the "v4.2" branch
|
||
|
|
||
|
One thing we'll need for this is something to keep listening to changes in branches, including adding tags.
|
||
|
|
||
|
# Proof of Concept
|
||
|
|