Releases: alegorico/MergeSourceFile
Releases · alegorico/MergeSourceFile
Release list
MergeSourceFile v1.2.0
Added
-
🚀 TOML Configuration Support
- New
--config/-cparameter to load configuration from TOML files - Complete configuration via TOML eliminates need for command-line parameters
- Supports all application options: input, output, skip_var, verbose, jinja2, jinja2_vars, processing_order
- Automatic validation of required parameters (input/output)
- Warning system when both TOML config and command-line parameters are provided
- Compatible with Python 3.11+ (built-in tomllib) and Python 3.8-3.10 (via tomli dependency)
- New
-
Continuous Integration with CircleCI
- Complete CircleCI configuration for automated testing across Python 3.8-3.12
- Multi-version Python testing with coverage reporting
- Automated codecov integration for coverage tracking
- Matrix testing ensures compatibility across all supported Python versions
Example TOML Configuration
[mergesourcefile]
input = "main.sql"
output = "merged.sql"
skip_var = false
verbose = true
jinja2 = true
jinja2_vars = "variables.json"
processing_order = "jinja2_first"Changed
-
Enhanced command-line interface
- Configuration precedence: TOML config overrides all command-line parameters
- Improved error messages for missing required parameters
- Better integration between TOML and command-line workflows
-
Build system improvements
- Updated setuptools compatibility to support both CI environments and local development
- Improved pyproject.toml configuration for better PEP 621 compliance
- Enhanced build dependencies management for consistent builds
Fixed
- CI/CD pipeline stability
- Resolved setuptools version conflicts between local and CI environments
- Fixed license format compatibility issues with different setuptools versions
- Improved build reliability and reproducibility
- Enhanced error reporting during CI builds
MergeSourceFile v1.1.1
[1.1.1] - 2025-10-17
Enhanced
-
Improved DEFINE syntax support
- Enhanced regex pattern to support decimal values (e.g.,
DEFINE price = 3.14) - Added support for hyphenated values (e.g.,
DEFINE code = ABC-123) - Extended support for complex alphanumeric values with special characters
- Maintains full backward compatibility with existing quoted and unquoted syntax
- Validates compliance with Oracle SQL*Plus DEFINE standards
- Enhanced regex pattern to support decimal values (e.g.,
-
Better error reporting for DEFINE statements
- Invalid DEFINE syntax now reported in verbose mode with line numbers
- Clear distinction between ignored invalid DEFINE and successful definitions
- Examples:
"Ignorando DEFINE con sintaxis invalida en linea 4: 'DEFINE var = ;'" - Empty string values (
DEFINE var = '';) now supported as valid - Better user feedback for troubleshooting problematic variable definitions
Fixed
-
Critical bug fix: DEFINE statements without quotes now process correctly
- Previously:
DEFINE VAR = valuewould fail with "variable used before defined" error - Now: Both
DEFINE VAR = valueandDEFINE VAR = 'value'work correctly - Affected real-world database deployment scripts
- Previously:
-
Windows compatibility improvements
- Fixed Unicode encoding issues causing CLI integration test failures on Windows
- Replaced problematic Unicode characters (→, Á, └) with ASCII equivalents (-, A, |--)
- Improved error codes: CLI now returns proper exit codes (1) for errors
- Enhanced file path resolution for nested includes with correct base_path calculation
- All 56 tests now pass successfully on Windows systems
Testing
- Comprehensive test coverage
- Added 17 new tests covering DEFINE syntax improvements and error reporting
- Enhanced integration test suite with 6 CLI tests covering all major functionality
- 100% test pass rate achieved (56/56 tests passing)
- Full coverage of edge cases including space handling and Unicode compatibility
[1.1.0] - 2024-10-17
Added
- Complete Jinja2 template support
- New CLI parameters:
--jinja2/-jto enable Jinja2 processing - New parameter
--jinja2-vars/-jvto specify JSON file with variables - Custom filters:
sql_escape: Escapes single quotes for SQLstrftime: Date formatting
- Variable support:
{{ variable }} - Conditional support:
{% if condition %} - Loop support:
{% for item in list %} - Complex nested structure support
- Customizable delimiters
- Strict mode for undefined variables
- New CLI parameters:
Features
- Perfect integration with existing functionality
- Jinja2 templates are processed BEFORE SQL variables
- Maintains full compatibility with file inclusions (@, @@)
- Works together with DEFINE/UNDEFINE variables
- Cascading processing: Files → Jinja2 → SQL Variables
Documentation
- 14 new comprehensive tests for Jinja2 functionality
- Integration tests between Jinja2 and existing functionality
- Advanced configuration tests
- Complete functional example with template files and variables
Dependencies
- Added:
jinja2>=3.0.0
Compatibility
- ✅ Maintains 100% backward compatibility
- ✅ All existing functionality unchanged
- ✅ Existing users require no migration
- ✅ New functionality is opt-in (requires
--jinja2flag)
MergeSourceFile v1.0.0
MergeSourceFile v1.0.0
Herramienta Python para procesar scripts SQL*Plus, resolviendo inclusiones de archivos y sustituciones de variables.
✨ Características principales:
- Resolución de inclusiones: Procesa directivas
@y@@para incluir archivos SQL externos - Sustitución de variables: Maneja comandos
DEFINEyUNDEFINEpara gestión de variables - Redefinición de variables: Permite redefinir variables a lo largo del script
- Visualización de árbol: Muestra la jerarquía de inclusiones en estructura de árbol
- Modo verbose: Logging detallado para depuración y comprensión del flujo de procesamiento
📦 Instalación:
pip install MergeSourceFile