v1.0.0-rc.3
Pre-release🌱 A New Era of Functionality, Flexibility, and Performance!
We’re thrilled to announce the v1.0.0-rc3 release of Sprout, marking a significant step forward in our mission to create the most powerful and flexible templating library for Go developers. This release introduces major features, critical fixes, and exciting new tools to help you build more efficient and secure templates.
🌟 Key Features & Changes
This section's comparisons are based on Sprig v3.2.3. If you're totally new, welcome! Go ahead with Getting started
🚀 New Core Features
- Migration to Function Handler: All functions have been migrated under a unified function handler to streamline function management. Documentation.
- Registry System (Loader): Introduced a new registry system for modular function management, supporting easier extension and organization of functions. Documentation.
- Registry System (Group): With the new registry system, a solution for grouping registries are born to organize your registries. Documentation.
- Safe Functions: New safe versions of functions that follow Go's template standards, providing flexible error handling options. Documentation.
- Function Notices: Added real-time notices when specific functions are called to warn or inform users of critical behavior. Documentation.
- Function Aliases: Added function aliases to ensure smooth transition and backward compatibility. Documentation.
🔄 Backward Compatibility
- Reimport Functions from Sprig: Maintained backward compatibility by reimporting core functions from Sprig. Documentation.
- Backward Compatibility Documentation: Updated docs to ensure seamless migration and backward compatibility. Documentation.
🛠 Enhancements and Fixes
- Optimized Memory Footprint: Performance improvements were made to reduce memory usage across the board. Benchmarks.
- Fixed CamelCase Logic: Updated CamelCase and PascalCase transformation logic to handle edge cases better. Documentation
- Never more panics: Rework functions how cause panics on template engines to ensure a better stability. Documentation.
🌐 New Utilities
- Batch of New Functions: Introduced a wide range of functions for slices, regex manipulations, and conversions, expanding Sprout's toolkit significantly. See PR 70.
- Network Registry: New functions for handling IP, CIDR, and MAC address manipulations in templates. See PR 71.
- SHA512 Checksums: Added
sha512sum
to the checksum registry with useful notices for end-users. See PR 59. - New Struct Method
hasField
: Added a method for checking struct fields dynamically. See PR 61. - String Capitalization Functions: New string capitalization functions with full Unicode and Latin rune support. See PR 62.
toDuration
Conversion Function: A new utility to simplify time conversions across templates. See PR 27.toIndentYAML
: Added support for indentation in YAML output, enabling better structured and formatted YAML data. See PR 82.
📚 Documentation
- Fancy and complete documentation: Create a fancy and complete documentatio, ensuring they’re up to date and aligned with Sprout’s growth. Documentation
🏆 A Special Thanks to Our Contributors
A heartfelt thank you to everyone who contributed to this v1.0.0 journey, particularly @42atomys, whose tireless work and commitment have made this release possible. Special thanks to @mbezhanov, @andig, @ccoVeille for their valuable contributions and to @caarlos0 for the support in making decisions and for being the second maintainer of the Sprout organization.
🔮 Looking Ahead
This release candidate is a crucial step towards the official v1.0.0 release. We encourage you to test the new features, provide feedback, and help us fine-tune the final version. We’re incredibly excited for what’s to come and can’t wait to see how Sprout will evolve with your help!
Let’s continue growing Sprout together and make this library the best tool for Go developers everywhere!
Full Changelog: View all changes.