Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/1a_FeatureRequest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ body:
- label: Security Analysis
- label: Detailed Design
- label: Implementation and Testing
- label: all
- label: all
validations:
required: true
- type: textarea
Expand Down Expand Up @@ -76,4 +76,4 @@ body:
- '3.0'
default: 0
validations:
required: false
required: false
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/1b_ComponentenRequest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ body:
- label: Security Analysis
- label: Detailed Design
- label: Implementation and Testing
- label: all
- label: all
validations:
required: true
- type: textarea
Expand Down Expand Up @@ -76,4 +76,4 @@ body:
- '3.0'
default: 0
validations:
required: false
required: false
5 changes: 2 additions & 3 deletions .github/ISSUE_TEMPLATE/2_ProductIncrement.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ body:
label: Product Increment Description
description: |
- New Functionality / Features
- API changes
- Major Fixes
- API changes
- Major Fixes
validations:
required: true
- type: textarea
Expand All @@ -34,4 +34,3 @@ body:
description: Details on when the Product Increment is considered "done"
validations:
required: true

10 changes: 5 additions & 5 deletions .github/ISSUE_TEMPLATE/5_Bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ body:
required: true
- type: dropdown
attributes:
label: First Affected Release
label: First Affected Release
options:
- not released (main)
- not released (main)
- pre-0.5
- 0.5
- 0.6
Expand All @@ -90,9 +90,9 @@ body:
required: false
- type: dropdown
attributes:
label: Last Affected Release
label: Last Affected Release
options:
- not released (main)
- not released (main)
- 0.5
- 0.6
- 0.7
Expand All @@ -106,7 +106,7 @@ body:
attributes:
label: Expected Fixed Release
options:
- before release (main)
- before release (main)
- 0.5
- 0.6
- 0.7
Expand Down
2 changes: 1 addition & 1 deletion .github/references/agent-card.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -152,4 +152,4 @@
}
}
}
}
}
2 changes: 1 addition & 1 deletion .github/references/repo-manifest.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -148,4 +148,4 @@
}
}
}
}
}
2 changes: 1 addition & 1 deletion .github/score/repo-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@
"typecheck"
]
}
}
}
18 changes: 18 additions & 0 deletions .github/workflows/daily.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Daily Maintenance

on:
schedule:
- cron: '0 3 * * *'
workflow_dispatch:

permissions:
contents: write
issues: write
pull-requests: write
pages: write
id-token: write
actions: write

jobs:
daily:
uses: eclipse-score/cicd-workflows/.github/workflows/daily.yml@37eaadadfefc263d94a858d25665735659e916fa # main (2026-09-02)
13 changes: 13 additions & 0 deletions .github/workflows/on-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: PR Checks

on:
pull_request:
types: [opened, reopened, synchronize]
merge_group:
types: [checks_requested]

jobs:
common:
uses: eclipse-score/cicd-workflows/.github/workflows/on-pr.yml@37eaadadfefc263d94a858d25665735659e916fa # main (2026-09-02)
permissions:
contents: read
2 changes: 1 addition & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
"recommendations": [
"bierner.github-markdown-preview"
]
}
}
4 changes: 2 additions & 2 deletions profile/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Welcome to the Eclipse Safe Open Vehicle Core (S-CORE) Project
# Welcome to the Eclipse Safe Open Vehicle Core (S-CORE) Project

This Github organization contains artifacts developed by the [Eclipse S-CORE Project](https://projects.eclipse.org/projects/automotive.score). The project aims to develop an open-source core stack for Software Defined Vehicles (SDVs), specifically targeting embedded high-performance Electronic Control Units (ECUs).

## Getting Started
Dive into our key resources below to understand our project, learn how to contribute, and access the latest releases.

**User's Guide**<br/>
Explore the official documentation to understand the core components and features of Eclipse S-CORE. <br/>[**Read the Guide &raquo;**](https://eclipse-score.github.io/score/main/users_guide/index.html)
Explore the official documentation to understand the core components and features of Eclipse S-CORE. <br/>[**Read the Guide &raquo;**](https://eclipse-score.github.io/score/main/users_guide/index.html)

**Download Latest Release**<br/>
Get the latest stable release to start building or check the release notes for recent changes. <br/> [**View Releases &raquo;**](https://github.com/eclipse-score/reference_integration/releases) <br/><br/>
Expand Down
18 changes: 4 additions & 14 deletions src/generate_repo_overview/_html_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,9 @@

CSS = (_TEMPLATES / "styles.css").read_text(encoding="utf-8")

BAZEL_ICON = (
'<img src="bazel_logo.svg"'
' alt="Bazel" class="icon-bazel">'
)
BAZEL_ICON = '<img src="bazel_logo.svg" alt="Bazel" class="icon-bazel">'

BAZEL_DETAIL_ICON = (
'<img src="../bazel_logo.svg"'
' alt="Bazel" class="icon-bazel">'
)
BAZEL_DETAIL_ICON = '<img src="../bazel_logo.svg" alt="Bazel" class="icon-bazel">'


GITHUB_ICON = (
Expand All @@ -32,7 +26,7 @@
" 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59"
".82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27"
".68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51"
'.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07'
".56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07"
'-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0016 8c0-4.42-3.58-8-8-8z"/>'
"</svg>"
)
Expand All @@ -56,7 +50,6 @@ def uses_docs_as_code(entry: RepoEntry) -> bool:
)



_LANGUAGE_COLORS: dict[str, str] = {
"Python": "#3572A5",
"C++": "#f34b7d",
Expand All @@ -82,10 +75,7 @@ def language_badge(lang: str | None) -> str:
if not lang:
return '<span class="text-muted">—</span>'
color = _LANGUAGE_COLORS.get(lang, "#888888")
return (
f'<span class="lang-badge" style="--lang-color:{color}">'
f"{e(lang)}</span>"
)
return f'<span class="lang-badge" style="--lang-color:{color}">{e(lang)}</span>'


def repo_name_cell(entry: RepoEntry, org_name: str, *, bazel_icon: bool = True) -> str:
Expand Down
62 changes: 29 additions & 33 deletions src/generate_repo_overview/_html_detail.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,9 +141,7 @@ def _render_release_section(entry: RepoEntry) -> str:
)
if v.commits_since_latest_release is not None:
count = v.commits_since_latest_release
badge_class = (
"green" if count == 0 else ("yellow" if count <= 20 else "red")
)
badge_class = "green" if count == 0 else ("yellow" if count <= 20 else "red")
items.append(
f'<div class="info-item">'
f'<div class="info-label">Commits Since Release</div>'
Expand Down Expand Up @@ -178,8 +176,8 @@ def _render_dep_diff_section(entry: RepoEntry) -> str:
rows.append(
f" <tr>\n"
f" <td><span class='mono'>Bazel</span></td>\n"
f" <td><span class='mono'>{e(head_bazel) if head_bazel else '<span class=\"text-muted\">—</span>'}</span></td>\n"
f" <td><span class='mono'>{e(release_bazel) if release_bazel else '<span class=\"text-muted\">—</span>'}</span></td>\n"
f" <td><span class='mono'>{e(head_bazel) if head_bazel else '<span class="text-muted">—</span>'}</span></td>\n"
f" <td><span class='mono'>{e(release_bazel) if release_bazel else '<span class="text-muted">—</span>'}</span></td>\n"
f" <td>{_dep_status_badge(bazel_status, bazel_class)}</td>\n"
f" </tr>"
)
Expand All @@ -191,16 +189,14 @@ def _render_dep_diff_section(entry: RepoEntry) -> str:
rows.append(
f" <tr>\n"
f" <td><span class='mono'>{e(name)}</span></td>\n"
f" <td><span class='mono'>{e(head_ver) if head_ver else '<span class=\"text-muted\">—</span>'}</span></td>\n"
f" <td><span class='mono'>{e(rel_ver) if rel_ver else '<span class=\"text-muted\">—</span>'}</span></td>\n"
f" <td><span class='mono'>{e(head_ver) if head_ver else '<span class="text-muted">—</span>'}</span></td>\n"
f" <td><span class='mono'>{e(rel_ver) if rel_ver else '<span class="text-muted">—</span>'}</span></td>\n"
f" <td>{_dep_status_badge(status, css_class)}</td>\n"
f" </tr>"
)

changed_count = sum(
1
for r in rows
if "badge yellow" in r or "badge green" in r or "badge red" in r
1 for r in rows if "badge yellow" in r or "badge green" in r or "badge red" in r
)

if changed_count == 0 and v.commits_since_latest_release:
Expand All @@ -220,24 +216,20 @@ def _render_dep_diff_section(entry: RepoEntry) -> str:
f" <th>Release ({release_label})</th>\n"
f" <th>Status</th>\n"
f" </tr></thead>\n"
f" <tbody>\n"
+ "\n".join(rows)
+ "\n </tbody>\n </table>"
f" <tbody>\n" + "\n".join(rows) + "\n </tbody>\n </table>"
)

return (
'<section class="detail-section">\n'
' <div class="section-header">'
'<span class="section-title">Dependencies: HEAD vs. Release</span>'
"</div>\n"
f" <div class=\"detail-body\">{summary}{table}</div>\n"
f' <div class="detail-body">{summary}{table}</div>\n'
"</section>\n\n"
)


def _dep_diff_status(
head: str | None, release: str | None
) -> tuple[str, str]:
def _dep_diff_status(head: str | None, release: str | None) -> tuple[str, str]:
if head is None and release is None:
return "—", "muted"
if release is None:
Expand All @@ -262,19 +254,21 @@ def _render_tooling_section(entry: RepoEntry, snapshot: RepoSnapshot) -> str:
]
for label in (s.label for s in snapshot.workflow_signals):
signals.append((label in c.matched_workflow_signals, label))
signals.extend([
(c.has_lint_config, "Lint Config"),
(c.has_gitlint_config, "Gitlint"),
(c.has_pre_commit_config, "Pre-commit"),
(c.has_pyproject_toml, "pyproject.toml"),
(c.has_coverage_config, "Coverage Config"),
(c.is_bazel_repo, "Bazel Repo"),
])
signals.extend(
[
(c.has_lint_config, "Lint Config"),
(c.has_gitlint_config, "Gitlint"),
(c.has_pre_commit_config, "Pre-commit"),
(c.has_pyproject_toml, "pyproject.toml"),
(c.has_coverage_config, "Coverage Config"),
(c.is_bazel_repo, "Bazel Repo"),
]
)

items = "\n".join(
f' <div class="signal-item">'
f'<span class="signal-{"yes" if val else "no"}">'
f'{"&#10003;" if val else "—"}</span> {e(label)}</div>'
f"{'&#10003;' if val else '—'}</span> {e(label)}</div>"
for val, label in signals
)
return (
Expand All @@ -289,7 +283,7 @@ def _render_lockfile_error_section(entry: RepoEntry) -> str:
c = entry.content
if c.bazel_lockfile_status == LockfileStatus.MISSING:
body = (
'<p>No <code>MODULE.bazel.lock</code> file found. '
"<p>No <code>MODULE.bazel.lock</code> file found. "
"Run <code>bazel mod deps</code> to generate it.</p>"
)
elif c.bazel_lockfile_status == LockfileStatus.TIMEOUT:
Expand All @@ -303,7 +297,7 @@ def _render_lockfile_error_section(entry: RepoEntry) -> str:
' <div class="section-header">'
'<span class="section-title">Bazel Lockfile</span>'
"</div>\n"
f" <div class=\"detail-body\">{body}</div>\n"
f' <div class="detail-body">{body}</div>\n'
"</section>\n\n"
)

Expand All @@ -317,16 +311,16 @@ def _render_ownership_section(entry: RepoEntry) -> str:
f'<div class="info-label">Codeowners</div>{handles}</div>'
)
if entry.registry.maintainers_in_bazel_registry:
handles = ", ".join(
e(h) for h in entry.registry.maintainers_in_bazel_registry
)
handles = ", ".join(e(h) for h in entry.registry.maintainers_in_bazel_registry)
parts.append(
f'<div class="info-item">'
f'<div class="info-label">Registry Maintainers</div>{handles}</div>'
)

if not parts:
parts.append('<span class="text-muted">No ownership information available</span>')
parts.append(
'<span class="text-muted">No ownership information available</span>'
)

return (
'<section class="detail-section">\n'
Expand Down Expand Up @@ -358,7 +352,9 @@ def _render_versions_section(
dep_label = tracked_dep_label(dep)
dep_ver = lookup_bazel_dep_version(entry.content.bazel_deps, dep.module_name)
latest_ver = latest_dep_versions.get(dep.module_name)
badge = version_badge(dep_ver, None, latest_dep_version=latest_ver, is_bazel=False)
badge = version_badge(
dep_ver, None, latest_dep_version=latest_ver, is_bazel=False
)
items.append(
f'<div class="info-item">'
f'<div class="info-label">{e(dep_label)} Version</div>{badge}</div>'
Expand Down
Loading