Skip to content

v1.1.0

Choose a tag to compare

@snonux snonux released this 12 Jul 10:47
· 685 commits to master since this release

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 the cmd/ 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 specific Read() 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 build commands 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/ and internal/ organization
  • Updated build examples: All code examples reflect the new build process

🛠️ Migration Guide

For users building from source:

  1. Update your build scripts to use the new go build commands shown in the updated documentation
  2. If you're importing DTail code as a library, update import paths to use the new internal structure
  3. 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.