feat: implement modular capability system with automatic discovery
- Move release management to capabilities/release-management/ with complete Makefile - Create automatic capability discovery system in scripts/capability_discovery.mk - Add capability-manager subagent for managing modular architecture - Implement target delegation system enabling capability-name-target patterns - Create Makefiles for markitect-content, markitect-utils, and issue-facade capabilities - Remove legacy release management code and documentation from main project - Update main Makefile to use capability discovery and delegation - Add comprehensive capability status, help, and management targets The capability system provides: - Automatic discovery of capabilities with Makefiles - Clean target delegation without conflicts - Modular architecture following established patterns - Comprehensive help and status reporting - Zero-conflict capability integration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
114
Makefile
114
Makefile
@@ -1,7 +1,10 @@
|
||||
# MarkiTect - Advanced Markdown Engine
|
||||
# Makefile for common development tasks
|
||||
|
||||
.PHONY: help setup install install-dev uninstall install-home install-home-venv install-user-deps install-force-deps install-deps-venv install-system-deps list-deps setup-dev test build clean update status lint format check-deps venv-status update-digest add-diary-entry test-status test-new test-coverage test-arch test-foundation test-infrastructure test-integration test-domain test-service test-application test-presentation test-quick test-layers test-random test-random-seed test-random-repeat test-install-randomly test-clean test-tdd test-changed test-module test-cache-clean test-efficient cli-help release-status release-validate release-prepare release-build release-publish release-dry-run chaos-validate chaos-matrix chaos-inject chaos-report cost-help
|
||||
# Include capability discovery system
|
||||
include scripts/capability_discovery.mk
|
||||
|
||||
.PHONY: help setup install install-dev uninstall install-home install-home-venv install-user-deps install-force-deps install-deps-venv install-system-deps list-deps setup-dev test build clean update status lint format check-deps venv-status update-digest add-diary-entry test-status test-new test-coverage test-arch test-foundation test-infrastructure test-integration test-domain test-service test-application test-presentation test-quick test-layers test-random test-random-seed test-random-repeat test-install-randomly test-clean test-tdd test-changed test-module test-cache-clean test-efficient cli-help chaos-validate chaos-matrix chaos-inject chaos-report cost-help
|
||||
|
||||
# Default target
|
||||
help:
|
||||
@@ -26,8 +29,7 @@ help:
|
||||
@echo ""
|
||||
@echo "Development:"
|
||||
@echo " test - Run core tests (excluding capability-specific tests)"
|
||||
@echo " test-capabilities - Run all capability-specific tests"
|
||||
@echo " test-capability-* - Run specific capability tests (content, utils, finance, etc.)"
|
||||
@echo " test-capabilities - Run all capability tests (delegated to capabilities)"
|
||||
@echo " test-status - Show test status summary without re-running"
|
||||
@echo " test-new - Create new test file template"
|
||||
@echo " test-coverage - Analyze test coverage"
|
||||
@@ -36,16 +38,15 @@ help:
|
||||
@echo " lint - Run code linting"
|
||||
@echo " format - Format code"
|
||||
@echo ""
|
||||
@echo "Release Management (setuptools-scm):"
|
||||
@echo " release-status - Show current release status"
|
||||
@echo " release-validate - Validate repository for release"
|
||||
@echo " release-build - Build release packages (version auto-detected)"
|
||||
@echo " release-tag VERSION=x.y.z - Create release git tag"
|
||||
@echo " release-publish VERSION=x.y.z - Complete release workflow (tag + build)"
|
||||
@echo " release-publish-gitea VERSION=x.y.z - Release + upload to Gitea registry"
|
||||
@echo " release-upload-gitea - Upload existing packages to Gitea registry"
|
||||
@echo " release-registry - Show Gitea package registry information"
|
||||
@echo " release-dry-run VERSION=x.y.z - Test release workflow"
|
||||
@echo "Capabilities & Extensions:"
|
||||
@echo " capabilities-list List all available capabilities"
|
||||
@echo " capabilities-help Show help for all capabilities"
|
||||
@echo " capabilities-status Show capability status"
|
||||
@echo ""
|
||||
@echo "Release Management (via capability):"
|
||||
@echo " release-status Show current release status"
|
||||
@echo " release-publish-gitea VERSION=x.y.z Complete release + Gitea upload"
|
||||
@echo " Run 'make capabilities-help' for all release commands"
|
||||
@echo ""
|
||||
@echo "Chaos Engineering:"
|
||||
@echo " chaos-validate - Run architectural independence validation"
|
||||
@@ -384,32 +385,12 @@ test: $(VENV)/bin/activate
|
||||
fi
|
||||
|
||||
# Capability-Specific Test Targets
|
||||
test-capabilities: test-capability-content test-capability-utils test-capability-finance test-capability-query test-capability-graphql test-capability-plugins
|
||||
# Delegate to capability discovery system for testing capabilities
|
||||
test-capabilities: capabilities-test
|
||||
@echo "✅ All capability tests completed"
|
||||
|
||||
test-capability-content: $(VENV)/bin/activate
|
||||
@echo "🧪 Running markitect-content capability tests..."
|
||||
@cd capabilities/markitect-content && python -m pytest tests/ -v
|
||||
|
||||
test-capability-utils: $(VENV)/bin/activate
|
||||
@echo "🧪 Running markitect-utils capability tests..."
|
||||
@cd capabilities/markitect-utils && python -m pytest tests/ -v
|
||||
|
||||
test-capability-finance: $(VENV)/bin/activate
|
||||
@echo "🧪 Running finance capability tests..."
|
||||
@PYTHONPATH=. $(VENV_PYTHON) -m pytest markitect/finance/tests/ -v
|
||||
|
||||
test-capability-query: $(VENV)/bin/activate
|
||||
@echo "🧪 Running query paradigms capability tests..."
|
||||
@PYTHONPATH=. $(VENV_PYTHON) -m pytest markitect/query_paradigms/tests/ -v
|
||||
|
||||
test-capability-graphql: $(VENV)/bin/activate
|
||||
@echo "🧪 Running GraphQL capability tests..."
|
||||
@PYTHONPATH=. $(VENV_PYTHON) -m pytest markitect/graphql/tests/ -v
|
||||
|
||||
test-capability-plugins: $(VENV)/bin/activate
|
||||
@echo "🧪 Running plugins capability tests..."
|
||||
@PYTHONPATH=. $(VENV_PYTHON) -m pytest markitect/plugins/tests/ -v
|
||||
# Legacy test-capability-* targets are now handled by capability delegation
|
||||
# Use 'make capability-name-test' instead (e.g., 'make markitect-content-test')
|
||||
|
||||
# TDD8 Workflow Optimized Test Targets (Issue #57)
|
||||
|
||||
@@ -502,62 +483,9 @@ package: $(VENV)/bin/activate
|
||||
@echo "✅ Packages built successfully:"
|
||||
@ls -lah dist/ 2>/dev/null || echo " No packages found"
|
||||
|
||||
# Release management (setuptools-scm)
|
||||
release-status:
|
||||
@echo "🔍 Checking release status (setuptools-scm)..."
|
||||
$(VENV_PYTHON) release.py status
|
||||
|
||||
release-validate:
|
||||
@echo "✅ Validating release readiness..."
|
||||
$(VENV_PYTHON) release.py validate
|
||||
|
||||
release-build:
|
||||
@echo "📦 Building release packages (version auto-detected by setuptools-scm)..."
|
||||
$(VENV_PYTHON) release.py build
|
||||
|
||||
release-tag:
|
||||
@echo "🏷️ Creating release git tag..."
|
||||
@if [ -z "$(VERSION)" ]; then \
|
||||
echo "❌ Usage: make release-tag VERSION=1.0.0"; \
|
||||
echo "ℹ️ This creates a git tag that setuptools-scm will use for versioning"; \
|
||||
exit 1; \
|
||||
fi
|
||||
$(VENV_PYTHON) release.py tag --version $(VERSION)
|
||||
|
||||
release-publish:
|
||||
@echo "📢 Publishing complete release (setuptools-scm workflow)..."
|
||||
@if [ -z "$(VERSION)" ]; then \
|
||||
echo "❌ Usage: make release-publish VERSION=1.0.0"; \
|
||||
echo "ℹ️ This creates git tag + builds packages automatically"; \
|
||||
exit 1; \
|
||||
fi
|
||||
$(VENV_PYTHON) release.py publish --version $(VERSION)
|
||||
|
||||
release-dry-run:
|
||||
@echo "🧪 Dry run release workflow..."
|
||||
@if [ -z "$(VERSION)" ]; then \
|
||||
echo "❌ Usage: make release-dry-run VERSION=1.0.0"; \
|
||||
echo "ℹ️ This tests the tag + build workflow without making changes"; \
|
||||
exit 1; \
|
||||
fi
|
||||
$(VENV_PYTHON) release.py publish --version $(VERSION) --dry-run
|
||||
|
||||
release-publish-gitea:
|
||||
@echo "🚀 Publishing complete release with Gitea upload..."
|
||||
@if [ -z "$(VERSION)" ]; then \
|
||||
echo "❌ Usage: make release-publish-gitea VERSION=1.0.0"; \
|
||||
echo "ℹ️ This creates git tag + builds packages + uploads to Gitea"; \
|
||||
exit 1; \
|
||||
fi
|
||||
$(VENV_PYTHON) release.py publish --version $(VERSION) --to-gitea
|
||||
|
||||
release-upload-gitea:
|
||||
@echo "📡 Uploading packages to Gitea registry..."
|
||||
$(VENV_PYTHON) release.py upload
|
||||
|
||||
release-registry:
|
||||
@echo "📦 Gitea package registry information..."
|
||||
$(VENV_PYTHON) release.py registry
|
||||
# Release management targets are provided by capabilities/release-management/Makefile
|
||||
# All capability targets are automatically discovered and available via delegation
|
||||
# Run 'make capabilities-help' to see all available capability commands
|
||||
|
||||
# Chaos Engineering targets
|
||||
chaos-validate:
|
||||
|
||||
Reference in New Issue
Block a user