Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
dcf7678
fix(ci): resolve PyAudio build failures and Dependabot schema issues
Aug 1, 2025
4473fab
fix(aws_transcribe): skip AWS config validation in test environments
Aug 1, 2025
f33dcf6
ci(workflows): improve test environment setup for CI
Aug 1, 2025
1cae1ad
ci: switch audio capture provider to pyaudio and improve test setup
Aug 1, 2025
ee552b1
feat: simplify pre-commit hooks by removing verbose linters
Aug 2, 2025
ce279b1
ci: simplify workflows and remove redundant security checks
Aug 2, 2025
3c9fc1e
ci: reorder test setup steps in workflow
Aug 2, 2025
bd34293
ci: downgrade python version to 3.11 in workflows
Aug 2, 2025
e131bbc
ci: relax coverage requirements and remove windows test
Aug 2, 2025
b33f7b5
ci: include .coverage in artifact upload
Aug 2, 2025
a7b0704
style(tests): reformat patch statements for better readability
Aug 2, 2025
3a576b7
style: reformat long log messages to comply with line length
Aug 2, 2025
a8685a1
build: add setuptools dependency and pre-commit security check
Aug 2, 2025
580fa38
ci: reorganize workflow steps and remove OS-specific conditions
Aug 2, 2025
74890e1
ci: add coverage file verification and improve error handling
Aug 2, 2025
1261387
ci: improve coverage reporting in CI workflow
Aug 2, 2025
d770f8f
ci(workflow): update coverage reporting and file checks
Aug 2, 2025
ed34022
ci(workflows): enhance coverage verification and reporting
Aug 2, 2025
cc35e52
ci(workflows): enhance coverage verification with detailed debugging
Aug 2, 2025
395290b
hh
Aug 2, 2025
589c385
ci: remove coverage reporting from CI workflow
Aug 2, 2025
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
29 changes: 29 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# EditorConfig helps maintain consistent coding styles
# https://editorconfig.org/

root = true

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

[*.{py,pyi}]
indent_size = 4

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

[*.{json,js,ts}]
indent_size = 2

[*.md]
trim_trailing_whitespace = false
max_line_length = off

[Makefile]
indent_style = tab
75 changes: 28 additions & 47 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ updates:
interval: "weekly"
day: "monday"
time: "09:00"
timezone: "UTC"
timezone: "Etc/UTC"

# Keep PRs focused and manageable
open-pull-requests-limit: 5

# Grouping strategy for related updates
groups:
# Group AWS-related dependencies
Expand All @@ -25,87 +25,71 @@ updates:
- "botocore*"
- "amazon-transcribe*"
- "awscli*"
update-types:
- "minor"
- "patch"


# Group Azure dependencies
azure-dependencies:
patterns:
- "azure-*"
update-types:
- "minor"
- "patch"


# Group audio processing dependencies
audio-dependencies:
patterns:
- "pyaudio*"
- "numpy*"
- "scipy*"
update-types:
- "minor"
- "patch"


# Group testing dependencies
testing-dependencies:
patterns:
- "pytest*"
- "coverage*"
- "mock*"
update-types:
- "minor"
- "patch"


# Group UI dependencies
ui-dependencies:
patterns:
- "gradio*"
- "fastapi*"
- "uvicorn*"
update-types:
- "minor"
- "patch"


# Allow specific dependency updates
allow:
- dependency-type: "direct" # Only direct dependencies
- dependency-type: "indirect" # Also indirect for security updates
update-type: "security-update"

- dependency-type: "direct" # Direct dependencies
- dependency-type: "indirect" # Indirect dependencies (includes security updates)

# Ignore specific problematic updates if needed
ignore:
# Example: ignore major version updates for stable dependencies
# - dependency-name: "gradio"
# update-types: ["version-update:semver-major"]

# Ignore development dependencies major updates to maintain stability
- dependency-name: "pytest"
update-types: ["version-update:semver-major"]

# Commit message configuration
commit-message:
prefix: "deps"
prefix-development: "deps-dev"
include: "scope"

# Pull request configuration
pull-request-branch-name:
separator: "/"

# Reviewers and assignees (customize based on your team)
reviewers:
- "dev-wei" # Replace with actual GitHub username
- "dev-wei" # Replace with actual GitHub username

# Labels for easy identification and automation
labels:
- "dependencies"
- "automated"
- "python"

# Target branch for PRs
target-branch: "main"

# Auto-merge configuration for patch updates (optional, be careful!)
# enable-beta-ecosystems: true

Expand All @@ -116,28 +100,25 @@ updates:
interval: "weekly"
day: "tuesday"
time: "09:00"
timezone: "UTC"
timezone: "Etc/UTC"

open-pull-requests-limit: 3

# Group GitHub Actions updates
groups:
github-actions:
patterns:
- "*"
update-types:
- "minor"
- "patch"


commit-message:
prefix: "ci"
include: "scope"

labels:
- "dependencies"
- "github-actions"
- "ci/cd"

target-branch: "main"

# Docker dependencies (if you add Dockerfile in the future)
Expand All @@ -148,9 +129,9 @@ updates:
# day: "wednesday"
# time: "09:00"
# timezone: "UTC"
#
#
# open-pull-requests-limit: 2
#
#
# labels:
# - "dependencies"
# - "docker"
# - "docker"
78 changes: 78 additions & 0 deletions .github/test-env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
#!/bin/bash
# CI test environment setup for YMemo
# This script sets up a complete test environment with mock services and credentials

set -e # Exit on any error

echo "🧪 Setting up YMemo CI test environment..."

# Test environment indicators
export SKIP_AWS_VALIDATION=true
export MOCK_SERVICES=true
export TESTING=true
export CI=true
export PYTEST_RUNNING=true

# Logging configuration (reduce noise in CI)
export LOG_LEVEL=WARNING

# Mock AWS credentials (required for boto3 initialization)
export AWS_ACCESS_KEY_ID=test-access-key-id
export AWS_SECRET_ACCESS_KEY=test-secret-access-key
export AWS_DEFAULT_REGION=us-east-1
export AWS_REGION=us-east-1

# YMemo-specific test configuration
export TRANSCRIPTION_PROVIDER=aws
export CAPTURE_PROVIDER=pyaudio
export AUDIO_SAMPLE_RATE=16000
export AUDIO_CHANNELS=1

# Additional AWS environment variables for comprehensive mocking
export AWS_SESSION_TOKEN=test-session-token
export AWS_SECURITY_TOKEN=test-security-token

# Create fake AWS credentials directory structure
echo "📁 Creating mock AWS credentials directory..."
mkdir -p ~/.aws

# Create AWS credentials file
cat > ~/.aws/credentials << EOF
[default]
aws_access_key_id = test-access-key-id
aws_secret_access_key = test-secret-access-key
region = us-east-1

[test]
aws_access_key_id = test-access-key-id
aws_secret_access_key = test-secret-access-key
region = us-east-1
EOF

# Create AWS config file
cat > ~/.aws/config << EOF
[default]
region = us-east-1
output = json

[profile test]
region = us-east-1
output = json
EOF

# Set permissions (AWS CLI expects specific permissions)
chmod 600 ~/.aws/credentials
chmod 600 ~/.aws/config

# Additional environment variables for boto3
export AWS_SHARED_CREDENTIALS_FILE=~/.aws/credentials
export AWS_CONFIG_FILE=~/.aws/config

echo "✅ YMemo CI test environment configured successfully!"
echo "🔧 Environment summary:"
echo " - AWS validation: DISABLED"
echo " - Mock services: ENABLED"
echo " - Log level: WARNING"
echo " - Provider: $TRANSCRIPTION_PROVIDER"
echo " - Audio: ${AUDIO_SAMPLE_RATE}Hz, ${AUDIO_CHANNELS} channel(s)"
echo ""
Loading
Loading