Warning
v2.0.0 is a Breaking Change version - In this release we are adopting a multi-module architecture, based on Go Workspaces. This makes sure that the core of Spelunk stays lean and almost dependency-less, while each /plugin/* bring in the specific dependency needed by each specific sub-module
What's Changed
Added
- Multi-Module Workspace Support: Restructured the entire repository into a multi-module architecture leveraging Go Workspaces.
- Submodule Isolation: Converted all 12 plugins (
plugin/modifier/*andplugin/source/*) and 4 example applications (examples/*) into fully decoupled, isolated Go modules. - Root-level Public Utilities: Created the root public package
github.com/detro/spelunk/v2/utilcontaining shared utilities (post_process_jsonpath.go,mock_source.go, andmock_modifier.go) to prevent import cycles and make testing helpers cleanly importable across standalone submodules. - Unified Tagging Tool: Added a robust
task tagcommand toTaskfile.yamlthat automates tagging either the entire workspace at once (root + all submodules using their relative directory prefixes) or target submodules individually.
Changed
- Dependencies Separation (Ultra-lean Core): The core root module
github.com/detro/spelunk/v2has been stripped down to a absolute minimum dependency surface (carrying almost zero external production dependencies). Users now only pull down the specific heavyweight SDK dependencies (e.g. AWS, Azure, GCP, Vault, Kubernetes) for the exact plugins they choose to import. - Plugin Module Import Paths: All 12 plugin imports have been updated to target their isolated
v2module paths (e.g.github.com/detro/spelunk/plugin/source/vault/v2). - Task Runner Optimization: Enhanced and parallelized
Taskfile.yamlcommands (build,test,lint,fmt,vuln) to recursively cycle through the root module, all 12 plugin modules, and all 4 examples, leveraging workspace-aware Go test targets and concurrent execution viaxargsto significantly speed up feedback loops. - Azure SDK Upgrade: Upgraded
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecretstov1.5.0in the Azure Key Vault plugin.
Fixed
- Azure Emulator Testing: Configured Azure Key Vault integration tests to target API version
7.4to maintain compatibility withlowkey-vaultemulator, following theazsecretsSDK upgrade tov1.5.0. - Examples Build Protection: Updated task runner configuration and workspace settings to prevent compiled binaries of
/examplesfrom being accidentally checked into Git. - Workspace Tagging Scope: Refined tagging automation to ensure examples are excluded from automated plugin submodule tagging tasks.
Full Changelog: v1.4.0...v2.0.0