Releases: hairyhenderson/gomplate
v3.11.3
This is a very minor patch release to update a dependency that's causing gomplate to trigger vulnerability scanners for CVE-2022-27664.
To the best of my understanding gomplate is not vulnerable, as it doesn't expose any HTTP servers - this patch release is purely to help vulnerability scans pass!
What's Changed
- Bump dependencies with unrelated CVEs by @hairyhenderson in #1501
Full Changelog: v3.11.2...v3.11.3
v3.11.2
Another patch release to allow gomplate to be compiled with Go 1.19.
What's Changed
- [3.11.x backport] Fixing flakey LookupIP test by @hairyhenderson in #1470
- [3.11.x backport] Update inet.af/netaddr so gomplate builds with Go 1.19 by @hairyhenderson in #1469
- [3.11.x backport] Switch to golangci-lint GitHub Action by @hairyhenderson in #1473
- Lint fixes (for 3.11.x) by @hairyhenderson in #1471
Full Changelog: v3.11.1...v3.11.2
v3.11.1
Just a simple patch release to fix a bug that prevented the go install
installation method.
What's Changed
- Enable CI for 3.11.x branch by @hairyhenderson in #1431
- Use temporary fork of gopkg.in/yaml.v3 by @hairyhenderson in #1430
Full Changelog: v3.11.0...v3.11.1
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
slim
binaries 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.Sort
instead)conv.Dict
(usecoll.Dict
instead)conv.Slice
(usecoll.Slice
instead)conv.Has
(usecoll.Has
instead)conv.Bool
(useconv.ToBool
instead)
- 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.Renderer
API 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
templates
config option, and deprecates the previous format. See the docs fortemplates
for 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.ECDSAGenerateKey
crypto.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
net
namespace 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.EncryptAES
crypto.DecryptAES
- These are experimental as the semantics may change in a future release
- #1287 New
listDatasources
function - thanks to @jeevansai502 for the contribution!
Bug fixes
- #1349 Fix bug in
JSON
andYAML
functions 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.Title
to handle unicode punctuation (moves to alternate implementation after Go 1.18 deprecated the standard library function) - #1308 Fix bug where
strings.Indent
would not work correctly when a new-line character is used (now disallowed) - #1296 The
aws+sm
datasource will now correctly read a secret written as binary (SecretBinary
) rather than a string (SecretString
)
Documentation fixes/updates
- #1338 Clarify that
inputDir
is 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
slim
binary, 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.ToInt
now returns-1
instead of overflowing on 32-bit systems to protect against CWE-190 and CWE-681 - #1214 The
crypto.RSAGenerateKey
function now enforces a minimum key size of 2048 bits to protect against CWE-326. - #1195 Now built with Go 1.17
- #1083 New
darwin-arm64
binary - #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_ADDR
parsing (fixes #1209) - #1199 Fix a few filehandle leaks (fixes #995)
- #1128 Fix data race in
random
functions - #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-go
to 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_FORMAT
environment variable to support changing logging formats (fix for #942) - #1028 The
hairyhenderson/gomplate:alpine
Docker 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
experimental
configuration 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
crypto
namespace.
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.EC2Tags
for returning all EC2 tags on the host - thanks to @surki! - #900
test.Kind
andtest.IsKind
(implements #892) - #891
gcp.Meta
- thanks to @jen20!
Bug fixes
- #874 Allow referencing
aws+sm
andaws+smp
keys that don't start with/
(fixes #868) - #875 Reverted to UPX v3.94 for compressing the
slim
variant 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-yaml
andapplication/text
mime types used in GCP - #791 (internal) Adding
context.Context
support 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+smp
datasources
New functions
- #834
regexp.QuoteMeta
- wraps Go'sregexp.QuoteMeta
function. - #831
coll.Pick
andcoll.Omit
for filtering maps
Bug fixes
- #819 Fix broken file datasource URL parsing (query string was ignored) (fixes #809)
- #833 Fix AWS Session
unknown region
bug (fixes #795) - #841 Apply
--chmod
before 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
s3
datasource for reading datasources from AWS S3. See the docs for full information. -
#632 New
gs
datasource for reading datasources from Google Cloud Storage. See the docs for full information. -
#661 New
git
datasource! Supports git over HTTP(s), SSH, the "classic" Git protocol, and repos on local filesystems. See the docs for full information. -
#581 New
--exec-pipe
flag - allows piping output directly into a post-execution command -
#635 With the new
--plugin
/-p
flag 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
stable
and 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!