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
88 changes: 31 additions & 57 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -1,69 +1,43 @@
name: Deploy Documentation
name: Noncanonical docs guard

# docs.openadapt.ai is built and deployed by OpenAdaptAI/openadapt-ops from the
# local openadapt-maintenance checkout. This repository only notifies that
# pipeline through notify-docs.yml; it must never publish a competing Pages
# artifact or claim the canonical custom domain.
on:
pull_request:
paths:
- "docs/**"
- "mkdocs.yml"
- ".github/workflows/docs.yml"
push:
branches:
- main
branches: [main]
paths:
- 'docs/**'
- 'mkdocs.yml'
- '.github/workflows/docs.yml'
workflow_dispatch:
- "docs/**"
- "mkdocs.yml"
- ".github/workflows/docs.yml"

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

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
guard:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-mkdocs-${{ hashFiles('mkdocs.yml') }}
restore-keys: |
${{ runner.os }}-pip-mkdocs-

- name: Install dependencies
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Refuse a second docs.openadapt.ai publisher
shell: bash
run: |
pip install --upgrade pip
pip install mkdocs-material mkdocs-minify-plugin

- name: Build documentation
run: mkdocs build --strict

- name: Setup Pages
uses: actions/configure-pages@v4

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: site

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
test ! -e docs/CNAME
python - <<'PY'
from pathlib import Path

source = Path(".github/workflows/docs.yml").read_text()
forbidden = (
"actions/" + "deploy-pages",
"actions/" + "upload-pages-artifact",
)
assert not any(item in source for item in forbidden)
PY
grep -qi "noncanonical" docs/index.md
grep -q "openadapt-maintenance" docs/index.md
8 changes: 8 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,11 @@ jobs:

- name: Run tests
run: pytest tests/ -v

- name: Build release artifacts and reject workstation state
run: |
python -m build
tar -tzf dist/*.tar.gz > /tmp/openadapt-sdist-files.txt
! grep -E '/(\.env|\.cache/|[^/]+\.db$|output\.png$|\.claude/|\.worktrees/)' /tmp/openadapt-sdist-files.txt
unzip -l dist/*.whl > /tmp/openadapt-wheel-files.txt
! grep -E '(\.env|\.cache/|[^/]+\.db$|output\.png$|\.claude/|\.worktrees/)' /tmp/openadapt-wheel-files.txt
29 changes: 16 additions & 13 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,27 @@

Thank you for your interest in contributing to OpenAdapt!

## Architecture
## Current Product Boundary

OpenAdapt uses a modular meta-package architecture. The main `openadapt` package coordinates these sub-packages:
`OpenAdaptAI/OpenAdapt` is the Beta launcher/meta-package and compatibility
surface. The canonical compiler and governed runtime live in
[`openadapt-flow`](https://github.com/OpenAdaptAI/openadapt-flow). New engine,
replay, repair, policy, and backend work belongs there.

| Package | Purpose | Repository |
|---------|---------|------------|
| openadapt-capture | GUI recording | [openadapt-capture](https://github.com/OpenAdaptAI/openadapt-capture) |
| openadapt-ml | ML training/inference | [openadapt-ml](https://github.com/OpenAdaptAI/openadapt-ml) |
| openadapt-evals | Benchmark evaluation | [openadapt-evals](https://github.com/OpenAdaptAI/openadapt-evals) |
| openadapt-viewer | HTML visualization | [openadapt-viewer](https://github.com/OpenAdaptAI/openadapt-viewer) |
| openadapt-grounding | UI element localization | [openadapt-grounding](https://github.com/OpenAdaptAI/openadapt-grounding) |
| openadapt-retrieval | Multimodal retrieval | [openadapt-retrieval](https://github.com/OpenAdaptAI/openadapt-retrieval) |
| openadapt-privacy | PII/PHI scrubbing | [openadapt-privacy](https://github.com/OpenAdaptAI/openadapt-privacy) |
| Lifecycle | Repositories | Contribution scope |
|-----------|--------------|--------------------|
| **Beta product** | `OpenAdapt`, `openadapt-flow` | Launcher here; engine in `openadapt-flow` |
| **Experimental support** | `openadapt-capture`, `openadapt-privacy`, `openadapt-desktop` | Native capture, scrubbing, and authoring surfaces |
| **Research** | `openadapt-ml`, `openadapt-evals`, `openadapt-grounding`, `openadapt-retrieval` | GUI-agent research and evaluation, not the product runtime |
| **Deprecated/history** | `openadapt-agent`, `legacy/` | Migration fixes only; no new features |

## Where to Contribute

- **This repository**: Meta-package, CLI, documentation, CI/CD
- **Sub-packages**: Open issues in the relevant repository above
- **This repository**: launcher packaging, unified CLI compatibility, and CI.
- **`openadapt-flow`**: compiler, replay, verification, governed repair, and
backend implementation.
- **Other repositories**: open issues only when their stated lifecycle and
contribution guide match the proposed work.

## Getting Started

Expand Down
Loading