Skip to content

requirements #67

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

Draft
wants to merge 8 commits into
base: main
Choose a base branch
from
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
1 change: 1 addition & 0 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,4 @@ bazel_dep(name = "score_platform", version = "0.1.1")

# Grab dash
bazel_dep(name = "score_dash_license_checker", version = "0.1.1")
bazel_dep(name = "score_process", version = "0.2.0")
15 changes: 14 additions & 1 deletion docs/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,30 @@ docs(
"json_url": "https://eclipse-score.github.io/score/main/needs.json",
"id_prefix": "score_",
},
{
"base_url": "https://eclipse-score.github.io/process_description/main",
"json_url": "https://eclipse-score.github.io/process_description/main/needs.json",
"id_prefix": "process_",
},
],
},
{
"suffix": "release", # The version imported from MODULE.bazel
"target": ["@score_platform//docs:docs_needs"],
"target": [
"@score_platform//docs:docs_needs",
"@score_process//process:docs_needs_latest",
],
"external_needs_info": [
{
"base_url": "https://eclipse-score.github.io/score/main",
"json_path": "/score_platform~/docs/docs_needs/_build/needs/needs.json",
"id_prefix": "score_",
},
{
"base_url": "https://eclipse-score.github.io/process_description/main",
"json_path": "/score_process~/process/docs_needs_latest/_build/needs/needs.json",
"id_prefix": "process_",
},
],
},
],
Expand Down
2 changes: 2 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
"score_layout",
]

myst_enable_extensions = ["colon_fence"]

exclude_patterns = [
# The following entries are not required when building the documentation via 'bazel
# build //docs:docs', as that command runs in a sandboxed environment. However, when
Expand Down
121 changes: 121 additions & 0 deletions docs/docs-as-code/features.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
(features)=
# 📘 S-CORE Docs-as-Code – Features

Note: this is the normal "features" ;-)

This document outlines the key features of the S-CORE docs-as-code tooling.
Core capabilities of [Sphinx](https://www.sphinx-doc.org/) and [sphinx-needs](https://sphinx-needs.readthedocs.io/) are assumed and extended with S-CORE-specific conventions and infrastructure.

### Input Format

- Supports both reStructuredText (reST) and Markdown (CommonMark/GFM)

### Build

- Ensures deterministic output: identical input produces identical output
- ✅ Uses version-controlled configuration to ensure reproducibility
- ✅ Behaves consistently across different repositories and environments (e.g., local, CI/CD)
- ✅ Supports incremental builds to provide fast feedback during authoring
- ✅ Seamless integration with the Bazel build system

### Configuration

- ✅ Uses a single, shared, version-controlled configuration file
- ✅ Allows repository-specific overrides when needed
- ✅ Supports easy configuration of the metamodel (e.g., used roles, types)
- ✅ Ensures consistency with process and quality requirements



### Cross-Repository Linking

- ✅ Supports unidirectional links to:
- Versioned documentation (for tagged releases)
- Latest documentation (e.g. `main` branch)
- ✅ Keeps linked repositories and their rendered websites unaffected by incoming references
- Allows bidirectional links for integration-focused documentation
- In addition to high level versioning of repositories, supports verifying suspect links on a requirement level

### Previews & Feedback

- ✅ Automatically generates documentation previews for pull requests
- Previews are available within minutes of each push
- ✅ Preview output matches final published artifacts (identical rendering)

### IDE & Developer Experience

- ✅ Live preview functionality for documentation authors
- ✅ Integrated linting for:
- Syntax and formatting (reST and Markdown)
- Internal and external link validity
- ✅ Metamodel compliance
- Auto-completion support for:
- Cross-repository links
- Sphinx directives and roles (planned)

### Architecture Visualization

- ✅ Generates architecture diagrams from structured models
- Integrates diagram tools such as PlantUML and Mermaid

### Code Integration

- ✅ Enables traceability between documentation and source code by linking from implementation to requirements


## ⚙️ Bazel Support
*Used as the core build system across S-CORE*

- ✅ Automatically validates changes to the S-CORE Bazel registry
- ✅ IDE support for editing Bazel `BUILD` and `.bzl` files (via LSP, plugins)


## 🚀 CI/CD Integration

- builds are cached and re-used where possible

## 🪪 Copyright Checker

- Ensures all S-CORE repositories use whitelisted 3rd party dependencies
- ✅ Python dependencies
- ✅ Rust dependencies

## 📜 License Compliance

- ✅ All used 3rd-party dependencies must be from a whitelisted set
- License checks:
- ✅ Python
- ✅ Rust
- Bazel
- C++



## 🧹 Linting

- reStructuredText
- Markdown
- Python
- Bazel
- Rust
- C++
- GitHub Actions workflows

## 🧱 Formatting

- reStructuredText
- Markdown
- ✅ Python
- ✅ Bazel
- Rust
- C++
- GitHub Actions workflows

## Project Helper (to be named)

- Provide estimated work per month, by summing up the issues per month multiplied by their size
- Exports all issues of a project to a CSV file

## Repository Overview

- ✅ Provide an overview of all S-CORE repositories, including their status (https://github.com/eclipse-score).
17 changes: 14 additions & 3 deletions docs/docs-as-code/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,20 @@


============
Docs-as-Code
Docs-as-Code
============

.. grid:: 1 1 2 2
.. grid:: 1 1 3 3
:class-container: score-grid

.. grid-item-card::

Features/Requirements
^^^
Detailed list of docs-as-code capabilities.
:ref:`Features <features>`. :ref:`Requirements <requirements>`.


.. grid-item-card::

Getting started with docs-as-code
Expand All @@ -30,7 +38,7 @@ Docs-as-Code

.. grid-item-card::

Information about Extensions
Information about Extensions
^^^
Head over to our extensions to learn about what we offer and how to configure,extend or integrate them.
:ref:`See our extensions here <extensions>`
Expand All @@ -40,5 +48,8 @@ Docs-as-Code
.. toctree::
:maxdepth: 1
:caption: Contents:
:hidden:

Getting Started <getting_started>
Features <features>
Requirements <requirements>
Loading