diff --git a/.github/workflows/refresh-profile.yml b/.github/workflows/refresh-profile.yml
index 13251a5..9326078 100644
--- a/.github/workflows/refresh-profile.yml
+++ b/.github/workflows/refresh-profile.yml
@@ -23,11 +23,6 @@ jobs:
- run: pip install -r requirements.txt
- - name: Update README
- env:
- GITHUB_TOKEN: ${{ github.token }}
- run: python scripts/update_readme.py
-
- name: Collect metrics
env:
GITHUB_TOKEN: ${{ github.token }}
@@ -41,7 +36,6 @@ jobs:
committer: eclipse-score-bot <187756813+eclipse-score-bot@users.noreply.github.com>
body: |
This PR updates:
- - The repository descriptions and status in `profile/README.md`
- The cross-repo metrics report in `profile/metrics.md`
Please review and merge if everything looks good.
commit-message: "chore: auto-refresh status column"
diff --git a/profile/README.md b/profile/README.md
index 8701ac8..77f392a 100644
--- a/profile/README.md
+++ b/profile/README.md
@@ -6,94 +6,43 @@ This Github organization contains artifacts developed by the [Eclipse S-CORE Pro
See [S-CORE-website](https://eclipse-score.github.io/) and [documentation](https://eclipse-score.github.io/score).
-## Repositories in the Github organization
-
-*Note: descriptions are taken from [IAC configuration](https://github.com/eclipse-score/.eclipsefdn/blob/main/otterdog/eclipse-score.jsonnet) and may not be up to date. Change them there, not here!*
-
-### General
-
-| Repository | Description | Status |
-|------------|-------------|--------|
-| [score](https://github.com/eclipse-score/score) | Score project main repository | ✅ active |
-| [.github](https://github.com/eclipse-score/.github) | Houses the organisation README | 💤 obsolete |
-| [process_description](https://github.com/eclipse-score/process_description) | Score project process description | ✅ active |
-
-### Website
-
-| Repository | Description | Status |
-|------------|-------------|--------|
-| [eclipse-score.github.io](https://github.com/eclipse-score/eclipse-score.github.io) | The landing page website for the Score project | 💤 obsolete |
-| [eclipse-score-website](https://github.com/eclipse-score/eclipse-score-website) | (no description) | ✅ active |
-| [eclipse-score-website-preview](https://github.com/eclipse-score/eclipse-score-website-preview) | (no description) | ✅ active |
-| [eclipse-score-website-published](https://github.com/eclipse-score/eclipse-score-website-published) | (no description) | 💤 obsolete |
-
-### Modules
-
-| Repository | Description | Status |
-|------------|-------------|--------|
-| [module_template](https://github.com/eclipse-score/module_template) | C++ & Rust Bazel Template Repository | 💤 obsolete |
-| [baselibs](https://github.com/eclipse-score/baselibs) | base libraries including common functionality | ✅ active |
-| [communication](https://github.com/eclipse-score/communication) | Repository for the communication module LoLa | ✅ active |
-| [feo](https://github.com/eclipse-score/feo) | Repository for the Fixed Order Execution (FEO) framework | ✅ active |
-| [itf](https://github.com/eclipse-score/itf) | Integration Testing Framework repository | ✅ active |
-| [operating_system](https://github.com/eclipse-score/operating_system) | Repository for the module operating system | 💤 obsolete |
-| [orchestrator](https://github.com/eclipse-score/orchestrator) | Orchestration framework & Safe async runtime for Rust | ✅ active |
-| [persistency](https://github.com/eclipse-score/persistency) | Repository for persistency framework | ✅ active |
-
-### Integrations
-| Repository | Description | Status |
-|------------|-------------|--------|
-| [reference_integration](https://github.com/eclipse-score/reference_integration) | Score project integration repository | ✅ active |
-
-### Incubation
-
-| Repository | Description | Status |
-|------------|-------------|--------|
-| [bazel-tools-python](https://github.com/eclipse-score/bazel-tools-python) | Repository for python static code checker | ✅ active |
-| [bazel-tools-cc](https://github.com/eclipse-score/bazel-tools-cc) | Repository for clang-tidy based static code checker | ✅ active |
-| [inc_config_management](https://github.com/eclipse-score/inc_config_management) | Incubation repository for config management | 🕓 stale |
-| [inc_daal](https://github.com/eclipse-score/inc_daal) | Incubation repository for DAAL module | ✅ active |
-| [inc_feo](https://github.com/eclipse-score/inc_feo) | Incubation repository for the fixed execution order framework | 💤 obsolete |
-| [inc_json](https://github.com/eclipse-score/inc_json) | Incubation repository for JSON module | 💤 obsolete |
-| [inc_mw_com](https://github.com/eclipse-score/inc_mw_com) | Incubation repository for interprocess communication framework | ✅ active |
-| [inc_mw_log](https://github.com/eclipse-score/inc_mw_log) | Incubation repository for logging framework | 🕓 stale |
-| [inc_nlohmann_json](https://github.com/eclipse-score/inc_nlohmann_json) | Nlohmann JSON Library | ✅ active |
-| [inc_os_autosd](https://github.com/eclipse-score/inc_os_autosd) | Incubation repository for AutoSD Development Platform | ✅ active |
-| [inc_process_test_management](https://github.com/eclipse-score/inc_process_test_management) | Incubation repository for Process - Sphinx-Test management | 💤 obsolete |
-| [inc_process_variant_management](https://github.com/eclipse-score/inc_process_variant_management) | Incubation repository for Process - Sphinx-Variant management | 💤 obsolete |
-| [testing_tools](https://github.com/eclipse-score/testing_tools) | Repository for testing utilities | ✅ active |
-| [inc_lifecycle](https://github.com/eclipse-score/inc_lifecycle) | Incubation repository for the lifecycle feature | ✅ active |
-
-### Infrastructure / Toolchains
-
-| Repository | Description | Status |
-|------------|-------------|--------|
-| [bazel_platforms](https://github.com/eclipse-score/bazel_platforms) | Bazel platform definitions used by S-CORE modules | ✅ active |
-| [toolchains_gcc](https://github.com/eclipse-score/toolchains_gcc) | Bazel toolchains for GNU GCC | ✅ active |
-| [toolchains_gcc_packages](https://github.com/eclipse-score/toolchains_gcc_packages) | Bazel toolchains for GNU GCC | 💤 obsolete |
-| [toolchains_qnx](https://github.com/eclipse-score/toolchains_qnx) | Bazel toolchains for QNX | ✅ active |
-| [toolchains_rust](https://github.com/eclipse-score/toolchains_rust) | Rust toolchains | ✅ active |
-
-### Infrastructure / Tooling
-
-| Repository | Description | Status |
-|------------|-------------|--------|
-| [devcontainer](https://github.com/eclipse-score/devcontainer) | Common Devcontainer for Eclipse S-CORE | ✅ active |
-| [docs-as-code](https://github.com/eclipse-score/docs-as-code) | Docs-as-code tooling for Eclipse S-CORE | ✅ active |
-| [tooling](https://github.com/eclipse-score/tooling) | Tooling for Eclipse S-CORE | ✅ active |
-
-### Infrastructure / Other
-
-| Repository | Description | Status |
-|------------|-------------|--------|
-| [apt-install](https://github.com/eclipse-score/apt-install) | GitHub Action to execute apt-install in a clever way | 💤 obsolete |
-| [cicd-workflows](https://github.com/eclipse-score/cicd-workflows) | Reusable GitHub Actions workflows for CI/CD automation | ✅ active |
-| [bazel_registry](https://github.com/eclipse-score/bazel_registry) | Score project bazel modules registry | ✅ active |
-| [bazel_registry_ui](https://github.com/eclipse-score/bazel_registry_ui) | House the ui for bazel_registry in Score | 💤 obsolete |
-| [.eclipsefdn](https://github.com/eclipse-score/.eclipsefdn) | Repository to host configurations related to the Eclipse Foundation. | ✅ active |
-
-### Examples & Templates
-
-| Repository | Description | Status |
-|------------|-------------|--------|
-| [examples](https://github.com/eclipse-score/examples) | Hosts templates and examples for score tools and workflows | 💤 obsolete |
\ No newline at end of file
+## Project Organization
+
+| Team | Long Name | Discussion | OPL | Team Metric | Repository |
+|------|-----------------------------------|------------|-----|-------------|------------|
+| | C O M M I T T E E S | | | | |
+| TLC | [Technical Lead Circle](https://github.com/orgs/eclipse-score/teams/automotive-score-technical-leads) | [TLC Discussion](https://github.com/orgs/eclipse-score/discussions/categories/technical-lead-circle) | [TLC OPL](https://github.com/orgs/eclipse-score/projects/3)| [TLC Metrics]() | [score](https://github.com/eclipse-score/score) |
+| | C O M M U N I T I E S | | | | |
+| ARC | [Architecture Community](https://github.com/orgs/eclipse-score/teams/automotive-score-architecture-community) | [ARC Discussion](https://github.com/orgs/eclipse-score/discussions/categories/architecture-community) | [ARC OPL](https://github.com/orgs/eclipse-score/projects/)| [ARC Metrics]() | [score](https://github.com/eclipse-score/score) |
+| PRC | [Process Development Community](https://github.com/orgs/eclipse-score/teams/automotive-score-process-community) | [PRC Discussion](https://github.com/orgs/eclipse-score/discussions/categories/sw-dev-process-community) | Development:
[PRC OPL](https://github.com/orgs/eclipse-score/projects/21)
Implementation:
[PIM OPL](https://github.com/orgs/eclipse-score/projects/7) | [PRC Metrics]() | [process_description](https://github.com/eclipse-score/process_description)
[score](https://github.com/eclipse-score/score) |
+| INF | [Infrastructure Community](https://github.com/orgs/eclipse-score/teams/automotive-score-infrastructure-community) | [INF Discussion](https://github.com/orgs/eclipse-score/discussions/categories/infrastructure-community) | [INF OPL](https://github.com/orgs/eclipse-score/projects/6) | [INF Metrics]() | Toolchains:
[bazel_platforms](https://github.com/eclipse-score/bazel_platforms)
[toolchains_gcc](https://github.com/eclipse-score/toolchains_gcc)
[toolchains_gcc_packages](https://github.com/eclipse-score/toolchains_gcc_packages)
[toolchains_qnx](https://github.com/eclipse-score/toolchains_qnx)
[toolchains_rust](https://github.com/eclipse-score/toolchains_rust)
Tooling:
[devcontainer](https://github.com/eclipse-score/devcontainer)
[docs-as-code](https://github.com/eclipse-score/docs-as-code)
[tooling](https://github.com/eclipse-score/tooling)
Others:
[apt-install](https://github.com/eclipse-score/apt-install)
[cicd-workflows](https://github.com/eclipse-score/cicd-workflows)
[bazel_registry](https://github.com/eclipse-score/bazel_registry)
[bazel_registry_ui](https://github.com/eclipse-score/bazel_registry_ui)
[.eclipsefdn](https://github.com/eclipse-score/.eclipsefdn)
[examples](https://github.com/eclipse-score/examples) |
+| TST | [Testing Community](https://github.com/orgs/eclipse-score/teams/automotive-score-testing-community) | [TST Discussion](https://github.com/orgs/eclipse-score/discussions/categories/testing-community) | [TST OPL](https://github.com/orgs/eclipse-score/projects/) | [TST Metrics]() | [itf](https://github.com/eclipse-score/itf) |
+| INT | [Integration Community](https://github.com/orgs/eclipse-score/teams/automotive-score-integration-community) | [INT Discussion](https://github.com/orgs/eclipse-score/discussions/categories/) | [INT OPL](https://github.com/orgs/eclipse-score/projects/) | [INT Metrics]() | [reference_integration](https://github.com/eclipse-score/reference_integration)
[os_images](https://github.com/eclipse-score/os_images)
[scrample](https://github.com/eclipse-score/scrample) |
+| | F E A T U R E - T E A M S | | | | |
+| BAS | [Baselibs](https://github.com/orgs/eclipse-score/teams/automotive-score-baselibs) | [BAS Discussion](https://github.com/orgs/eclipse-score/discussions/categories/base-libs-ft) | [BAS OPL](https://github.com/orgs/eclipse-score/projects/6)| [BAS Metrics]() | [baslibs](https://github.com/eclipse-score/baslibs)
[baslibs_rust](https://github.com/eclipse-score/baslibs_rust) |
+| COM | [Infrastructure Community](https://github.com/orgs/eclipse-score/teams/automotive-score-communication) | [COM Discussion](https://github.com/orgs/eclipse-score/discussions/categories/communication-ft) | [COM OPL](https://github.com/orgs/eclipse-score/projects/19)| [COM Metrics]() | [communication](https://github.com/eclipse-score/communication) |
+| CFG | [Configuration Management](https://github.com/orgs/eclipse-score/teams/automotive-score-configurtion-management) | [CFG Discussion](https://github.com/orgs/eclipse-score/discussions/categories/config-management-ft) | [CFG OPL](https://github.com/orgs/eclipse-score/projects/)| [CFG Metrics]() | [config_management](https://github.com/eclipse-score/config_management) |
+| FEO | [Fixed Execution Order](https://github.com/orgs/eclipse-score/teams/automotive-score-feo) | [FEO Discussion](https://github.com/orgs/eclipse-score/discussions/categories/feo-ft) | [FEO OPL](https://github.com/orgs/eclipse-score/projects/9)| [FEO Metrics]() | [feo](https://github.com/eclipse-score/feo) |
+| KYR | [Kyron](https://github.com/orgs/eclipse-score/teams/automotive-score-kyron) | [KYR Discussion]() | [KYR OPL](https://github.com/orgs/eclipse-score/projects)| [KYR Metrics]() | [kyron](https://github.com/eclipse-score/kyron) |
+| LCM | [Life Cycle Management](https://github.com/orgs/eclipse-score/teams/automotive-score-lifecycle) | [LCM Discussion](https://github.com/orgs/eclipse-score/discussions/categories/health-lifecycle-ft) | [INF OPL](https://github.com/orgs/eclipse-score/projects/33)| [LCM Metrics]() | [lifecycle](https://github.com/eclipse-score/inc_lifecycle) |
+| LOG | [Logging](https://github.com/orgs/eclipse-score/teams/automotive-score-logging) | [LOG Discussion](https://github.com/orgs/eclipse-score/discussions/categories/logging-ft) | [LOG OPL](https://github.com/orgs/eclipse-score/projects/31)| [LOG Metrics]() | [logging](https://github.com/eclipse-score/logging) |
+| ORC | [Orchestration](https://github.com/orgs/eclipse-score/teams/automotive-score-orchestration) | [ORC Discussion](https://github.com/orgs/eclipse-score/discussions/categories/orchestration-ft) | [ORC OPL](https://github.com/orgs/eclipse-score/projects/29)| [ORC Metrics]() | [orchestrator](https://github.com/eclipse-score/orchestrator) |
+| OSY | [Operating System](https://github.com/orgs/eclipse-score/teams/automotive-score-operating-system) | [OSY Discussion]() | [OSY OPL](https://github.com/orgs/eclipse-score/projects)| [OSY Metrics]() | [operating_systems](https://github.com/eclipse-score/operating_system) |
+| PER | [Persitency](https://github.com/orgs/eclipse-score/teams/automotive-score-persistency) | [PER Discussion](https://github.com/orgs/eclipse-score/discussions/categories/persistency-ft) | [PER OPL](https://github.com/orgs/eclipse-score/projects/20)| [PER Metrics]() | [persistency](https://github.com/eclipse-score/persistency) |
+| SEC | [Security](https://github.com/orgs/eclipse-score/teams/automotive-score-security) | [SEC Discussion](https://github.com/orgs/eclipse-score/discussions/categories/security-crypto-ft) | [SEC OPL](https://github.com/orgs/eclipse-score/projects)| [SEC Metrics]() | [security](https://github.com/eclipse-score/security) |
+| TIM | [Time](https://github.com/orgs/eclipse-score/teams/automotive-score-time) | [TIM Discussion](https://github.com/orgs/eclipse-score/discussions/categories) | [TIM OPL](https://github.com/orgs/eclipse-score/projects/32)| [TIM Metrics]() | [time](https://github.com/eclipse-score/time) |
+
+ToDo: [Add Incubation Repositories](https://github.com/eclipse-score/score/issues/2376)
+ToDo: [Add Metric Links](https://github.com/eclipse-score/score/issues/2377)
+ToDO: [Add WebSites, .github](https://github.com/eclipse-score/score/issues/2378)
+ToDo: [Add Mar&Com Team](https://github.com/eclipse-score/score/issues/2379)
+
+## Releases
+
+| Version | Quality Status | Release Date | Release Documentation | Used Process Version |
+|---------|----------------|--------------|-----------------------|----------------------|
+| V0.5 | ALPHA | | | |
+
+ToDO: [Update Release Information](https://github.com/eclipse-score/score/issues/2380)
+
+## [Detailed Repository Status](https://github.com/eclipse-score/.github/blob/main/profile/metrics.md)
\ No newline at end of file
diff --git a/scripts/update_readme.py b/scripts/update_readme.py
deleted file mode 100644
index 30adb5a..0000000
--- a/scripts/update_readme.py
+++ /dev/null
@@ -1,183 +0,0 @@
-# *******************************************************************************
-# Copyright (c) 2025 Contributors to the Eclipse Foundation
-#
-# See the NOTICE file(s) distributed with this work for additional
-# information regarding copyright ownership.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Apache License Version 2.0 which is available at
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# SPDX-License-Identifier: Apache-2.0
-# *******************************************************************************
-
-#!/usr/bin/env python3
-"""
-Update the Descriptions and Status column (✅ / 🕓 / 💤) in profile/README.md.
-"""
-
-import os
-import pathlib
-import re
-import time
-from dataclasses import dataclass
-from datetime import datetime, timedelta, timezone
-
-from github import Github
-
-ORG = "eclipse-score"
-gh = Github(os.getenv("GITHUB_TOKEN"))
-NOW = datetime.now(timezone.utc)
-
-
-def calc_state(pushed_at: datetime) -> str:
- # TODO: use e.g. last 3 commits, instead of only one last commit
-
- DAYS_STALE = 30
- DAYS_OBSOLETE = 90
-
- cut1 = NOW - timedelta(days=DAYS_STALE)
- cut2 = NOW - timedelta(days=DAYS_OBSOLETE)
-
- if pushed_at <= cut2:
- return "💤 obsolete"
- if pushed_at <= cut1:
- return "🕓 stale"
- return "✅ active"
-
-
-def get_last_commit(repo):
- import requests
-
- token = os.getenv("GITHUB_TOKEN")
- headers = {"Authorization": f"Bearer {token}"}
-
- query = """
- query($owner: String!, $name: String!, $branchCount: Int!) {
- repository(owner: $owner, name: $name) {
- refs(refPrefix: "refs/heads/", first: $branchCount, orderBy: {field: TAG_COMMIT_DATE, direction: DESC}) {
- nodes {
- name
- target {
- ... on Commit {
- committedDate
- author {
- user {
- login
- }
- }
- }
- }
- }
- }
- }
- }
- """
-
- variables = {
- "owner": repo.owner.login,
- "name": repo.name,
- "branchCount": 100
- }
-
- response = requests.post(
- "https://api.github.com/graphql",
- json={"query": query, "variables": variables},
- headers=headers,
- )
- if response.status_code != 200:
- print(f"⚠️ GraphQL request failed for {repo.name}: {response.status_code} {response.text}")
- return None
-
- data = response.json()
- if "errors" in data:
- print(f"⚠️ GraphQL error for {repo.name}: {data['errors']}")
- return None
-
- branches = data.get("data", {}).get("repository", {}).get("refs", {}).get("nodes", [])
- latest = None
-
- for branch in branches:
- commit = branch.get("target")
- if not commit:
- continue
- author = commit.get("author", {}).get("user")
- if not author:
- continue
- login = author.get("login", "").lower()
- if login.endswith("[bot]") or "bot" in login:
- continue
- dt = datetime.fromisoformat(commit["committedDate"].replace("Z", "+00:00"))
- if latest is None or dt > latest:
- latest = dt
-
- return latest
-
-
-@dataclass
-class RepoData:
- name: str
- description: str
- status: str
-
-
-def query_github_org_for_repo_data(gh: Github, org: str):
- # TODO: pagination once we hit 100 repos
- repos = gh.get_organization(org).get_repos()
- data = {}
-
- for repo in repos:
- print(f"🔍 Checking {repo.name} ...")
- last_commit = get_last_commit(repo)
- if last_commit:
- status = calc_state(last_commit)
- else:
- status = "💤 obsolete"
-
- data[repo.name] = RepoData(
- name=repo.name,
- description=repo.description or "(no description)",
- status=status,
- )
- time.sleep(1) # small sleep to avoid hitting rate limits
- return data
-
-
-
-def update_line(line: str, repo_data: dict[str, RepoData]) -> str:
- # Change lines starting with "| [repo]"
- m = re.match(r"^\| \[(.*)\]", line)
- if not m:
- return line
-
- repo: str = m.group(1)
- data = repo_data.pop(repo)
-
- return f"| [{repo}](https://github.com/eclipse-score/{repo}) | {data.description} | {data.status} |"
-
-
-def update_readme(original: str, repo_data: dict[str, RepoData]) -> str:
- # Apply update_line to each line
- return "\n".join(
- map(lambda line: update_line(line, repo_data), original.splitlines())
- )
-
-
-if __name__ == "__main__":
- repo_data = query_github_org_for_repo_data(gh, ORG)
-
- MD_FILE = pathlib.Path("profile/README.md")
-
- original = MD_FILE.read_text()
- updated = update_readme(original, repo_data)
-
- for repo in repo_data:
- print(
- f"Missing repo: {repo} - {repo_data[repo].description} ({repo_data[repo].status})"
- )
-
- if updated != original:
- _ = MD_FILE.write_text(updated)
- print("README updated.")
- else:
- print("No update.")