diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 14458c274..8be1a261d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,3 +8,298 @@ Add Cell framework example using C++23 modules ``` Commit messages like "Applying previous commit" should be avoided. +# Contributing to Abi AI Framework + +Please write clear commit messages that briefly describe the changes. +For example: + +``` +Add Cell framework example using C++23 modules +``` + +## π§ͺ **Testing Requirements** + +### **Test Coverage Requirements** + +- **New Features**: 100% test coverage required +- **Bug Fixes**: Include regression tests +- **Performance Changes**: Include benchmark tests +- **API Changes**: Include integration tests + +### **Test Structure** + +```zig +// Test file structure +const std = @import("std"); + +test "feature: basic functionality" { + const allocator = std.testing.allocator; + + // Test setup + var instance = try createInstance(allocator); + defer instance.deinit(); + + // Test execution + const result = try instance.performOperation("test"); + + // Assertions + try std.testing.expectEqualStrings("expected", result); +} + +test "feature: error handling" { + const allocator = std.testing.allocator; + + // Test error conditions + const result = createInstance(allocator); + try std.testing.expectError(error.InvalidInput, result); +} + +test "feature: memory safety" { + const allocator = std.testing.allocator; + + // Test memory management + var instance = try createInstance(allocator); + defer instance.deinit(); + + // Verify no memory leaks + const stats = allocator.getStats(); + try std.testing.expectEqual(@as(usize, 0), stats.active_allocations); +} +``` + +### **Performance Testing** + +```zig +test "performance: within baseline" { + const allocator = std.testing.allocator; + + // Measure performance + const start_time = std.time.nanoTimestamp(); + try performOperation(allocator); + const end_time = std.time.nanoTimestamp(); + + const duration = @as(u64, @intCast(end_time - start_time)); + + // Assert performance within acceptable range + try std.testing.expectLessThan(duration, MAX_ALLOWED_TIME); +} +``` + +## π **Documentation** + +### **Documentation Requirements** + +- **Public APIs**: All public functions must be documented +- **Examples**: Include usage examples for complex APIs +- **README Updates**: Update README for significant features +- **API Reference**: Keep API documentation current + +### **Documentation Standards** + +```zig +/// # Neural Network Layer +/// +/// Represents a single layer in a neural network with configurable +/// activation functions and weight initialization. +/// +/// ## Features +/// - Configurable input/output dimensions +/// - Multiple activation functions (ReLU, Sigmoid, Tanh) +/// - Automatic weight initialization +/// - Memory-efficient operations +/// +/// ## Example +/// ```zig +/// var layer = try Layer.init(allocator, .{ +/// .input_size = 784, +/// .output_size = 128, +/// .activation = .ReLU, +/// }); +/// defer layer.deinit(); +/// +/// const output = try layer.forward(&input, allocator); +/// ``` +pub const Layer = struct { + // Implementation... +}; +``` + +### **README Updates** + +When adding significant features, update the README: + +- **Features section**: Add new capabilities +- **Examples section**: Include usage examples +- **Performance section**: Update benchmarks if applicable +- **Installation**: Update if new dependencies are added + +## π **Pull Request Process** + +### **PR Template** + +```markdown +## Description +Brief description of changes made + +## Type of Change +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] Documentation update + +## Testing +- [ ] All tests pass +- [ ] New tests added for new functionality +- [ ] Performance tests included if applicable +- [ ] Memory safety verified + +## Checklist +- [ ] Code follows project style guidelines +- [ ] Self-review of code completed +- [ ] Code is commented, particularly in hard-to-understand areas +- [ ] Documentation updated +- [ ] No breaking changes (or breaking changes documented) + +## Related Issues +Closes #123 +``` + +### **Review Process** + +1. **Automated Checks**: CI must pass all tests +2. **Code Review**: At least one maintainer must approve +3. **Testing**: All tests must pass on all platforms +4. **Documentation**: Documentation must be updated +5. **Performance**: No performance regressions allowed + +### **Merging Criteria** + +- **Tests Pass**: All automated tests must pass +- **Code Review**: At least one approval from maintainers +- **Documentation**: Documentation must be complete +- **Performance**: Performance must be maintained or improved +- **Memory Safety**: No memory leaks or safety issues + +## π― **Areas for Contribution** + +### **High Priority** + +#### **π Performance Optimizations** +- **SIMD Operations**: Optimize vector operations for different architectures +- **Memory Management**: Improve allocation strategies and reduce fragmentation +- **Algorithm Optimization**: Optimize core algorithms for better performance +- **GPU Acceleration**: Enhance GPU backend implementations + +#### **π§ AI/ML Features** +- **Neural Networks**: Add new layer types and activation functions +- **Training Algorithms**: Implement advanced training methods +- **Model Formats**: Add support for more model formats +- **Embedding Models**: Implement state-of-the-art embedding techniques + +#### **ποΈ Database Enhancements** +- **Indexing**: Implement advanced indexing algorithms (HNSW, IVF) +- **Compression**: Add vector compression techniques +- **Distributed**: Add distributed database capabilities +- **Query Optimization**: Optimize search and query performance + +### **Medium Priority** + +#### **π Plugin System** +- **Plugin Interfaces**: Enhance plugin system capabilities +- **Plugin Examples**: Create more example plugins +- **Plugin Testing**: Improve plugin testing infrastructure +- **Plugin Documentation**: Enhance plugin development guides + +#### **π Network Infrastructure** +- **Protocol Support**: Add more network protocols +- **Load Balancing**: Implement load balancing capabilities +- **Security**: Add authentication and authorization +- **Monitoring**: Enhance network monitoring and metrics + +### **Good First Issues** + +- **Documentation**: Fix typos, improve examples, add missing docs +- **Tests**: Add missing tests, improve test coverage +- **Examples**: Create new examples, improve existing ones +- **CI/CD**: Improve build scripts, add new platforms +- **Benchmarks**: Add new benchmarks, improve existing ones + +## π **Community** + +### **Communication Channels** + +- **GitHub Issues**: Bug reports and feature requests +- **GitHub Discussions**: General questions and discussions +- **Discord Server**: Real-time chat and collaboration +- **Email**: support@abi-framework.org + +### **Community Guidelines** + +- **Be Helpful**: Help others learn and grow +- **Share Knowledge**: Share your expertise and experiences +- **Be Patient**: Everyone learns at their own pace +- **Celebrate Success**: Acknowledge and celebrate contributions + +### **Recognition** + +- **Contributors**: All contributors are listed in CONTRIBUTORS.md +- **Hall of Fame**: Special recognition for significant contributions +- **Badges**: Earn badges for different types of contributions +- **Mentorship**: Opportunity to mentor new contributors + +## π **Support** + +### **Getting Help** + +- **Documentation**: Check the docs first +- **Issues**: Search existing issues for solutions +- **Discussions**: Ask questions in GitHub Discussions +- **Discord**: Get real-time help in our Discord server + +### **Reporting Issues** + +When reporting issues, please include: + +- **Environment**: OS, Zig version, hardware details +- **Steps to Reproduce**: Clear, step-by-step instructions +- **Expected vs Actual**: What you expected vs what happened +- **Logs**: Relevant error messages and logs +- **Minimal Example**: Minimal code to reproduce the issue + +### **Feature Requests** + +For feature requests: + +- **Use Case**: Describe the problem you're trying to solve +- **Proposed Solution**: Suggest how it could be implemented +- **Alternatives**: Consider if existing features could solve your need +- **Priority**: Indicate how important this is to you + +## π **Getting Started Checklist** + +- [ ] Fork and clone the repository +- [ ] Set up development environment +- [ ] Build and test the project +- [ ] Read the contributing guidelines +- [ ] Pick an issue to work on +- [ ] Create a feature branch +- [ ] Make your changes +- [ ] Write tests for your changes +- [ ] Update documentation +- [ ] Run all tests +- [ ] Commit your changes +- [ ] Create a pull request +- [ ] Participate in code review +- [ ] Celebrate your contribution! π + +--- + +**π Ready to contribute? Pick an issue and start coding!** + +**π€ Together, we're building the future of high-performance AI development.** + +**π‘ Questions? Join our Discord or open a GitHub Discussion.** + +--- + +**Thank you for contributing to Abi AI Framework!** diff --git a/README.md b/README.md index fbf5b071b..d701f0153 100644 --- a/README.md +++ b/README.md @@ -1,160 +1,37 @@ -
| - -### Lightning Fast -Built with Zig for zero-cost abstractions, comptime optimization, and bare-metal performance. SIMD-accelerated operations throughout. - - | -- -### Production Ready -Battle-tested with 1296 tests (1290 passing, 6 skip), comprehensive error handling, graceful degradation, and circuit breakers for resilience. - - | -- -### Fully Modular -Enable only what you need. Every feature is toggleable at compile-time with zero overhead for disabled modules. - - | -