All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] M12: Improve the Charts in the Metrics View
@ 2024-05-08 15:31 Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 01/12] patch-status: add .gitignore file Ninette Adhikari
                   ` (11 more replies)
  0 siblings, 12 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 2623 bytes --]

From: Alex Feyerke <hello@alexfeyerke.com>

Yocto produces large amounts of statistical data measuring many aspects of project health over long periods of time. Making these more accessible, searchable, and understandable directly contributes to the project’s long-term usefulness and usability, saving maintainers and other consumers time and effort, as well as enabling more and better insights into the data, which in turn leads to more informed actions. Better display of stats also better communicates the effect of Yocto’s efforts. The work will reduce the time maintainers allocate to administrative and analytical tasks, enabling them to focus on core work and bug resolution.

Technical Details:

- Improve the charts: Add descriptions to help users understand the data better, add dark theme styles for charts
- Improve UX: Unify styles with other platforms for an overall cohesive look.
- Improve typography, colours, accessibility, and styles
- Improve the developer documentation: add README.md with local setup instructions

The changes are also pushed to this branch here for review:
https://git.yoctoproject.org/yocto-metrics/log/?h=contrib/jacobabrandner/improve_chart_page

Alex Feyerke (12):
  patch-status: add .gitignore file
  patch-status: add README.md file
  index.html: clean up html and head sections
  index.html: Add general description to first section
  index.html: Add description to CVE trends section
  index.html: Add description to patch status metric pie chart
  index.html: add description to upstream status section
  index.html: Add description to recipe count section
  index.html: Move raw data to own section element
  index.html: add line numbers to CVE link lists
  index.html: Add dark mode to charts, improve chart layout
  index.html: linting and formatting

 .gitignore                                  |   4 +
 README                                      |  64 ++
 patch-status/index.html                     | 661 +++++++++++++-------
 patch-status/resources/apple-touch-icon.png | Bin 0 -> 7683 bytes
 patch-status/resources/dark.js              |  76 +++
 patch-status/resources/favicon-16x16.png    | Bin 0 -> 792 bytes
 patch-status/resources/favicon-32x32.png    | Bin 0 -> 1246 bytes
 7 files changed, 595 insertions(+), 210 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 README
 create mode 100644 patch-status/resources/apple-touch-icon.png
 create mode 100644 patch-status/resources/dark.js
 create mode 100644 patch-status/resources/favicon-16x16.png
 create mode 100644 patch-status/resources/favicon-32x32.png

--
2.39.3 (Apple Git-145)



^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 01/12] patch-status: add .gitignore file
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 02/12] patch-status: add README.md file Ninette Adhikari
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

From: Alex Feyerke <hello@alexfeyerke.com>

Don't commit generated files used for local development.

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 .gitignore | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 .gitignore

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..314548a8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+# ignore generated data files
+patch-status/cve-count-byday.json
+patch-status/cve-status-*.txt
+patch-status/patch-status-*.json
\ No newline at end of file
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 02/12] patch-status: add README.md file
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 01/12] patch-status: add .gitignore file Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-09 10:52   ` [yocto-patches] " Richard Purdie
  2024-05-08 15:31 ` [PATCH 03/12] index.html: clean up html and head sections Ninette Adhikari
                   ` (9 subsequent siblings)
  11 siblings, 1 reply; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 2761 bytes --]

From: Alex Feyerke <hello@alexfeyerke.com>

Add information on running locally for development, including generating test data from yocto-autobuilder-helper.

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 README | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 README

diff --git a/README b/README
new file mode 100644
index 00000000..ac2ee186
--- /dev/null
+++ b/README
@@ -0,0 +1,64 @@
+# yocto-metrics
+Yocto Project autobuilder gathered metrics, CVEs etc.
+
+## Local setup
+1. Clone repositories
+
+  Clone both the report and data repo:
+
+  ```sh
+  # clone yocto-autobuilder-helper
+  git clone git://git.yoctoproject.org/yocto-autobuilder-helper.git
+
+  # clone yocto-metrics
+  git clone git://git.yoctoproject.org/yocto-metrics
+  ```
+
+2. Generate chart data
+  At first we have to generate the necessary data for the charts.
+  For this we have to go the autobuilder repository and generate chart data.
+
+  Go to your local clone of the autobuilder repository
+  Then run the following to generate the data and save it in your local yocto-metrics/patch-status directory:
+
+  _Possibly you have to adapt your local path to yocto-metrics._
+  ```sh
+  cd yocto-autobuilder-helper
+  ./scripts/patchmetrics-generate-chartdata --json "../yocto-metrics/patch-status.json" --outputdir "../yocto-metrics/patch-status/"
+  ```
+
+3. Generate CVE report data
+  We need to generate CVE report data for each branch.
+  The following is an example showing data generated for the master branch.
+  You will need to run this for _every branch you need CVE data_ for.
+
+  📣 Replace master for other relevant branch names and 1709622082 for respective json file names.
+  The branch names and data are listed at the `yocto-metrics/cve-check` directory.
+
+  ```sh
+  ./scripts/cve-report.py "../yocto-metrics/cve-check/master/<TIMESTAMP>.json" > "../yocto-metrics/patch-status/cve-status-master.txt"
+  ```
+
+4. Copy cve-count-byday.json
+  This file is located where the index.html cannot find it. Adapting the path, breakes the live environment.
+  So we copy it to the `patch-status` folder:
+  ```sh
+  # Go to your local clone of the yocto-metrics repo
+  cd yocto-metrics
+
+  cp cve-count-byday.json patch-status/cve-count-byday.json
+  ```
+
+5. View charts
+  Once the chart data is created you can run the index.html file in the yocto-metrics repository as follows:
+
+  ```sh
+  # open the chart html file in your browser
+  open ./patch-status/index.html
+  ```
+
+  **Note:** If the index.html throws a CORS error you can run the file through the Python SimpleHTTPServer, for example with:
+
+  ```
+  python3 -m http.server
+  ```
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 03/12] index.html: clean up html and head sections
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 01/12] patch-status: add .gitignore file Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 02/12] patch-status: add README.md file Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 04/12] index.html: Add general description to first section Ninette Adhikari
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

From: Alex Feyerke <hello@alexfeyerke.com>

Adds favicons, language, charset and title declarations according to best practises, also adds missing closing tags.

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 patch-status/index.html                     |   9 +++++++++
 patch-status/resources/apple-touch-icon.png | Bin 0 -> 7683 bytes
 patch-status/resources/favicon-16x16.png    | Bin 0 -> 792 bytes
 patch-status/resources/favicon-32x32.png    | Bin 0 -> 1246 bytes
 4 files changed, 9 insertions(+)
 create mode 100644 patch-status/resources/apple-touch-icon.png
 create mode 100644 patch-status/resources/favicon-16x16.png
 create mode 100644 patch-status/resources/favicon-32x32.png

diff --git a/patch-status/index.html b/patch-status/index.html
index a114918e..86a6cf06 100644
--- a/patch-status/index.html
+++ b/patch-status/index.html
@@ -1,11 +1,17 @@
 <!DOCTYPE html>
+<html lang="en">
 <!--
 SPDX-License-Identifier: MIT
 -->
 
 <head>
+  <meta charset="UTF-8">
+  <meta title="Yocto Autobuilder Patch Metrics" <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <script src="resources/echarts.min.js"></script>
   <link rel="stylesheet" href="resources/pico.fluid.classless.min.css">
+  <link rel="apple-touch-icon" sizes="144x144" href="/resources/apple-touch-icon.png">
+  <link rel="icon" type="image/png" sizes="32x32" href="/resources/favicon-32x32.png">
+  <link rel="icon" type="image/png" sizes="16x16" href="/resources/favicon-16x16.png">
   <style>
     h3 {
       margin-left: 60px;
@@ -501,3 +507,6 @@ SPDX-License-Identifier: MIT
       recipeChart.setOption(recipeOption);
     }
   </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/patch-status/resources/apple-touch-icon.png b/patch-status/resources/apple-touch-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..d11f8bd0f9c0d6a765c815986199c36504bdaf20
GIT binary patch
literal 7683
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

literal 0
HcmV?d00001

diff --git a/patch-status/resources/favicon-16x16.png b/patch-status/resources/favicon-16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba9765fb51ae810cab294ca1d695f691c7e18c1a
GIT binary patch
literal 792
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F
z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a><Y92O1uj232`;15->6{%E-tl
zEiJXSwr*{0_4D&HG&HQOt-X5ns=mH{c6Rp7n>WM5!yOzPjvP5MW5x_CE32J5cP?47
z#KgqJz`&rmxVX2s_xkng5fKrF2Ktu1Nsj3gO)PATjg7v3{km}BLL(zXE5BsN%&8_8
zw)OS(PoF-GjEpokHrcv$>+<ExO-)T*TwJD4pML4mrI3&iM@Pqv8#kUjc`_v>#mvmi
z)z$U?|Nk#zBd-E|EnX7j7t9iQ>Gz*o8SGK7KIUJ1`s>D<Zw=4i*7K?_vo8iJVNCLN
zckyk=P)G%G*h@TpUD;o-a&Yi+^nElI2MR6qba4!kxa`}{F4W|}<GNT$<3@DYL{U*u
zmg@I=tN(xIIK?&7^Jl(Vy-<ULK}%jiVqAlVNUfrmz-DR1H3>38-y(DrC!Rhvy<zT_
zMOs&*Vi)sFaNE38I#*cIVfEs&>c0mIOy>PznArRB%pCn`+Tshg-pk2tmyKTd>t8{M
zeqlqURs6au%umYdZ8&#}S{#}F?O%4wlE)8UihNk~e`g6Bi{|T>G5bC+W~`H8Irr(a
z7tq0~C9V-ADTyViR>?)FK#IZ0z{o_`z*N`3BE-PL%Fx)#z(U)=z{<cN?xWl}6b-rg
zDVb@NxHagnSylwp5MC7$Q4*9`u24{vpO%@Es!&o{kgAYbP?F5RP%-E6CmxQ%Fb$1U
z{-@7)J`G}ER_4}A<`z~K_MR-lEUe(tU~)KxS$T7a!s#1VP8>ONMCJ(l=?0GlUV03#
X#05(}IhjrcTEXDy>gTe~DWM4fR(cu)

literal 0
HcmV?d00001

diff --git a/patch-status/resources/favicon-32x32.png b/patch-status/resources/favicon-32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..244edb606d7cfdd1c8bca17416d1911ff06d80f8
GIT binary patch
literal 1246
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50
z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081LOVxpAc7|0^<P%hK7bl
zMn)zkCf?rOv9Yn1mX^W6!66|bhYlUOd-rZ?YO1ZR?V2@f?%%&(S6Aof=Xd`6`Tzg_
zuUoe+BO~L*ix=O&e{XGVZEtUX{rYuYUY?DO&6zW2JUu;+A3wfz>sEVv`)}XA)z;R2
z{`~pfyLY9frKeAy_VV&FGBPwaGIDly-nVbx{{8!%oSf3r)6HChY$Hm|U4lzWO5VSJ
z|MBC;_3PLF`}fbp%F(rao!_jtZdIF2teqVk9G*RU*3#1AR<Y54_Ivl5?WQ&^+1c4I
zU%s?(3$u%@v+#&CHZk3>VS}*|&}#-378c8vExUN}qQAd?e0==9d-s0+{MpynXKHG?
zcJ11~fByyq1ax+Ge)#a=)2B~OO-<(J=2NFm{q^hD>eZ_q9Ua}=+@?>Te);m{A3uJ$
zxVYT9b!)<e35kh`RaI4HW@efpCk=s7s8tf=7tFvQU3UEazb}`&v>6?a{<#sua{puU
z;RjZwzgNDy^nLI3z}ObnN4%?k>|^^-Sbhhni!sUD-Nj~kR^oXehrPtp*OmPRD+dQJ
z=g)7<jX>#UPZ!4!i_^7}p9VWQiX45fwWy_Y?u}i$HIg1XA3UV@=9u4`cX=ECC5W@8
z#?AFlfA;6woxQ)GF)D}%tl$Vr+SlY9lEuq3E!+9<h80sD3QpvhV8-R`CElx`z;;^0
zjPH@~6NWh)T=P|rWNUn6E}8J8w5`eM@p^47lS}nXdwvTB7kaLIuA!^Fe#Mv74DsuC
zc5R-raq^N~$FdeXF-T{vE&a-JnT`8;gaTVYwea;jPLYnQdAoZOT%xPp)e~7`@4nI7
za$J$2>i3R+jgI*TFMQyTKTuMVbH~i^rDlP}@@461vNZ|oDvRpYlr~1T7Z+w$w(=)z
zdiCfAZ(UeK^!*!8`V;cE9Q_$~<KDsujyLZLf3yFKZ?b>%;l+<9BHm0}p1!I1-{irR
z^8M4RU&k7jHbj4(`}*I*iCzp}UjBS~HESdHC;J1jIkna0+@JRgw)Oj8p6=17cw;-W
zYJ|^(p46#KT1#~%aJ@3wY2(SS5vx8|Jtc*ytLNOLQ_V)3Z1-<h({taVV(ve`|ADmM
z`8}rExtg}X7*Z{9jVMV;EJ?LWE=mPb3`Pb<Cb|Zux&{^@1{PL^##RQF+6D$z1_nRc
zM5|CV<mRVjrd8tB(0O|;s5A+$3W+EQN-S3>D9TUE%t=)!sVqoU$Sf#HW?-n8^Y{}F
zM`4(T#wq{PXFQ(<F)%B0>m_pwD+_y17GV}vaA`0(oWiWUIYi;~jVmXPoH-(Mg#C1b
d#{w@shF9W(C7+y3rvj~D@O1TaS?83{1ORK00eJub

literal 0
HcmV?d00001

-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 04/12] index.html: Add general description to first section
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
                   ` (2 preceding siblings ...)
  2024-05-08 15:31 ` [PATCH 03/12] index.html: clean up html and head sections Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 05/12] index.html: Add description to CVE trends section Ninette Adhikari
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 6663 bytes --]

From: Alex Feyerke <hello@alexfeyerke.com>

Explains purpose of entire page, how to read the charts, and how to use the CVE lists for the individual branches.

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 patch-status/index.html | 161 +++++++++++++++++++++++++++++-----------
 1 file changed, 119 insertions(+), 42 deletions(-)

diff --git a/patch-status/index.html b/patch-status/index.html
index 86a6cf06..f95fb692 100644
--- a/patch-status/index.html
+++ b/patch-status/index.html
@@ -13,14 +13,22 @@ SPDX-License-Identifier: MIT
   <link rel="icon" type="image/png" sizes="32x32" href="/resources/favicon-32x32.png">
   <link rel="icon" type="image/png" sizes="16x16" href="/resources/favicon-16x16.png">
   <style>
-    h3 {
-      margin-left: 60px;
-      padding-top: 20px;
-    }
-    ul {
-      margin-left: 60px;
+    main {
       font-size: 0.9em;
     }
+
+    section {
+      max-width: 55rem;
+      margin-inline: 3rem;
+    }
+
+    h1 {
+      padding-inline: 3rem;
+    }
+
+    h2 {
+      padding-top: 1em;
+    }
     details {
       margin-bottom: 0;
     }
@@ -32,23 +40,66 @@ SPDX-License-Identifier: MIT
       list-style-type: none;
       font-size: 0.8em;
     }
-    .cve-status {
-      display: flex;
-      margin: 0 60px;
-      align-items: stretch;
+
+    details summary::before {
+      display: block;
+      width: 1rem;
+      height: 1rem;
+      margin-inline-end: calc(var(--pico-spacing, 1rem)* .5);
+      float: left;
+      transform: rotate(-90deg);
+      background-image: var(--pico-icon-chevron);
+      background-position: right center;
+      background-size: 1rem auto;
+      background-repeat: no-repeat;
+      content: "";
+      transition: transform var(--pico-transition);
     }
-    .cve-status > details {
-      flex: 1;
+
+    details summary::after {
+      display: inline;
+      vertical-align: text-bottom;
+      width: auto;
+      background: none;
+      float: none;
+      font-weight: 600;
+      text-transform: uppercase;
+      font-size: 0.6em;
+      border: 2px solid;
+      border-radius: 1em;
+      padding-inline: 0.35em;
+      content: "Click to show";
     }
-    details > summary {
-      padding: 13px 14px;
+
+    .cve-status>details {
+      margin-block-end: 1em;
     }
-    details > summary:hover {
-      filter: invert(50%);
+
+    .cve-status details summary {
+      font-family: var(--pico-font-family-monospace);
     }
-    details[open] > summary {
+
+    .cve-status details summary:after {
+      display: none;
+    }
+
+    details[open]>summary {
       margin-bottom: 6px;
     }
+
+    details[open]>summary::before {
+      transform: rotate(0);
+    }
+
+    details[open]>summary::after {
+      transform: none;
+      content: "Click to hide";
+    }
+
+    details>summary:hover {
+      filter: invert(50%);
+    }
+
     summary.sub {
       font-size: 0.8em;
       padding: 6px 18px;
@@ -58,31 +109,57 @@ SPDX-License-Identifier: MIT
 
 <body>
   <main>
-    <h3>Current CVE status for OE-Core/Poky</h3>
-    <div class="cve-status">
-      <details>
-        <summary>master</summary>
-        <div id="cve_status_master"></div>
-      </details>
-      <details>
-        <summary>scarthgap</summary>
-        <div id="cve_status_scarthgap"></div>
-      </details>
-      <details>
-        <summary>nanbield</summary>
-        <div id="cve_status_nanbield"></div>
-      </details>
-      <details>
-        <summary>kirkstone</summary>
-        <div id="cve_status_kirkstone"></div>
-      </details>
-      <details>
-        <summary>dunfell</summary>
-        <div id="cve_status_dunfell"></div>
-      </details>
-    </div>
-
-    <!-- Prepare a DOM with a defined width and height for ECharts -->
+    <h1>yocto-metrics</h1>
+    <section>
+      <p>This page shows Common Vulnerabilities and Exposures (CVEs) metrics gathered from the Yocto Project autobuilder in graphs. It is updated daily to show the current status of the project.</p>
+      <p>
+        Each graph (except the pie chart) has an <strong>x-axis</strong> and a <strong>y-axis:</strong>
+      </p>
+      <ul>
+        <li>The <strong>x-axis</strong> represents time. You can filter by time-range using the zoom bar at the bottom.</li>
+        <li>The <strong>y-axis</strong> represents the amount of something (CVEs, patches, errors etc.) at a particular point in time. You can zoom here as well, using the bar on the right.</li>
+      </ul>
+      <p>
+        Click on the items in the <strong>legend</strong> to toggle the visibility of the corresponding line on the graph.</p>
+      <p>
+        Note the grey, vertical lines representing <strong>releases</strong>.
+        These lines are not part of the graph’s data but are added to highlight release points in time. They denote the release of new versions or updates of the software. This helps you correlate vulnerability trends with software releases, which can indicate whether vulnerabilities were addressed in a particular release.
+      </p>
+    </section>
+
+    <section>
+      <h2>Current CVE status for OE-Core/Poky</h2>
+      <p>
+        This section provides a detailed overview of the current status of CVEs for each branch in the <code>OE-Core/Poky</code> repository.</p>
+      <p>
+        When you click on a branch name, a summary count of CVEs related to that branch is displayed.
+        This count includes the total number of CVEs reported for that branch and so gives a quick overview of the security status of the branch.</p>
+      <p>
+        Below the summary count, you'll find links to more detailed information about CVEs for that branch. You can easily access more detailed information at the National Vulnerability Database (NVD), about CVEs for each branch by clicking on the provided links.</p>
+      <div class="cve-status">
+        <details>
+          <summary>master</summary>
+          <div id="cve_status_master"></div>
+        </details>
+        <details>
+          <summary>scarthgap</summary>
+          <div id="cve_status_scarthgap"></div>
+        </details>
+        <details>
+          <summary>nanbield</summary>
+          <div id="cve_status_nanbield"></div>
+        </details>
+        <details>
+          <summary>kirkstone</summary>
+          <div id="cve_status_kirkstone"></div>
+        </details>
+        <details>
+          <summary>dunfell</summary>
+          <div id="cve_status_dunfell"></div>
+        </details>
+      </div>
+    </section>
+
     <section>
       <h3>CVE Trends for OE-Core/Poky</h3>
       <div id='cve_chart' style='height:400px;'></div>
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 05/12] index.html: Add description to CVE trends section
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
                   ` (3 preceding siblings ...)
  2024-05-08 15:31 ` [PATCH 04/12] index.html: Add general description to first section Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 06/12] index.html: Add description to patch status metric pie chart Ninette Adhikari
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

From: Alex Feyerke <hello@alexfeyerke.com>

Also moves the chart out of the section element so it can be displayed at full page width.

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 patch-status/index.html | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/patch-status/index.html b/patch-status/index.html
index f95fb692..09299910 100644
--- a/patch-status/index.html
+++ b/patch-status/index.html
@@ -161,9 +161,17 @@ SPDX-License-Identifier: MIT
     </section>
 
     <section>
-      <h3>CVE Trends for OE-Core/Poky</h3>
-      <div id='cve_chart' style='height:400px;'></div>
+      <h2>CVE Trends for <code>OE-Core/Poky</code></h2>
+      <p>
+        This graph shows the trends of CVEs affecting the <code>OE-Core/Poky</code> repository over time.</p>
+      <p>
+        It shows how many vulnerabilities have been identified within the <code>OE-Core/Poky</code> repository, per branch.
+        The colored lines show the trend of CVEs for each branch, allowing you to see how vulnerabilities evolve over time.
+      </p>
     </section>
+
+    <div id='cve_chart' style='height:400px;'></div>
+
     <section>
       <h3>Current Patch Status Pie</h3>
       <div id='pie_chart' style='height:300px; width: 600px;'></div>
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 06/12] index.html: Add description to patch status metric pie chart
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
                   ` (4 preceding siblings ...)
  2024-05-08 15:31 ` [PATCH 05/12] index.html: Add description to CVE trends section Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 07/12] index.html: add description to upstream status section Ninette Adhikari
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

From: Alex Feyerke <hello@alexfeyerke.com>

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 patch-status/index.html | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/patch-status/index.html b/patch-status/index.html
index 09299910..30f1cef0 100644
--- a/patch-status/index.html
+++ b/patch-status/index.html
@@ -29,6 +29,11 @@ SPDX-License-Identifier: MIT
     h2 {
       padding-top: 1em;
     }
+
+    .flex {
+      display: flex;
+    }
+
     details {
       margin-bottom: 0;
     }
@@ -173,8 +178,17 @@ SPDX-License-Identifier: MIT
     <div id='cve_chart' style='height:400px;'></div>
 
     <section>
-      <h3>Current Patch Status Pie</h3>
-      <div id='pie_chart' style='height:300px; width: 600px;'></div>
+      <h2>Current Patch Status Metrics</h2>
+      <div class="flex">
+        <div id='pie_chart' style='height:300px; width: 600px;'></div>
+        <div>
+          <p>
+            This graph shows the latest patch breakdown metrics.</p>
+          <p>
+            <strong>Hover over a section</strong> to see the amount of patches with each status.
+          </p>
+        </div>
+      </div>
     </section>
 
     <section>
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 07/12] index.html: add description to upstream status section
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
                   ` (5 preceding siblings ...)
  2024-05-08 15:31 ` [PATCH 06/12] index.html: Add description to patch status metric pie chart Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 08/12] index.html: Add description to recipe count section Ninette Adhikari
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 8131 bytes --]

From: Alex Feyerke <hello@alexfeyerke.com>

Adds a collapsible details section with explanations of each upstream status, moves chart out of section element as before.

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 patch-status/index.html | 138 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 134 insertions(+), 4 deletions(-)

diff --git a/patch-status/index.html b/patch-status/index.html
index 30f1cef0..aacc6496 100644
--- a/patch-status/index.html
+++ b/patch-status/index.html
@@ -34,6 +34,31 @@ SPDX-License-Identifier: MIT
       display: flex;
     }
 
+    dl {
+      display: grid;
+      grid-template-columns: auto auto;
+      color: var(--pico-h5-color);
+      margin-inline-start: 1.75em;
+      margin-block-start: 1em;
+    }
+
+    dt:hover,
+    dt:hover+dd,
+    dt:has(+ dd:hover),
+    dd:hover {
+      filter: brightness(15%);
+    }
+
+    @media (prefers-color-scheme: dark) {
+
+      dt:hover,
+      dt:hover+dd,
+      dt:has(+ dd:hover),
+      dd:hover {
+        filter: brightness(150%);
+      }
+    }
+
     details {
       margin-bottom: 0;
     }
@@ -192,15 +217,120 @@ SPDX-License-Identifier: MIT
     </section>
 
     <section>
-      <h3>Patch Upstream-Status Counts (OE-Core meta directory)</h3>
-      <div id="upstream_status_chart" style="height:400px;"></div>
+      <h2>Patch Upstream-Status Counts (OE-Core meta directory)</h2>
+      <p>
+        The following two graphs provide insights into the status of patches in the OE-Core meta directory with respect to their upstream status.
+        The upstream status of a patch refers to its relationship with the original source or upstream project from which the patch originates.
+      </p>
+
+      <details>
+        <summary>
+          Upstream status categories explained
+        </summary>
+        <dl>
+          <dt><strong>Accepted</strong>:</dt>
+          <dd>
+            <p>The patch has been accepted upstream, meaning it has been applied to the original source code repository from which it originated.</p>
+            <p><em>A high count of accepted patches indicates successful contributions and integration of changes into the upstream project.</em></p>
+          </dd>
+
+          <dt><strong>Backport</strong>:</dt>
+          <dd>
+            <p>The patch has been backported from a newer version of the software or a different branch to an older version or a specific branch.</p>
+            <p><em>Backported patches show efforts to apply fixes or features from newer versions to older versions or specific branches.</em></p>
+          </dd>
+
+          <dt><strong>Deferred</strong>:</dt>
+          <dd>
+            <p>The patch has been postponed or deferred for later consideration or implementation.</p>
+            <p><em>Deferred patches might indicate areas where further review or discussion is needed before applying the patches upstream.</em></p>
+          </dd>
+
+          <dt><strong>Inappropriate</strong>:</dt>
+          <dd>
+            <p>This status indicates that the patch is deemed inappropriate for upstream inclusion.</p>
+            <p><em>High counts of inappropriate patches might indicate a need for better review processes or clearer guidelines for contributions.</em></p>
+          </dd>
+
+          <dt><strong>Submitted</strong>:</dt>
+          <dd>
+            <p>
+              The patch has been submitted upstream but hasn't received a definitive response yet.
+              It’s a transitional state between "Pending" and "Accepted" or "Rejected". Patches in this state are awaiting review and acceptance or rejection by upstream maintainers.
+            </p>
+            <p><em>Submitted patches reflect ongoing contributions to upstream projects. A high number of submitted patches might indicate active engagement with upstream maintainers.</em></p>
+          </dd>
+
+          <dt><strong>Pending</strong>:</dt>
+          <dd>
+            <p>The patch is pending review or has not yet been applied upstream.</p>
+            <p><em>High counts of pending patches might suggest a backlog in the review process or challenges in getting patches accepted upstream.</em></p>
+          </dd>
+
+          <dt><strong>Denied</strong>:</dt>
+          <dd>
+            <p>The patch has been rejected upstream, often due to conflicts, incompatibilities, or not meeting project standards.</p>
+            <p><em> Rejected patches could signify issues with patch quality, conflicts, or discrepancies between the patch and upstream requirements.</em></p>
+          </dd>
+
+          <dt><strong>Total</strong>:</dt>
+          <dd>
+            <p>The total count of patches in the OE-Core meta directory, regardless of their upstream status.</p>
+            <p><em>This provides context for the distribution of patches across different statuses.</em></p>
+          </dd>
+        </dl>
+      </details>
     </section>
 
+    <div id="upstream_status_chart" style="height:400px;"></div>
+
     <section>
-      <h3>Patch Tag Error Counts (OE-Core meta directory)</h3>
-      <div id="malformed_chart" style="height:400px;"></div>
+      <h2>Patch Tag Error Counts (OE-Core meta directory)</h2>
+      <p>The Patch Tag Error Counts graph shows the statuses "Malformed Upstream-Status" and "Malformed Signed-off-by" to provide insight into the quality and completeness of patches in the OE-Core meta directory.</p>
+      <details>
+        <summary>
+          Malformed status categories explained
+        </summary>
+        <dl>
+          <dt><strong>Malformed Upstream-Status</strong>:</dt>
+          <dd>
+            <p>This category indicates patches with improperly formatted or missing upstream status tags.</p>
+            <p>A malformed upstream status could be a result of missing or incorrectly formatted tags such as "Upstream-Status:", which is a common tag used to specify the status of the patch upstream.</p>
+            <p>Patches with malformed upstream status might not be properly tracked or considered for upstream inclusion, as they lack necessary metadata for review.</p>
+            <p>
+              <em>
+                High counts in this category might indicate issues with patch submission processes or lack of adherence to patch submission guidelines.
+                These patches might be at risk of being overlooked or rejected during the review process due to incomplete metadata.
+              </em>
+            </p>
+          </dd>
+          <dt><strong>Malformed Signed-off-by</strong>:</dt>
+          <dd>
+            <p>
+              This category represents patches with improperly formatted or missing "Signed-off-by" lines.
+              The "Signed-off-by" line in a patch is a tag that signifies the authorship and acknowledgment of the patch.
+              A malformed "Signed-off-by" line could be due to missing or incorrectly formatted authorship information.
+              Properly formatted "Signed-off-by" lines are essential for maintaining authorship attribution and legal compliance.
+            </p>
+            <p>
+              <em>
+                This category reflects issues with patch authorship and acknowledgment.
+                Patches with malformed "Signed-off-by" lines might lack proper attribution, which can lead to confusion about ownership and legal compliance.
+                Such patches might require additional verification or correction before being considered for inclusion.
+              </em>
+            </p>
+          </dd>
+          <dt><strong>Total</strong>:</dt>
+          <dd>
+            <p>The total count of patches in the OE-Core meta directory, regardless of their upstream status.</p>
+            <p><em>This provides context for the distribution of patches across different statuses.</em></p>
+          </dd>
+        </dl>
+      </details>
     </section>
 
+    <div id="malformed_chart" style="height:400px;"></div>
+
     <section>
       <h3>Recipe Count (OE-Core meta directory)</h3>
       <div id="recipe_chart" style="height:400px;"></div>
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 08/12] index.html: Add description to recipe count section
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
                   ` (6 preceding siblings ...)
  2024-05-08 15:31 ` [PATCH 07/12] index.html: add description to upstream status section Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 09/12] index.html: Move raw data to own section element Ninette Adhikari
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 2245 bytes --]

From: Alex Feyerke <hello@alexfeyerke.com>

Also moves chart out of section element.

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 patch-status/index.html | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/patch-status/index.html b/patch-status/index.html
index aacc6496..8089a1c0 100644
--- a/patch-status/index.html
+++ b/patch-status/index.html
@@ -332,17 +332,20 @@ SPDX-License-Identifier: MIT
     <div id="malformed_chart" style="height:400px;"></div>
 
     <section>
-      <h3>Recipe Count (OE-Core meta directory)</h3>
-      <div id="recipe_chart" style="height:400px;"></div>
+      <h2>Recipe Count (OE-Core meta directory)</h2>
+      <p>
+        This graph displays the number of recipes. It provides insights into the growth and evolution of the OE-Core meta directory by tracking the number of recipes over time.</p>
+      <p>
+        A recipe in the context of Yocto and the OE-Core meta directory refers to a set of instructions or metadata files that describe how to build a particular software package. These recipes typically include information about where to obtain the source code, how to configure it, and how to build and install it into the target system.</p>
+      <p>
+        <em>An increasing recipe count indicates the addition of new software packages or updates to existing ones. It reflects the growth of the OE-Core meta directory over time.
+          A higher recipe count often means better software coverage, allowing users to build a wider range of software packages for their embedded systems.
+          With more recipes, there’s increased maintenance effort to ensure that recipes are up-to-date, correctly configured, and build without errors.</em>
+      </p>
     </section>
 
-    <h3>Raw Data</h3>
-    <ul>
-      <li><a href="patch-status-pie.json">patch-status-pie.json</a></li>
-      <li><a href="patch-status-byday.json">patch-status-byday.json</a></li>
-      <li><a href="cve-count-byday.json">cve-count-byday.json</a></li>
-      <li><a href="releases.csv">releases.csv</a></li>
-    </ul>
+    <div id="recipe_chart" style="height:400px;"></div>
+
   </main>
 
   <script type="text/javascript">
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 09/12] index.html: Move raw data to own section element
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
                   ` (7 preceding siblings ...)
  2024-05-08 15:31 ` [PATCH 08/12] index.html: Add description to recipe count section Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 10/12] index.html: add line numbers to CVE link lists Ninette Adhikari
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

From: Alex Feyerke <hello@alexfeyerke.com>

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 patch-status/index.html | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/patch-status/index.html b/patch-status/index.html
index 8089a1c0..31c5bfe5 100644
--- a/patch-status/index.html
+++ b/patch-status/index.html
@@ -346,6 +346,15 @@ SPDX-License-Identifier: MIT
 
     <div id="recipe_chart" style="height:400px;"></div>
 
+    <section>
+      <h2>Raw Data</h2>
+      <ul>
+        <li><a href="patch-status-pie.json">patch-status-pie.json</a></li>
+        <li><a href="patch-status-byday.json">patch-status-byday.json</a></li>
+        <li><a href="cve-count-byday.json">cve-count-byday.json</a></li>
+        <li><a href="releases.csv">releases.csv</a></li>
+      </ul>
+    </section>
   </main>
 
   <script type="text/javascript">
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 10/12] index.html: add line numbers to CVE link lists
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
                   ` (8 preceding siblings ...)
  2024-05-08 15:31 ` [PATCH 09/12] index.html: Move raw data to own section element Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 11/12] index.html: Add dark mode to charts, improve chart layout Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 12/12] index.html: linting and formatting Ninette Adhikari
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

From: Alex Feyerke <hello@alexfeyerke.com>

Improves readability.

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 patch-status/index.html | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/patch-status/index.html b/patch-status/index.html
index 31c5bfe5..a847a456 100644
--- a/patch-status/index.html
+++ b/patch-status/index.html
@@ -412,9 +412,9 @@ SPDX-License-Identifier: MIT
         html += '<details>';
         html += `<summary class="sub">${name} CVEs</summary>`;
         html += "<ul>";
-        for (const cve of cves) {
+        for (const [index, cve] of cves.entries()) {
           html += '<li>'
-          html += `<a href="${cve}" target="_blank">${cve}</a>`
+          html += `${index + 1}: <a href="${cve}" target="_blank">${cve}</a>`
           html += '</li>';
         }
         html += "</ul>";
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 11/12] index.html: Add dark mode to charts, improve chart layout
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
                   ` (9 preceding siblings ...)
  2024-05-08 15:31 ` [PATCH 10/12] index.html: add line numbers to CVE link lists Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  2024-05-08 15:31 ` [PATCH 12/12] index.html: linting and formatting Ninette Adhikari
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

From: Alex Feyerke <hello@alexfeyerke.com>

Improve dark mode to include charts. Also make line and area charts full width and remove animations.

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 patch-status/index.html        | 56 +++++++++++--------------
 patch-status/resources/dark.js | 76 ++++++++++++++++++++++++++++++++++
 2 files changed, 101 insertions(+), 31 deletions(-)
 create mode 100644 patch-status/resources/dark.js

diff --git a/patch-status/index.html b/patch-status/index.html
index a847a456..86e8c9db 100644
--- a/patch-status/index.html
+++ b/patch-status/index.html
@@ -8,6 +8,8 @@ SPDX-License-Identifier: MIT
   <meta charset="UTF-8">
   <meta title="Yocto Autobuilder Patch Metrics" <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <script src="resources/echarts.min.js"></script>
+  <!-- import dark theme -->
+  <script src="resources/dark.js"></script>
   <link rel="stylesheet" href="resources/pico.fluid.classless.min.css">
   <link rel="apple-touch-icon" sizes="144x144" href="/resources/apple-touch-icon.png">
   <link rel="icon" type="image/png" sizes="32x32" href="/resources/favicon-32x32.png">
@@ -426,6 +428,7 @@ SPDX-License-Identifier: MIT
 
   <!-- get the data -->
   <script type="text/javascript">
+    const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'default'
     const status_names = {
       pending: 'Pending',
       backport: 'Backport',
@@ -554,11 +557,16 @@ SPDX-License-Identifier: MIT
 
   <!-- cve_chart -->
   <script type="text/javascript">
-  if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
-    // dark mode
-    var cveChart = echarts.init(document.getElementById('cve_chart'), 'dark');
-  } else {
-    var cveChart = echarts.init(document.getElementById('cve_chart'));
+  const cveChart = echarts.init(document.getElementById('cve_chart'), theme);
+
+  const optionsforAllLineCharts = {
+    grid: {
+      left: 60,
+      right: 60,
+      top: 75,
+      bottom: 90
+    },
+    animation: false
   }
 
   const cveSeries = []
@@ -599,7 +607,8 @@ SPDX-License-Identifier: MIT
       series: [
         releases,
         ...cveSeries,
-      ]
+      ],
+      ...optionsforAllLineCharts
     };
 
     cveChart.setOption(cveOption);
@@ -608,12 +617,7 @@ SPDX-License-Identifier: MIT
 
   <!-- pie chart -->
   <script>
-    // dark mode
-    if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
-      var pieChart = echarts.init(document.getElementById('pie_chart'), 'dark');
-    } else {
-      var pieChart = echarts.init(document.getElementById('pie_chart'));
-    }
+    const pieChart = echarts.init(document.getElementById('pie_chart'), theme);
 
     fetch('patch-status-pie.json')
       .then(response => response.json())
@@ -652,12 +656,7 @@ SPDX-License-Identifier: MIT
 
   <!-- patch status -->
   <script type="text/javascript">
-    // dark mode
-    if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
-      var upstreamStatusChart = echarts.init(document.getElementById('upstream_status_chart'), 'dark');
-    } else {
-      var upstreamStatusChart = echarts.init(document.getElementById('upstream_status_chart'));
-    }
+    const upstreamStatusChart = echarts.init(document.getElementById('upstream_status_chart'), theme);
 
     function generateUpstreamChart({ patch_data, releases }) {
       releases.markLine.label.position = 'insideEndTop';
@@ -678,7 +677,8 @@ SPDX-License-Identifier: MIT
         series: [
           releases,
           ...upstreamSeries
-        ]
+        ],
+        ...optionsforAllLineCharts
       };
 
       upstreamStatusChart.setOption(upstreamOption);
@@ -687,11 +687,7 @@ SPDX-License-Identifier: MIT
 
   <!-- malformed upstream -->
   <script type="text/javascript">
-    if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
-      var malformedChart = echarts.init(document.getElementById('malformed_chart'), 'dark');
-    } else {
-      var malformedChart = echarts.init(document.getElementById('malformed_chart'));
-    }
+    const malformedChart = echarts.init(document.getElementById('malformed_chart'), theme);
 
     function generateMalformedChart({ malformed_data, releases }) {
       releases.markLine.label.position = 'insideEndTop';
@@ -713,7 +709,8 @@ SPDX-License-Identifier: MIT
         series: [
           releases,
           ...malformedSeries
-        ]
+        ],
+        ...optionsforAllLineCharts
       };
 
       malformedChart.setOption(malformedOption);
@@ -722,11 +719,7 @@ SPDX-License-Identifier: MIT
 
   <!-- recipe count -->
   <script type="text/javascript">
-    if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
-      var recipeChart = echarts.init(document.getElementById('recipe_chart'), 'dark');
-    } else {
-      var recipeChart = echarts.init(document.getElementById('recipe_chart'));
-    }
+    const recipeChart = echarts.init(document.getElementById('recipe_chart'), theme);
 
     function generateRecipeChart({ recipe_data, releases }) {
       releases.markLine.label.position = 'insideEndTop';
@@ -742,7 +735,8 @@ SPDX-License-Identifier: MIT
             name: 'Recipe Count',
             areaStyle: {},
           }
-        ]
+        ],
+        ...optionsforAllLineCharts
       };
 
       recipeChart.setOption(recipeOption);
diff --git a/patch-status/resources/dark.js b/patch-status/resources/dark.js
new file mode 100644
index 00000000..7f0fc92c
--- /dev/null
+++ b/patch-status/resources/dark.js
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+(function(root, factory) {
+    if (typeof define === 'function' && define.amd) {
+        // AMD. Register as an anonymous module.
+        define(['exports', 'echarts'], factory);
+    } else if (
+        typeof exports === 'object' &&
+        typeof exports.nodeName !== 'string'
+    ) {
+        // CommonJS
+        factory(exports, require('echarts/lib/echarts'));
+    } else {
+        // Browser globals
+        factory({}, root.echarts);
+    }
+})(this, function(exports, echarts) {
+    var log = function(msg) {
+        if (typeof console !== 'undefined') {
+            console && console.error && console.error(msg);
+        }
+    };
+    if (!echarts) {
+        log('ECharts is not Loaded');
+        return;
+    }
+    var axisCommon = function () {
+        return {
+            splitLine: {
+                lineStyle: {
+                    color: '#484753'
+                }
+            },
+        };
+    };
+
+    var theme = {
+        darkMode: true,
+        backgroundColor: '#13171f',
+        legend: {
+            textStyle: {
+                color: '#B9B8CE'
+            }
+        },
+        line: {
+            symbol: 'circle'
+        },
+        dataZoom: {
+            borderColor: '#71708A',
+            handleStyle: {
+                color: '#353450',
+                borderColor: '#C5CBE3'
+            },
+        },
+        valueAxis: axisCommon(),
+    };
+
+    echarts.registerTheme('dark', theme);
+});
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 12/12] index.html: linting and formatting
  2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
                   ` (10 preceding siblings ...)
  2024-05-08 15:31 ` [PATCH 11/12] index.html: Add dark mode to charts, improve chart layout Ninette Adhikari
@ 2024-05-08 15:31 ` Ninette Adhikari
  11 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-08 15:31 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

From: Alex Feyerke <hello@alexfeyerke.com>

Also corrects a minor padding issue in details elements.

Signed-off-by: Alex Feyerke <hello@alexfeyerke.com>
---
 patch-status/index.html | 259 ++++++++++++++++++++--------------------
 1 file changed, 128 insertions(+), 131 deletions(-)

diff --git a/patch-status/index.html b/patch-status/index.html
index 86e8c9db..99ddbbd2 100644
--- a/patch-status/index.html
+++ b/patch-status/index.html
@@ -64,11 +64,8 @@ SPDX-License-Identifier: MIT
     details {
       margin-bottom: 0;
     }
-    details > ul {
-      margin-left: 0;
-      padding-left: 14px;
-    }
-    details > ul > li {
+
+    details>ul>li {
       list-style-type: none;
       font-size: 0.8em;
     }
@@ -361,34 +358,34 @@ SPDX-License-Identifier: MIT
 
   <script type="text/javascript">
     fetch('cve-status-master.txt')
-   .then(response => response.text())
-   .then(data => {
-      createCVEList('cve_status_master', data);
-   })
-
-   fetch('cve-status-scarthgap.txt')
-   .then(response => response.text())
-   .then(data => {
-       createCVEList('cve_status_scarthgap', data);
-   })
-
-   fetch('cve-status-nanbield.txt')
-   .then(response => response.text())
-   .then(data => {
-       createCVEList('cve_status_nanbield', data);
-   })
-
-   fetch('cve-status-kirkstone.txt')
-   .then(response => response.text())
-   .then(data => {
-       createCVEList('cve_status_kirkstone', data);
-   })
-
-   fetch('cve-status-dunfell.txt')
-   .then(response => response.text())
-   .then(data => {
-       createCVEList('cve_status_dunfell', data);
-   })
+      .then(response => response.text())
+      .then(data => {
+        createCVEList('cve_status_master', data);
+      })
+
+    fetch('cve-status-scarthgap.txt')
+      .then(response => response.text())
+      .then(data => {
+        createCVEList('cve_status_scarthgap', data);
+      })
+
+    fetch('cve-status-nanbield.txt')
+      .then(response => response.text())
+      .then(data => {
+        createCVEList('cve_status_nanbield', data);
+      })
+
+    fetch('cve-status-kirkstone.txt')
+      .then(response => response.text())
+      .then(data => {
+        createCVEList('cve_status_kirkstone', data);
+      })
+
+    fetch('cve-status-dunfell.txt')
+      .then(response => response.text())
+      .then(data => {
+        createCVEList('cve_status_dunfell', data);
+      })
 
     function parseTxtFile(data) {
       const cveData = {}
@@ -422,8 +419,8 @@ SPDX-License-Identifier: MIT
         html += "</ul>";
         html += "</details>";
         nestedDetails.innerHTML = html;
-    };
-   }
+      };
+    }
   </script>
 
   <!-- get the data -->
@@ -448,7 +445,7 @@ SPDX-License-Identifier: MIT
         trigger: 'axis'
       },
       legend: {},
-      xAxis : { type: 'time' },
+      xAxis: { type: 'time' },
       yAxis: { type: 'value' },
       dataZoom: [
         {
@@ -472,7 +469,7 @@ SPDX-License-Identifier: MIT
         // skip the header
         for (let i = 1; i < lines.length; i++) {
           const line = lines[i].split(",");
-          if(line.length) {
+          if (line.length) {
             const cve = {
               name: line[0],
               xAxis: new Date(line[1])
@@ -510,109 +507,109 @@ SPDX-License-Identifier: MIT
             generateCVEChart({ cve_data, releases });
             return releases;
           }).then((releases) => {
-        fetch('patch-status-byday.json')
-          .then(response => response.json())
-          .then(data => {
-            // We have to sort the data by date
-            data.sort(function(x, y){
-              return x.date - y.date;
-            })
-
-            const patch_data = data.map(status => {
-              return {
-                date: new Date(status.date * 1000),
-                total: status.total,
-                pending: status.pending || 0,
-                backport: status.backport || 0,
-                inappropriate: status.inappropriate || 0,
-                accepted: status.accepted || 0,
-                submitted: status.submitted || 0,
-                denied: status.denied || 0
-              }
-            })
-
-            const malformed_data = data.map(status => {
-              return {
-                date: new Date(status.date * 1000),
-                total: status.total,
-                upstream_status: status['malformed-upstream-status'] || 0,
-                sob: status['malformed-sob'] || 0
-              }
-            })
-
-            const recipe_data = data.map(status => {
-              return {
-                date: new Date(status.date * 1000),
-                recipe_count: status.recipe_count
-              }
-            })
-
-            generateMalformedChart({ malformed_data, releases });
-            generateUpstreamChart({ patch_data, releases });
-            generateRecipeChart({ recipe_data, releases });
+            fetch('patch-status-byday.json')
+              .then(response => response.json())
+              .then(data => {
+                // We have to sort the data by date
+                data.sort(function (x, y) {
+                  return x.date - y.date;
+                })
+
+                const patch_data = data.map(status => {
+                  return {
+                    date: new Date(status.date * 1000),
+                    total: status.total,
+                    pending: status.pending || 0,
+                    backport: status.backport || 0,
+                    inappropriate: status.inappropriate || 0,
+                    accepted: status.accepted || 0,
+                    submitted: status.submitted || 0,
+                    denied: status.denied || 0
+                  }
+                })
+
+                const malformed_data = data.map(status => {
+                  return {
+                    date: new Date(status.date * 1000),
+                    total: status.total,
+                    upstream_status: status['malformed-upstream-status'] || 0,
+                    sob: status['malformed-sob'] || 0
+                  }
+                })
+
+                const recipe_data = data.map(status => {
+                  return {
+                    date: new Date(status.date * 1000),
+                    recipe_count: status.recipe_count
+                  }
+                })
+
+                generateMalformedChart({ malformed_data, releases });
+                generateUpstreamChart({ patch_data, releases });
+                generateRecipeChart({ recipe_data, releases });
+              });
           });
-        });
       });
   </script>
 
   <!-- cve_chart -->
   <script type="text/javascript">
-  const cveChart = echarts.init(document.getElementById('cve_chart'), theme);
-
-  const optionsforAllLineCharts = {
-    grid: {
-      left: 60,
-      right: 60,
-      top: 75,
-      bottom: 90
-    },
-    animation: false
-  }
-
-  const cveSeries = []
-  const datasetWithFilters = []
-  function generateCVEChart({ cve_data, releases }) {
-    branches.forEach(branch => {
-      datasetWithFilters.push({
-        id: branch,
-        fromDatasetId: 'dataset_raw',
-        transform: {
-          type: 'filter',
-          config: {
-            dimension: 'Branch', '=': branch,
+    const cveChart = echarts.init(document.getElementById('cve_chart'), theme);
+
+    const optionsforAllLineCharts = {
+      grid: {
+        left: 60,
+        right: 60,
+        top: 75,
+        bottom: 90
+      },
+      animation: false
+    }
+
+    const cveSeries = []
+    const datasetWithFilters = []
+    function generateCVEChart({ cve_data, releases }) {
+      branches.forEach(branch => {
+        datasetWithFilters.push({
+          id: branch,
+          fromDatasetId: 'dataset_raw',
+          transform: {
+            type: 'filter',
+            config: {
+              dimension: 'Branch', '=': branch,
+            }
           }
-        }
-      });
-      cveSeries.push({
-        type: 'line',
-        showSymbol: false,
-        datasetId: branch,
-        name: branch,
-        encode: {
-          x: 'Date',
-          y: 'Branchvalue'
-        }
+        });
+        cveSeries.push({
+          type: 'line',
+          showSymbol: false,
+          datasetId: branch,
+          name: branch,
+          encode: {
+            x: 'Date',
+            y: 'Branchvalue'
+          }
+        });
       });
-    });
-    const cveOption = {
-      legend: { right: 'auto' },
-      ...general_options,
-      dataset: [
-        {
-          id: 'dataset_raw',
-          source: cve_data
-        },
-        ...datasetWithFilters
-      ],
-      series: [
-        releases,
-        ...cveSeries,
-      ],
-      ...optionsforAllLineCharts
-    };
+      const cveOption = {
+        legend: { right: 'auto' },
+        ...general_options,
+        dataset: [
+          {
+            id: 'dataset_raw',
+            source: cve_data
+          },
+          ...datasetWithFilters
+        ],
+        series: [
+          releases,
+          ...cveSeries,
+        ],
+        ...optionsforAllLineCharts
+      };
 
-    cveChart.setOption(cveOption);
-  }
+      cveChart.setOption(cveOption);
+    }
   </script>
 
   <!-- pie chart -->
-- 
2.39.3 (Apple Git-145)



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [yocto-patches] [PATCH 02/12] patch-status: add README.md file
  2024-05-08 15:31 ` [PATCH 02/12] patch-status: add README.md file Ninette Adhikari
@ 2024-05-09 10:52   ` Richard Purdie
  2024-05-13 10:57     ` Ninette Adhikari
  0 siblings, 1 reply; 18+ messages in thread
From: Richard Purdie @ 2024-05-09 10:52 UTC (permalink / raw)
  To: yocto-patches; +Cc: engineering, Alex Feyerke

On Wed, 2024-05-08 at 17:31 +0200, Ninette Adhikari via lists.yoctoproject.org wrote:
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#93):
> https://lists.yoctoproject.org/g/yocto-patches/message/93
> Mute This Topic: https://lists.yoctoproject.org/mt/105983324/1686473
> Group Owner: yocto-patches+owner@lists.yoctoproject.org
> Unsubscribe:
> https://lists.yoctoproject.org/g/yocto-patches/leave/13162210/1686473/1677322349/xyzzy
>  [richard.purdie@linuxfoundation.org]
> -=-=-=-=-=-=-=-=-=-=-=-


This patch and patches 4, 7 and 8 all appeared to come through as empty
unfortunately (messages with nothing in them other than the list
footer).

Any idea what happened to them?

Cheers,

Richard




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [yocto-patches] [PATCH 02/12] patch-status: add README.md file
  2024-05-09 10:52   ` [yocto-patches] " Richard Purdie
@ 2024-05-13 10:57     ` Ninette Adhikari
  2024-05-13 11:03       ` Alexander Kanavin
  2024-05-13 11:05       ` Richard Purdie
  0 siblings, 2 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-13 10:57 UTC (permalink / raw)
  To: Richard Purdie; +Cc: yocto-patches, engineering, Alex Feyerke

[-- Attachment #1: Type: text/plain, Size: 1791 bytes --]

Hi Richard,

This is really strange that the patches are coming through as empty for
you. Sorry about that! Just to be sure that we understood correctly do you
mean your email client actually doesn’t display the patches? because we can
see them in the email you replied to.
I followed this documentation
<https://docs.yoctoproject.org/contributor-guide/submit-changes.html?highlight=pull+request#sending-the-patches-via-email>
to send the patches and it worked fine for previous patches. We have also
pushed the patches to the yocto metrics contributors branch
<https://git.yoctoproject.org/yocto-metrics/log/?h=contrib/jacobabrandner/improve_chart_page>
in case you can't view the email patches.

Please let me know if there is any other way to share the patches or if I
should rensend the patches. Thanks so much!

Best,
Ninette

On Thu, May 9, 2024 at 12:53 PM Richard Purdie <
richard.purdie@linuxfoundation.org> wrote:

> On Wed, 2024-05-08 at 17:31 +0200, Ninette Adhikari via
> lists.yoctoproject.org wrote:
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#93):
> > https://lists.yoctoproject.org/g/yocto-patches/message/93
> > Mute This Topic: https://lists.yoctoproject.org/mt/105983324/1686473
> > Group Owner: yocto-patches+owner@lists.yoctoproject.org
> > Unsubscribe:
> >
> https://lists.yoctoproject.org/g/yocto-patches/leave/13162210/1686473/1677322349/xyzzy
> >  [richard.purdie@linuxfoundation.org]
> > -=-=-=-=-=-=-=-=-=-=-=-
>
>
> This patch and patches 4, 7 and 8 all appeared to come through as empty
> unfortunately (messages with nothing in them other than the list
> footer).
>
> Any idea what happened to them?
>
> Cheers,
>
> Richard
>
>
>
>

[-- Attachment #2: Type: text/html, Size: 2924 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [yocto-patches] [PATCH 02/12] patch-status: add README.md file
  2024-05-13 10:57     ` Ninette Adhikari
@ 2024-05-13 11:03       ` Alexander Kanavin
  2024-05-13 11:05       ` Richard Purdie
  1 sibling, 0 replies; 18+ messages in thread
From: Alexander Kanavin @ 2024-05-13 11:03 UTC (permalink / raw)
  To: yocto-patches; +Cc: Richard Purdie, engineering, Alex Feyerke

They came through empty for me too. And you can see that on the
mailing list archive:

https://lists.yoctoproject.org/g/yocto-patches/message/93

Try sending them to an external private email first.

Alex

On Mon, 13 May 2024 at 12:58, Ninette Adhikari via
lists.yoctoproject.org
<ninette=thehoodiefirm.com@lists.yoctoproject.org> wrote:
>
> Hi Richard,
>
> This is really strange that the patches are coming through as empty for you. Sorry about that! Just to be sure that we understood correctly do you mean your email client actually doesn’t display the patches? because we can see them in the email you replied to.
> I followed this documentation to send the patches and it worked fine for previous patches. We have also pushed the patches to the yocto metrics contributors branch in case you can't view the email patches.
>
> Please let me know if there is any other way to share the patches or if I should rensend the patches. Thanks so much!
>
> Best,
> Ninette
>
> On Thu, May 9, 2024 at 12:53 PM Richard Purdie <richard.purdie@linuxfoundation.org> wrote:
>>
>> On Wed, 2024-05-08 at 17:31 +0200, Ninette Adhikari via lists.yoctoproject.org wrote:
>> >
>> >
>> >
>>
>>
>> This patch and patches 4, 7 and 8 all appeared to come through as empty
>> unfortunately (messages with nothing in them other than the list
>> footer).
>>
>> Any idea what happened to them?
>>
>> Cheers,
>>
>> Richard
>>
>>
>>
>
> _._,_._,_
> ________________________________
> Links:
>
> You receive all messages sent to this group.
>
> View/Reply Online (#117) | Reply To Group | Reply To Sender | Mute This Topic | New Topic
> Your Subscription | Contact Group Owner | Unsubscribe [alex.kanavin@gmail.com]
>
> _._,_._,_


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [yocto-patches] [PATCH 02/12] patch-status: add README.md file
  2024-05-13 10:57     ` Ninette Adhikari
  2024-05-13 11:03       ` Alexander Kanavin
@ 2024-05-13 11:05       ` Richard Purdie
  2024-05-13 15:03         ` Ninette Adhikari
  1 sibling, 1 reply; 18+ messages in thread
From: Richard Purdie @ 2024-05-13 11:05 UTC (permalink / raw)
  To: Ninette Adhikari; +Cc: yocto-patches, engineering, Alex Feyerke

On Mon, 2024-05-13 at 12:57 +0200, Ninette Adhikari wrote:
> Hi Richard,
> 
> This is really strange that the patches are coming through as empty
> for you. Sorry about that! Just to be sure that we understood
> correctly do you mean your email client actually doesn’t display the
> patches? because we can see them in the email you replied to.
> I followed this documentation to send the patches and it worked fine
> for previous patches. We have also pushed the patches to the yocto
> metrics contributors branch in case you can't view the email patches.
> 
> Please let me know if there is any other way to share the patches or
> if I should rensend the patches. Thanks so much!

It isn't just my email client, the mailing list archives also show an
empty message:

https://lists.yoctoproject.org/g/yocto-patches/message/93
https://lists.yoctoproject.org/g/yocto-patches/message/98

This means the messages really are coming through as empty.

Ideally you'd fix the issue and then resend but failing that you can
share a git branch of the patches somewhere (github or contrib repos).
It isn't how we normally review patches, it makes it harder for people.

Cheers,

Richard



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [yocto-patches] [PATCH 02/12] patch-status: add README.md file
  2024-05-13 11:05       ` Richard Purdie
@ 2024-05-13 15:03         ` Ninette Adhikari
  0 siblings, 0 replies; 18+ messages in thread
From: Ninette Adhikari @ 2024-05-13 15:03 UTC (permalink / raw)
  To: Richard Purdie, Alexander Kanavin
  Cc: yocto-patches, engineering, Alex Feyerke

[-- Attachment #1: Type: text/plain, Size: 1576 bytes --]

Thanks Richard and Alex for your quick response.
I tested the patches to an external email and sent the patches to the
mailing list again. Hope it works this time! Thanks for your patience:)

Best,
Ninette

On Mon, May 13, 2024 at 1:05 PM Richard Purdie <
richard.purdie@linuxfoundation.org> wrote:

> On Mon, 2024-05-13 at 12:57 +0200, Ninette Adhikari wrote:
> > Hi Richard,
> >
> > This is really strange that the patches are coming through as empty
> > for you. Sorry about that! Just to be sure that we understood
> > correctly do you mean your email client actually doesn’t display the
> > patches? because we can see them in the email you replied to.
> > I followed this documentation to send the patches and it worked fine
> > for previous patches. We have also pushed the patches to the yocto
> > metrics contributors branch in case you can't view the email patches.
> >
> > Please let me know if there is any other way to share the patches or
> > if I should rensend the patches. Thanks so much!
>
> It isn't just my email client, the mailing list archives also show an
> empty message:
>
> https://lists.yoctoproject.org/g/yocto-patches/message/93
> https://lists.yoctoproject.org/g/yocto-patches/message/98
>
> This means the messages really are coming through as empty.
>
> Ideally you'd fix the issue and then resend but failing that you can
> share a git branch of the patches somewhere (github or contrib repos).
> It isn't how we normally review patches, it makes it harder for people.
>
> Cheers,
>
> Richard
>
>

[-- Attachment #2: Type: text/html, Size: 2287 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2024-05-13 15:03 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-08 15:31 [PATCH 00/12] M12: Improve the Charts in the Metrics View Ninette Adhikari
2024-05-08 15:31 ` [PATCH 01/12] patch-status: add .gitignore file Ninette Adhikari
2024-05-08 15:31 ` [PATCH 02/12] patch-status: add README.md file Ninette Adhikari
2024-05-09 10:52   ` [yocto-patches] " Richard Purdie
2024-05-13 10:57     ` Ninette Adhikari
2024-05-13 11:03       ` Alexander Kanavin
2024-05-13 11:05       ` Richard Purdie
2024-05-13 15:03         ` Ninette Adhikari
2024-05-08 15:31 ` [PATCH 03/12] index.html: clean up html and head sections Ninette Adhikari
2024-05-08 15:31 ` [PATCH 04/12] index.html: Add general description to first section Ninette Adhikari
2024-05-08 15:31 ` [PATCH 05/12] index.html: Add description to CVE trends section Ninette Adhikari
2024-05-08 15:31 ` [PATCH 06/12] index.html: Add description to patch status metric pie chart Ninette Adhikari
2024-05-08 15:31 ` [PATCH 07/12] index.html: add description to upstream status section Ninette Adhikari
2024-05-08 15:31 ` [PATCH 08/12] index.html: Add description to recipe count section Ninette Adhikari
2024-05-08 15:31 ` [PATCH 09/12] index.html: Move raw data to own section element Ninette Adhikari
2024-05-08 15:31 ` [PATCH 10/12] index.html: add line numbers to CVE link lists Ninette Adhikari
2024-05-08 15:31 ` [PATCH 11/12] index.html: Add dark mode to charts, improve chart layout Ninette Adhikari
2024-05-08 15:31 ` [PATCH 12/12] index.html: linting and formatting Ninette Adhikari

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.