Releases: hairyhenderson/gomplate
v3.3.0
A smaller relase this time, almost entirely full of new functions. An exciting new use-case is that a single template can now produce multiple outputs (with file.Write)! 🚀
v3.3.0 (2019-03-03)
Release Notes
New features and changes
- #497 docs: generating rest of string functions from YAML source
- #501 docs: YAMLifying the rest of the function docs, improving the doc template
- #506 Upgrading Go & Dockerfile dependencies
New functions
- #490
file.Write - New
tmplnamespace: - #494
strings.CamelCase - #494
strings.SnakeCase - #495
strings.WordWrap
v3.2.0
There's lots of ✨ in this first release of 2019! 🎉🎊
Now, you can ignore files, merge datasources, and use .env files as datasoures. Also, you can do a whole pile of new things with lists and maps with the functions in the new coll namespace! See below for details...
v3.2.0 (2019-02-07)
Release Notes
New features and changes
- #450 Documented newline suppression (@carlosonunez)
- See the docs for this new section!
- #225 Add
.gomplateignoresupport (@zealic)- An extension to the
--excludeflag, allows ignoring certain files when processing directories with the--input-dirargument. Works just like the.gitignorefile
- An extension to the
- #477 New
merge:datasource, for merging multiple datasources- See the docs for full details
- #481 Adding support for
.envfiles- Parses files containing lines like
KEY=valueas key-value pairs - See the docs for details
- Parses files containing lines like
New functions
- New
collnamespace:- #470
coll.Append/append - #470
coll.Prepend/prepend - #470
coll.Uniq/uniq - #470
coll.Reverse/reverse - #470
coll.Keys/keys - #470
coll.Values/values - #470
coll.Dict/dict(renamed fromconv.Dict, which is now deprecated) - #470
coll.Slice/slice(renamed fromconv.Slice, which is now deprecated) - #470
coll.Has/has(renamed fromconv.Has, which is now deprecated) - #472
coll.Merge/merge - #478
coll.Sort/sort
- #470
Bug fixes
3.1.0
This may be a minor version bump, but it contains some major features! 💪 🚀
Aside from some new functions, behind-the-scenes updates, and docs updates, there's a new way to interact with datasources, a way to process templates in-line, and support for encrypted JSON files! Read on for details...
Note: The Homebrew release of gomplate will likely lag for a while, as there is a known bug with UPX that's blocking it from being released. You can brew install hairyhenderson/tap/gomplate in the meantime to get the latest version.
v3.1.0 (2018-11-29)
Release Notes
New features and changes
- #415 Changed the
hairyhenderson/gomplateDocker image so that it's easier to pipe templates in without any commandline arguments. Thanks to @strokyl for this! - #420 Support decrypting ejson files
- Adds support for ejson-encrypted JSON files, both in datasources and the
jsonfunction
- Adds support for ejson-encrypted JSON files, both in datasources and the
- #424 New --context flag for adding datasources to context
- Allows you to reference a datasource with dot-notation (i.e.
{{ .foo }}instead of{{ ds "foo" }}) - multi-arg datasources still require thedatasource/dsfunction
- Allows you to reference a datasource with dot-notation (i.e.
- #431 Added some missing documentation for AWS environment variables
- #439 Adding option to suppress empty output files
- Perhaps a niche feature, but hopefully useful to some! Enable this with
GOMPLATE_SUPPRESS_EMPTY=true. If you feel this should be more widely supported (through a commandline flag), please file an issue!
- Perhaps a niche feature, but hopefully useful to some! Enable this with
New functions
3.0.0
Finally, gomplate has support for nested templates! 🎉 This, and some API changes, means it's time for the next major release! Welcome to gomplate 3.0! 🤖
v3.0.0 (2018-09-25)
Release Notes
New features and changes
- Improved documentation at https://gomplate.hairyhenderson.ca/syntax/ (#394)
- Improved documentation for the
convnamespace (added more examples/usage info) (#396) - New support for nested templates with the
--template/-tflag (#403)- Currently templates may be loaded from the local filesystem, but remote template support is likely to be added in the future. Please file an issue if you have a specific use-case for this!
- For developers who may be using gomplate as a library, #380 has made some changes to function signatures, and so may introduce incompatibilities in your code. Most of the changes involve template functions which should not be called directly (only through
text/template). If this is a problem, please file an issue!
New functions
Bug fixes
- Silenced
defineDatasourcefunction (it used to pollute the rendered template) (#401)
2.8.0
No new functions for once 😅, but still plenty of improvements under the hood!
v2.8.0 (2018-08-29)
Release Notes
New features and changes
- New
--verboseflag (#385) - New
--chmodflag to explicitly set output file modes (#369) - Export Funcs function to help enable usage of gomplate as library (#372) - Thank you, @dcwangmit01!
- Updated to Go 1.11 (#382)
- This adds a very useful feature for template authors: "Modifying template variables via assignments is now permitted via the = token:"
{{ $v := "init" }} {{ if true }} {{ $v = "changed" }} {{ end }} v: {{ $v }} {{/* "changed" */}}
- This adds a very useful feature for template authors: "Modifying template variables via assignments is now permitted via the = token:"
- For those who may have been using gomplate as a library, (#376) removed unexported a number of functions that were never meant to be exported. If this is a problem, please file an issue!
- MIME type detection precedence has been fixed (#374)
2.7.0
☀️ gomplate's big fancy summer release! ✨😎
v2.7.0 (2018-07-27)
Release Notes
New features and changes
- Datasources can now be defined dynamically (#357) - see
datasourcedocs for details- instead of giving
datasourcean alias, you can provide a URL directly - useful for building new datasource URLs on the fly
- instead of giving
conv.Hascan search arrays now- Template errors now produce much less output (#362)
New functions
- New functions:
defineDatasource- for defining datasources inside templates (but overridable with the
--datasource/-dflag)
- for defining datasources inside templates (but overridable with the
strings.Sortconv.ToBool,conv.ToBoolsconv.ToStrings
New namespaces
filepath, for manipulating local filesystem pathsfilepath.Base,filepath.Clean,filepath.Dir,filepath.Ext,filepath.FromSlash,filepath.IsAbs,filepath.Join,filepath.Match,filepath.Rel,filepath.Split,filepath.ToSlash,filepath.VolumeName
path, for manipulating slash-based paths (such as URLs)path.Base,path.Clean,path.Dir,path.Ext,path.IsAbs,path.Join,path.Match,path.Split
test, helpers for validating assumptions and can cause template generation to failtest.Fail,test.Assert
2.6.0
✨ More functions, more features! ✨
Highlights
- Check out the totally overhauled datasource docs!
- New directory datasource semantics, with initial list support for the
vaultandfiledatasources. - New
envdatasource - New functions:
v2.6.0 (2018-06-09)
Implemented enhancements:
- Directory datasource #215
Fixed bugs:
- The
sockaddr.Includeandsockaddr.Excludedo not have "private" selector. #328 - Support commas in number conversion #345 (hairyhenderson)
Closed issues:
- Add slugify #336
- Action Required: Fix Renovate Configuration #335
- Consider publishing sha256sums of release files #318
- Vault list support #229
Merged pull requests:
- Update golang:1.10-alpine Docker digest to 56db23 #346 (renovate[bot])
- Update golang:1.10-alpine Docker digest to bb3108 #344 (renovate[bot])
- Adding env datasource #341 (hairyhenderson)
- Add strings.Slug function #339 (hairyhenderson)
- Updating vendored packages #338 (hairyhenderson)
- Adding directory support for file datasources #334 (hairyhenderson)
- Overhauling datasource documentation #333 (hairyhenderson)
- Adding vault list support #332 (hairyhenderson)
- Adding more math functions #331 (hairyhenderson)
- Add missing anchor for RFC 1918 link in sockaddr documentation. #330 (kwilczynski)
- Remove notion of "private" selector from the Include/Exclude filter. #329 (kwilczynski)
- Improving documentation around slim binaries #327 (hairyhenderson)
- Update golang:1.10-alpine Docker digest to 96e25c #325 (renovate[bot])
- Update alpine:3.7 Docker digest to 8c03bb #324 (renovate[bot])
- Adding strings.Trunc and strings.Abbrev #323 (hairyhenderson)
- Adding crypto.Bcrypt function #322 (hairyhenderson)
- Adding strings.TrimSuffix and strings.Repeat #321 (hairyhenderson)
- Adding missing docs for file.Walk and strings.TrimPrefix #320 (hairyhenderson)
- Add ability to generate checksums of binaries #319 (hairyhenderson)
- Update golang:1.10-alpine Docker digest to 9de80c #317 (renovate[bot])
2.5.0
✨A huge release this time around, with lots of community contributions! ✨
Highlights:
- Exec mode, or post-template command execution
- Lots of new functions:
- FreeBSD build!
v2.5.0 (2018-05-04)
Implemented enhancements:
- Exec mode... #300
- Need a way to determine whether a datasource is reachable #286
- Add
go-sockaddrfunctions #145 - Adding datasourceReachable function #315 (hairyhenderson)
- Execute additional command after -- #307 (hairyhenderson)
Fixed bugs:
- panic when parsing an empty CSV as a datasource #311
- File mode is not preserved #296
- Fixing panic when parsing empty CSVs and CSVs containing only newlines #312 (hairyhenderson)
- Avoid closing stdout #306 (hairyhenderson)
- Writing output files from a stdin template requires permissions #305 (benjdewan)
- Linting subpackages too... #302 (hairyhenderson)
Closed issues:
- Writing an output file from a template provided via --in sets no FileMode when run using Docker #304
- function "dict" not defined #291
- unexpected "|" in template clause #290
- Conditional statement as default value in getenv? #285
- Pull in sprig functions? #283
- Consider breaking the gomplate cmd into a sub-package #147
Merged pull requests:
- Relaxing restriction on empty datasources #316 (hairyhenderson)
- Improving error handling for datasources #314 (hairyhenderson)
- Pin alpine Docker tag #309 (renovate[bot])
- Adding alpine Docker image variant #308 (hairyhenderson)
- Adding basic metrics around template rendering #303 (hairyhenderson)
- Preserve FileMode of input file when writing output file #301 (djgilcrease)
- Exporting the writer used when templates are sent to Stdout #299 (hairyhenderson)
- Adding new conv.Default function #298 (hairyhenderson)
- Adding time.Since and time.Until funcs #295 (hairyhenderson)
- Adding time.ParseDuration function #294 (hairyhenderson)
- Relax inputs for many functions #293 (hairyhenderson)
- Adding conv.ToString function #292 (hairyhenderson)
- chore(deps): update golang:1.10-alpine docker digest to 356aea #289 (renovate[bot])
- meta: Add release for freebsd-amd64 #287 (jen20)
- New env.ExpandEnv function #284 (hairyhenderson)
- New function proposal:
strings.TrimPrefix#282 (christopher-avila) - New function:
file.Walk#281 (christopher-avila) - Update golang Docker image 1.10-alpine digest (2d95d3) #280 (renovate[bot])
- Update deps #273 (hairyhenderson)
- Putting main pkg in cmd subdirectory #264 (hairyhenderson)
2.4.0
✨ Another big gomplate release!
v2.4.0 (2018-03-04)
Implemented enhancements:
- Support setting Vault server URL in datasource URL #243
- Exclude option support #218
- Adding sockaddr namespace #271 (hairyhenderson)
- Add
go-sockaddrfunctions #145 - Adding file namespace #270 (hairyhenderson)
Fixed bugs:
- Solaris build is broken 💥 #255
- strings.Indent should not indent when width is 0 #268 (keitwb)
- Attempting to fix intermittent Integration Test failure #260 (hairyhenderson)
Closed issues:
- docker run hairyhenderson/gomplate --version doesn't print version #266
Merged pull requests:
- Log test output in CI #272 (hairyhenderson)
- Updating vendored dependencies #269 (hairyhenderson)
- Fix the example command in 'use with docker' section #267 (yizhiheng)
- Migrate from bats to pure Go for integration tests #265 (hairyhenderson)
- Rebasing Docker images on
scratchinstead of alpine #261 (hairyhenderson) - Building with Go 1.10 #258 (hairyhenderson)
2.3.0
✨ The first release of 2018 - an enormous and overdue one! Sorry for the delay 😬
Highlights:
- New
cryptonamespace - New AWS Systems Manager Parameter Store datasource (
aws+smp://) - You can now supply a datasource as standard input
- You can now exclude files when processing directories of templates with the
--excludeflag - Gomplate has a logo now!
Many thanks to the contributors who have helped make this and other releases!
v2.3.0 (2018-02-12)
Implemented enhancements:
- Enable reading from AWS SSM Parameter Store? #245
- Can we specify stdin as a datasource? #230
- Trade the dependency on
aws-sdk-gofor something smaller #47 - Allow vault address to be specified in the vault:// URL #251 (hairyhenderson)
- Add AWS SSM Parameter support #248 (tyrken)
- Add crypto namespace #236 (hairyhenderson)
- Support setting MIME type with URL query string #234 (hairyhenderson)
- Adding support for stdin: scheme for datasources #233 (hairyhenderson)
- Can now pass --exclude as a flag #220 (Gman98ish)
Fixed bugs:
- "unexpected {{end}}" error that only happens when using --input-dir #238
Closed issues:
- gomplate should output which template was being parsed when an error is encountered #239
- function "math" not defined #224
Merged pull requests:
- new logo #253 (hairyhenderson)
- bind test binaries explicitly to 127.0.0.1 #252 (hairyhenderson)
- Updating github.com/aws/aws-sdk-go to v1.12.70 #247 (hairyhenderson)
- Updating for dep 0.4.0 and revendoring #246 (hairyhenderson)
- Increase gometalinter timeout and make it go faster locally #244 (hairyhenderson)
- Refactoring template processing #241 (hairyhenderson)
- Naming template after input filename #240 (hairyhenderson)
- Pruning dependencies with
dep prune#237 (hairyhenderson)
