Skip to content
Open
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
22 changes: 22 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# https://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.{yml,yaml}]
indent_size = 2

[*.{json,toml}]
indent_size = 2

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
10 changes: 10 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# AutoWeave Code Owners

# Default owner for everything
* @hypnoastic

# Specific subsystems (examples, can be expanded as team grows)
/autoweave/orchestration/ @hypnoastic
/autoweave/storage/ @hypnoastic
/autoweave/monitoring/ @hypnoastic
/docs/ @hypnoastic
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms

github: [hypnoastic]
58 changes: 58 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Bug Report
description: Create a report to help us improve
title: "[Bug]: "
labels: ["bug"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: version
attributes:
label: AutoWeave Version
description: What version of the AutoWeave Library are you using?
placeholder: e.g. 0.1.0 or main branch commit
validations:
required: true
- type: input
id: environment
attributes:
label: Environment
description: OS, Python version, Docker version, etc.
placeholder: e.g. macOS 14.5, Python 3.11, Docker 24.0.5
validations:
required: true
- type: textarea
id: description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Run 'autoweave run-workflow...'
2. Provide input 'X'
3. See error 'Y'
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs or Output
description: Paste any relevant logs, tracebacks, or output. Use code blocks (```) for formatting.
validations:
required: false
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: AutoWeave Discussions
url: https://github.com/hypnoastic/Autoweave/discussions
about: Ask questions, share ideas, and engage with the community.
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Feature Request
description: Suggest an idea for this project
title: "[Feature]: "
labels: ["enhancement"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thanks for suggesting a new feature! Please provide as much context as possible.
- type: textarea
id: problem
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: true
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: false
- type: textarea
id: additional_context
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.
validations:
required: false
28 changes: 28 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## Description
<!-- Describe your changes in detail -->
<!-- Include motivation and context if it's a non-trivial change -->

## Related Issue
<!-- If fixing a bug or implementing a feature, link the issue here (e.g., Fixes #123) -->

## Type of Change
<!-- Check all that apply -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Refactoring / Tech Debt / Chore

## Testing
<!-- Describe the tests you ran to verify your changes. -->
- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] UI tests added/updated (if applicable)
- [ ] Tested locally with a real workflow execution

## Checklist
- [ ] My code follows the code style of this project (`make lint` passes).
- [ ] I have run mypy type checking (`make typecheck` passes).
- [ ] All new and existing tests pass (`make test` passes).
- [ ] I have added/updated documentation if necessary.
- [ ] My commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/) format.
24 changes: 24 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
version: 2
updates:
# Maintain dependencies for pip (pyproject.toml)
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
labels:
- "dependencies"
- "python"
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"] # Ignore major updates automatically, review manually

# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
labels:
- "dependencies"
- "ci"
121 changes: 121 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: CI

on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
workflow_dispatch:

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

jobs:
lint-format-typecheck:
name: Code Quality
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: ".python-version"
- name: Install dependencies
run: uv pip install --system -e ".[dev]"
- name: Lint & Format Check (Ruff)
run: make lint

test:
name: Test (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v7
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: uv pip install --system -e ".[dev]"
- name: Install Playwright browsers
run: uv run playwright install chromium
- name: Start Redis for Tests
uses: supercharge/redis-github-action@1.8.0
with:
redis-version: 6
- name: Run Tests & Check Coverage
run: make test:coverage
env:
REDIS_URL: "redis://localhost:6379/0"
- name: Upload Coverage Report
uses: actions/upload-artifact@v4
if: matrix.python-version == '3.10' # Only upload once
with:
name: coverage-report
path: .coverage
retention-days: 14

package:
name: Build & Smoke Test
runs-on: ubuntu-latest
needs: [lint-format-typecheck, test]
steps:
- uses: actions/checkout@v7
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: ".python-version"
- name: Run Package Smoke Test
run: make pack:check
- name: Upload Wheel
uses: actions/upload-artifact@v4
with:
name: autoweave-wheel
path: dist/*.whl
retention-days: 14

health-report:
name: Project Health Report
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
needs: [test]
steps:
- uses: actions/checkout@v7
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: ".python-version"
- name: Download Coverage Report
uses: actions/download-artifact@v4
with:
name: coverage-report
- name: Generate Health Report
run: |
uv pip install --system -e ".[dev]"
make health
- name: Upload Health Report
uses: actions/upload-artifact@v4
with:
name: project-health
path: reports/health_report.*
retention-days: 30
47 changes: 0 additions & 47 deletions .github/workflows/library-ci.yml

This file was deleted.

Loading
Loading