Releases: ebogdum/konfigo
Releases · ebogdum/konfigo
Release v1.0.4
v1.0.4
🚀 New Features
- Added:
addKeySuffix
transformer - Adds suffixes to all keys within a map object- Usage: Transforms map keys by appending specified suffix to each key name
- Fields:
type: "addKeySuffix"
,path: "path.to.map"
,suffix: "_suffix"
- Example: Transform
{host: "localhost", port: 5432}
→{host_prod: "localhost", port_prod: 5432}
- Added:
deleteKey
transformer - Removes specified keys from configuration- Usage: Deletes configuration keys at specified paths (useful for removing sensitive data)
- Fields:
type: "deleteKey"
,path: "path.to.key"
- Example: Remove secrets, temporary values, or deprecated configuration keys
- Added:
trim
transformer - Trims whitespace or custom patterns from string values- Usage: Cleans up string values by removing unwanted characters from start/end
- Fields:
type: "trim"
,path: "path.to.string"
,pattern: "characters"
(optional) - Default: Trims whitespace if no pattern specified
- Example:
" value "
→"value"
or"---token---"
→"token"
(with pattern: "-")
- Added:
replaceKey
transformer - Replaces value with content from another path- Usage: Takes value from target path, places it at destination path, then deletes target
- Fields:
type: "replaceKey"
,path: "destination.path"
,target: "source.path"
- Example: Move temporary/staged values to their final configuration locations
🔧 Enhancements
- Enhanced:
changeCase
transformer now supports additional case formats- Added:
kebab
case support for kebab-case conversions - Added:
pascal
case support for PascalCase conversions - Supported formats: upper, lower, snake, camel, kebab, pascal
- Added:
- Enhanced: Transformer Definition structure with new fields
- Added:
suffix
field for addKeySuffix transformer - Added:
pattern
field for trim transformer - Added:
target
field for replaceKey transformer - Improved: Variable substitution now supports all new transformer fields
- Added:
🐛 Bug Fixes
- No bug fixes yet
🏗️ Internal Changes
- No internal changes yet
🧪 Tests
- Enhanced: Transformer test suite to include new transformer types
- Added: Test schemas for addKeySuffix, deleteKey, trim, and replaceKey transformers
- Added: Test cases covering all new transformer functionality and edge cases
- Added: Error handling tests for new transformers (missing paths, type mismatches)
- Added: Variable substitution tests for new transformer fields
- Updated: Test documentation to reflect new transformer coverage
📚 Documentation
- Enhanced: Transformation documentation with comprehensive coverage of new transformers
- Added: Complete documentation for
addKeySuffix
transformer with examples - Added: Complete documentation for
deleteKey
transformer with use cases - Added: Complete documentation for
trim
transformer with pattern examples - Added: Complete documentation for
replaceKey
transformer with workflow examples - Updated: Transformation overview to include all eight available transformer types
- Enhanced: Combined transformation examples showing new transformers in action
- Added: Complete documentation for
Release v1.0.3
Version v1.0.3 not found in changelog. Extracting latest changes...
Release v1.0.3
🚀 New Features
- Added:
timestamp
generator - Generates current timestamp values in various formats- Formats: unix, unixmilli, rfc3339, iso8601, and custom Go time format strings
- Usage: Perfect for adding creation timestamps, build times, or unique time-based values
- Added:
random
generator - Creates random values in multiple formats- Formats: int:min:max, float:min:max, string:length, bytes:length, uuid
- Usage: Ideal for generating test data, session tokens, or random configuration values
- Added:
id
generator - Generates various types of identifiers using [a-zA-Z0-9] characters- Formats: simple:length, prefix:prefix:length, numeric:length, alpha:length, sequential, timestamp
- Usage: Creates user IDs, session counters, trace IDs, and other unique identifiers
🔧 Enhancements
- Enhanced:
release.sh
- Added automated build step and changelog reset functionality- Added: Automatic execution of
builds.sh
before release process - Added: Post-release changelog reset with user confirmation
- Added:
reset_changelog()
function to prepare changelog for next development cycle - Added: Automatic backup creation when resetting changelog
- Improved: Step numbering and workflow organization
- Added: Automatic execution of
🐛 Bug Fixes
- No bug fixes yet
🏗️ Internal Changes
- No internal changes yet
🧪 Tests
- Enhanced: Generator test suite to include new generator types
- Added: Test schemas for timestamp, random, and id generators
- Added: Test cases covering all new generator formats and edge cases
- Added: Documentation for new generator test coverage
📚 Documentation
- Enhanced: Generator documentation with comprehensive coverage of new generators
- Added: Complete documentation for
timestamp
generator with format examples - Added: Complete documentation for
random
generator with all format types - Added: Complete documentation for
id
generator with pattern examples - Updated: Generator overview to include all four available generator types
- Added: Complete documentation for
Release v1.0.2
Version v1.0.2 not found in changelog. Extracting latest changes...
[Latest Commit] - 2025-06-27
🔧 Release Script Enhancement
Modified Files
- Enhanced:
release.sh
- Integrated automatic changelog extraction for GitHub releases
New Features
- Added:
extract_changelog_for_version()
function to automatically extract release notes fromCHANGELOG.md
- Enhanced: Release creation process now automatically uses changelog content for GitHub releases
- Improved: Fallback mechanism when version-specific content isn't found in changelog
- Added: Automatic cleanup of temporary files during release process
Configuration Changes
- Updated: Default
notes_file
configuration to useCHANGELOG.md
- Enhanced: Release notes extraction supports various changelog formats (with/without brackets, version prefixes)
🏗️ Internal Architecture Changes
This section documents changes to the internal
and test
folders between the previous and current commit.
🏗️ Internal Architecture Changes
New Packages and Modules
CLI Package (internal/cli/
)
- Added:
commands.go
- Command execution logic and coordination - Added:
flags.go
- Flag definitions, parsing, and validation - Added:
help.go
- Help text generation and display
Configuration Package (internal/config/
)
- Added:
batch.go
- Batch processing configuration - Added:
config.go
- Core configuration structures - Added:
environment.go
- Environment handling
Error Handling (internal/errors/
)
- Added:
errors.go
- Centralized error handling system
Features Package (internal/features/
)
- Added:
generator/
- Code generation featuresconcat.go
- Concatenation generatorregistry.go
- Generator registrytypes.go
- Generator type definitions
- Added:
input_schema/
- Input schema validationloader.go
- Schema loading functionalityvalidator.go
- Schema validation logic
- Added:
transformer/
- Data transformation featuresadd_key_prefix.go
- Key prefix transformationchange_case.go
- Case transformationregistry.go
- Transformer registryrename_key.go
- Key renaming transformationset_value.go
- Value setting transformationtypes.go
- Transformer type definitions
- Added:
validator/
- Validation engineengine.go
- Main validation enginenumber.go
- Number validationnumeric_validator.go
- Numeric validation logicregistry.go
- Validator registrystring_validator.go
- String validation logictype_validator.go
- Type validationtypes.go
- Validator type definitions
- Added:
variables/
- Variable handlingresolver.go
- Variable resolution logic (moved frominternal/schema/vars.go
)substitution.go
- Variable substitutiontypes.go
- Variable type definitions
Core Services
- Added:
logger/logger.go
- Centralized logging system - Added:
marshaller/
- Output formattingenv.go
- Environment file marshallingjson.go
- JSON marshallingmarshaller.go
- Core marshalling interfaceregistry.go
- Marshaller registrytoml.go
- TOML marshallingyaml.go
- YAML marshalling
- Added:
merger/merger.go
- Configuration merging logic - Added:
parser/
- Input parsingdetector.go
- Format detectionenv.go
- Environment file parsingini.go
- INI file parsingjson.go
- JSON parsingparser.go
- Core parsing interfaceregistry.go
- Parser registrytoml.go
- TOML parsingyaml.go
- YAML parsing
- Added:
pipeline/
- Processing pipelinebatch.go
- Batch processing pipelinecoordinator.go
- Pipeline coordinationoptimized.go
- Optimized processing pipelinepipeline.go
- Core pipeline interfacesingle.go
- Single file processing pipeline
- Added:
reader/
- File readingdiscovery.go
- File discovery logic (moved frominternal/loader/loader.go
)reader.go
- Core reading interfacestream.go
- Stream reading functionality
- Added:
util/
- Utility functionstype_inference.go
- Type inference utilitiesutil.go
- General utility functions
- Added:
writer/
- Output writingdirectory.go
- Directory output writingtarget.go
- Target specificationwriter.go
- Core writing interface
Modified Schema Package (internal/schema/
)
- Removed:
generator.go
- Functionality moved tointernal/features/generator/
- Removed:
transformer.go
- Functionality moved tointernal/features/transformer/
- Removed:
validator.go
- Functionality moved tointernal/features/validator/
- Modified:
vars.go
→ moved tointernal/features/variables/resolver.go
- Added:
processor.go
- Schema processing logic - Modified:
schema.go
- Updated schema handling
🧪 Test Infrastructure Changes
Test Documentation
- Modified:
test/README.md
- Updated test documentation
Batch Processing Tests (test/batch/
)
- Added:
README.md
- Batch testing documentation - Added:
config/
- Test configuration filesdeployment-schema.yaml
- Deployment schema configurationservice-schema.yaml
- Service schema configuration
- Added:
expected/
- Expected output filescomplex/
- Complex scenario outputsdeployments/
- Deployment scenario outputsenvs/
- Environment configuration outputsservices/
- Service configuration outputs
- Added:
input/
- Test input filesbase-config.json
- Base configurationempty-base.json
- Empty base configuration
- Added:
output/
- Actual test outputs - Added:
test.sh
- Batch test execution script - Added:
validate.sh
- Batch test validation script - Added:
variables/
- Variable test files- Various environment and batch configuration files
Environment Integration Tests (test/env-integration/
)
- Added:
README.md
- Environment integration test documentation - Added:
config/
- Schema configuration files - Added:
expected/
- Expected outputs for environment tests - Added:
input/
- Test input files for environment scenarios - Added:
output/
- Actual test outputs - Added:
test.sh
- Environment integration test script - Added:
validate.sh
- Environment integration validation script
Format Conversion Tests (test/format-conversion/
)
- Added:
expected/
- Expected outputs for format conversion - Added:
input/
- Input files in various formats (env, ini, json, toml, yaml) - Added:
output/
- Actual conversion outputs - Added:
test.sh
- Format conversion test script - Added:
validate.sh
- Format conversion validation script
Generator Tests (test/generators/
)
- Added:
README.md
- Generator test documentation - Added:
config/
- Generator configuration files- Various schema files for testing generator functionality
- Error scenario configurations
- Added: Variable test files
Test Utilities
- Modified:
test/common_functions.sh
- Updated common test functions
📋 Summary of Changes
Added
- 58 new files in
internal/
package - 200+ new test files across multiple test suites
- Complete modularization of the codebase with feature-based architecture
- Comprehensive test coverage for batch processing, environment integration, format conversion, and generators
Removed
- 3 legacy files from
internal/schema/
package:generator.go
transformer.go
validator.go
Moved/Refactored
internal/schema/vars.go
→internal/features/variables/resolver.go
internal/loader/loader.go
→internal/reader/discovery.go
🎯 Key Improvements
- Modular Architecture: Complete restructuring into feature-based modules
- Enhanced Testing: Comprehensive test suites for all major features
- Better Separation of Concerns: Clear separation between CLI, processing, and feature logic
- Improved Maintainability: Registry-based pattern for extensible functionality
- Robust Error Handling: Centralized error management system
Release v1.0.1
What's Changed
- Bump github.com/BurntSushi/toml from 1.4.0 to 1.5.0 by @dependabot in #2
New Contributors
- @dependabot made their first contribution in #2
Full Changelog: v1.0.0...v1.0.1
Release v1.0.0
Full Changelog: https://github.com/ebogdum/konfigo/commits/v1.0.0