Releases: matzefriedrich/parsley
parsley v1.0.5
This release contains a version bump primarily reflecting updates for dependencies.
Changes
- Bump github.com/matzefriedrich/cobra-extensions from 0.3.2 to 0.4.0
- Adds the
markdown
command to the Parsley CLI that exports command documentation as Markdown files
parsley v1.0.3
This release simplifies the codebase and reduces reliance on third-party packages.
Changes
- Removed Dependency: The
hashicorp/go-version
dependency has been removed from the project. - Implemented simplified version comparison functions directly within the
version.go
module, reducing external dependencies.
parsley v1.0.2
This release includes new tests, refactorings, and important fixes to improve usability and flexibility.
Changes
- Introduced
SupportsRegisterActivatorFunc
, improved registration functions. - Enabled multiple activator functions in
RegisterTransient
,RegisterSingleton
, andRegisterScoped
, allowing the registration of several services with the same lifetime behavior at once. This reduces the amount of code required to register services. - Addressed reflection issues in code generator commands, particularly with interface and variadic parameters.
- Updated documentation comments
parsley v1.0.0
Parsley has reached its first stable release! 🎉 After continuous improvements, Parsley is now solidified as a robust, reliable, and easy-to-use dependency injection solution for Go applications.
New in v1.0.0
- Validator Service: A major addition in this release, the
Validator
ensures service registrations are sound:- Detects missing service dependencies, improving app stability.
- Identifies circular dependencies to prevent runtime errors.
With this release, Parsley is officially production-ready! 🚀
parsley v0.10.0
I am excited to announce Parsley v0.10.0, marking significant progress toward a first stable release! This update focuses on improving test coverage, addressing bugs, and enhancing internal structure for better testability and performance. By introducing new tests for nearly all packages and modules, I’ve boosted overall test coverage from 55% to 80%, providing greater reliability and confidence in the Parsley library and CLI utility.
parsley v0.9.3
Changes
The generate mocks
command now supports additional annotations for finer control over mock generation. New annotations //parsley:mock
and //parsley:ignore
are introduced:
//parsley:mock
: When this annotation is present, it takes precedence and only the interfaces explicitly marked with//parsley:mock
will be included in the mock generation. All other interfaces will be excluded by default.//parsley:ignore
: Interfaces marked with//parsley:ignore
will be excluded from mock generation, regardless of the default behavior.
If no annotations are present, all interfaces are included in the mock generation by default.
parsley v0.9.2
Changes
-
Version Command: The Parsley CLI now has a new
version
command that allows users to display the application's current version. The command can also check for new versions by querying the latest release information from GitHub, alerting users if an update is available, and providing update instructions. -
Argument Matching in Mock Verification: Fixed an issue in
mock_verify.go
where expected arguments were not correctly matched.
parsley v0.9.1
This release improves testability and addresses a key issue with handling array types in the code generation process.
Changes
- Resolved an issue where array types were incorrectly handled in the (internal)
type_model_builder.go
module. This fix ensures that array parameters and result fields are now accurately represented in the generated template models, allowing for better support and functionality in cases involving arrays.
parsley v0.9.0
Changes
-
Generate Mocks Command: A new CLI command,
generate mocks
, has been added. This feature lets you create configurable mock implementations directly from your interface types, streamlining your testing process. -
Configurable Mocks: Generated mock implementation types extend the new
MockBase
type, which allows registration of function callbacks, trace method calls, and verify function calls (counting, in combination with argument matching). This is an essential tool for speeding up the writing of test code for services with injected dependencies.
Key Changes
-
Internal Refactoring: I’ve made several improvements to the internal
generator
package, focusing on better error handling and increasing the package’s extensibility. -
Generic Code Generation: A new
generic_generator.go
module has been introduced, providing a more flexible and reusable template system for code generation. This enables quicker integration of additional template-based generators for interface models, making extending Parsley’s CLI capabilities easier. -
Improved Formatting: All generated code now adheres to Go's canonical
go fmt
style, ensuring clean and standardized output.
Important License Update
I am excited to announce that, starting with this release, the project's license has been changed from AGPLv3 to Apache License 2.0.
The move to the Apache 2.0 license reflects my desire to make the library more accessible and easier to adopt, especially in commercial and proprietary projects. The Apache 2.0 license is less restrictive than AGPLv3, allowing for broader usage scenarios without requiring derivative works to be open-sourced.
What does this mean for you?
-
Greater Flexibility: You can now use, modify, and distribute the library with fewer restrictions, even in proprietary software, without the obligation to disclose your source code.
-
Potential for Increased Contributions: While I understand that this change might reduce the obligation to contribute modifications back to the community, broader adoption may lead to more contributions over time as more developers use and improve the library.
I hope this change encourages more developers and organizations to integrate the Parsley library into their projects, fostering innovation and collaboration. I remain committed to maintaining and improving the library and welcome any contributions or feedback from our growing community.
For more details on the new license, please see the full text of the Apache License 2.0.
parsley v0.8.3
Changes
- Allows registration of struct dependencies