* [PATCH 1/6] scripts/layer-overview: improve layer detection
@ 2022-01-19 21:20 Ross Burton
2022-01-19 21:20 ` [PATCH 2/6] scripts/machine-summary: harvest more patch data Ross Burton
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Ross Burton @ 2022-01-19 21:20 UTC (permalink / raw)
To: meta-arm
Refactor the script somewhat, and detect whether the starting directory
is a single layer, or a collection of layers.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
scripts/layer-overview.py | 60 ++++++++++++++++++++++++++-------------
1 file changed, 41 insertions(+), 19 deletions(-)
diff --git a/scripts/layer-overview.py b/scripts/layer-overview.py
index 24a9a5b6..326470e6 100755
--- a/scripts/layer-overview.py
+++ b/scripts/layer-overview.py
@@ -6,31 +6,24 @@ Print an overview of the layer to help writing release notes.
Output includes sublayers, machines, recipes.
"""
+import argparse
+import sys
+
# TODO:
# - More human-readable output
# - Diff mode, give two revisions and list the changes
-# - Support finding no sublayers, meaning the path is a single layer
-
-import argparse
-parser = argparse.ArgumentParser()
-parser.add_argument("repository")
-parser.add_argument("revision", nargs="?")
-args = parser.parse_args()
-if args.revision:
- import gitpathlib
- base = gitpathlib.GitPath(args.repository, args.revision)
-else:
- import pathlib
- base = pathlib.Path(args.repository)
+def is_layer(path):
+ """
+ Determine if this path looks like a layer (is a directory and contains conf/layer.conf).
+ """
+ return path.is_dir() and (path / "conf" / "layer.conf").exists()
-print("Sub-Layers")
-sublayers = sorted(p for p in base.glob("meta-*") if p.is_dir())
-for l in sublayers:
- print(f" {l.name}")
-print()
-for layer in sublayers:
+def print_layer(layer):
+ """
+ Print a summary of the layer.
+ """
print(layer.name)
machines = sorted(p for p in layer.glob("conf/machine/*.conf"))
@@ -50,3 +43,32 @@ for layer in sublayers:
else:
print(f" {r.stem}")
print()
+
+
+parser = argparse.ArgumentParser()
+parser.add_argument("repository")
+parser.add_argument("revision", nargs="?")
+args = parser.parse_args()
+
+if args.revision:
+ import gitpathlib
+ base = gitpathlib.GitPath(args.repository, args.revision)
+else:
+ import pathlib
+ base = pathlib.Path(args.repository)
+
+if is_layer(base):
+ print_layer(base)
+else:
+ sublayers = sorted(p for p in base.glob("meta-*") if is_layer(p))
+ if sublayers:
+ print("Sub-Layers")
+ for l in sublayers:
+ print(f" {l.name}")
+ print()
+
+ for layer in sublayers:
+ print_layer(layer)
+ else:
+ print(f"No layers found in {base}", file=sys.stderr)
+ sys.exit(1)
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/6] scripts/machine-summary: harvest more patch data
2022-01-19 21:20 [PATCH 1/6] scripts/layer-overview: improve layer detection Ross Burton
@ 2022-01-19 21:20 ` Ross Burton
2022-01-19 21:20 ` [PATCH 3/6] scripts/machine-summary: refactor output to classes Ross Burton
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Ross Burton @ 2022-01-19 21:20 UTC (permalink / raw)
To: meta-arm
Instead of just putting whether there are patches or not into the
context, store the list of patches, the layer they came from, and the
upstream status.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
scripts/machine-summary.py | 30 ++++++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/scripts/machine-summary.py b/scripts/machine-summary.py
index 7d2eb53f..e0c7870d 100755
--- a/scripts/machine-summary.py
+++ b/scripts/machine-summary.py
@@ -1,9 +1,10 @@
#! /usr/bin/env python3
-import os
-import sys
import argparse
import datetime
+import os
+import re
+import sys
import jinja2
@@ -42,8 +43,28 @@ def layer_path(layername, d):
return path
return None
+def extract_patch_info(src_uri, d):
+ """
+ Parse the specified patch entry from a SRC_URI and return (base name, layer name, status) tuple
+ """
+ import bb.fetch, bb.utils
+
+ info = {}
+ localpath = bb.fetch.decodeurl(src_uri)[2]
+ info["name"] = os.path.basename(localpath)
+ info["layer"] = bb.utils.get_file_layer(localpath, d)
+
+ status = "Unknown"
+ with open(localpath, errors="ignore") as f:
+ m = re.search(r"^[\t ]*Upstream[-_ ]Status:?[\t ]*(\w*)", f.read(), re.IGNORECASE | re.MULTILINE)
+ if m:
+ # TODO: validate
+ status = m.group(1)
+ info["status"] = status
+ return info
+
def harvest_data(machines, recipes):
- import bb.tinfoil, bb.utils
+ import bb.tinfoil
with bb.tinfoil.Tinfoil() as tinfoil:
tinfoil.prepare(config_only=True)
corepath = layer_path("core", tinfoil.config_data)
@@ -83,7 +104,8 @@ def harvest_data(machines, recipes):
details = versions[machine][recipe] = {}
details["recipe"] = d.getVar("PN")
details["version"] = trim_pv(d.getVar("PV"))
- details["patched"] = bool(oe.patch.src_patches(d))
+ details["patches"] = [extract_patch_info(p, d) for p in oe.patch.src_patches(d)]
+ details["patched"] = bool(details["patches"])
# Now backfill the upstream versions
for machine in versions:
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/6] scripts/machine-summary: refactor output to classes
2022-01-19 21:20 [PATCH 1/6] scripts/layer-overview: improve layer detection Ross Burton
2022-01-19 21:20 ` [PATCH 2/6] scripts/machine-summary: harvest more patch data Ross Burton
@ 2022-01-19 21:20 ` Ross Burton
2022-01-19 21:20 ` [PATCH 4/6] scripts/machine-summary: put more version information into the context Ross Burton
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Ross Burton @ 2022-01-19 21:20 UTC (permalink / raw)
To: meta-arm
To prepare for future expansion, refactor the output code to be delegated
to Format subclasses.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
scripts/machine-summary.py | 75 +++++++++++++++++++++++++++-----------
1 file changed, 53 insertions(+), 22 deletions(-)
diff --git a/scripts/machine-summary.py b/scripts/machine-summary.py
index e0c7870d..e5161440 100755
--- a/scripts/machine-summary.py
+++ b/scripts/machine-summary.py
@@ -3,28 +3,12 @@
import argparse
import datetime
import os
+import pathlib
import re
import sys
import jinja2
-def get_template(name):
- template_dir = os.path.dirname(os.path.abspath(__file__))
- env = jinja2.Environment(
- loader=jinja2.FileSystemLoader(template_dir),
- autoescape=jinja2.select_autoescape(),
- trim_blocks=True,
- lstrip_blocks=True
- )
- def is_old(version, upstream):
- if "+git" in version:
- # strip +git and see if this is a post-release snapshot
- version = version.replace("+git", "")
- return version != upstream
- env.tests["old"] = is_old
-
- return env.get_template(f"machine-summary-{name}.jinja")
-
def trim_pv(pv):
"""
Strip anything after +git from the PV
@@ -126,19 +110,66 @@ recipes = ("virtual/kernel",
"gcc-aarch64-none-elf-native",
"gcc-arm-none-eabi-native")
+
+class Format:
+ """
+ The name of this format
+ """
+ name = None
+ """
+ Registry of names to classes
+ """
+ registry = {}
+
+ def __init_subclass__(cls, **kwargs):
+ super().__init_subclass__(**kwargs)
+ assert cls.name
+ cls.registry[cls.name] = cls
+
+ @classmethod
+ def get_format(cls, name):
+ return cls.registry[name]()
+
+ def render(self, context, output: pathlib.Path):
+ # Default implementation for convenience
+ with open(output, "wt") as f:
+ f.write(self.get_template(f"machine-summary-{self.name}.jinja").render(context))
+
+ def get_template(self, name):
+ template_dir = os.path.dirname(os.path.abspath(__file__))
+ env = jinja2.Environment(
+ loader=jinja2.FileSystemLoader(template_dir),
+ autoescape=jinja2.select_autoescape(),
+ trim_blocks=True,
+ lstrip_blocks=True
+ )
+ def is_old(version, upstream):
+ if "+git" in version:
+ # strip +git and see if this is a post-release snapshot
+ version = version.replace("+git", "")
+ return version != upstream
+ env.tests["old"] = is_old
+
+ return env.get_template(name)
+
+class TextOverview(Format):
+ name = "overview.txt"
+
+class HtmlUpdates(Format):
+ name = "updates.html"
+
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="machine-summary")
parser.add_argument("machines", nargs="+", help="machine names", metavar="MACHINE")
- parser.add_argument("-t", "--template", required=True)
- parser.add_argument("-o", "--output", required=True, type=argparse.FileType('w', encoding='UTF-8'))
+ parser.add_argument("-t", "--type", required=True, choices=Format.registry.keys())
+ parser.add_argument("-o", "--output", type=pathlib.Path, required=True)
args = parser.parse_args()
- template = get_template(args.template)
-
context = {}
# TODO: include git describe for meta-arm
context["timestamp"] = str(datetime.datetime.now().strftime("%c"))
context["recipes"] = sorted(recipes)
context["releases"], context["data"] = harvest_data(args.machines, recipes)
- args.output.write(template.render(context))
+ formatter = Format.get_format(args.type)
+ formatter.render(context, args.output)
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/6] scripts/machine-summary: put more version information into the context
2022-01-19 21:20 [PATCH 1/6] scripts/layer-overview: improve layer detection Ross Burton
2022-01-19 21:20 ` [PATCH 2/6] scripts/machine-summary: harvest more patch data Ross Burton
2022-01-19 21:20 ` [PATCH 3/6] scripts/machine-summary: refactor output to classes Ross Burton
@ 2022-01-19 21:20 ` Ross Burton
2022-01-19 21:20 ` [PATCH 5/6] scripts/machine-summary: write per-machine reports with more details Ross Burton
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Ross Burton @ 2022-01-19 21:20 UTC (permalink / raw)
To: meta-arm
As well as storing the truncated PV, also store the original PV and
whether the recipe needs updating, to avoid the templates needing to
do that logic.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
scripts/machine-summary.py | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/scripts/machine-summary.py b/scripts/machine-summary.py
index e5161440..2fef8491 100755
--- a/scripts/machine-summary.py
+++ b/scripts/machine-summary.py
@@ -15,6 +15,15 @@ def trim_pv(pv):
"""
return "".join(pv.partition("+git")[:2])
+def needs_update(version, upstream):
+ """
+ Do a dumb comparison to determine if the version needs to be updated.
+ """
+ if "+git" in version:
+ # strip +git and see if this is a post-release snapshot
+ version = version.replace("+git", "")
+ return version != upstream
+
def layer_path(layername, d):
"""
Return the path to the specified layer, or None if the layer isn't present.
@@ -88,14 +97,16 @@ def harvest_data(machines, recipes):
details = versions[machine][recipe] = {}
details["recipe"] = d.getVar("PN")
details["version"] = trim_pv(d.getVar("PV"))
+ details["fullversion"] = d.getVar("PV")
details["patches"] = [extract_patch_info(p, d) for p in oe.patch.src_patches(d)]
details["patched"] = bool(details["patches"])
# Now backfill the upstream versions
for machine in versions:
for recipe in versions[machine]:
- versions[machine][recipe]["upstream"] = upstreams[recipe]
-
+ data = versions[machine][recipe]
+ data["upstream"] = upstreams[recipe]
+ data["needs_update"] = needs_update(data["version"], data["upstream"])
return upstreams, versions
# TODO can this be inferred from the list of recipes in the layer
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 5/6] scripts/machine-summary: write per-machine reports with more details
2022-01-19 21:20 [PATCH 1/6] scripts/layer-overview: improve layer detection Ross Burton
` (2 preceding siblings ...)
2022-01-19 21:20 ` [PATCH 4/6] scripts/machine-summary: put more version information into the context Ross Burton
@ 2022-01-19 21:20 ` Ross Burton
2022-01-19 21:20 ` [PATCH 6/6] CI: update for changes to machine-summary Ross Burton
2022-01-20 3:50 ` [PATCH 1/6] scripts/layer-overview: improve layer detection Jon Mason
5 siblings, 0 replies; 7+ messages in thread
From: Ross Burton @ 2022-01-19 21:20 UTC (permalink / raw)
To: meta-arm
Rename the updates.html format to just 'report'.
This report has the existing overview as the index.html, and then
per-machine files are written with the patch breakdown.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
scripts/machine-summary-updates.html.jinja | 47 -----------------
scripts/machine-summary.py | 21 +++++++-
scripts/report-base.html.jinja | 35 +++++++++++++
scripts/report-details.html.jinja | 61 ++++++++++++++++++++++
scripts/report-index.html.jinja | 44 ++++++++++++++++
5 files changed, 160 insertions(+), 48 deletions(-)
delete mode 100644 scripts/machine-summary-updates.html.jinja
create mode 100644 scripts/report-base.html.jinja
create mode 100644 scripts/report-details.html.jinja
create mode 100644 scripts/report-index.html.jinja
diff --git a/scripts/machine-summary-updates.html.jinja b/scripts/machine-summary-updates.html.jinja
deleted file mode 100644
index d3ac2ff6..00000000
--- a/scripts/machine-summary-updates.html.jinja
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Pending Machine Upgrades Report</title>
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css">
- </head>
- <body>
- <section class="section">
- <div class="content">
- <h1 class="title">Pending Machine Upgrades Report</h1>
- <p>Generated at {{ timestamp }}.</p>
- </div>
-
- <table class="table is-striped">
- <thead>
- <tr>
- <th>Machine</th>
- {% for recipe in recipes|sort %}
- <th>{{ recipe }} ({{releases[recipe]|default("?")}})</th>
- {% endfor %}
- </tr>
- </thead>
- <tbody>
- {% for machine, data in data|dictsort %}
- <tr>
- <th>{{ machine }}</th>
- {% for recipe in recipes|sort %}
- {% if recipe in data %}
- {% set details = data[recipe] %}
- {% set is_old = details.version is old(details.upstream) %}
- <td class="{% if is_old %}has-text-weight-bold{% endif %}">
- {{ details.recipe if details.recipe != recipe}}
- {{ details.version }}
- {{ "(patched)" if details.patched }}
- </td>
- {% else %}
- <td>-</td>
- {% endif %}
- {% endfor %}
- </tr>
- {% endfor %}
- </tbody>
- </table>
- </section>
- </body>
-</html>
diff --git a/scripts/machine-summary.py b/scripts/machine-summary.py
index 2fef8491..1f98f247 100755
--- a/scripts/machine-summary.py
+++ b/scripts/machine-summary.py
@@ -167,7 +167,26 @@ class TextOverview(Format):
name = "overview.txt"
class HtmlUpdates(Format):
- name = "updates.html"
+ name = "report"
+
+ def render(self, context, output: pathlib.Path):
+ if output.exists() and not output.is_dir():
+ print(f"{output} is not a directory", file=sys.stderr)
+ sys.exit(1)
+
+ if not output.exists():
+ output.mkdir(parents=True)
+
+ with open(output / "index.html", "wt") as f:
+ f.write(self.get_template(f"report-index.html.jinja").render(context))
+
+ subcontext = context.copy()
+ del subcontext["data"]
+ for machine, subdata in context["data"].items():
+ subcontext["machine"] = machine
+ subcontext["data"] = subdata
+ with open(output / f"{machine}.html", "wt") as f:
+ f.write(self.get_template(f"report-details.html.jinja").render(subcontext))
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="machine-summary")
diff --git a/scripts/report-base.html.jinja b/scripts/report-base.html.jinja
new file mode 100644
index 00000000..be081251
--- /dev/null
+++ b/scripts/report-base.html.jinja
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>{% block title %}{% endblock %}</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css">
+ </head>
+ <body>
+ <section class="section">
+ {# TODO use position: sticky to glue this to the top #}
+ <nav class="breadcrumb is-large">
+ <ul>
+ <li class="{{ "is-active" if machine is undefined }}">
+ <a href="index.html">Recipe Report</a>
+ </li>
+ {% if machine is defined %}
+ <li class="is-active">
+ <a href="#">{{machine}}</a>
+ </li>
+ {% endif %}
+ </ul>
+ </nav>
+
+ <div class="content">
+ {% block content %}{% endblock %}
+ </div>
+ </section>
+
+ <footer class="footer">
+ <div class="content has-text-centered">
+ Generated by <code>machine-summary</code> at {{ timestamp }}.
+ </div>
+ </footer>
+ </body>
+</html>
diff --git a/scripts/report-details.html.jinja b/scripts/report-details.html.jinja
new file mode 100644
index 00000000..ba66fcf0
--- /dev/null
+++ b/scripts/report-details.html.jinja
@@ -0,0 +1,61 @@
+{% extends "report-base.html.jinja" %}
+{% block title %}Recipe Report for {{ machine }}{% endblock %}
+
+{# Write a tag element using the Upstream-Status to determine the class. #}
+{% macro make_patch_tag(status) -%}
+ {% set status = status.split()[0] %}
+ {% if status in ("Unknown", "Pending") %}
+ {% set class = "is-danger" %}
+ {% elif status in ("Backport", "Accepted", "Inappropriate") %}
+ {% set class = "is-success" %}
+ {% elif status in ("Submitted", "Denied") %}
+ {% set class = "is-info" %}
+ {% else %}
+ {% set class = "is-info" %}
+ {% endif %}
+ <span class="tag {{ class }}">{{ status }}</span>
+{%- endmacro %}
+
+{% block content %}
+ <!-- TODO table of contents -->
+
+ {% for name, data in data|dictsort if data.needs_update or data.patched %}
+ <h2 class="title is-4">
+ {{ data.recipe }} {{ data.fullversion }}
+ {% if name != data.recipe %}
+ (provides {{ name }})
+ {% endif %}
+ {% if data.needs_update %}<span class="tag is-danger">Upgrade Needed</span>{% endif %}
+ <a id="recipe-{{ data.recipe }}" class="has-text-grey-lighter">#</a>
+ </h2>
+
+ {% if data.needs_update %}
+ <p>
+ Recipe is version {{ data.fullversion }}, latest upstream release is <strong>{{ data.upstream }}</strong>.
+ </p>
+ {% endif%}
+
+ {% if data.patched %}
+ <table class="table is-striped is-bordered">
+ <thead>
+ <tr>
+ <th>Patch</th>
+ <th style="width: 20em">Layer</th>
+ <th style="width: 10em">Status</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for pinfo in data.patches %}
+ <tr>
+ <!-- TODO links to cgit -->
+ <td>{{ pinfo.name }}</td>
+ <td>{{ pinfo.layer }}</td>
+ <!-- TODO: tooltip with full status? -->
+ <td class="has-text-centered">{{ make_patch_tag(pinfo.status)}}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ {% endif %}
+ {% endfor %}
+{% endblock %}
diff --git a/scripts/report-index.html.jinja b/scripts/report-index.html.jinja
new file mode 100644
index 00000000..3e39174f
--- /dev/null
+++ b/scripts/report-index.html.jinja
@@ -0,0 +1,44 @@
+{% extends "report-base.html.jinja" %}
+{% block title %}Recipe Report{% endblock %}
+
+{% block content %}
+ <table class="table is-striped">
+ <thead>
+ <tr>
+ <th>Machine</th>
+ {% for recipe in recipes|sort %}
+ <th>{{ recipe }} ({{releases[recipe]|default("?")}})</th>
+ {% endfor %}
+ </tr>
+ </thead>
+ <tbody>
+ {% for machine, data in data|dictsort %}
+ <tr>
+ <th><a href="{{machine}}.html">{{ machine }}</a></th>
+ {% for recipe in recipes|sort %}
+ {% if recipe in data %}
+ {% set details = data[recipe] %}
+ <td style="text-align: center">
+ <a href="{{machine}}.html#recipe-{{details.recipe}}">
+ {{ details.recipe if details.recipe != recipe}}
+ {{ details.version }}
+ </a>
+ {% if details.patches or details.needs_update %}
+ <br>
+ {% if details.patches %}
+ <span class="tag is-info">Patched</span>
+ {% endif %}
+ {% if details.needs_update %}
+ <span class="tag is-danger">Upgrade</span>
+ {% endif %}
+ {% endif %}
+ </td>
+ {% else %}
+ <td>-</td>
+ {% endif %}
+ {% endfor %}
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+{% endblock %}
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 6/6] CI: update for changes to machine-summary
2022-01-19 21:20 [PATCH 1/6] scripts/layer-overview: improve layer detection Ross Burton
` (3 preceding siblings ...)
2022-01-19 21:20 ` [PATCH 5/6] scripts/machine-summary: write per-machine reports with more details Ross Burton
@ 2022-01-19 21:20 ` Ross Burton
2022-01-20 3:50 ` [PATCH 1/6] scripts/layer-overview: improve layer detection Jon Mason
5 siblings, 0 replies; 7+ messages in thread
From: Ross Burton @ 2022-01-19 21:20 UTC (permalink / raw)
To: meta-arm
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
.gitlab-ci.yml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bec61400..266e0868 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -86,9 +86,11 @@ pending-updates:
extends: .setup
artifacts:
paths:
- - update-report.html
+ - update-report
script:
- - kas shell ci/qemuarm64.yml:ci/meta-openembedded.yml -c "$CI_PROJECT_DIR/scripts/machine-summary.py -t updates.html -o $CI_PROJECT_DIR/update-report.html $($CI_PROJECT_DIR/ci/listmachines.py meta-arm meta-arm-bsp)"
+ - rm -fr update-report
+ - kas shell ci/qemuarm64.yml:ci/meta-openembedded.yml --command \
+ "$CI_PROJECT_DIR/scripts/machine-summary.py -t report -o $CI_PROJECT_DIR/update-report $($CI_PROJECT_DIR/ci/listmachines.py meta-arm meta-arm-bsp)"
# Do this on x86 whilst the compilers are x86-only
tags:
- x86_64
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/6] scripts/layer-overview: improve layer detection
2022-01-19 21:20 [PATCH 1/6] scripts/layer-overview: improve layer detection Ross Burton
` (4 preceding siblings ...)
2022-01-19 21:20 ` [PATCH 6/6] CI: update for changes to machine-summary Ross Burton
@ 2022-01-20 3:50 ` Jon Mason
5 siblings, 0 replies; 7+ messages in thread
From: Jon Mason @ 2022-01-20 3:50 UTC (permalink / raw)
To: meta-arm, Ross Burton
On Wed, 19 Jan 2022 21:20:45 +0000, Ross Burton wrote:
> Refactor the script somewhat, and detect whether the starting directory
> is a single layer, or a collection of layers.
Applied, thanks!
[1/6] scripts/layer-overview: improve layer detection
commit: 02350369574cdcea2091048a04468ee515c7d711
[2/6] scripts/machine-summary: harvest more patch data
commit: cb29175ab4c9a68e26b66aceb97463b32b3639c9
[3/6] scripts/machine-summary: refactor output to classes
commit: 0d2d0fd69102cadb4e699fa41402227f60e56b69
[4/6] scripts/machine-summary: put more version information into the context
commit: b1b0f37da7f4c670216de4225af024560e97248e
[5/6] scripts/machine-summary: write per-machine reports with more details
commit: c4b34740cfc78485d22453d9bc284adc12216dcd
[6/6] CI: update for changes to machine-summary
commit: aaac0541658b6d6e655662d53dcd27e5cd1bf018
Best regards,
--
Jon Mason <jon.mason@arm.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-01-20 3:50 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-19 21:20 [PATCH 1/6] scripts/layer-overview: improve layer detection Ross Burton
2022-01-19 21:20 ` [PATCH 2/6] scripts/machine-summary: harvest more patch data Ross Burton
2022-01-19 21:20 ` [PATCH 3/6] scripts/machine-summary: refactor output to classes Ross Burton
2022-01-19 21:20 ` [PATCH 4/6] scripts/machine-summary: put more version information into the context Ross Burton
2022-01-19 21:20 ` [PATCH 5/6] scripts/machine-summary: write per-machine reports with more details Ross Burton
2022-01-19 21:20 ` [PATCH 6/6] CI: update for changes to machine-summary Ross Burton
2022-01-20 3:50 ` [PATCH 1/6] scripts/layer-overview: improve layer detection Jon Mason
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.