Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

M9 patch files #13

Closed
wants to merge 182 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
182 commits
Select commit Hold shift + click to select a range
1bebc64
oe-build-perf-report: Add apache echarts to make report interactive
ninetteadhikari Mar 19, 2024
8704001
oe-build-perf-report: Display more than 300 commits and date instead …
ninetteadhikari Mar 19, 2024
0ff5f57
oe-build-perf-report: Improve report styling and add descriptions
ninetteadhikari Mar 19, 2024
b9c892f
oe-build-perf-report: Update chart tooltip format
ninetteadhikari Apr 18, 2024
bd091d3
Merge branch 'master' into m9-performance-test-report-view
ninetteadhikari Apr 18, 2024
caaf33b
bitbake: doc/user-manual: Add BB_LOADFACTOR_MAX
rpurdie Apr 11, 2024
81bd060
libseccomp: Fix build when python packageconfig is enabled
kraj Apr 6, 2024
9c06f18
devtool: standard: throws appropriate error if source is in detached …
justeph Apr 10, 2024
8950963
eudev: update Upstream-Status on netifnames.patch
rossburton Apr 11, 2024
9569b57
linux-yocto: Enable nft modules for ptest images
kraj Apr 10, 2024
d0d8eef
init-ifupdown: modify interfaces for busybox
jwslater0823 Apr 11, 2024
6c37fa0
packagegroup-core-boot: recommend ifupdown
jwslater0823 Apr 11, 2024
c55080f
nativesdk-gzip: fix reproducibility issues
raburaibu Apr 11, 2024
fef66f2
ref-manual: variables: document CVE_DB_INCR_UPDATE_AGE_THRES variable
ycongal-smile Apr 9, 2024
9964e10
release-notes-5.0: document some cve, strace and qa changes
ycongal-smile Apr 9, 2024
35f3a35
ref-manual/variables: add new variables for v5.0
jmarcoscosta Apr 10, 2024
040ecdb
release-notes-5.0: add updates
jmarcoscosta Apr 10, 2024
1396e2f
release-notes-5.0: mention cmake-qemu.bbclass
jmarcoscosta Apr 10, 2024
ea88ece
release-notes-5.0: documentation highlights
Apr 10, 2024
05cbdba
manuals: remove tab characters
Mar 30, 2024
9676e68
dev-manual/debugging: mention new ``taskexp_ncurses`` option
Apr 11, 2024
ad4ee38
migration-guides: release-notes-5.0: update docs highlights
Apr 11, 2024
39e2141
bitbake.conf: remove comment about oldincludedir
petermarko Apr 12, 2024
e219a93
python3-jsonschema-specifications: drop ${PYTHON_PN}
jsbronder Apr 11, 2024
44a346e
python3-referencing: drop ${PYTHON_PN}
jsbronder Apr 11, 2024
c39bbac
python3-websockets: Import from meta-python
rpurdie Apr 12, 2024
37947bc
buildtools-tarball: Add python3-websockets
rpurdie Apr 12, 2024
714659a
systemd: make predictable name mac policy opt-out
petermarko Apr 12, 2024
b827a61
kbd: split gpl-3 keymap to separate package
petermarko Apr 12, 2024
611fced
kbd: remove non-free Agafari fonts
petermarko Apr 12, 2024
0a3961e
kbd: update license
petermarko Apr 12, 2024
c58a5a7
python3-testtools: Fix build problems from incorrect build backend
rpurdie Apr 13, 2024
bd28156
buildtools-tarball: Add python3-setuptools
rpurdie Apr 13, 2024
b1ac0e4
python3: upgrade 3.12.2 -> 3.12.3
threexc Apr 12, 2024
67bc508
openssh: add fido2 support
dankm Apr 12, 2024
88603e0
poky-bleeding.bbclass: Remove use of SRCPV
kraj Feb 29, 2024
19e783d
bitbake: prserv: simplify the PRServerClient() interface
Apr 12, 2024
bb41220
bitbake: prserv: use double quotes by default
Apr 12, 2024
c691ffb
bitbake: bitbake-prserv: replace deprecated optparse by argparse
Apr 12, 2024
7608829
bitbake: prserv: use self.logger instead of logger directly
Apr 12, 2024
48fa96c
bitbake: asyncrpc: include parse_address from hashserv
Apr 12, 2024
55a2c00
bitbake: prserv: capitalization and spacing improvements
Apr 12, 2024
94745d6
bitbake: prserv: add extra requests
Apr 12, 2024
3ccd3b3
bitbake: prserv: remove redundant exception handler
Apr 12, 2024
1e9a7e0
bitbake: prserv: correct error message
Apr 12, 2024
fd003d5
bitbake: prserv: remove unnecessary code
Apr 12, 2024
a0a8e01
bitbake: BBHandler: Handle unclosed functions correctly
rpurdie Apr 12, 2024
ca432fc
bitbake: siggen: Capture SSL environment for hashserver
JPEWdev Apr 12, 2024
b986340
bitbake: hashserv: client: Fix mode state errors
JPEWdev Apr 12, 2024
8bf364b
abi_version/sstate: Switch to a new version for the upcoming release
rpurdie Apr 13, 2024
25353fe
openssl: openssl: patch CVE-2024-2511
petermarko Apr 13, 2024
37035da
bitbake: bitbake: Bump to version 2.8.0
rpurdie Apr 16, 2024
5cdff7a
poky.conf: Bump version for 5.0 scarthgap release
rpurdie Apr 16, 2024
d7a32e8
build-appliance-image: Update to master head revision
rpurdie Apr 16, 2024
4eeccf9
release-notes-5.0: various additions and improvements
cheeyanglee Apr 12, 2024
707f06d
ref-manual: variables: Update default INHERIT_DISTRO value
kk6ho Apr 12, 2024
62fe329
ref-manual: add virtual-slash QA check
bluelightning Apr 14, 2024
f3eacae
ref-manual: add new python classes
bluelightning Apr 14, 2024
62419c8
ref-manual: classes: cve_check: add note about remote patches
bluelightning Apr 14, 2024
ecb3b54
ref-manual: variables: add TARGET_DBGSRC_DIR
bluelightning Apr 14, 2024
ed5633b
dev-manual: update reference to sstate-cache-management script
bluelightning Apr 14, 2024
b6937c2
dev-manual: update custom distribution section
bluelightning Apr 14, 2024
d2acecd
release-notes: add CVEs, recipe upgrades and contributors for 5.0
bluelightning Apr 14, 2024
bafb8e0
migration: extend migration guide for 5.0
bluelightning Apr 14, 2024
bf9d6d8
release-notes: additional features and one known issue for 5.0
bluelightning Apr 14, 2024
0690ef8
attr: update 2.5.1 -> 2.5.2
kanavin Mar 13, 2024
9e94413
dpkg: update 1.22.0 -> 1.22.5
kanavin Mar 13, 2024
9a833c2
gptfdisk: update 1.0.9 -> 1.0.10
kanavin Mar 13, 2024
5752eb1
icu: update 74-1 -> 74-2
kanavin Mar 13, 2024
fcbda69
go-helloworld: update to latest revision
kanavin Mar 13, 2024
3b9b760
libpam: update 1.5.3 -> 1.6.0
kanavin Mar 13, 2024
8385ae8
libtraceevent: update 1.7.3 -> 1.8.2
kanavin Mar 13, 2024
97fbdbe
mdadm: update 4.2 -> 4.3
kanavin Mar 13, 2024
46e90cc
mdadm: Fix build with new musl
kraj Mar 25, 2024
94c185d
npth: update 1.6 -> 1.7
kanavin Mar 13, 2024
347c26b
python3-lxml: update 5.0.0 -> 5.1.0
kanavin Mar 13, 2024
9efb582
rpm: update 4.19.1 -> 4.19.1.1
kanavin Mar 13, 2024
33686dd
ruby: update 3.2.2 -> 3.3.0
kanavin Mar 13, 2024
b8ba27a
tcl: update 8.6.13 -> 8.6.14
kanavin Mar 13, 2024
303e4e9
texinfo: update 7.0.3 -> 7.1
kanavin Mar 13, 2024
3e3abb2
waffle: update 1.7.2 -> 1.8.0
kanavin Mar 13, 2024
338917f
debianutils: upgrade 5.16 -> 5.17
wangmingyu84 Mar 13, 2024
22845e4
diffoscope: upgrade 259 -> 260
wangmingyu84 Mar 13, 2024
3f7f7fc
encodings: upgrade 1.0.7 -> 1.1.0
wangmingyu84 Mar 13, 2024
d3668f0
gcr: upgrade 4.2.0 -> 4.2.1
wangmingyu84 Mar 13, 2024
9667aa5
ghostscript: upgrade 10.02.1 -> 10.03.0
wangmingyu84 Mar 13, 2024
fbe1dbb
libassuan: upgrade 2.5.6 -> 2.5.7
wangmingyu84 Mar 13, 2024
c638c5d
libfontenc: upgrade 1.1.7 -> 1.1.8
wangmingyu84 Mar 13, 2024
ac9e853
libpng: upgrade 1.6.42 -> 1.6.43
wangmingyu84 Mar 13, 2024
ed7b276
libsdl2: upgrade 2.30.0 -> 2.30.1
wangmingyu84 Mar 13, 2024
d06caa8
libxcb: upgrade 1.16 -> 1.16.1
wangmingyu84 Mar 13, 2024
117a68c
libxcursor: upgrade 1.2.1 -> 1.2.2
wangmingyu84 Mar 13, 2024
05d893b
libxdmcp: upgrade 1.1.4 -> 1.1.5
wangmingyu84 Mar 13, 2024
eb3fee0
mkfontscale: upgrade 1.2.2 -> 1.2.3
wangmingyu84 Mar 13, 2024
5fc7977
pango: upgrade 1.52.0 -> 1.52.1
wangmingyu84 Mar 13, 2024
7276c60
psmisc: upgrade 23.6 -> 23.7
wangmingyu84 Mar 13, 2024
b9d682b
python3-cython: upgrade 3.0.8 -> 3.0.9
wangmingyu84 Mar 13, 2024
4221356
python3-hypothesis: upgrade 6.98.15 -> 6.99.4
wangmingyu84 Mar 13, 2024
44dc91c
python3-importlib-metadata: upgrade 7.0.1 -> 7.0.2
wangmingyu84 Mar 13, 2024
b2d1bbe
python3-libarchive-c: upgrade 5.0 -> 5.1
wangmingyu84 Mar 13, 2024
9868456
python3-pygobject: update 3.46.0 -> 3.48.1
wangmingyu84 Mar 13, 2024
2e29bd0
python3-pyopenssl: upgrade 24.0.0 -> 24.1.0
wangmingyu84 Mar 13, 2024
4db6174
python3-pyparsing: upgrade 3.1.1 -> 3.1.2
wangmingyu84 Mar 13, 2024
4776cc6
python3-pytest-subtests: upgrade 0.11.0 -> 0.12.1
wangmingyu84 Mar 13, 2024
35245da
python3-pytest: upgrade 8.0.2 -> 8.1.1
wangmingyu84 Mar 13, 2024
968059c
python3-trove-classifiers: upgrade 2024.2.23 -> 2024.3.3
wangmingyu84 Mar 13, 2024
2e0e353
repo: upgrade 2.42 -> 2.44
wangmingyu84 Mar 13, 2024
f598fce
shaderc: update 2023.8 -> 2024.0
wangmingyu84 Mar 13, 2024
bf7618c
stress-ng: upgrade 0.17.05 -> 0.17.06
wangmingyu84 Mar 13, 2024
9602b9a
xauth: upgrade 1.1.2 -> 1.1.3
wangmingyu84 Mar 13, 2024
9747d49
xev: update 1.2.5 -> 1.2.6
wangmingyu84 Mar 13, 2024
64f283f
gnupg: upgrade 2.4.4 -> 2.4.5
wangmingyu84 Mar 13, 2024
795357d
shadow: update 4.14.2 -> 4.15.0
kanavin Mar 13, 2024
a58c973
adwaita-icon-theme: upgrade 45.0 -> 46.0
wangmingyu84 Mar 26, 2024
2647dc7
at-spi2-core: upgrade 2.50.1 -> 2.52.0
wangmingyu84 Mar 26, 2024
7db261f
bind: upgrade 9.18.24 -> 9.18.25
wangmingyu84 Mar 26, 2024
35166cb
createrepo-c: upgrade 1.0.4 -> 1.1.0
wangmingyu84 Mar 26, 2024
883a975
enchant2: upgrade 2.6.7 -> 2.6.8
wangmingyu84 Mar 26, 2024
0454d80
harfbuzz: upgrade 8.3.0 -> 8.3.1
wangmingyu84 Mar 26, 2024
b5b1d64
libbsd: upgrade 0.12.1 -> 0.12.2
wangmingyu84 Mar 26, 2024
ff4a40d
libcomps: upgrade 0.1.20 -> 0.1.21
wangmingyu84 Mar 26, 2024
89285e7
libpciaccess: upgrade 0.18 -> 0.18.1
wangmingyu84 Mar 26, 2024
28b28e6
libwpe: upgrade 1.14.2 -> 1.16.0
wangmingyu84 Mar 26, 2024
cf3ef7b
libxkbcommon: upgrade 1.6.0 -> 1.7.0
wangmingyu84 Mar 26, 2024
783984f
libxml2: upgrade 2.12.5 -> 2.12.6
wangmingyu84 Mar 26, 2024
460678a
lighttpd: upgrade 1.4.74 -> 1.4.75
wangmingyu84 Mar 26, 2024
f542752
openssh: upgrade 9.6p1 -> 9.7p1
wangmingyu84 Mar 26, 2024
c307b35
python3-hatchling: upgrade 1.21.1 -> 1.22.4
wangmingyu84 Mar 26, 2024
efe9a19
python3-importlib-metadata: upgrade 7.0.2 -> 7.1.0
wangmingyu84 Mar 26, 2024
cb8eb24
python3-license-expression: upgrade 30.2.0 -> 30.3.0
wangmingyu84 Mar 26, 2024
dfce5dd
python3-markdown: upgrade 3.5.2 -> 3.6
wangmingyu84 Mar 26, 2024
8657cc1
python3-packaging: upgrade 23.2 -> 24.0
wangmingyu84 Mar 26, 2024
80f6aca
python3-pyelftools: upgrade 0.30 -> 0.31
wangmingyu84 Mar 26, 2024
0d3fbb1
python3-referencing: upgrade 0.33.0 -> 0.34.0
wangmingyu84 Mar 26, 2024
3615c13
python3-scons: upgrade 4.6.0 -> 4.7.0
wangmingyu84 Mar 26, 2024
b52adc9
python3-setuptools: upgrade 69.1.1 -> 69.2.0
wangmingyu84 Mar 26, 2024
ef605d4
python3-wheel: upgrade 0.42.0 -> 0.43.0
wangmingyu84 Mar 26, 2024
660d259
python3-zipp: upgrade 3.17.0 -> 3.18.1
wangmingyu84 Mar 26, 2024
1d6fc55
vala: upgrade 0.56.15 -> 0.56.16
wangmingyu84 Mar 26, 2024
6ba9d3d
wget: upgrade 1.21.4 -> 1.24.5
wangmingyu84 Mar 26, 2024
fdd0526
mtd-utils: upgrade 2.1.6 -> 2.2.0
denix0 Apr 2, 2024
4d3132a
lzip: upgrade 1.24 -> 1.24.1
denix0 Apr 2, 2024
024b837
wayland-protocols: upgrade 1.33 -> 1.34
denix0 Apr 2, 2024
6c576a7
mesa: upgrade 24.0.2 -> 24.0.3
wangmingyu84 Mar 27, 2024
2b9bb2d
vulkan: upgrade 1.3.275.0 -> 1.3.280.0
wangmingyu84 Mar 27, 2024
fd3c35b
babeltrace2: upgrade 2.0.5 -> 2.0.6
wangmingyu84 Apr 9, 2024
2d7aae2
bash-completion: upgrade 2.12.0 -> 2.13.0
wangmingyu84 Apr 9, 2024
5fd1f2b
btrfs-tools: upgrade 6.7.1 -> 6.8
wangmingyu84 Apr 9, 2024
6961d12
coreutils: upgrade 9.4 -> 9.5
wangmingyu84 Apr 9, 2024
a379fff
dnf: upgrade 4.19.0 -> 4.19.2
wangmingyu84 Apr 9, 2024
de7d829
ell: upgrade 0.63 -> 0.64
wangmingyu84 Apr 9, 2024
465eee1
enchant2: upgrade 2.6.8 -> 2.6.9
wangmingyu84 Apr 9, 2024
c97fa11
libdnf: upgrade 0.73.0 -> 0.73.1
wangmingyu84 Apr 9, 2024
8e9a758
libical: upgrade 3.0.17 -> 3.0.18
wangmingyu84 Apr 9, 2024
fbf92d7
liburi-perl: upgrade 5.27 -> 5.28
wangmingyu84 Apr 9, 2024
97b1fb6
libx11: upgrade 1.8.7 -> 1.8.9
wangmingyu84 Apr 9, 2024
0d064d9
libxmlb: upgrade 0.3.15 -> 0.3.17
wangmingyu84 Apr 9, 2024
46c43f9
libxmu: upgrade 1.1.4 -> 1.2.0
wangmingyu84 Apr 9, 2024
47fa815
lttng-tools: upgrade 2.13.11 -> 2.13.13
wangmingyu84 Apr 9, 2024
f6b9dfa
man-db: upgrade 2.12.0 -> 2.12.1
wangmingyu84 Apr 9, 2024
2a17755
mpg123: upgrade 1.32.5 -> 1.32.6
wangmingyu84 Apr 9, 2024
8ae434c
mtdev: upgrade 1.1.6 -> 1.1.7
wangmingyu84 Apr 9, 2024
090aab6
pkgconf: upgrade 2.1.1 -> 2.2.0
wangmingyu84 Apr 9, 2024
d8b32df
python3-beartype: upgrade 0.17.2 -> 0.18.2
wangmingyu84 Apr 9, 2024
ec88561
python3-build: upgrade 1.1.1 -> 1.2.1
wangmingyu84 Apr 9, 2024
8076500
python3-git: upgrade 3.1.42 -> 3.1.43
wangmingyu84 Apr 9, 2024
cbd5459
python3-pyasn1: upgrade 0.5.1 -> 0.6.0
wangmingyu84 Apr 9, 2024
68f9b81
python3-typing-extensions: upgrade 4.10.0 -> 4.11.0
wangmingyu84 Apr 9, 2024
d783e7e
rsync: upgrade 3.2.7 -> 3.3.0
wangmingyu84 Apr 9, 2024
a7dac78
ttyrun: upgrade 2.31.0 -> 2.32.0
wangmingyu84 Apr 9, 2024
7e69a8c
u-boot: upgrade 2024.01 -> 2024.04
wangmingyu84 Apr 9, 2024
9651184
xorgproto: upgrade 2023.2 -> 2024.1
wangmingyu84 Apr 9, 2024
a903419
classes/pypi: don't expose PYPI_ARCHIVE_NAME
rossburton Mar 15, 2024
e08ae7f
iproute2: add bridge package
hoinmic Feb 19, 2024
b0c3d09
bitbake: bitbake: Bump to version 2.9.0 development version postrelease
rpurdie Apr 16, 2024
b0d6052
layer.conf: Post release addition/switch to styhead corename
rpurdie Apr 16, 2024
8392dcb
poky.conf: Bump version/codename for post release of scarthgap
rpurdie Apr 16, 2024
38df1a2
buildtools-tarball: Add python3-pip
rpurdie Apr 16, 2024
3641db3
curl: Backport patch to fix buildtools issues
rpurdie Apr 18, 2024
525100b
Merge branch 'm9-performance-test-report-view' of https://github.com/…
ninetteadhikari Apr 18, 2024
2e26415
add patch files for milestone 9
ninetteadhikari Apr 12, 2024
46cfc50
tooltip fix patch files
ninetteadhikari Apr 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions 0000-cover-letter.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
From 0ff5f57f1f5669db2a0bebb09a7500e95a7ace7f Mon Sep 17 00:00:00 2001
From: Ninette Adhikari <[email protected]>
Date: Fri, 12 Apr 2024 16:17:52 +0200
Subject: [PATCH 0/3] Improvements for performance test report view

This work is done according to "Milestone 9: Build performance test report view" as stated in the Scope of Work with Sovereign Tech Fund (STF) (https://www.sovereigntechfund.de/).
The current report can be accessed here:
Performance test report HTML (https://autobuilder.yocto.io/pub/non-release/20240117-15/testresults/buildperf-alma8/perf-alma8_master_20240117090048_663f180574.html)
The report is created using the `oe-build-perf-report` script in the poky repository. This script generates a performance test report in HTML format using the data from the yocto-buildstats (https://git.yoctoproject.org/yocto-buildstats/) repository.
The report displays the performance test results in line chart format. The chart x-axis represents the commit numbers, and the y-axis represents the test duration in minutes.
The report also includes a table that displays the measurement statistics data for each test. The report is interactive and allows users to zoom in on specific sections of the line chart.

The current report format required some updates to make it more interactive and user-friendly. And this patch addresses such improvements:

- Add [Apache echart](https://echarts.apache.org/en/index.html) library to create oe build performance report charts and make them interactive.
- Restructure data to time and value array format to be used by echarts. It also converts test duration to minutes and adds zoom to the line charts.
- Update measurement statistics data to include `start_time` so that time can be displayed instead of commit numbers on the chart. It also updates default commit history length to 300.
- Add styling updates including page margin, labels for x and y axis, tooltip, and section descriptions.

Updated report screenshots:
https://github.com/neighbourhoodie/poky/assets/13760198/65a1890c-fd2a-40d4-ac90-f13055735e53
https://github.com/neighbourhoodie/poky/assets/13760198/1ed43876-73a9-487e-aed3-ca0edf97514c

For local setup, you can do the following:

1. Clone the yocto-buildstats (https://git.yoctoproject.org/yocto-buildstats/) and the poky repository (https://git.yoctoproject.org/poky/)

2. In the poky repository run the following to build the report HTML:
```bash
./scripts/oe-build-perf-report -r "LOCAL_PATH_TO_YOCTO_BUILDSTATS" --branch "master" --commit "663f1805742ff6fb6955719d0ab7846a425debcf" --branch2 "master" --html > test.html
```
Note:
- Add your local path to the yocto-buildstats repo
- The above command builds the report in a file called `test.html`. You can access it in the root directory in poky.
- This exmaple report uses the commit `663f1805742ff6fb6955719d0ab7846a425debcf` from `master` branch.


Ninette Adhikari (3):
oe-build-perf-report: Add apache echarts to make report interactive
oe-build-perf-report: Display more than 300 commits and date instead
of commit number
oe-build-perf-report: Improve report styling and add descriptions

.../build_perf/html/measurement_chart.html | 116 +++++++++++-------
scripts/lib/build_perf/html/report.html | 96 ++++++++++-----
scripts/lib/build_perf/report.py | 4 +-
scripts/oe-build-perf-report | 6 +-
4 files changed, 143 insertions(+), 79 deletions(-)

--
2.44.0

163 changes: 163 additions & 0 deletions 0001-oe-build-perf-report-Add-apache-echarts-to-make-repo.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
From 1bebc64d0ac5b4a844bcda9673e0f4a89627e8b5 Mon Sep 17 00:00:00 2001
From: Ninette Adhikari <[email protected]>
Date: Tue, 19 Mar 2024 16:18:21 +0100
Subject: [PATCH 1/3] oe-build-perf-report: Add apache echarts to make report
interactive

- Add Apache echarts (https://echarts.apache.org/en/index.html) library to create build performance charts.
- Restructure data to time and value array format so that it can be used by echarts.
- This commit also converts test duration to minutes to map against the values axis.
- Zoom is added to the line charts.

Signed-off-by: Ninette Adhikari <[email protected]>
---
.../build_perf/html/measurement_chart.html | 116 +++++++++++-------
scripts/lib/build_perf/html/report.html | 6 +-
2 files changed, 72 insertions(+), 50 deletions(-)

diff --git a/scripts/lib/build_perf/html/measurement_chart.html b/scripts/lib/build_perf/html/measurement_chart.html
index 65f1a227ad..ffec3d09db 100644
--- a/scripts/lib/build_perf/html/measurement_chart.html
+++ b/scripts/lib/build_perf/html/measurement_chart.html
@@ -1,50 +1,76 @@
-<script type="text/javascript">
- chartsDrawing += 1;
- google.charts.setOnLoadCallback(drawChart_{{ chart_elem_id }});
- function drawChart_{{ chart_elem_id }}() {
- var data = new google.visualization.DataTable();
+<script type="module">
+ // Get raw data
+ const rawData = [
+ {% for sample in measurement.samples %}
+ [{{ sample.commit_num }}, {{ sample.mean.gv_value() }}, {{ sample.start_time }}],
+ {% endfor %}
+ ];

- // Chart options
- var options = {
- theme : 'material',
- legend: 'none',
- hAxis: { format: '', title: 'Commit number',
- minValue: {{ chart_opts.haxis.min }},
- maxValue: {{ chart_opts.haxis.max }} },
- {% if measurement.type == 'time' %}
- vAxis: { format: 'h:mm:ss' },
- {% else %}
- vAxis: { format: '' },
- {% endif %}
- pointSize: 5,
- chartArea: { left: 80, right: 15 },
- };
+ const convertToMinute = (time) => {
+ return time[0]*60 + time[1] + time[2]/60 + time[3]/3600;
+ }

- // Define data columns
- data.addColumn('number', 'Commit');
- data.addColumn('{{ measurement.value_type.gv_data_type }}',
- '{{ measurement.value_type.quantity }}');
- // Add data rows
- data.addRows([
- {% for sample in measurement.samples %}
- [{{ sample.commit_num }}, {{ sample.mean.gv_value() }}],
- {% endfor %}
- ]);
+ // Convert raw data to the format: [time, value]
+ const data = rawData.map(([commit, value, time]) => {
+ return [
+ new Date(time * 1000).getTime(), // The Date object takes values in milliseconds rather than seconds. So to use a Unix timestamp we have to multiply it by 1000.
+ Array.isArray(value) ? convertToMinute(value) : value // Assuming the array values are duration in the format [hours, minutes, seconds, milliseconds]
+ ]
+ });

- // Finally, draw the chart
- chart_div = document.getElementById('{{ chart_elem_id }}');
- var chart = new google.visualization.LineChart(chart_div);
- google.visualization.events.addListener(chart, 'ready', function () {
- //chart_div = document.getElementById('{{ chart_elem_id }}');
- //chart_div.innerHTML = '<img src="' + chart.getImageURI() + '">';
- png_div = document.getElementById('{{ chart_elem_id }}_png');
- png_div.outerHTML = '<a id="{{ chart_elem_id }}_png" href="' + chart.getImageURI() + '">PNG</a>';
- console.log("CHART READY: {{ chart_elem_id }}");
- chartsDrawing -= 1;
- if (chartsDrawing == 0)
- console.log("ALL CHARTS READY");
- });
- chart.draw(data, options);
-}
+ // Set chart options
+ const option = {
+ tooltip: {
+ trigger: 'axis',
+ position: function (pt) {
+ return [pt[0], '10%'];
+ },
+ valueFormatter: (value) => value.toFixed(2)
+ },
+ xAxis: {
+ type: 'time',
+ },
+ yAxis: {
+ name: '{{ measurement.value_type.quantity }}' == 'time' ? 'Duration (minutes)' : 'Disk size (MB)',
+ type: 'value',
+ min: function(value) {
+ return Math.round(value.min - 0.5);
+ },
+ max: function(value) {
+ return Math.round(value.max + 0.5);
+ }
+ },
+ dataZoom: [
+ {
+ type: 'inside',
+ start: 0,
+ end: 100
+ },
+ {
+ start: 0,
+ end: 100
+ }
+ ],
+ series: [
+ {
+ name: '{{ measurement.value_type.quantity }}',
+ type: 'line',
+ smooth: true,
+ symbol: 'none',
+ data: data
+ }
+ ]
+ };
+
+ // Draw chart
+ const chart_div = document.getElementById('{{ chart_elem_id }}');
+ const measurement_chart= echarts.init(chart_div, null, {
+ height: 320
+ });
+ // Change chart size with browser resize
+ window.addEventListener('resize', function() {
+ measurement_chart.resize();
+ });
+ measurement_chart.setOption(option);
</script>

diff --git a/scripts/lib/build_perf/html/report.html b/scripts/lib/build_perf/html/report.html
index d1ba6f2578..653fd985bc 100644
--- a/scripts/lib/build_perf/html/report.html
+++ b/scripts/lib/build_perf/html/report.html
@@ -3,11 +3,7 @@
<head>
{# Scripts, for visualization#}
<!--START-OF-SCRIPTS-->
-<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
-<script type="text/javascript">
-google.charts.load('current', {'packages':['corechart']});
-var chartsDrawing = 0;
-</script>
+<script src=" https://cdn.jsdelivr.net/npm/[email protected]/dist/echarts.min.js "></script>

{# Render measurement result charts #}
{% for test in test_data %}
--
2.44.0

71 changes: 71 additions & 0 deletions 0002-oe-build-perf-report-Display-more-than-300-commits-a.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
From 8704001521719bec22d572dda1ea30dad26823cc Mon Sep 17 00:00:00 2001
From: Ninette Adhikari <[email protected]>
Date: Tue, 19 Mar 2024 16:26:54 +0100
Subject: [PATCH 2/3] oe-build-perf-report: Display more than 300 commits and
date instead of commit number

- This commit updates measurement statistics data to include start_time so that time can be displayed instead of commit numbers on the chart.
- It also updates default commit history length to 300.

Signed-off-by: Ninette Adhikari <[email protected]>
---
scripts/lib/build_perf/report.py | 4 +++-
scripts/oe-build-perf-report | 6 ++++--
2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/scripts/lib/build_perf/report.py b/scripts/lib/build_perf/report.py
index ab77424cc7..82c56830d7 100644
--- a/scripts/lib/build_perf/report.py
+++ b/scripts/lib/build_perf/report.py
@@ -294,7 +294,7 @@ class SizeVal(MeasurementVal):
return "null"
return self / 1024

-def measurement_stats(meas, prefix=''):
+def measurement_stats(meas, prefix='', time=0):
"""Get statistics of a measurement"""
if not meas:
return {prefix + 'sample_cnt': 0,
@@ -319,6 +319,7 @@ def measurement_stats(meas, prefix=''):
stats['quantity'] = val_cls.quantity
stats[prefix + 'sample_cnt'] = len(values)

+ start_time = time # Add start time for both type sysres and disk usage
mean_val = val_cls(mean(values))
min_val = val_cls(min(values))
max_val = val_cls(max(values))
@@ -334,6 +335,7 @@ def measurement_stats(meas, prefix=''):
stats[prefix + 'max'] = max_val
stats[prefix + 'minus'] = val_cls(mean_val - min_val)
stats[prefix + 'plus'] = val_cls(max_val - mean_val)
+ stats[prefix + 'start_time'] = start_time

return stats

diff --git a/scripts/oe-build-perf-report b/scripts/oe-build-perf-report
index 7812ea4540..266700d294 100755
--- a/scripts/oe-build-perf-report
+++ b/scripts/oe-build-perf-report
@@ -336,7 +336,9 @@ def print_html_report(data, id_comp, buildstats):
test_i = test_data['tests'][test]
meas_i = test_i['measurements'][meas]
commit_num = get_data_item(meta, 'layers.meta.commit_count')
- samples.append(measurement_stats(meas_i))
+ # Add start_time for both test measurement types of sysres and disk usage
+ start_time = test_i['start_time'][0]
+ samples.append(measurement_stats(meas_i, '', start_time))
samples[-1]['commit_num'] = commit_num

absdiff = samples[-1]['val_cls'](samples[-1]['mean'] - samples[id_comp]['mean'])
@@ -473,7 +475,7 @@ Examine build performance test results from a Git repository"""
group.add_argument('--branch', '-B', default='master', help="Branch to find commit in")
group.add_argument('--branch2', help="Branch to find comparision revisions in")
group.add_argument('--machine', default='qemux86')
- group.add_argument('--history-length', default=25, type=int,
+ group.add_argument('--history-length', default=300, type=int,
help="Number of tested revisions to plot in html report")
group.add_argument('--commit',
help="Revision to search for")
--
2.44.0

Loading