Changelog - InjectQ Documentation
Author: InjectQ Contributors
Description: Modern Python dependency injection library

Skip to content

# Changelog

All notable changes to InjectQ will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

## [Unreleased]

### Added

- Comprehensive documentation with MkDocs
- Plugin system for extensibility
- Advanced middleware support
- Enhanced async support with context managers
- Resource management utilities
- Performance profiling tools
- Diagnostic and validation utilities
- Migration guides from other DI libraries

### Changed

- Improved type safety and mypy compliance
- Enhanced error messages and debugging information
- Optimized performance for large dependency graphs

### Fixed

- Various bug fixes and stability improvements

## [0.1.0] - 2024-01-15

### Added

- Initial release of InjectQ
- Core dependency injection functionality
- Multiple injection patterns:
- Dict-like interface
- `@inject` decorator
- `Inject()` function
- Service scopes:
- Singleton scope
- Transient scope
- Scoped services
- Custom scopes
- Module system for organizing dependencies
- Provider pattern for complex object creation
- Framework integrations:
- FastAPI integration
- Taskiq integration
- FastMCP integration
- Testing utilities:
- Test containers
- Mocking and overrides
- Async testing support
- Advanced features:
- Conditional registration
- Lazy loading
- Circular dependency detection
- Lifecycle hooks
- Thread safety features
- Performance optimizations
- Type safety with full mypy support

### Features

#### Core Container

- `InjectQ` container with dict-like interface
- Automatic dependency resolution
- Type-safe service registration and retrieval
- Support for generic types and protocols

#### Scoping System

- Built-in scopes: singleton, transient, scoped
- Custom scope creation and management
- Scope-aware dependency resolution
- Automatic resource cleanup

#### Module System

- Modular dependency organization
- Provider pattern for complex construction
- Module composition and inheritance
- Configuration-based modules

#### Injection Patterns

- `@inject` decorator for automatic injection
- `Inject()` function for explicit injection
- Dict-like container access
- Support for optional dependencies

#### Framework Integrations

- FastAPI: `Injected[T]` dependency provider
- Taskiq: Automatic worker dependency injection
- FastMCP: Server and tool integration

#### Testing Support

- Test-specific containers
- Service mocking and overrides
- Async testing utilities
- Integration testing helpers

#### Advanced Features

- Conditional service registration
- Lazy loading of expensive services
- Circular dependency detection and resolution
- Service lifecycle hooks
- Resource management with automatic cleanup

#### Performance Features

- Compile-time dependency resolution
- Service caching and optimization
- Thread-safe operations
- Minimal runtime overhead

### Documentation

- Comprehensive getting started guide
- Detailed core concepts explanation
- Extensive examples and tutorials
- Framework integration guides
- Testing strategies and best practices
- Migration guides from other libraries
- Complete API reference

### Development

- Full test suite with high coverage
- Type checking with mypy
- Code quality with ruff
- Continuous integration setup
- Documentation generation with MkDocs

## [0.0.1] - 2023-12-01

### Added

- Initial project setup
- Basic dependency injection prototype
- Core container implementation
- Simple registration and resolution

## Release Notes

### Version 0.1.0 Release Notes

InjectQ 0.1.0 is the first stable release of our modern Python dependency injection library. This release focuses on providing a simple yet powerful API that grows with your application needs.

#### Key Highlights

🎯 Multiple API Styles: Choose the injection style that fits your needs: - Dict-like interface for simple cases - `@inject` decorator for automatic injection - `Inject()` function for explicit control

🔒 Type Safety First: Full mypy compliance with early error detection and comprehensive type checking.

⚡ Performance Optimized: Compile-time dependency resolution with caching for minimal runtime overhead.

🧪 Testing Built-in: Comprehensive testing utilities including test containers, mocking, and async support.

🔗 Framework Native: Built-in integrations for FastAPI, Taskiq, and FastMCP with idiomatic patterns.

#### Breaking Changes

None - this is the first stable release.

#### Migration Guide

This is the initial release, so no migration is needed. However, if you're coming from other dependency injection libraries, check out our migration guides.

#### Known Issues

- None currently known

#### Deprecations

- None in this release

#### Acknowledgments

Special thanks to all contributors who helped make this release possible: - Core development team - Beta testers and early adopters - Documentation reviewers - Community feedback providers

## Upcoming Features

### Version 0.2.0 (Planned)

- Enhanced plugin system
- Additional framework integrations
- Performance improvements
- Extended diagnostic tools

### Version 0.3.0 (Planned)

- Configuration management improvements
- Advanced caching strategies
- Monitoring and observability features
- Additional testing utilities

## Contributing

We welcome contributions! Please see our contributing guide for details on how to contribute to InjectQ.

## Support

- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: InjectQ Docs