Skip to content

Commit 7105562

Browse files
authored
Merge pull request #12 from nao1215/nchika/v0.1.0-CHANGELOG
feat: release v0.1.0 with Builder pattern and auto-save functionality
2 parents 17ef206 + 31cabc4 commit 7105562

File tree

1 file changed

+52
-1
lines changed

1 file changed

+52
-1
lines changed

CHANGELOG.md

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,56 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.1.0] - 2025-08-26
11+
12+
### Added
13+
- **🎉 Initial major feature release (v0.1.0)**: Library with comprehensive Builder pattern and auto-save functionality
14+
- **Builder pattern architecture**: Complete implementation of extensible Builder pattern for flexible configuration
15+
- `NewBuilder()` provides fluent API for database construction
16+
- `AddPath()` method for adding individual files and directories
17+
- `AddFS()` method for embedded filesystem support (go:embed compatibility)
18+
- `EnableAutoSave()` and `EnableAutoSaveOnCommit()` for automatic data persistence
19+
- `Build()` method with comprehensive validation and error checking
20+
- Chainable method design for clean, readable configuration code
21+
- **go:embed and fs.FS support**: Full integration with Go's embedded filesystem capabilities
22+
- Works seamlessly with `//go:embed` directive for embedded data files
23+
- Custom `fs.FS` implementation support for advanced use cases
24+
- Automatic temporary file management for embedded content
25+
- Cross-platform embedded file handling
26+
- **Advanced auto-save functionality**: Comprehensive automatic data persistence system
27+
- **Two timing modes**: Save on database close (`OnClose`) or transaction commit (`OnCommit`)
28+
- **Overwrite mode**: Automatically saves back to original file locations when output directory is empty
29+
- **Directory mode**: Saves to specified backup directory with original file names
30+
- **Format preservation**: Maintains original file formats (CSV, TSV, LTSV) and compression
31+
- **Configurable compression**: Support for gzip, bzip2, xz, and zstd compression options
32+
- **Transaction integration**: Seamless integration with database transaction lifecycle
33+
34+
### Changed
35+
- **Breaking change**: Enhanced driver interface with auto-save configuration support
36+
- Extended `Connection` struct with auto-save capabilities and original path tracking
37+
- Updated `Connector` interface to support Builder-generated configurations
38+
- DSN format extended to include JSON-encoded auto-save configuration via base64 encoding
39+
- **Enhanced export system**: Improved table export with comprehensive format support
40+
- Extended `DumpOptions` with detailed format and compression configuration
41+
- Enhanced compression detection and writer creation pipeline
42+
- Improved error handling with proper resource cleanup and partial file removal
43+
- Better cross-platform file path handling and sanitization
44+
45+
### Fixed
46+
- **Auto-save overwrite mode**: Fixed critical issue where overwrite mode incorrectly used current working directory
47+
- Now properly uses original input file locations for file overwrites
48+
- Maintains correct directory structure and file naming conventions
49+
- Preserves original file formats and compression settings automatically
50+
- **Builder validation**: Enhanced configuration validation with detailed error reporting
51+
- **Memory management**: Improved cleanup of temporary files created from embedded filesystems
52+
53+
### Technical Details
54+
- **Feature completeness**: v0.1.0 introduces major Builder pattern and auto-save functionality
55+
- **Comprehensive testing**: Extensive test coverage including Builder pattern, auto-save functionality, and embedded filesystem support
56+
- **Documentation updates**: All 7 language README files updated with auto-save examples and Builder pattern usage
57+
- **Code quality**: All linting issues resolved, comprehensive error handling with `errors.Join()` (Go 1.20+)
58+
- **Cross-platform compatibility**: Verified functionality across Linux, macOS, and Windows with embedded filesystems
59+
1060
## [0.0.4] - 2025-08-24
1161

1262
### Added
@@ -133,7 +183,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
133183
- Multi-language documentation (7 languages)
134184
- Standard database/sql interface implementation
135185

136-
[Unreleased]: https://github.com/nao1215/filesql/compare/v0.0.4...HEAD
186+
[Unreleased]: https://github.com/nao1215/filesql/compare/v0.1.0...HEAD
187+
[0.1.0]: https://github.com/nao1215/filesql/compare/v0.0.4...v0.1.0
137188
[0.0.4]: https://github.com/nao1215/filesql/compare/v0.0.3...v0.0.4
138189
[0.0.3]: https://github.com/nao1215/filesql/compare/v0.0.2...v0.0.3
139190
[0.0.2]: https://github.com/nao1215/filesql/compare/v0.0.1...v0.0.2

0 commit comments

Comments
 (0)