@@ -106,6 +106,26 @@ func (writer *MermaidWriter) WriteChannels(cfg DeclarativeConfig, out io.Writer)
106
106
107
107
minEdgePackage := writer .getMinEdgePackage (& cfg )
108
108
109
+ depByPackage := sets.Set [string ]{}
110
+ depByChannel := sets.Set [string ]{}
111
+ depByBundle := sets.Set [string ]{}
112
+
113
+ for _ , d := range cfg .Deprecations {
114
+ for _ , e := range d .Entries {
115
+ switch e .Reference .Schema {
116
+ case SchemaPackage :
117
+ depByPackage .Insert (d .Package )
118
+ case SchemaChannel :
119
+ depByChannel .Insert (e .Reference .Name )
120
+ case SchemaBundle :
121
+ depByBundle .Insert (e .Reference .Name )
122
+ }
123
+ }
124
+ }
125
+
126
+ var deprecatedPackage string
127
+ deprecatedChannels := []string {}
128
+
109
129
for _ , c := range cfg .Channels {
110
130
filteredChannel := writer .filterChannel (& c , versionMap , minVersion , minEdgePackage )
111
131
if filteredChannel != nil {
@@ -119,10 +139,23 @@ func (writer *MermaidWriter) WriteChannels(cfg DeclarativeConfig, out io.Writer)
119
139
pkgBuilder .WriteString (fmt .Sprintf (" %%%% channel %q\n " , filteredChannel .Name ))
120
140
pkgBuilder .WriteString (fmt .Sprintf (" subgraph %s[%q]\n " , channelID , filteredChannel .Name ))
121
141
142
+ if depByPackage .Has (filteredChannel .Package ) {
143
+ deprecatedPackage = filteredChannel .Package
144
+ }
145
+
146
+ if depByChannel .Has (filteredChannel .Name ) {
147
+ deprecatedChannels = append (deprecatedChannels , channelID )
148
+ }
149
+
122
150
for _ , ce := range filteredChannel .Entries {
123
151
if versionMap [ce .Name ].GE (minVersion ) {
152
+ bundleDeprecation := ""
153
+ if depByBundle .Has (ce .Name ) {
154
+ bundleDeprecation = ":::deprecated"
155
+ }
156
+
124
157
entryId := fmt .Sprintf ("%s-%s" , channelID , ce .Name )
125
- pkgBuilder .WriteString (fmt .Sprintf (" %s[%q]\n " , entryId , ce .Name ))
158
+ pkgBuilder .WriteString (fmt .Sprintf (" %s[%q]%s \n " , entryId , ce .Name , bundleDeprecation ))
126
159
127
160
if len (ce .Replaces ) > 0 {
128
161
replacesId := fmt .Sprintf ("%s-%s" , channelID , ce .Replaces )
@@ -154,6 +187,7 @@ func (writer *MermaidWriter) WriteChannels(cfg DeclarativeConfig, out io.Writer)
154
187
}
155
188
156
189
out .Write ([]byte ("graph LR\n " ))
190
+ out .Write ([]byte (fmt .Sprintf (" classDef deprecated fill:#E8960F\n " )))
157
191
pkgNames := []string {}
158
192
for pname := range pkgs {
159
193
pkgNames = append (pkgNames , pname )
@@ -168,6 +202,16 @@ func (writer *MermaidWriter) WriteChannels(cfg DeclarativeConfig, out io.Writer)
168
202
out .Write ([]byte (" end\n " ))
169
203
}
170
204
205
+ if deprecatedPackage != "" {
206
+ out .Write ([]byte (fmt .Sprintf ("style %s fill:#989695\n " , deprecatedPackage )))
207
+ }
208
+
209
+ if len (deprecatedChannels ) > 0 {
210
+ for _ , deprecatedChannel := range deprecatedChannels {
211
+ out .Write ([]byte (fmt .Sprintf ("style %s fill:#DCD0FF\n " , deprecatedChannel )))
212
+ }
213
+ }
214
+
171
215
return nil
172
216
}
173
217
0 commit comments