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
2 changes: 1 addition & 1 deletion .claude-flow/metrics/performance.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"startTime": 1757104573500,
"startTime": 1758176861714,
"totalTasks": 1,
"successfulTasks": 1,
"failedTasks": 0,
Expand Down
6 changes: 3 additions & 3 deletions .claude-flow/metrics/task-metrics.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[
{
"id": "cmd-hooks-1757104573543",
"id": "cmd-hooks-1758176861750",
"type": "hooks",
"success": true,
"duration": 4.682124999999999,
"timestamp": 1757104573548,
"duration": 13.100209000000007,
"timestamp": 1758176861763,
"metadata": {}
}
]
119 changes: 119 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# Auto detect text files and perform LF normalization
* text=auto

# Python files
*.py text diff=python
*.pyi text diff=python
*.pyx text diff=python
*.pxd text diff=python
*.pxi text diff=python

# Shell scripts
*.sh text eol=lf
*.bash text eol=lf
*.zsh text eol=lf

# Windows scripts
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

# Configuration files
*.json text
*.yaml text
*.yml text
*.toml text
*.ini text
*.cfg text
*.conf text

# Documentation
*.md text
*.rst text
*.txt text
LICENSE text
CHANGELOG text
CONTRIBUTING text
README text
AUTHORS text

# Web files
*.html text diff=html
*.css text diff=css
*.js text diff=javascript
*.jsx text diff=javascript
*.ts text diff=typescript
*.tsx text diff=typescript

# Data files
*.csv text
*.tsv text
*.sql text
*.xml text

# Binary files
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.webp binary
*.pdf binary
*.doc binary
*.docx binary
*.xls binary
*.xlsx binary
*.ppt binary
*.pptx binary
*.zip binary
*.gz binary
*.tar binary
*.7z binary
*.rar binary

# Python specific binary
*.pyc binary
*.pyo binary
*.pyd binary
*.so binary
*.egg binary
*.whl binary

# Jupyter notebooks
*.ipynb text eol=lf

# Git files
.gitignore text
.gitattributes text
.gitmodules text

# Docker files
Dockerfile text
.dockerignore text
docker-compose*.yml text

# CI/CD files
.travis.yml text
.gitlab-ci.yml text
azure-pipelines.yml text
.github/*.yml text
.github/**/*.yml text

# Lock files (treat as binary to avoid merge conflicts)
package-lock.json binary
yarn.lock binary
poetry.lock binary
Pipfile.lock binary
requirements*.txt text

# Exclude files from language statistics
docs/* linguist-documentation
examples/* linguist-documentation
tests/* linguist-vendored
*.min.js linguist-vendored
*.min.css linguist-vendored

# Mark generated files
*_pb2.py linguist-generated
*_pb2_grpc.py linguist-generated
src/daglab/_version.py linguist-generated
51 changes: 51 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# DagLab Code Owners
# This file defines who is responsible for code in this repository.
# Each line is a file pattern followed by one or more owners.

# Default owner for everything in the repo
* @daglab-maintainers

# Core components require multiple reviewers
/src/daglab/core/ @daglab-core @daglab-architects
/src/daglab/runtime/ @daglab-core @daglab-runtime

# API and contracts
/src/daglab/api/ @daglab-api @daglab-architects
/src/daglab/contracts/ @daglab-api @daglab-core

# Storage and integrations
/src/daglab/storage/ @daglab-storage @daglab-data
/src/daglab/integrations/ @daglab-integrations

# Infrastructure and operations
/.github/ @daglab-devops @daglab-core
/docker/ @daglab-devops
/scripts/ @daglab-devops
/Dockerfile @daglab-devops
/docker-compose.yml @daglab-devops

# Configuration
/pyproject.toml @daglab-core @daglab-architects
/setup.py @daglab-core @daglab-architects
/requirements*.txt @daglab-core

# Documentation
/docs/ @daglab-docs @daglab-core
/README.md @daglab-docs @daglab-core
/CONTRIBUTING.md @daglab-docs @daglab-core
/CHANGELOG.md @daglab-release

# Tests
/tests/ @daglab-qa @daglab-core
/tests/integration/ @daglab-qa @daglab-integrations
/tests/benchmarks/ @daglab-performance

# Security-sensitive files
/src/daglab/security/ @daglab-security @daglab-core
/src/daglab/auth/ @daglab-security @daglab-core
/.env.example @daglab-security
/config/ @daglab-security

# Release management
/.github/workflows/release.yml @daglab-release @daglab-core
/.github/cliff.toml @daglab-release
59 changes: 59 additions & 0 deletions .github/cliff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# git-cliff configuration for changelog generation

[changelog]
# Header template for the changelog
header = """
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n
"""
# Body template for the changelog
body = """
{% if version %}\
## [{{ version }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [Unreleased]
{% endif %}\

{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | upper_first }}
{% for commit in commits %}
- {{ commit.message | upper_first }}{% if commit.breaking %} [**BREAKING**]{% endif %}\
{% endfor %}
{% endfor %}\n
"""
# Footer template for the changelog
footer = """
<!-- generated by git-cliff -->
"""

[git]
# Parse the commits based on conventional commits
conventional_commits = true
# Filter commits
filter_unconventional = true
# Commit message processor
commit_preprocessors = [
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/openconjecture/daglab/issues/${2}))" },
]
# Commit groups
commit_parsers = [
{ message = "^feat", group = "Features" },
{ message = "^fix", group = "Bug Fixes" },
{ message = "^docs", group = "Documentation" },
{ message = "^perf", group = "Performance" },
{ message = "^refactor", group = "Refactor" },
{ message = "^style", group = "Styling" },
{ message = "^test", group = "Testing" },
{ message = "^chore", group = "Miscellaneous Tasks" },
{ message = "^ci", group = "Continuous Integration" },
{ message = "^build", group = "Build System" },
{ body = ".*security", group = "Security" },
{ message = "^revert", group = "Revert" },
]
# Filter out commits
filter_commits = true
# Sorting
sort_commits = "newest"
96 changes: 96 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
version: 2
updates:
# Python dependencies
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "03:00"
open-pull-requests-limit: 10
reviewers:
- "daglab-maintainers"
assignees:
- "daglab-bot"
labels:
- "dependencies"
- "python"
commit-message:
prefix: "chore"
include: "scope"
groups:
development:
patterns:
- "pytest*"
- "ruff"
- "black"
- "mypy"
- "isort"
- "sphinx*"
production:
patterns:
- "pydantic"
- "fastapi"
- "sqlalchemy"
- "celery"
- "redis"
ignore:
# Ignore major version updates for core dependencies
- dependency-name: "pydantic"
update-types: ["version-update:semver-major"]
- dependency-name: "sqlalchemy"
update-types: ["version-update:semver-major"]
versioning-strategy: "increase"

# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "03:00"
open-pull-requests-limit: 5
reviewers:
- "daglab-maintainers"
labels:
- "dependencies"
- "github-actions"
commit-message:
prefix: "ci"
include: "scope"

# Docker dependencies
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "03:00"
open-pull-requests-limit: 5
reviewers:
- "daglab-maintainers"
labels:
- "dependencies"
- "docker"
commit-message:
prefix: "build"
include: "scope"

# npm dependencies (for documentation or frontend tools)
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "monthly"
open-pull-requests-limit: 5
reviewers:
- "daglab-maintainers"
labels:
- "dependencies"
- "javascript"
commit-message:
prefix: "chore"
include: "scope"
ignore:
# Ignore all patch updates
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
Loading
Loading