Releases: runemalm/py-dependency-injection
Releases · runemalm/py-dependency-injection
Release v1.0.0-rc.1
- Transition to Release Candidate: This marks the first release candidate. The public API is now considered stable and ready for final validation before 1.0.0.
Release v1.0.0-beta.3
- Enhancement: Added
DependencyContainer.configure_default_container_name(...)
to support container isolation in parallel tests, even when application code uses a single shared container viaDependencyContainer.get_instance()
. - Enhancement: Added
DependencyContainer.clear_instances()
as a clean alternative to manually resetting_instances
during test teardown.
Release v1.0.0-beta.2
- Enhancement: Constructor parameters with default values or
Optional[...]
are now supported without requiring explicit registration. - Python Version Support: Added support for Python version 3.13.
Release v1.0.0-beta.1
- Transition to Beta: Transitioned from alpha to beta. Features have been stabilized and are ready for broader testing.
- Removal: We have removed the dependency container getter and setter functions, as well as the RegistrationSerializer class, which were first introduced in v1.0.0-alpha.9. This decision reflects our focus on maintaining a streamlined library that emphasizes core functionality. These features, which would not be widely used, added unnecessary complexity without offering significant value. By removing them, we are reinforcing our commitment to our design principles.
- Enhancement: Added suppprt for configuring default scope name. Either a static string value, or a callable that returns the name.
Release v1.0.0-alpha.10
- Tagged Constructor Injection: Introduced support for constructor injection using the
Tagged
,AnyTagged
, andAllTagged
classes. This allows for seamless injection of dependencies that have been registered with specific tags, enhancing flexibility and control in managing your application's dependencies.
Release v1.0.0-alpha.9
- Breaking Change: Removed constructor injection when resolving dataclasses.
- Enhancement: Added dependency container getter and setter for registrations. Also added new
RegistrationSerializer
class for for serializing and deserializing them. These additions provide a more flexible way to interact with the container's registrations.
Release v1.0.0-alpha.8
- Bug Fix: Fixed an issue in the dependency resolution logic where registered constructor arguments were not properly merged with automatically injected dependencies. This ensures that constructor arguments specified during registration are correctly combined with dependencies resolved by the container.
- Documentation Update: The documentation structure has been updated for better organization and ease of understanding.
Version 1.0.0-alpha.7
- Documentation Update: Updated the documentation to provide clearer instructions and more comprehensive examples.
- Preparing for Beta Release: Made necessary adjustments and refinements in preparation for the upcoming first beta release.
This release focuses on enhancing the documentation and making final preparations for the transition to the beta phase. If you have any more updates or need further assistance, feel free to reach out!
Version 1.0.0-alpha.6
- Factory Registration: Added support for registering dependencies using factory functions for dynamic instantiation.
- Instance Registration: Enabled registering existing instances as dependencies.
- Tag-based Registration and Resolution: Introduced the ability to register and resolve dependencies using tags for flexible dependency management.
Version 1.0.0-alpha.5
- Critical Package Integrity Fix: This release addresses a critical issue that affected the packaging of the Python library in all previous alpha releases (1.0.0-alpha.1 to 1.0.0-alpha.4). The problem involved missing source files in the distribution, rendering the library incomplete and non-functional. Users are strongly advised to upgrade to version 1.0.0-alpha.5 to ensure the correct functioning of the library. All previous alpha releases are affected by this issue.