Skip to content
Open
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
52daff3
refactor: consolidate JWT middleware and remove old mmf directory
burdettadam Nov 13, 2025
446171d
Archive platform_core to boneyard
burdettadam Nov 13, 2025
8e97db8
Archive service templates to boneyard
burdettadam Nov 13, 2025
1c08cbc
Archive all service templates to boneyard
burdettadam Nov 13, 2025
7e43818
Update services migration strategy - mark as completed
burdettadam Nov 13, 2025
5f0d680
Migrate observability module to mmf_new
burdettadam Nov 14, 2025
73b06dc
Archive old observability module to boneyard
burdettadam Nov 14, 2025
b03f780
Migrate events and messaging frameworks to mmf_new
burdettadam Nov 14, 2025
8a0537d
Archive old events and messaging modules to boneyard
burdettadam Nov 14, 2025
ba31bdd
Migrate patterns module (Event Sourcing, Saga) to mmf_new
burdettadam Nov 14, 2025
3f53ee2
Archive old patterns and event_streaming modules to boneyard
burdettadam Nov 15, 2025
d153db8
Migrate grpc framework to mmf_new and update observability integration
burdettadam Nov 15, 2025
8aee27c
Archive old grpc framework to boneyard
burdettadam Nov 15, 2025
dbecf7e
Fix broken import in patterns config.py
burdettadam Nov 15, 2025
addf918
Migrate config system to mmf_new with proper DI integration
burdettadam Nov 15, 2025
6e3d873
feat(cache): migrate enterprise caching infrastructure to mmf_new
burdettadam Nov 16, 2025
e166d7c
feat: migrate authorization module to mmf_new/core/authorization
burdettadam Nov 17, 2025
2b283ed
feat: complete identity service migration to mmf_new
burdettadam Nov 17, 2025
84f2b7d
fix: resolve domain model imports and API key adapter issues
burdettadam Nov 18, 2025
e870485
fix: update GitHub Actions workflows to use mmf_new directory
burdettadam Nov 18, 2025
1d4ae55
fix: update test script to use mmf_new directory
burdettadam Nov 18, 2025
5cca4d6
checkpoing
burdettadam Nov 26, 2025
dc201bf
fix: resolve pre-commit issues, enable isort, fix globals in di_config
burdettadam Nov 27, 2025
4317490
chore: remove boneyard directory
burdettadam Nov 27, 2025
cb91477
fix: add numpy to test dependencies
burdettadam Nov 27, 2025
d361259
style: fix formatting issues in mmf_new
burdettadam Nov 27, 2025
ca9032e
ci: fix workflow paths and remove dependency on missing script
burdettadam Nov 27, 2025
17b9f36
fix: update ultra direct load balancing test to handle health checks
burdettadam Nov 27, 2025
5396ed0
chore: enforce testing standards, add pact poc, and setup uv ci
burdettadam Nov 30, 2025
986dde8
new name
burdettadam Dec 2, 2025
22933da
feat: more tests
burdettadam Dec 19, 2025
2e80eb7
feat: Add cache infrastructure and push notification framework
burdettadam Jan 5, 2026
e5294bb
fix: disable coverage for architecture tests and fix E2E workflow
burdettadam Jan 5, 2026
bedd460
fix: include security extras in dev dependencies
burdettadam Jan 5, 2026
ebd3073
fix: add missing __init__.py files for identity adapters
burdettadam Jan 5, 2026
282e479
fix: add critical missing mmf/framework/__init__.py
burdettadam Jan 5, 2026
0aa05f4
fix: disable coverage for architecture and E2E tests, fix test paths
burdettadam Jan 5, 2026
15acfce
fix: update CI workflows - remove old test paths and fix Dockerfile
burdettadam Jan 5, 2026
8bdc7f5
fix(ci): remove conflicting working-directory from comprehensive-e2e …
burdettadam Jan 5, 2026
8e3b1df
fix(ci): add continue-on-error to flaky test steps
burdettadam Jan 7, 2026
eb3e983
fix: resolve PR validation failures - linting, formatting, and pytest…
burdettadam Jan 7, 2026
37dc9e2
Update Redis cache adapter implementation
burdettadam Jan 23, 2026
1262a36
feat: add beta release workflow
burdettadam Jan 26, 2026
d6ec53f
fix: correct beta workflow - add __version__ and fix GitHub Packages URL
burdettadam Jan 26, 2026
c2d4109
fix: use venv instead of --system for uv pip install
burdettadam Jan 26, 2026
940d0d1
fix: use 'uv pip install' and 'uv run' for build steps
burdettadam Jan 26, 2026
4240cf8
feat: Add Consul service discovery adapter and gateway infrastructure
burdettadam Feb 5, 2026
2555c44
Update migration adapter and documentation
burdettadam Feb 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
66 changes: 66 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: CI

on:
push:
branches: [ "main", "dev" ]
pull_request:
branches: [ "main", "dev" ]

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11"]

services:
# Service containers for integration tests
# Note: testcontainers will spin up their own, but having these available
# ensures the environment is capable of running containers.
redis:
image: redis:7-alpine
ports:
- 6379:6379
postgres:
image: postgres:15-alpine
env:
POSTGRES_PASSWORD: password # pragma: allowlist secret
POSTGRES_DB: test_db
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5

steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "latest"

- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Install dependencies
run: |
uv sync --all-extras --dev

- name: Run Architecture Checks
run: |
# Run the architecture tests
uv run pytest mmf/tests/test_architecture.py

- name: Run Core Tests with Coverage
run: |
# Run unit and integration tests with coverage enforcement
# The --cov-fail-under=70 flag is set in pyproject.toml, but we can override or rely on it.
uv run pytest mmf/tests/unit mmf/tests/integration

- name: Run Contract Tests (POC)
run: |
# Run contract tests
uv run pytest mmf/tests/contract
34 changes: 5 additions & 29 deletions .github/workflows/comprehensive-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ jobs:
working-directory: ./mmf
run: |
echo "Running MMF contract validation tests..."
../tests/run_mmf_tests.sh --contract --verbose
uv run pytest tests/contract -v

- name: Upload contract test results
if: always()
Expand Down Expand Up @@ -199,28 +199,8 @@ jobs:
timeout-minutes: ${{ matrix.timeout }}
working-directory: ./mmf
run: |
cd ${{ github.workspace }}

echo "Running MMF ${{ matrix.test-category }} tests in ${{ matrix.test-mode }} mode..."

case "${{ matrix.test-mode }}" in
"quick")
./tests/run_mmf_tests.sh --${{ matrix.test-category }} --quick --verbose
;;
"smoke")
./tests/run_mmf_tests.sh --${{ matrix.test-category }} --smoke --verbose
;;
"comprehensive")
./tests/run_mmf_tests.sh --${{ matrix.test-category }} --verbose
;;
"chaos")
./tests/run_mmf_tests.sh --${{ matrix.test-category }} --chaos --verbose
;;
*)
echo "Unknown test mode: ${{ matrix.test-mode }}"
exit 1
;;
esac
uv run pytest tests/${{ matrix.test-category }} -v

- name: Upload test artifacts
if: always()
Expand Down Expand Up @@ -278,11 +258,7 @@ jobs:
working-directory: ./mmf
run: |
echo "Running MMF performance validation tests..."
if [[ "${{ needs.check-test-scope.outputs.test-mode }}" == "comprehensive" ]]; then
../tests/run_mmf_tests.sh --performance --verbose
else
../tests/run_mmf_tests.sh --performance --quick --verbose
fi
uv run pytest tests/performance -v

- name: Upload performance results
if: always()
Expand Down Expand Up @@ -324,7 +300,7 @@ jobs:
working-directory: ./mmf
run: |
echo "Running MMF security validation tests..."
../tests/run_mmf_tests.sh --security --verbose
uv run pytest tests/security -v

- name: Security scan
run: |
Expand Down Expand Up @@ -386,7 +362,7 @@ jobs:
working-directory: ./mmf
run: |
echo "Running MMF chaos engineering tests..."
../tests/run_mmf_tests.sh --chaos --verbose
uv run pytest tests/chaos -v

- name: Upload chaos test results
if: always()
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,8 @@ jobs:
- name: Run E2E tests
working-directory: ./mmf
run: |
cd ${{ github.workspace }}
echo "Running MMF E2E tests..."
./tests/run_mmf_tests.sh --e2e --verbose
uv run pytest tests/e2e -v

- name: Upload test artifacts on failure
if: failure()
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/pr-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,16 +80,21 @@ jobs:
uv run ruff check . || echo "Linting issues found - will continue with tests"
uv run ruff format --check . || echo "Formatting issues found - will continue with tests"

- name: Run architectural tests
run: |
echo "Running architectural tests..."
uv run pytest mmf/tests/test_architecture.py -v

- name: Run unit tests
working-directory: ./mmf
run: |
echo "Running MMF unit tests..."
../tests/run_mmf_tests.sh --unit --verbose
uv run pytest tests/unit -v

- name: Run integration tests
run: |
echo "Running integration tests..."
uv run pytest tests/integration/ -v --tb=short -x || true
uv run pytest mmf/tests/integration/ -v --tb=short -x || true

# Contract tests - validate API compatibility
contract-tests:
Expand Down
74 changes: 41 additions & 33 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -72,24 +72,32 @@ repos:

# Python - Ruff (replaces both flake8 and black)
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.4
rev: v0.4.4
hooks:
- id: ruff
name: Lint Python code with Ruff
args: [--fix, --exit-non-zero-on-fix]
exclude: ^(services/.*\.py$|tools/scaffolding/.*\.py$|services/shared/modern_service_template\.py$|.*\.ipynb$|examples/demos/istio-1\.27\.2/.*\.py|examples/.*\.py|scripts/detect_globals\.py|.*migration.*\.py|.*legacy.*\.py)$
exclude: ^(services/.*\.py$|tools/scaffolding/.*\.py$|services/shared/modern_service_template\.py$|.*\.ipynb$|examples/demos/istio-1\.27\.2/.*\.py|examples/.*\.py|scripts/detect_globals\.py|.*migration.*\.py|.*legacy.*\.py|boneyard/.*)$
- id: ruff-format
name: Format Python code with Ruff
exclude: ^(services/.*\.py$|tools/scaffolding/.*\.py$|services/shared/modern_service_template\.py$|.*\.ipynb$|examples/demos/istio-1\.27\.2/.*\.py|examples/.*\.py|scripts/detect_globals\.py|.*migration.*\.py|.*legacy.*\.py)$
exclude: ^(services/.*\.py$|tools/scaffolding/.*\.py$|services/shared/modern_service_template\.py$|.*\.ipynb$|examples/demos/istio-1\.27\.2/.*\.py|examples/.*\.py|scripts/detect_globals\.py|.*migration.*\.py|.*legacy.*\.py|boneyard/.*)$

# Python - Import sorting
- repo: https://github.com/PyCQA/isort
rev: 7.0.0
rev: 5.13.2
hooks:
- id: isort
name: Sort Python imports with isort
args: ['--profile', 'black']

# Spell checking
- repo: https://github.com/crate-ci/typos
rev: v1.21.0
hooks:
- id: typos
name: Check for typos
exclude: ^(package-lock\.json|.*\.svg|examples/demos/istio-1\.27\.2/.*|ops/k8s/templates/.*|mmf/framework/infrastructure/repository\.py|mmf/framework/infrastructure/persistence\.py)$

# Python - Type checking (disabled - compatibility issues with Python 3.14)
# - repo: https://github.com/pre-commit/mirrors-mypy
# rev: v1.8.0
Expand Down Expand Up @@ -128,20 +136,20 @@ repos:
# additional_dependencies: [toml]

# Markdown linting
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.45.0
hooks:
- id: markdownlint
name: Lint Markdown files
args: ['--fix']
# - repo: https://github.com/igorshubovych/markdownlint-cli
# rev: v0.45.0
# hooks:
# - id: markdownlint
# name: Lint Markdown files
# args: ['--fix']

# Markdown link checking
- repo: https://github.com/tcort/markdown-link-check
rev: v3.14.1
hooks:
- id: markdown-link-check
name: Check Markdown links
args: ['--quiet']
# - repo: https://github.com/tcort/markdown-link-check
# rev: v3.14.1
# hooks:
# - id: markdown-link-check
# name: Check Markdown links
# args: ['--quiet']

# Security - Python vulnerabilities (pip-audit)
- repo: https://github.com/pypa/pip-audit
Expand Down Expand Up @@ -173,15 +181,15 @@ repos:
# Import placement check (runs after syntax fixers)
- repo: local
hooks:
- id: check-import-order
name: Check Import Placement
entry: uv run python scripts/check_import_order.py --fix
language: system
files: \.py$
exclude: ^(tests/.*\.py|examples/.*\.py|scripts/detect_globals\.py|.*migration.*\.py|.*legacy.*\.py|tools/scaffolding/.*\.py|boneyard/)$
require_serial: true
pass_filenames: false
stages: [pre-commit]
# - id: check-import-order
# name: Check Import Placement
# entry: uv run python scripts/check_import_order.py --fix
# language: system
# files: \.py$
# exclude: ^(tests/.*\.py|examples/.*\.py|scripts/detect_globals\.py|.*migration.*\.py|.*legacy.*\.py|tools/scaffolding/.*\.py|boneyard/)$
# require_serial: true
# pass_filenames: false
# stages: [pre-commit]

# Final syntax validation (after all fixes)
- id: check-ast
Expand All @@ -202,13 +210,13 @@ repos:
pass_filenames: false

# Import Linter - Enforces Level Contract Architecture
- id: import-linter
name: Import Linter (Level Contract Architecture)
entry: uv run lint-imports
language: system
pass_filenames: false
stages: [pre-commit]
exclude: ^(boneyard/)
# - id: import-linter
# name: Import Linter (Level Contract Architecture)
# entry: uv run lint-imports
# language: system
# pass_filenames: false
# stages: [pre-commit]
# exclude: ^(boneyard/)

# Dependencies check
- id: dependencies-check
Expand All @@ -226,7 +234,7 @@ repos:
entry: python3 scripts/pre_commit_check_globals.py
language: system
files: \.py$
exclude: ^(tests/.*test_.*\.py|examples/demos/.*\.py|scripts/detect_globals\.py|.*migration.*\.py|.*legacy.*\.py|tools/scaffolding/.*\.py|.*_template\.py|tests/.*/conftest\.py|services/shared/modern_service_template\.py|boneyard/)$
exclude: ^(tests/.*test_.*\.py|examples/demos/.*\.py|scripts/detect_globals\.py|.*migration.*\.py|.*legacy.*\.py|tools/scaffolding/.*\.py|.*_template\.py|tests/.*/conftest\.py|services/shared/modern_service_template\.py|boneyard/.*)$
require_serial: true
pass_filenames: false
stages: [pre-commit]
Expand Down
Loading
Loading