Skip to content
Draft
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
60 changes: 60 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: docs

on:
pull_request:
push:
# branches:
# - main
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: docs-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Set up uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Configure GitHub Pages
uses: actions/configure-pages@v5

- name: Sync documentation toolchain
run: uv sync --frozen

- name: Build MkDocs site
run: uv run mkdocs build --strict

- name: Upload Pages artifact
# if: github.ref == 'refs/heads/main'
uses: actions/upload-pages-artifact@v3
with:
path: site

deploy:
# if: github.ref == 'refs/heads/main'
needs: build
runs-on: ubuntu-latest

steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
32 changes: 32 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# *******************************************************************************
# 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
# *******************************************************************************

name: Pull Request Workflow
on:
pull_request:
types: [opened, reopened, synchronize]

jobs:

self_test:
name: 🔬 Self Test
runs-on: ubuntu-latest
steps:
- name: 📥 Check out
uses: actions/checkout@v6

- name: ⚙️ Setup uv
uses: astral-sh/setup-uv@v7

- name: 🛠️ Run pre-commit
run: uv run pre-commit run --all-files
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.venv/
site/
__pycache__/
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
repos:
- repo: local
hooks:
- id: aggregate-status
name: Aggregate chapter statuses
entry: python scripts/aggregate_status.py
language: python
pass_filenames: false
files: ^(docs/chapters/.*\.md|docs/index\.md|scripts/aggregate_status\.py)$
30 changes: 28 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,28 @@
# infrastructure
All general information related to the development and integration infrastructure
# S-CORE Infrastructure Documentation

This repository contains the sources for the S-CORE infrastructure documentation.

The published documentation is available at:

- https://eclipse-score.github.io/infrastructure/

## How The Site Is Structured

The README intentionally stays short to avoid duplicating the actual documentation. Use the published site for content and this repository for source files, local preview, and contribution work.

## Run MkDocs Locally

This repository uses `uv` for local toolchain management.

Install dependencies and start a live preview:

```bash
uv sync
uv run mkdocs serve
```

Build the site with strict checks:

```bash
uv run mkdocs build --strict
```
89 changes: 89 additions & 0 deletions docs/chapters/01-source-code-infrastructure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# 1 Source Code Infrastructure 🟡

*Infrastructure for hosting and organizing source code consistently across the S-CORE repository landscape.*

**S-CORE**

- GitHub is the canonical source-code hosting platform for S-CORE repositories.
- Lifecycle and policy management are intended to be centrally defined and automation-driven.
- Standards should be versioned, measurable, and continuously synchronized across repositories.
- Hosting is established and operational; lifecycle and standards synchronization are only partially mature.
- **Biggest gap**: cross-repository consistency of policy and standards is not yet reliably enforced and measured.

## 1.0 Hosting 🟢

*Provide a stable, discoverable, and scalable hosting foundation for all S-CORE repositories.*

**S-CORE**

- Repositories are hosted in GitHub aligned with Eclipse governance on https://github.com/eclipse-score


## 1.1 Repository Lifecycle Management 🟠

*Infrastructure for repositories and repository configuration.*

### 1.1.1 Repository Provisioning & Lifecycle 🟡

*Infrastructure for creating, initializing, updating, and archiving repositories and executing lifecycle operations.*

**S-CORE**

- Desired repository state is defined centrally via the infrastructure-as-code tool [otterdog](https://otterdog.readthedocs.io/en/latest/userguide/) in the [S-CORE configuration file](https://github.com/eclipse-score/.eclipsefdn/blob/main/otterdog/eclipse-score.jsonnet)
- Lifecycle transitions are configuration changes instead of manual one-off actions.
- **Biggest gap**: approval of changes is rather random and undefined.

### 1.1.2 Repository Policy Management 🔴

*Infrastructure for managing and synchronizing repository policies such as branch protection, and application thereof at scale.*

**S-CORE**

- Policy intent (for example branch protection and required checks) is expressed centrally via the infrastructure-as-code tool [otterdog](https://otterdog.readthedocs.io/en/latest/userguide/) in the [S-CORE configuration file](https://github.com/eclipse-score/.eclipsefdn/blob/main/otterdog/eclipse-score.jsonnet)
- Exceptions are explicit, reviewed, and documented.
- **Biggest gap**: policies are not yet uniformly applied to all repositories.

---

## 1.2 Repository Standards 🟡

*Define standard elements expected across repositories to reduce unnecessary variation.*

**S-CORE**

- Standards are centrally defined and versioned.
- Repositories adopt standards directly or through synchronized templates/configuration.
- **Biggest gap**: consistency of adoption and conformance visibility remains limited.

### 1.2.1 Repository Metadata 🟡

*Define standard project metadata such as LICENSE, README, and governance files.*

**S-CORE**

- Metadata expectations exist, but rollout and conformance visibility are not yet complete.
- Automated cross-repository conformance reporting is not yet in place.
- **Biggest gap**: no continuous cross-repository visibility of metadata conformance.

### 1.2.2 Tooling Configuration Standards 🟠

*Define shared configuration for linters and development tools.*

**S-CORE**

- Shared conventions are emerging, but not yet uniformly synchronized; [chapter 4](04-static-analysis-infrastructure.md) is the canonical home for static-analysis tooling and rule-baseline details.
- Baseline/override handling is not yet consistently defined across repository types.
- **Biggest gap**: no clearly enforced baseline/override model across repository classes.

---

## 1.3 Synchronization of Standards 🔴

*Keep repositories aligned with evolving standards through shared templates and configuration synchronization.*

**S-CORE**

- Automation applies and reconciles standards from central definitions.
- Adoption and drift are tracked to prioritize migration work.
- Cross-repository synchronization is a target capability and remains incomplete.
- **Biggest gap**: drift metrics/reporting and migration playbooks are not yet consistently operationalized.
Loading