-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathversioning.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/[email protected] ==
user -> project: Install ""@ithaka/[email protected]""
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/[email protected]""
dev -> npm: Publish ""@ithaka/[email protected]""
== User installs @ithaka/[email protected] ==
user -> project: Install ""@ithaka/[email protected]""
project -> npm ++: Get ""v1.1.0""
project <-- npm --: ""v1.1.0""
== User finds bug in @ithaka/[email protected] ==
user -> otherproj: Install ""@ithaka/[email protected]""
otherproj -> npm ++: Get ""v0.5.0""
otherproj <-- npm --: ""v0.5.0""
...
...
user -> user: Find a bug in\n""@ithaka/[email protected]""
user -> dev: Report bug
|||
|||
dev -> repo: Pull ""@ithaka/[email protected]"" tag
dev <-- repo: ""v0.5.0""
dev -> dev: Create ""v0.5.1"" branch
dev -> repo: Push ""v0.5.1"" fixes
dev -> npm: Publish ""@ithaka/[email protected]""
dev -> npm: Publish ""@ithaka/[email protected]""
|||
|||
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/[email protected]""
dev -> npm: Publish ""@ithaka/[email protected]""
== User installs @ithaka/[email protected] ==
user -> otherproj: Install ""@ithaka/[email protected]""
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/[email protected]""
dev -> npm: Publish ""@ithaka/[email protected]""
...
...
user -> otherproj: Install ""@ithaka/[email protected]""
otherproj -> npm ++: Get ""v2.0.0-beta.2""
otherproj <-- npm --: ""v2.0.0-beta.2""
user -> user: Find a bug in @ithaka/[email protected]
user -> dev: Report bug
...
...
dev -> dev: Develop fix in ""v2.0.0"" branch
dev -> repo: Push ""v2.0.0"" changes
dev -> npm: Publish ""@ithaka/[email protected]""
dev -> npm: Publish ""@ithaka/[email protected]""
@enduml