From 81326dc29e9c9bfd97e5aa5516aeb6670d60876a Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Tue, 2 Dec 2025 16:13:21 +0100 Subject: [PATCH 01/12] Update README to correct formatting and enhance clarity of technical architecture governance description --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 900d145..688709f 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ Technical architecture governance for SciLifeLab infrastructure - ensuring interoperability, standards, and sustainable design +Technical architecture governance for SciLifeLab infrastructure - ensuring interoperability, standards, and sustainable design + This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License][cc-by-sa]. From 6523dedb15617091de7c80ce81716e7bd530a15f Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 28 Nov 2025 09:03:19 +0100 Subject: [PATCH 02/12] Add decision document for using MkDocs Material as the documentation site --- ...-mkdocs-material-for-documentation-site.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs/decisions/0004-use-mkdocs-material-for-documentation-site.md diff --git a/docs/decisions/0004-use-mkdocs-material-for-documentation-site.md b/docs/decisions/0004-use-mkdocs-material-for-documentation-site.md new file mode 100644 index 0000000..50a768d --- /dev/null +++ b/docs/decisions/0004-use-mkdocs-material-for-documentation-site.md @@ -0,0 +1,60 @@ +# 4. Use MkDocs Material for Documentation Site + +Date: 2025-11-28 + +## Status + +Accepted + +## Context + +We need a documentation site to publish ADRs, standards, and process documentation at `https://scilifelab.github.io/architecture/`. + +Requirements: + +- Automatic publishing from GitHub +- Support for Mermaid diagrams (same syntax as GitHub) +- Search functionality +- Easy for contributors (just Markdown) +- Professional appearance +- Adaptable to SciLifeLab visual identity + +## Decision + +Use **MkDocs Material** with SciLifeLab visual customization. + +## Rationale + +**Simple and effective:** + +- Markdown → beautiful website in 5 minutes +- Built-in Mermaid support (identical to GitHub) +- Contributors only need Markdown knowledge +- Industry standard (Google, Microsoft use it) + +**Better than alternatives:** + +- Quarto: Too complex for pure documentation +- Jekyll: Less modern, more configuration +- Custom solution: Unnecessary maintenance burden + +**Customizable:** +Material theme easily adapted to SciLifeLab brand through `mkdocs.yml` configuration. + +## Consequences + +**Positive:** + +- Fast deployment +- Low contributor barrier +- Professional appearance +- Excellent search +- Automatic publishing via GitHub Actions + +**Negative:** + +- Web-only output (no native PDF) +- Brand customization limited to theme capabilities + +**Implementation:** +Create `mkdocs.yml` with Material theme, SciLifeLab colors, and GitHub Actions deployment. From f8a1cbabc8aa538b9ea0a1d8b0c436e50f795bb4 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 28 Nov 2025 13:06:51 +0100 Subject: [PATCH 03/12] Add MkDocs configuration, deploy workflow, and initial documentation files - MkDocs Material theme with SciLifeLab visual identity - GitHub Actions workflow for automatic deployment - Homepage with mission, workflow diagram, and board members - Custom CSS for teal/lime branding - Cookie consent and Mermaid diagram support --- .github/workflows/deploy-docs.yml | 43 +++++++++++ docs/assets/favicon.png | Bin 0 -> 78093 bytes docs/assets/logo.png | Bin 0 -> 78173 bytes docs/index.md | 83 +++++++++++++++++++++ docs/stylesheets/extra.css | 117 ++++++++++++++++++++++++++++++ mkdocs.yml | 102 ++++++++++++++++++++++++++ 6 files changed, 345 insertions(+) create mode 100644 .github/workflows/deploy-docs.yml create mode 100644 docs/assets/favicon.png create mode 100644 docs/assets/logo.png create mode 100644 docs/index.md create mode 100644 docs/stylesheets/extra.css create mode 100644 mkdocs.yml diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..e58f95e --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,43 @@ +name: Deploy Documentation + +on: + push: + branches: + - main + - master + workflow_dispatch: + +permissions: + contents: write + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Configure Git Credentials + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + + - uses: actions/setup-python@v5 + with: + python-version: 3.x + + - name: Cache dependencies + uses: actions/cache@v4 + with: + key: mkdocs-material-${{ github.ref }} + path: ~/.cache + restore-keys: | + mkdocs-material- + + - name: Install dependencies + run: pip install mkdocs-material + + - name: Build and Deploy + run: mkdocs gh-deploy --force + diff --git a/docs/assets/favicon.png b/docs/assets/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..a0fbbeae33d994419f4fd13e9c565e0466634670 GIT binary patch literal 78093 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 bh$LrGZ@@*s1>kdaTdU literal 0 HcmV?d00001 diff --git a/docs/assets/logo.png b/docs/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b426fb48fee65d967f8bbc9c28706f14a9d1556a GIT binary patch literal 78173 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 literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..d717af2 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,83 @@ +# SciLifeLab Architecture Board + +> Ensuring interoperable, sustainable, and FAIR infrastructure across SciLifeLab's federated platforms. + +The Architecture Board provides technical governance and guidance for SciLifeLab infrastructure, enabling seamless collaboration while respecting platform autonomy. We support decision-making for technical architecture across all SciLifeLab platforms and services. + +!!! question "Need Architecture Help?" + + - No question too small + - Response within 2 weeks + - Early guidance prevents expensive mistakes + + [:octicons-issue-opened-16: Open an Issue](https://github.com/SciLifeLab/architecture/issues/new?template=architecture-question.md){ .md-button .md-button--primary } + [:octicons-comment-discussion-16: Start a Discussion](https://github.com/SciLifeLab/architecture/discussions){ .md-button } + [:octicons-mail-16: architecture@scilifelab.se](mailto:architecture@scilifelab.se){ .md-button } + +## What We Do + +```mermaid + +graph LR + A[Project Team] -->|Question| B[Architecture Board] + B -->|Guidance| A + B -->|Decision| C[ADR] + C -->|Published| D[Documentation] + D -->|Informs| A + + style A fill:#f5f5f5,stroke:#045C64,stroke-width:2px + style B fill:#A7C947,stroke:#8BB030,stroke-width:3px + style C fill:#e8f5e9,stroke:#A7C947,stroke-width:2px + style D fill:#e8f5e9,stroke:#A7C947,stroke-width:2px +``` + +### :material-compass: Architecture Guidance + +Best practices for technical design, integration patterns, and technology choices. + +### :material-file-document-edit: Decision Records + +Transparent documentation of all significant architectural decisions (ADRs). + +### :material-connection: Cross-Platform Coordination + +Facilitate collaboration to ensure coherent architecture across SciLifeLab. + +## Recent Decisions + +| Decision | Status | Summary | +| --------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------ | +| [ADR-0004: MkDocs Material](decisions/0004-use-mkdocs-material-for-documentation-site.md) | Accepted | Use MkDocs Material for documentation site | +| [ADR-0003: Single Process](decisions/0003-use-single-process-approach-for-architecture-requests.md) | Accepted | Single process for architecture requests | +| [ADR-0002: CC BY-SA 4.0](decisions/0002-use-cc-by-sa-4-0-license.md) | Accepted | Use CC BY-SA 4.0 license for content | +| [ADR-0001: Record Decisions](decisions/0001-record-architecture-decisions.md) | Accepted | Record architecture decisions as ADRs | + +## Board Members + +| Name | Affiliation | Role | +| ----------------- | ----------- | -------------------------------------------------------------------------------------------------------------------- | +| Jonas Hagberg | NBIS | Chair, [Certified IT Architect](https://app.diplomasafe.com/sv-SE/diploma/d2e66e08f42702140adfb61a0fb2315ef6d93ccb8) | +| Johan Viklund | NBIS | Technical Expert | +| Jonas Söderberg | NBIS SCoRe | Technical Expert | +| Johannes Alneberg | NGI | Technical Expert | +| Jonas Windhager | NBIS-BIIF | Technical Expert | + +_Adjunct members: Björn Nystedt, Hanna Kultima (IDS PMT)_ + +## Get Involved + +The Architecture Board welcomes input from all SciLifeLab teams and the broader community. Whether you have a technical proposal, an architecture concern, or need guidance on a decision, we're here to help. + +!!! tip "How to Contribute" + + 1. **Not sure yet?** Start a [GitHub Discussion](https://github.com/scilifelab/architecture/discussions) or email [architecture@scilifelab.se](mailto:architecture@scilifelab.se) + 2. **Have a question?** Open a [GitHub Issue](https://github.com/scilifelab/architecture/issues) to get guidance + 3. **Proposing a change?** Create an ADR following our [template](decisions/0001-record-architecture-decisions.md) + 4. **Found an issue?** Submit a pull request with your suggested improvements + +--- + +Part of [SciLifeLab](https://scilifelab.se) – Sweden's national infrastructure for life sciences research. + +**Please cite as:** +SciLifeLab Architecture Board. (2025). _SciLifeLab Architecture Governance._ GitHub repository: diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 0000000..d28aa61 --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,117 @@ +/* SciLifeLab Visual Identity Colors */ + +@import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap"); + +:root { + /* SciLifeLab Brand Colors */ + --scilifelab-lime: #a7c947; + --scilifelab-lime-dark: #8bb030; + --scilifelab-teal: #045c64; + --scilifelab-teal-dark: #034750; + + /* MkDocs Material overrides */ + --md-primary-fg-color: #045c64; + --md-primary-fg-color--light: #067a85; + --md-primary-fg-color--dark: #034750; + --md-accent-fg-color: #a7c947; + + /* Typography */ + --md-text-font: "Open Sans", -apple-system, BlinkMacSystemFont, Helvetica, + Arial, sans-serif; +} + +/* Dark mode */ +[data-md-color-scheme="slate"] { + --md-primary-fg-color: #045c64; + --md-accent-fg-color: #a7c947; + --md-typeset-a-color: #a7c947; +} + +/* Header - Teal */ +.md-header { + background-color: #045c64; +} + +/* Navigation tabs */ +.md-tabs { + background-color: #034750; +} + +/* Logo sizing */ +.md-header__button.md-logo img { + height: 1.6rem; + width: auto; +} + +/* Links in content */ +.md-typeset a:not(.md-button) { + color: #045c64; +} + +[data-md-color-scheme="slate"] .md-typeset a:not(.md-button) { + color: #a7c947; +} + +/* Headings */ +.md-typeset h2 { + border-bottom: 2px solid #a7c947; + padding-bottom: 0.4rem; +} + +/* Tables */ +.md-typeset table:not([class]) th { + background-color: #045c64; + color: white; +} + +/* Code */ +.md-typeset code { + background-color: rgba(4, 92, 100, 0.1); + color: #045c64; +} + +[data-md-color-scheme="slate"] .md-typeset code { + background-color: rgba(167, 201, 71, 0.15); + color: #c5db7a; +} + +/* Buttons */ +.md-typeset .md-button--primary { + background-color: #a7c947; + border-color: #a7c947; + color: #1a1a1a; +} + +.md-typeset .md-button--primary:hover { + background-color: #8bb030; + border-color: #8bb030; +} + +/* Footer */ +.md-footer { + background-color: #045c64; +} + +.md-footer-meta { + background-color: #034750; +} + +/* Admonitions */ +.md-typeset .admonition.note, +.md-typeset details.note { + border-color: #045c64; +} + +.md-typeset .admonition.tip, +.md-typeset details.tip { + border-color: #a7c947; +} + +/* Active nav item */ +.md-nav__link--active { + color: #045c64 !important; +} + +[data-md-color-scheme="slate"] .md-nav__link--active { + color: #a7c947 !important; +} diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..ba161c9 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,102 @@ +site_name: SciLifeLab Architecture Board +site_url: https://scilifelab.github.io/architecture/ +site_description: Architecture decisions and guidelines for SciLifeLab infrastructure +site_author: SciLifeLab Architecture Board + +repo_name: scilifelab/architecture +repo_url: https://github.com/scilifelab/architecture + +theme: + name: material + logo: assets/logo.png + favicon: assets/favicon.png + font: + text: Open Sans + code: Fira Code + icon: + repo: fontawesome/brands/github + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + primary: teal + accent: lime + toggle: + icon: material/brightness-7 + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: teal + accent: lime + toggle: + icon: material/brightness-4 + name: Switch to light mode + features: + - navigation.instant + - navigation.tracking + - navigation.tabs + - navigation.top + - navigation.footer + - search.suggest + - search.highlight + - content.code.copy + +extra_css: + - stylesheets/extra.css + +markdown_extensions: + - admonition + - pymdownx.details + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - tables + - attr_list + - toc: + permalink: true + +plugins: + - search + +nav: + - Home: index.md + - Architecture Decisions: + - decisions/0001-record-architecture-decisions.md + - decisions/0002-use-cc-by-sa-4-0-license.md + - decisions/0003-use-single-process-approach-for-architecture-requests.md + - decisions/0004-use-mkdocs-material-for-documentation-site.md + +extra: + social: + - icon: fontawesome/brands/github + link: https://github.com/scilifelab + - icon: fontawesome/solid/globe + link: https://scilifelab.se + generator: false + consent: + title: Cookie consent + description: >- + We use cookies to recognize your repeated visits and preferences, as well + as to measure the effectiveness of our documentation and whether users + find what they're searching for. With your consent, you're helping us to + make our documentation better. + actions: + - accept + - reject + - manage + cookies: + github: + name: GitHub + checked: true + +copyright: >- + Licensed under + CC BY-SA 4.0 + by SciLifeLab From d85f7d3b131f8953a933e85a3a8b87421c2f632d Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 5 Dec 2025 10:12:00 +0100 Subject: [PATCH 04/12] Apply suggestions from code review Co-authored-by: Jonas Windhager --- .github/workflows/deploy-docs.yml | 4 ++-- docs/index.md | 4 ++-- mkdocs.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index e58f95e..97d53c7 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -14,7 +14,7 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 @@ -23,7 +23,7 @@ jobs: git config user.name github-actions[bot] git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: 3.x diff --git a/docs/index.md b/docs/index.md index d717af2..33d8e23 100644 --- a/docs/index.md +++ b/docs/index.md @@ -60,9 +60,9 @@ Facilitate collaboration to ensure coherent architecture across SciLifeLab. | Johan Viklund | NBIS | Technical Expert | | Jonas Söderberg | NBIS SCoRe | Technical Expert | | Johannes Alneberg | NGI | Technical Expert | -| Jonas Windhager | NBIS-BIIF | Technical Expert | +| Jonas Windhager | NBIS BIIF | Technical Expert | -_Adjunct members: Björn Nystedt, Hanna Kultima (IDS PMT)_ +_Adjunct members: Björn Nystedt, Hanna Kultima (Integrated Data Services Project Management Team)_ ## Get Involved diff --git a/mkdocs.yml b/mkdocs.yml index ba161c9..5d10b04 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,4 +1,4 @@ -site_name: SciLifeLab Architecture Board +site_name: SciLifeLab Architecture site_url: https://scilifelab.github.io/architecture/ site_description: Architecture decisions and guidelines for SciLifeLab infrastructure site_author: SciLifeLab Architecture Board From 66683597d3eb7532846bab93f645d307b1ae7e96 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 5 Dec 2025 13:28:35 +0100 Subject: [PATCH 05/12] Update documentation diagrams and styles for improved clarity and branding - Enhanced Mermaid diagrams with a unified theme for consistency across documentation. - Updated CSS for primary and secondary button styles to align with the new color scheme. --- ...rocess-approach-for-architecture-requests.md | 5 +---- docs/index.md | 7 +------ docs/stylesheets/extra.css | 17 ++++++++++++++++- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/docs/decisions/0003-use-single-process-approach-for-architecture-requests.md b/docs/decisions/0003-use-single-process-approach-for-architecture-requests.md index 43304cf..0260f51 100644 --- a/docs/decisions/0003-use-single-process-approach-for-architecture-requests.md +++ b/docs/decisions/0003-use-single-process-approach-for-architecture-requests.md @@ -24,15 +24,12 @@ Use a **single unified process** where formality emerges naturally from impact. **Process:** ```mermaid +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#a7c947', 'primaryTextColor': '#1a1a1a', 'primaryBorderColor': '#8bb030', 'lineColor': '#045c64', 'secondaryColor': '#e8f5e9', 'tertiaryColor': '#f5f5f5', 'fontFamily': 'Open Sans'}}}%% flowchart LR A[Open Issue] --> B{Discussion
Time varies} B -->|Simple| C[Close with
Answer] B -->|Complex| D[Create ADR PR] D --> E[Publish] - - style A fill:#e1f5ff - style D fill:#fff4e1 - style E fill:#e8f5e9 ``` **Key insight:** Same process, different discussion length based on natural impact. diff --git a/docs/index.md b/docs/index.md index 33d8e23..4e07c1f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -17,18 +17,13 @@ The Architecture Board provides technical governance and guidance for SciLifeLab ## What We Do ```mermaid - +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#a7c947', 'primaryTextColor': '#1a1a1a', 'primaryBorderColor': '#8bb030', 'lineColor': '#045c64', 'secondaryColor': '#e8f5e9', 'tertiaryColor': '#f5f5f5', 'fontFamily': 'Open Sans'}}}%% graph LR A[Project Team] -->|Question| B[Architecture Board] B -->|Guidance| A B -->|Decision| C[ADR] C -->|Published| D[Documentation] D -->|Informs| A - - style A fill:#f5f5f5,stroke:#045C64,stroke-width:2px - style B fill:#A7C947,stroke:#8BB030,stroke-width:3px - style C fill:#e8f5e9,stroke:#A7C947,stroke-width:2px - style D fill:#e8f5e9,stroke:#A7C947,stroke-width:2px ``` ### :material-compass: Architecture Guidance diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index d28aa61..4b813c5 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -75,7 +75,7 @@ color: #c5db7a; } -/* Buttons */ +/* Buttons - Primary (lime) */ .md-typeset .md-button--primary { background-color: #a7c947; border-color: #a7c947; @@ -87,6 +87,21 @@ border-color: #8bb030; } +/* Buttons - Secondary in dark mode: Teal with white text */ +[data-md-color-scheme="slate"] .md-typeset .md-button:not(.md-button--primary) { + background-color: #045c64; + border-color: #045c64; + color: #ffffff; +} + +[data-md-color-scheme="slate"] + .md-typeset + .md-button:not(.md-button--primary):hover { + background-color: #067a85; + border-color: #067a85; + color: #ffffff; +} + /* Footer */ .md-footer { background-color: #045c64; From 43029a84ee66f2d32d934e22bff7ddd3223a53d5 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 5 Dec 2025 13:29:05 +0100 Subject: [PATCH 06/12] Add requirements file and update deployment workflow - Introduced a requirements.txt file to manage dependencies, specifically for mkdocs-material. - Updated the GitHub Actions workflow to install dependencies from requirements.txt instead of directly installing mkdocs-material. --- .github/PULL_REQUEST_TEMPLATE/adr.md | 24 ++++++++++++++++++++++++ .github/pull_request_template.md | 24 ++++++++++++++++++++++++ .github/workflows/deploy-docs.yml | 2 +- requirements.txt | 2 ++ 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE/adr.md create mode 100644 .github/pull_request_template.md create mode 100644 requirements.txt diff --git a/.github/PULL_REQUEST_TEMPLATE/adr.md b/.github/PULL_REQUEST_TEMPLATE/adr.md new file mode 100644 index 0000000..d754444 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/adr.md @@ -0,0 +1,24 @@ +## ADR Pull Request + +### Description + +Brief description of the architectural decision. + +### Checklist + +Before merging, ensure the following are complete: + +- [ ] ADR document follows the [template](docs/decisions/0001-record-architecture-decisions.md) +- [ ] ADR is added to `mkdocs.yml` navigation: + ```yaml + nav: + - Architecture Decisions: + - decisions/XXXX-your-adr-name.md # Add here + ``` +- [ ] ADR is added to the "Recent Decisions" table in `docs/index.md` +- [ ] ADR has been reviewed by at least one board member + +### Related Issues + +Closes # + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..592a962 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,24 @@ +## Description + +Brief description of changes. + +## Type of Change + +- [ ] Bug fix +- [ ] New feature +- [ ] Documentation update +- [ ] ADR (Architecture Decision Record) + +## ADR Checklist (if applicable) + +If this PR includes a new ADR, ensure: + +- [ ] ADR is added to `mkdocs.yml` nav section +- [ ] ADR is added to "Recent Decisions" table in `docs/index.md` +- [ ] ADR follows the standard template + +## Review + +- [ ] I have reviewed my own changes +- [ ] Documentation is updated (if needed) + diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 97d53c7..5ada78c 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -36,7 +36,7 @@ jobs: mkdocs-material- - name: Install dependencies - run: pip install mkdocs-material + run: pip install -r requirements.txt - name: Build and Deploy run: mkdocs gh-deploy --force diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6efdf48 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +mkdocs-material>=9.7 + From 77e666708ae39084298c31f3aaf6d261047062b6 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 5 Dec 2025 13:33:05 +0100 Subject: [PATCH 07/12] Update response time language in architecture help section for clarity --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 4e07c1f..23bac79 100644 --- a/docs/index.md +++ b/docs/index.md @@ -7,7 +7,7 @@ The Architecture Board provides technical governance and guidance for SciLifeLab !!! question "Need Architecture Help?" - No question too small - - Response within 2 weeks + - We aim to respond promptly - Early guidance prevents expensive mistakes [:octicons-issue-opened-16: Open an Issue](https://github.com/SciLifeLab/architecture/issues/new?template=architecture-question.md){ .md-button .md-button--primary } From 827fbe4b40466b8f52afc04095daaae13f0db5aa Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 5 Dec 2025 13:36:17 +0100 Subject: [PATCH 08/12] Update GitHub link in MkDocs configuration and improve Git credentials formatting in deployment workflow --- .github/workflows/deploy-docs.yml | 5 ++--- docs/index.md | 4 ++-- mkdocs.yml | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 5ada78c..dede914 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -20,8 +20,8 @@ jobs: - name: Configure Git Credentials run: | - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - uses: actions/setup-python@v6 with: @@ -40,4 +40,3 @@ jobs: - name: Build and Deploy run: mkdocs gh-deploy --force - diff --git a/docs/index.md b/docs/index.md index 23bac79..dcf4713 100644 --- a/docs/index.md +++ b/docs/index.md @@ -65,8 +65,8 @@ The Architecture Board welcomes input from all SciLifeLab teams and the broader !!! tip "How to Contribute" - 1. **Not sure yet?** Start a [GitHub Discussion](https://github.com/scilifelab/architecture/discussions) or email [architecture@scilifelab.se](mailto:architecture@scilifelab.se) - 2. **Have a question?** Open a [GitHub Issue](https://github.com/scilifelab/architecture/issues) to get guidance + 1. **Not sure yet?** Start a [GitHub Discussion](https://github.com/SciLifeLab//architecture/discussions) or email [architecture@scilifelab.se](mailto:architecture@scilifelab.se) + 2. **Have a question?** Open a [GitHub Issue](https://github.com/SciLifeLab/architecture/issues) to get guidance 3. **Proposing a change?** Create an ADR following our [template](decisions/0001-record-architecture-decisions.md) 4. **Found an issue?** Submit a pull request with your suggested improvements diff --git a/mkdocs.yml b/mkdocs.yml index 5d10b04..9cbff3c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -76,7 +76,7 @@ nav: extra: social: - icon: fontawesome/brands/github - link: https://github.com/scilifelab + link: https://github.com/SciLifeLab - icon: fontawesome/solid/globe link: https://scilifelab.se generator: false From 6ea8902ee3ad79ada812272cdca64ad4b24687ad Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Tue, 9 Dec 2025 12:25:13 +0100 Subject: [PATCH 09/12] Update title of decision document to include ADR prefix for consistency --- .../0004-use-mkdocs-material-for-documentation-site.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/decisions/0004-use-mkdocs-material-for-documentation-site.md b/docs/decisions/0004-use-mkdocs-material-for-documentation-site.md index 50a768d..f563860 100644 --- a/docs/decisions/0004-use-mkdocs-material-for-documentation-site.md +++ b/docs/decisions/0004-use-mkdocs-material-for-documentation-site.md @@ -1,4 +1,4 @@ -# 4. Use MkDocs Material for Documentation Site +# ADR-0004. Use MkDocs Material for Documentation Site Date: 2025-11-28 From b64aa28416f578290a61007abcfa00f0fcb1760c Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Wed, 10 Dec 2025 14:13:18 +0100 Subject: [PATCH 10/12] Update documentation to reflect broader academic community engagement in Architecture Board contributions --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index dcf4713..ac6836f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -61,7 +61,7 @@ _Adjunct members: Björn Nystedt, Hanna Kultima (Integrated Data Services Projec ## Get Involved -The Architecture Board welcomes input from all SciLifeLab teams and the broader community. Whether you have a technical proposal, an architecture concern, or need guidance on a decision, we're here to help. +The Architecture Board welcomes input from all SciLifeLab teams and the broader academic community. Whether you have a technical proposal, an architecture concern, or need guidance on a decision, we're here to help. !!! tip "How to Contribute" From 62a0a67271088132fce32a902edc830e8978d11c Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Thu, 11 Dec 2025 09:32:05 +0100 Subject: [PATCH 11/12] Remove duplicate description in README Removed duplicate description of technical architecture governance. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 688709f..900d145 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,6 @@ Technical architecture governance for SciLifeLab infrastructure - ensuring interoperability, standards, and sustainable design -Technical architecture governance for SciLifeLab infrastructure - ensuring interoperability, standards, and sustainable design - This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License][cc-by-sa]. From 6925bbb28463f6e6b6ffe5dbf7bf43a18d429fb8 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Thu, 11 Dec 2025 10:41:31 +0100 Subject: [PATCH 12/12] Remove ADR pull request template --- .github/PULL_REQUEST_TEMPLATE/adr.md | 24 ------------------------ docs/decisions/templates/template.md | 1 + scripts/adr-new | 1 + 3 files changed, 2 insertions(+), 24 deletions(-) delete mode 100644 .github/PULL_REQUEST_TEMPLATE/adr.md diff --git a/.github/PULL_REQUEST_TEMPLATE/adr.md b/.github/PULL_REQUEST_TEMPLATE/adr.md deleted file mode 100644 index d754444..0000000 --- a/.github/PULL_REQUEST_TEMPLATE/adr.md +++ /dev/null @@ -1,24 +0,0 @@ -## ADR Pull Request - -### Description - -Brief description of the architectural decision. - -### Checklist - -Before merging, ensure the following are complete: - -- [ ] ADR document follows the [template](docs/decisions/0001-record-architecture-decisions.md) -- [ ] ADR is added to `mkdocs.yml` navigation: - ```yaml - nav: - - Architecture Decisions: - - decisions/XXXX-your-adr-name.md # Add here - ``` -- [ ] ADR is added to the "Recent Decisions" table in `docs/index.md` -- [ ] ADR has been reviewed by at least one board member - -### Related Issues - -Closes # - diff --git a/docs/decisions/templates/template.md b/docs/decisions/templates/template.md index 1f7944b..85339a7 100644 --- a/docs/decisions/templates/template.md +++ b/docs/decisions/templates/template.md @@ -17,3 +17,4 @@ The change that we're proposing or have agreed to implement. ## Consequences What becomes easier or more difficult to do and any risks introduced by the change that will need to be mitigated. + diff --git a/scripts/adr-new b/scripts/adr-new index 6e23629..68db2d4 100755 --- a/scripts/adr-new +++ b/scripts/adr-new @@ -15,3 +15,4 @@ if [ -n "$output" ] && [ -f "$output" ]; then echo "$output" fi +