Please write clear commit messages that briefly describe the changes. For example:
Add Cell framework example using C++23 modules
Commit messages like "Applying previous commit" should be avoided.
Please write clear commit messages that briefly describe the changes. For example:
Add Cell framework example using C++23 modules
- New Features: 100% test coverage required
- Bug Fixes: Include regression tests
- Performance Changes: Include benchmark tests
- API Changes: Include integration tests
// 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);
}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);
}- 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
/// # 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...
};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
## 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- Automated Checks: CI must pass all tests
- Code Review: At least one maintainer must approve
- Testing: All tests must pass on all platforms
- Documentation: Documentation must be updated
- Performance: No performance regressions allowed
- 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
- 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
- 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
- Indexing: Implement advanced indexing algorithms (HNSW, IVF)
- Compression: Add vector compression techniques
- Distributed: Add distributed database capabilities
- Query Optimization: Optimize search and query performance
- Plugin Interfaces: Enhance plugin system capabilities
- Plugin Examples: Create more example plugins
- Plugin Testing: Improve plugin testing infrastructure
- Plugin Documentation: Enhance plugin development guides
- Protocol Support: Add more network protocols
- Load Balancing: Implement load balancing capabilities
- Security: Add authentication and authorization
- Monitoring: Enhance network monitoring and metrics
- 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
- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: General questions and discussions
- Discord Server: Real-time chat and collaboration
- Email: [email protected]
- 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
- 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
- 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
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
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
- 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!