Contribution Guidelines
Relevant source files
The following files were used as context for generating this wiki page:
Introduction
The Aether-X Ultimate project is a comprehensive microservices-based AI platform designed for content generation, no-code development, and secure data processing. These contribution guidelines provide developers with the necessary procedures for setting up environments, implementing features, and verifying code through the project's specialized testing and deployment pipelines.
Contributors are expected to follow a structured workflow that includes forking the repository, creating feature-specific branches, and submitting pull requests accompanied by relevant tests. The project emphasizes containerization, RESTful API design, and comprehensive monitoring to ensure scalability and security across all eight core microservices.
Sources: README.md:1-12, README.md:144-149, IMPLEMENTATION_COMPLETE.md:105-110
Development Environment Setup
Before contributing, developers must initialize a local environment that mirrors the production architecture. The project provides a setup-dev.sh script to automate directory creation, configuration generation, and dependency exclusion.
Initialization Steps
- Repository Setup: Clone the repository and navigate to the root directory.
- Environment Initialization: Execute
./setup-dev.shto generate the.gitignore,.dockerignore, and the localconfig/development.yamlfile. - Database Provisioning: Navigate to
infrastructure/databases, run./init-databases.shto create SQL and NoSQL initialization scripts, and start the storage layer usingdocker-compose up -d. - Service Orchestration: Return to the root and run
docker-compose up -d --buildto build and launch the microservices.
Sources: README.md:43-57, setup-dev.sh:5-135, infrastructure/databases/init-databases.sh:5-10, IMPLEMENTATION_COMPLETE.md:27-38
Local Configuration Options
The config/development.yaml file defines the default ports and debugging states for local development:
| Service | Port | Debug Mode | Primary Tech/Model |
|---|---|---|---|
| Text Generation | 8000 | True | GPT-2 |
| Image Generation | 8001 | True | Stable Diffusion |
| Video Generation | 8002 | True | TTS Integration |
| AI Models | 8003 | True | LLMs |
| No-Code Dev | 8004 | True | Natural Language |
| Security | 8005 | True | JWT/Fernet |
| Data Processing | 8006 | True | ETL/Kafka |
Sources: setup-dev.sh:139-165, IMPLEMENTATION_COMPLETE.md:12-21
Development Workflow
Contributors must adhere to a container-first development philosophy. Each service is isolated within its own directory under services/ and contains its own app.py and logic.
Branching and Pull Requests
The standard contribution lifecycle follows these steps:
- Fork the main repository.
- Create a feature branch for your specific change.
- Implement changes following RESTful API design principles.
- Test using the integrated testing suite.
- Submit a pull request for review.
Sources: README.md:144-149, IMPLEMENTATION_COMPLETE.md:105-110
Workflow Diagram
The following diagram illustrates the lifecycle of a contribution from local development to verification.
This flow ensures that all contributions are validated against the infrastructure before being merged into the core codebase.
Sources: setup-dev.sh:185-210, README.md:144-149
Testing Standards
All contributions MUST be accompanied by tests. The project utilizes a multi-tiered testing strategy ranging from simple health checks to complex load testing.
Test Categories
- Health Checks: Verifies that each service endpoint
/healthreturns a 200 OK status. - Integration Tests: Validates communication between services (e.g., API Gateway proxying to Text Generation).
- Functional Tests: Tests specific logic like user registration, image generation, or data ingestion.
- Load Tests: Assesses API Gateway performance under concurrent request volumes.
Sources: test.sh:10-15, test.sh:183-220, IMPLEMENTATION_COMPLETE.md:112-117
Executing Tests
Developers can run tests at different granularities:
# Test all services and integration points
./test.sh all
# Test only service connectivity
./test.sh health
# Test a specific service locally
cd services/<service-name>
pytest tests/
Sources: test.sh:255-275, setup-dev.sh:212-218
Deployment and Infrastructure
Contributions that modify infrastructure or deployment manifests (Kubernetes/Docker) must be verified using the provided deployment scripts.
Deployment Sequence
The deploy.sh script manages the rollout to Kubernetes namespaces. It follows a strict sequence:
- Prerequisite Check: Validates
kubectlanddockeravailability. - Namespace Creation: Sets up the
aether-xenvironment. - Infrastructure Rollout: Deploys databases, Kafka, and monitoring stacks first.
- Service Build: Builds Docker images for all 8 microservices.
- Service Deployment: Applies Kubernetes manifests and configures Nginx Ingress.
Sources: deploy.sh:11-105, IMPLEMENTATION_COMPLETE.md:40-48
Infrastructure Component Map
Contributors modifying data persistence must ensure compatibility with the existing multi-database architecture.
| Category | Component | Usage |
|---|---|---|
| SQL | MySQL | User Management, App Metadata |
| SQL | PostgreSQL | Workflow Definitions |
| NoSQL | MongoDB | Content Storage, Unstructured Data |
| NoSQL | Cassandra | High-availability Storage |
| Messaging | Apache Kafka | Real-time Data Streaming |
| Caching | Redis | Sessions and Caching |
Sources: README.md:113-130, infrastructure/databases/init-databases.sh:12-160
Technical Requirements
- Language: Python 3.9+ for backend services.
- API Standard: RESTful JSON-based communication.
- Security: All new protected endpoints must use JWT-based authentication via the Security service.
- Logging: Implement request logging and duration tracking (as seen in
api-gateway/app.py). - Monitoring: Expose metrics for Prometheus collection.
Sources: setup-dev.sh:178-180, services/api-gateway/app.py:53-73, IMPLEMENTATION_COMPLETE.md:88-95
Summary
Contributing to Aether-X Ultimate requires a disciplined approach to microservice orchestration and testing. By utilizing the setup-dev.sh and test.sh tools, contributors can ensure their features are compatible with the platform's zero-knowledge security architecture and high-availability infrastructure. Success in contribution is measured by the ability of new code to pass the integrated health, functional, and load testing suites before being deployed via Kubernetes.
Sources: IMPLEMENTATION_COMPLETE.md:123-132, README.md:151-155