Releases: hairyhenderson/gomplate
v3.11.0
👋 Welcome to another gomplate release! Once more, a number of bug fixes and new
features. Thanks to the community, gomplate is now available via
MacPorts as well!
Thanks
Plenty of people have contributed to gomplate by filing issues, suggesting new
features, or submitting pull requests. I'd like to especially thank the
following people for submitting pull requests in this release:
Deprecations
I'm starting to work on gomplate v4, the next major release (with breaking
changes). In preparation for this, I'm listing some features as deprecated (see
the deprecation policy). Note that some of these may have been
deprecated for a while, but I'd like to call them out explicitly here.
- The BoltDB
datasource is now deprecated (see this discussion),
and will be removed in v4.0.0. - The
slimbinaries are deprecated, and will no longer be produced starting
with v4.0.0. - A number of functions are deprecated, though not all will be removed in v4:
strings.Sort(usecoll.Sortinstead)conv.Dict(usecoll.Dictinstead)conv.Slice(usecoll.Sliceinstead)conv.Has(usecoll.Hasinstead)conv.Bool(useconv.ToBoolinstead)
- The array form of configuring nested templates is deprecated, and a new map-
based form is now available. This will be removed in v4.
Be sure to also check out the multi-platform Docker images available at hairyhenderson/gomplate.
If you've gained value out of gomplate and want to find a way to encourage development, please consider sponsoring gomplate!
v3.11.0 (2022-06-12)
Release Notes
New features and changes
- #1422 New experimental
gomplate.RendererAPI is available for rendering templates programmatically. This should be of interest for developers wishing to use gomplate as a library. See the Go docs for examples. - #1410 Nested templates can now be referenced by URL and not just by path.
- Notes:
- Currently, only the
file:URL scheme is supported. The full set of datasource URL schemes will be supported in a future release. - This also introduces a new format for the
templatesconfig option, and deprecates the previous format. See the docs fortemplatesfor more information.
- Currently, only the
- Notes:
- #1402 Support for AWS IMDSv2 (EC2 instance metadata) is now available - thanks to @surki for the contribution!
- #1358 Adding warning messages when using deprecated functions and datasources.
- #1335 Now built with Go 1.18, which adds two new functions:
break, andcontinue. - #1317 Plugins now support piping input arguments to the plugin's stdin, rather than a commandline argument. This can be configured in the config file (see the docs for details).
- #1307 Missing directories are now automatically created for output files
New functions
- #1388 Two new experimental functions for generating ECDSA keys:
crypto.ECDSAGenerateKeycrypto.ECDSADerivePublicKey- These are experimental as the semantics may change in a future release
- #1364 Two new template functions to help identify which template is being rendered:
- #1342 Four new functions in the
netnamespace for working with networks in CIDR notation - thanks to @bartoszj for the contribution! - #1306 Hashing functions that return raw bytes (like
crypto.SHA*, but returns raw bytes instead of strings) - #1305 Two new functions to encrypt and decrypt with AES:
crypto.EncryptAEScrypto.DecryptAES- These are experimental as the semantics may change in a future release
- #1287 New
listDatasourcesfunction - thanks to @jeevansai502 for the contribution!
Bug fixes
- #1349 Fix bug in
JSONandYAMLfunctions where escaped forward slashes (\/) were not being correctly interpreted - #1350 Fix config merging when context/datasources are provided on the command line but not in the config file - thanks to @paddycarey for the contribution!
- #1334 Fix file directory reading (fixes #1333)
- #1310 Fix
strings.Titleto handle unicode punctuation (moves to alternate implementation after Go 1.18 deprecated the standard library function) - #1308 Fix bug where
strings.Indentwould not work correctly when a new-line character is used (now disallowed) - #1296 The
aws+smdatasource will now correctly read a secret written as binary (SecretBinary) rather than a string (SecretString)
Documentation fixes/updates
- #1338 Clarify that
inputDiris read recursively - #1313 Add MacPorts installation instructions - thanks to @herbygillot for the contribution!
- #1312 Improved plugin documentation
- #1309 Updated install docs to remove mention of the deprecated
slimbinary, and update the Go install instructions for recent Go versions - #1301
conv.URL: Add example of how to redact the password - #1300
time.Now: Add example of how to useTime.IsDST - #1279
strings.Split: More examples to clarify how to usestrings.Split- thanks to @karlschriek for the contribution!
v3.10.0
🥳 It's high time for another gomplate release! This release contains quite a few
bug fixes and improvements.
Some packaging updates:
- There is now a binary built for macOS on the Apple Silicon (M1/etc -
darwin-arm64) platform! - For Windows users, there is now a Chocolatey package available!
- Docker images are now also pushed to GitHub Container Registry
Be sure to also check out the multi-platform Docker images available at hairyhenderson/gomplate.
If you've gained value out of gomplate and want to find a way to encourage development, please consider sponsoring gomplate!
v3.10.0 (2021-09-24)
Release Notes
New features and changes
- #1216
conv.ToIntnow returns-1instead of overflowing on 32-bit systems to protect against CWE-190 and CWE-681 - #1214 The
crypto.RSAGenerateKeyfunction now enforces a minimum key size of 2048 bits to protect against CWE-326. - #1195 Now built with Go 1.17
- #1083 New
darwin-arm64binary - #1058 #1092 Stop printing newline on stderr when outputting to stdout
New functions
- #1197 New IP/CIDR parsing functions:
Bug fixes
- #1217 Support git repos with default branches other than
master(fixes #1049) - #1210 Fix
CONSUL_HTTP_ADDRparsing (fixes #1209) - #1199 Fix a few filehandle leaks (fixes #995)
- #1128 Fix data race in
randomfunctions - #1127 Fix data race when gomplate is used programatically - fixed by removing use of globals in func namespaces (fixes #1126)
- #1104 Stop emitting ANSI colour codes on Windows in unsupported terminals (partial fix for #1095)
- #1082 Fix error when using
--input-dir=.(found in #1081) - #1063 Fix difficulty in using gomplate programatically - bumped
k8s.io/client-goto valid semver (fixes #1061)
Documentation fixes/updates
v3.9.0
This is largely a bug-fix and stability release, but also contains some fairly
major internal refactoring, specifically to better support some future changes
that will make gomplate easier to use as a library!
Be sure to check out the multi-platform Docker images available at hairyhenderson/gomplate.
If you've gained value out of gomplate and want to find a way to encourage development, please consider sponsoring gomplate!
v3.9.0 (2021-01-24)
Release Notes
New features and changes
- #1056 New
$GOMPLATE_LOG_FORMATenvironment variable to support changing logging formats (fix for #942) - #1028 The
hairyhenderson/gomplate:alpineDocker image now ships with an uncompressed binary. Fix for #1007
Bug fixes
- #1051 Fixing potential data race in signal handling code (possible when gomplate is used as a library)
- #1027 & #1043 Fix ignored left/right delim env vars (fixes #1018)
- #1029 & #1041 Only extra print newline with console output (fixes #996)
- #956 Properly support Windows file modes (fixes #948)
Documentation fixes/updates
v3.8.0
It's time for another gomplate release, and this time we have a good number of bug fixes, new functions, and updated dependencies.
Thanks to @surki and @jen20 for their contributions to this release!
Of particular note is the new experimental mode which you can use to try out some new functionality that isn't ready to be "locked in" just yet.
In particular, there are now some new RSA Encryption/Decryption functions, including crypto.RSAGenerateKey, which gives you a way to quickly generate an RSA encryption key pair! The reason these are experimental is because I'm not sure about the UX yet, and the function names may change in a future release.
Be sure to check out the multi-platform Docker images available at hairyhenderson/gomplate.
If you've gained value out of gomplate and want to find a way to encourage development, please consider sponsoring me!
v3.8.0 (2020-08-29)
Release Notes
New features and changes
- #919 New experimental mode!
- Some functions and features will be provided for early feedback behind the
experimentalconfiguration option. These features may change before being permanently enabled, and feedback is encouraged from early adopters!
- Some functions and features will be provided for early feedback behind the
- #926 Fall back to JSON/YAML arrays when parsing datasources instead of refusing to parse (implements #924)
- #925 Gomplate is now built with Go 1.15
New functions
- #876
base64.DecodeBytes - #876 Some experimental functions in the
cryptonamespace.
These should function correctly, but I'm looking for feedback on naming and usability, especially as related to encryption/decryption with other algorithms! - #931
aws.EC2Tagsfor returning all EC2 tags on the host - thanks to @surki! - #900
test.Kindandtest.IsKind(implements #892) - #891
gcp.Meta- thanks to @jen20!
Bug fixes
- #874 Allow referencing
aws+smandaws+smpkeys that don't start with/(fixes #868) - #875 Reverted to UPX v3.94 for compressing the
slimvariant of gomplate, to avoid some bugs caused by a newer version (fixes #861) - #934 Only open input/output files when necessary (fixes #928)
- #935 Fixing "wrong type for value" error when parsing YAML documents containing anchors (fixes #909)
Documentation fixes/updates
v3.7.0
It's high time for another gomplate release! 🎉
The main feature this time around is new support for configuration files! Now you can store config files alongside templates and replace complicated command lines with a single call to gomplate!
We now also have multi-platform Docker images available at hairyhenderson/gomplate,
including support for ARM platforms and Windows.
And finally, if you've gained value out of gomplate and want to find a way to encourage development, please consider sponsoring me!
v3.7.0 (2020-05-21)
Release Notes
New features and changes
- #692 Config file support - see the docs for details
- #743 Recognizing non-standard
application/x-yamlandapplication/textmime types used in GCP - #791 (internal) Adding
context.Contextsupport and a logger - #805 Support more data types as input to
data.ToCSV - #811 Produce multi-platform Docker images (adds support for Linux on ARMv6, ARMv7, and ARM64, and for Windows on AMD64)
- #840 Defer writing until output differs, so that files are left unmodified when the output is the same
- #842 Add directory datasource support to
aws+smpdatasources
New functions
- #834
regexp.QuoteMeta- wraps Go'sregexp.QuoteMetafunction. - #831
coll.Pickandcoll.Omitfor filtering maps
Bug fixes
- #819 Fix broken file datasource URL parsing (query string was ignored) (fixes #809)
- #833 Fix AWS Session
unknown regionbug (fixes #795) - #841 Apply
--chmodbefore opening output file
Documentation fixes/updates
v3.6.0
A big release after a bit of a hiatus. 😅
Big new features include plugin support and 3 new datasources (AWS S3, Google Cloud Storage, and Git!).
Also for those who are using the hairyhenderson/gomplate
Docker images, there are some new tags which will make it easier to stay up to date!
v3.6.0 (2019-11-15)
Release Notes
New features and changes
-
#625 New
s3datasource for reading datasources from AWS S3. See the docs for full information. -
#632 New
gsdatasource for reading datasources from Google Cloud Storage. See the docs for full information. -
#661 New
gitdatasource! Supports git over HTTP(s), SSH, the "classic" Git protocol, and repos on local filesystems. See the docs for full information. -
#581 New
--exec-pipeflag - allows piping output directly into a post-execution command -
#635 With the new
--plugin/-pflag you can plug in your own custom functions! -
#683 When parsing a YAML stream with multiple documents (separated with
---), gomplate will now return the first non-empty document -
#651 New
stableand major (v3) docker image tags - (fixes #648) thanks to @docwhat- New Docker image tags available
stable,v3,stable-slim,v3-slim,stable-alpine,v3-alpine
- New Docker image tags available
-
#598 and #677 Moved to go modules. As a result, if you import gomplate into your own code, your import paths need to change to
github.com/hairyhenderson/gomplate/v3
New functions
- #587
strings.ShellQuote/shellQuote- thanks to @charles-dyfis-net for this one! - #618
coll.Flatten/flatten
Bug fixes
v3.5.0
A small but mighty release, almost entirely powered by the community! 💪
The major features this time around are support for a AWS Secrets Manager data source, and list support for Consul data sources!
v3.5.0 (2019-06-01)
Release Notes
New features and changes
- #549 AWS Secrets Manager data source support. See the docs for the new
aws+sm- many thanks to @nexeck for this contribution! - #559 Consul can now be used as a Directory Datasource. Many thanks to @sgirones for this contribution!
v3.4.1
v3.4.0
In this release we've got some spring cleaning, 20 new functions, and a new way to dynamically name output files! 🚀🌷✨
Also, a new website is up at https://gomplate.ca, and the docs have moved to https://docs.gomplate.ca 📖
There's also now a #gomplate Slack channel on the Gophers Slack instance. Get invited by going to https://invite.slack.golangbridge.org, then join #gomplate and chat with the community and developers.
v3.4.0 (2019-04-09)
Release Notes
New features and changes
- #529 Adding new
--output-mapargument for templating output paths (see docs for details) - #521 Adding another way to install
gomplate- withnpm:npm install -g gomplate
New functions
- New
uuidnamespace: - New
randomnamespace: - #518
strings.RuneCount - #520
aws.KMSEncrypt - #520
aws.KMSDecrypt - #526
aws.Account - #526
aws.UserID - #526
aws.ARN - #535
coll.JSONPath