Skip to content

Releases: matzefriedrich/parsley

parsley v1.0.5

27 Nov 21:00
ae943f0
Compare
Choose a tag to compare

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

08 Oct 13:49
6a02fa7
Compare
Choose a tag to compare

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

23 Sep 21:26
99e581d
Compare
Choose a tag to compare

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, and RegisterScoped, 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

20 Sep 23:15
380af30
Compare
Choose a tag to compare

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

18 Sep 23:39
9f67cd1
Compare
Choose a tag to compare
parsley v0.10.0 Pre-release
Pre-release

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

13 Sep 21:49
321a30b
Compare
Choose a tag to compare
parsley v0.9.3 Pre-release
Pre-release

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

09 Sep 14:52
ad80749
Compare
Choose a tag to compare
parsley v0.9.2 Pre-release
Pre-release

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

09 Sep 09:00
ca31b47
Compare
Choose a tag to compare
parsley v0.9.1 Pre-release
Pre-release

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

08 Sep 21:42
8533007
Compare
Choose a tag to compare
parsley v0.9.0 Pre-release
Pre-release

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

01 Sep 20:04
fd95efe
Compare
Choose a tag to compare
parsley v0.8.3 Pre-release
Pre-release

Changes

  • Allows registration of struct dependencies