-
Notifications
You must be signed in to change notification settings - Fork 16
/
versioning.puml
82 lines (75 loc) · 2.5 KB
/
versioning.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
@startuml
title Pharos package versioning (all shown versions hypothetical)
actor "Maintainer" as dev #blue
participant "ithaka/pharos" as repo
database npm as npm
participant "Some project" as project
participant "Some other project" as otherproj
actor "Pharos consumer" as user #red
== User installs @ithaka/pharos@1.0.3 ==
user -> project: Install ""@ithaka/pharos@1.0.3""
project -> npm ++: Get ""v1.0.3""
project <-- npm --: ""v1.0.3""
== Maintainer publishes v1.1.0 ==
dev -> dev: Develop new\n""@ithaka/pharos"" feature
dev -> repo: Push new\n""@ithaka/pharos"" feature
...
...
dev -> dev: Fix bug in ""@ithaka/pharos-site""
dev -> repo: Push ""@ithaka/pharos-site""\nbug fix
...
...
dev <-- repo: Pull latest changes
dev -> npm: Publish ""@ithaka/pharos@1.1.0""
dev -> npm: Publish ""@ithaka/pharos-site@1.1.0""
== User installs @ithaka/pharos@1.1.0 ==
user -> project: Install ""@ithaka/pharos@1.1.0""
project -> npm ++: Get ""v1.1.0""
project <-- npm --: ""v1.1.0""
== User finds bug in @ithaka/pharos@0.5.0 ==
user -> otherproj: Install ""@ithaka/pharos@0.5.0""
otherproj -> npm ++: Get ""v0.5.0""
otherproj <-- npm --: ""v0.5.0""
...
...
user -> user: Find a bug in\n""@ithaka/pharos@v0.5.0""
user -> dev: Report bug
|||
|||
dev -> repo: Pull ""@ithaka/pharos@0.5.0"" tag
dev <-- repo: ""v0.5.0""
dev -> dev: Create ""v0.5.1"" branch
dev -> repo: Push ""v0.5.1"" fixes
dev -> npm: Publish ""@ithaka/pharos@0.5.1""
dev -> npm: Publish ""@ithaka/pharos-site@0.5.1""
|||
|||
dev -> repo: Pull ""develop"" branch (v1.1.0)
dev <-- repo: ""develop""
dev -> dev: Apply fix
dev -> repo: Push ""v1.1.1"" fixes
dev -> npm: Publish ""@ithaka/pharos@1.1.1""
dev -> npm: Publish ""@ithaka/pharos-site@1.1.1""
== User installs @ithaka/pharos@0.5.1 ==
user -> otherproj: Install ""@ithaka/pharos@0.5.1""
otherproj -> npm ++: Get ""v0.5.1""
otherproj <-- npm --: ""v0.5.1""
== User wants to use branded components ==
dev -> dev: Develop branded components in ""v2.0.0"" branch
dev -> repo: Push ""v2.0.0"" changes
dev -> npm: Publish ""@ithaka/pharos@2.0.0-beta.0""
dev -> npm: Publish ""@ithaka/pharos-site@2.0.0-beta.0""
...
...
user -> otherproj: Install ""@ithaka/pharos@2.0.0-beta.2""
otherproj -> npm ++: Get ""v2.0.0-beta.2""
otherproj <-- npm --: ""v2.0.0-beta.2""
user -> user: Find a bug in @ithaka/pharos@v2.0.0-beta.2
user -> dev: Report bug
...
...
dev -> dev: Develop fix in ""v2.0.0"" branch
dev -> repo: Push ""v2.0.0"" changes
dev -> npm: Publish ""@ithaka/pharos@2.0.0-beta.3""
dev -> npm: Publish ""@ithaka/pharos-site@2.0.0-beta.3""
@enduml