Repository navigation
v1.1.0
Release v1.1.0
Release Notes
This release represents a major architectural improvement to DTail, restructuring the codebase to follow Go best practices with a clean separation between application entry points and internal packages. The changes improve maintainability, reduce build complexity, and enable better code organization for future development.
🏗️ Architecture Improvements
Modern Go Project Structure
- Separated command entry points: Each DTail command (
dtail,dcat,dgrep,dmap,dserver) now has its own dedicated main file in thecmd/directory - Internal package organization: Moved all shared code to the
internal/package, preventing external dependencies and improving encapsulation - Simplified build process: Eliminated complex symbolic linking in favor of direct Go builds for each command
Enhanced Configuration Management
- Streamlined configuration loading: Replaced the generic
Init()function with a more specificRead()function that handles SSH port overrides - Better port handling: SSH port specified via command line now properly overrides configuration file settings
- Cleaner initialization: Removed redundant configuration paths and simplified the setup process
🔧 Developer Experience
Build System Improvements
- Individual binary builds: Each command is now built separately, making the build process more transparent and debuggable
- Updated documentation: Revised quickstart guide reflects the new build commands and project structure
- Cleaner Makefile: Simplified build targets that directly invoke Go build commands
Code Quality Enhancements
- Consistent import paths: All internal imports now use the proper module path with
github.com/mimecast/dtail/internal/ - Reduced coupling: Better separation of concerns between client and server components
- Improved error handling: Enhanced connection management and error reporting
🚀 Performance & Reliability
Connection Management
- CPU-aware connection pooling: Connection limits now scale with available CPU cores using
ConnectionsPerCPU * runtime.NumCPU() - Better resource utilization: More efficient connection throttling based on system capabilities
- Enhanced stability: Improved connection lifecycle management
Profiling Support
- New pprof integration: Added dedicated pprof package for better performance debugging and monitoring
- Configurable profiling: Profiling can be enabled via command line or configuration file
🔄 Breaking Changes
Import Path Updates
- Module path change: All imports now use
github.com/mimecast/dtail/internal/for internal packages - Package reorganization: Some packages have moved locations within the internal structure
Build Process Changes
- New build commands: Use individual
go buildcommands for each binary instead of symbolic linking - Updated Makefile: Build targets have changed to reflect the new structure
📚 Documentation Updates
- Revised quickstart guide: Updated build instructions and examples
- Clearer project structure: Better documentation of the
cmd/andinternal/organization - Updated build examples: All code examples reflect the new build process
🛠️ Migration Guide
For users building from source:
- Update your build scripts to use the new
go buildcommands shown in the updated documentation - If you're importing DTail code as a library, update import paths to use the new internal structure
- Review any custom configurations as the configuration loading has been streamlined
This release maintains full backward compatibility for end users while significantly improving the development experience and codebase maintainability.