Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update hairyhenderson/gomplate docker tag to v4 #349

Merged
merged 1 commit into from
Jul 9, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 5, 2024

Mend Renovate

This PR contains the following updates:

Package Type Update Change
hairyhenderson/gomplate final major v3.11.7 -> v4.1.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

hairyhenderson/gomplate (hairyhenderson/gomplate)

v4.1.0

Compare Source

Features
Bug Fixes
  • vault: Upgrade go-fsimpl for KVv2 vault bug, and add test coverage (#​2157) (6ffd703)
Documentation
Dependencies
  • actions: Bump docker/setup-buildx-action from 3.3.0 to 3.4.0 (#​2163) (129ff6b)
  • actions: Bump docker/setup-qemu-action from 3.0.0 to 3.1.0 (#​2160) (16ebbbe)
  • go: Bump github.com/aws/aws-sdk-go from 1.54.10 to 1.54.11 (#​2152) (e0a6e4f)
  • go: Bump github.com/aws/aws-sdk-go from 1.54.11 to 1.54.13 (#​2158) (720c70c)
  • go: Bump github.com/aws/aws-sdk-go from 1.54.13 to 1.54.14 (#​2159) (114c54d)
  • go: Bump github.com/aws/aws-sdk-go from 1.54.14 to 1.54.15 (#​2165) (51947a7)
  • go: Bump github.com/hairyhenderson/go-fsimpl from 0.1.6 to 0.1.7 (#​2167) (80b7c5a)
  • go: Bump golang.org/x/term from 0.21.0 to 0.22.0 (#​2162) (59192ec)

v4.0.0

Compare Source

v4.0.0

🥳 It's finally here! Welcome to gomplate v4.0.0! This release is a major release, with breaking changes. Read on for more details...

Probably the most important feature that's evolved in gomplate over the years is its support for reading and parsing data from a variety of sources. Using URLs to specify where to find data has proven to be quite flexible, and has allowed for a lot of different data sources to be supported.

In early 2021, I took what I had learned from supporting all of these different data sources, and I created a new module called go-fsimpl, which provides a number of Go filesystem implementations that can be used with Go's filesystem interfaces.

My goal with go-fsimpl was always to use it in gomplate, and now that it's data source support has reached parity with gomplate, it's time to make the switch! As a result, and because go-fsimpl presents a much more consistent and unified approach to data sources, I've had to drop support for one data source, and in fixing some inconsistencies in how URLs have been handled by some of the data sources, I've had to make some breaking changes there as well.

⚠️ Please, if you're using gomplate in production, read these release notes carefully and in full, and review your usage of gomplate to make sure you can adapt to these changes.

Breaking changes

Dropped support for the BoltDB data source

Support for the boltdb URL scheme has been removed. The implementation was never very robust, and I'm not aware of anyone using it. It had some unique quirks that would have made it quite difficult to support in go-fsiml as-is, so I've decided to drop it.

No more slim binaries

The slim binaries were deprecated in v3.11, and will no longer be produced.

Stricter URL handling
Subpaths are now always relative URLs

When using the datasource function with a subpath (second argument), the subpath has previously been intepreted by some data sources as a simple addition to the URL, and by others as a relative URL to be interpreted relative to the data source's base URL (as specified by the --datasource flag).

Now, all data sources will interpret the subpath as a relative URL, and will resolve it relative to the data source's base URL. This means that, given a base URL of git+https://github.com/hairyhenderson/gomplate//random and a subpath of random.go, the resulting URL will be git+https://github.com/hairyhenderson/gomplate//random.go. To correct this, make sure that base URLs end with a trailing slash when the last component is a directory.

Also, if the subpath begins with a slash, it will be interpreted as an absolute path, and will replace the base URL's path. For example, given a base URL of git+file:///tmp/repos//myrepo/ and a subpath of /myfile.txt, the resulting URL will be git+file:///myfile.txt. To correct this, make sure that subpaths don't begin with a slash. Note that for the special // separator indicating the separation between a Git repository and the path within, a subpath should now begin with .// rather than //.

This affects at least the git and file data sources.

Directories in datasource URLs must end with a slash

Previously, some data sources would assume URLs that end without a trailing slash are directories, and relative lookups would be performed within that directory. This was inconsistent with how URLs are normally interpreted, and could lead to unexpected results.

Now, all data sources will always interpret URLs without a trailing slash as files, and relative lookups will be performed within the parent directory of the URL.

For example, given a base URL of vault:///secret and a subpath of foo, the resulting URL will be vault:///foo. To correct this, make sure that base URLs end with a trailing slash when the last component is a directory.

Consistent data values

The aws+smp data source previously returned the AWS output object, with both metadata and data. Users needed to reference the Value field to get the actual data. Now, the aws+smp data source will return the data directly.

The consul data source supports directory semantics, but previously returned all the data as a JSON array of key/value pair objects. Now, the consul data source will return directory listings like all other data sources, as a JSON array of strings (the names of the keys).

Vault app-id authentication support removed

Support for the Vault "app-id" authentication method has been removed. This method was deprecated in Vault 0.6.1, and removed in Vault 1.13. If you're still using this method, you must switch to a different authentication method. Consider the "approle" method as a similar replacement.

The suppressEmpty behaviour is now always enabled

In previous versions of gomplate, output that consist only of whitespace would by default still be written to files, with the suppressEmpty flag or GOMPLATE_SUPPRESS_EMPTY environment variable being required to suppress this behaviour.

Now, this behaviour is always enabled, and the suppressEmpty flag and GOMPLATE_SUPPRESS_EMPTY environment variable have been removed.

Log message formatting changes

A new logging framework is now in use (the standard library's log/slog package), and so error and debug (--verbose) messages will appear differently (different colours for the console format, and key/value pairs may are sorted differently).

Functions returning errors instead of quietly returning 0 on invalid input

Instead of quietly returning 0, a number of functions in the conv namespace will now return an error if the input is invalid.

This includes:

  • conv.ToInt64, conv.ToInt, conv.ToInt64s, conv.ToInts, conv.ToFloat64, conv.ToFloat64s, conv.ParseInt, conv.ParseFloat, conv.ParseUint, conv.Atoi

Because these functions are used by some other functions, this introduces stricter input validation for these functions:

  • coll.Flatten
  • crypto.PBKDF2, crypto.Bcrypt, crypto.RSAGenerateKey, crypto.EncryptAES, crypto.DecryptAES, crypto.DecryptAESBytes
  • math.Abs, math.Add, math.Mul, math.Sub, math.Div, math.Rem, math.Pow, math.Seq, math.Max, math.Min, math.Ceil, math.Floor, math.Round
  • net.CIDRHost, net.CIDRSubnets, net.CIDRSubnetSizes
  • random.ASCII, random.Alpha, random.AlphaNum, random.String, random.Number, random.Float
  • regexp.FindAll, regexp.Split
  • strings.Abbrev, strings.WordWrap
  • time.Nanosecond, time.Microsecond, time.Millisecond, time.Second, time.Minute, time.Hour
Functions in the regexp namespace now return errors instead of panicking

Previously, the regexp.Match and regexp.Replace functions would panic if the regular expression was invalid. Now, they will return an error instead.

Removed functions

The following functions have been removed:

  • conv.Dict, conv.Slice, conv.Has - These have been deprecated since v3.2.0 and have been replaced with coll.Dict, coll.Slice, and coll.Has.

Deprecations

See the deprecation policy.

  • A number of functions are deprecated, and will likely be removed in v5:
    • the slice alias for coll.Slice (use coll.Slice instead)
    • The net.Parse* functions which produced values from the inet.af/netaddr module have been deprecated and replaced with functions using the Go standard library's net/netip package:
  • The array form of configuring nested templates is deprecated, and a new map-based form is now available. This will be removed in a later v4 minor release (i.e. not in v4.0.0, but before v5).
  • Support for the AWS_META_ENDPOINT environment variable for overriding the IMDS endpoint in aws functions has been deprecated in favor of the AWS-native AWS_EC2_METADATA_SERVICE_ENDPOINT. This will be removed in a later v4 minor release (i.e. not in v4.0.0, but before v5).
  • A number of functions and types in the Go API are deprecated. Using a linter like staticcheck will help you find these in your code if you're using gomplate as a module. Follow the instructions in the deprecation comments to find out what to use instead.

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:


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!


v4.0.0 (2024-06-18)

Full Changelog (since v3.11)
Changes since v4.0.0-pre-3

Release Notes
New features and changes
  • #​1336 Use go-fsimpl to read from datasources
  • #​1949 Add missing-key flag to manage behavior in case of non-existing key - thanks to @​xxxcoltxxx!
  • #​1922 Flip to ltsc2022 image for windows variant
  • #​1781 Support for CUE
  • #​1837 Add support for Linux s390x - thanks to @​iblancasa!
  • #​1700 Add tea.xyz package manager - thanks to @​adriens!
  • #​1698 New plugin args option (implements #​1552)
  • #​1668 Remove support for obsolete Vault app-id auth
  • #​1440 Added ppc64le support - thanks to @​mayurwaghmode!
  • #​1615 Deprecate netaddr-based funcs
  • #​1538 Deprecate non-pipelineable strings aliases
  • #​1433 Removed slim (UPX-compressed) binary/image support
  • #​1397 Remove BoltDB support
  • #​1977 Move funcs package to internal/funcs
  • #​1963 Add --exclude-processing option
  • #​2068 Switch from zerolog to slog
  • #​1981 Always suppress empty output
  • #​2069 coll.Pick now supports slice of strings as input
  • #​2083 Replaced the data.Data type with a datasource registry
  • #​2089 Update strings.Indent to error on bad input
  • #​2095 Removed deprecated RunTemplates function and old Config type
  • #​2094 Exported new Config type and updated Run function and other API functions
  • #​2105 Return errors instead of panicking on regexp functions
  • #​2104 Return errors instead of 0 on invalid inputs to conv.* functions
  • #​2115 Add ability to override type query parameter name with GOMPLATE_TYPE_PARAM environment variable
New functions
Bug fixes
Documentation fixes/updates
  • #​1868 List release versions for each function, add unreleased label
  • #​1873 Explain that index supports nested keys - thanks to @​isavcic!
  • #​1885 docs: format user template in hello example - thanks to @​tenstad!
  • #​1866 document the workaround for Vault KV secrets engine - version 2 - thanks to @​AndrewSav!
  • #​1745 Fix output-map usage docs
  • #​1729 Migrate docs site to new theme
  • #​1714 Clarified documentation of data.CSVBy* functions - thanks to @​giorgiga!
  • #​1588 Clarify documentation to highlight the differences between index and .
  • #​1622 Fix minor typo: Pic -> Pick - thanks to @​hartzell!
  • #​1518 Fix incorrect coll.GoSlice example (fixes #​1517)
  • #​1506 Clarify git URL docs - stop implying subpaths starting with // are a good idea
Misc. internal contributions

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot added the help wanted Extra attention is needed label Jul 5, 2024
@ti-chi-bot ti-chi-bot bot requested review from purelind and wuhuizuo July 5, 2024 10:49
@ti-chi-bot ti-chi-bot bot added the size/XS label Jul 5, 2024
@renovate renovate bot force-pushed the renovate/hairyhenderson-gomplate-4.x branch from 1c46fd3 to b2a7be8 Compare July 6, 2024 19:25
@ti-chi-bot ti-chi-bot bot added the lgtm label Jul 9, 2024
Copy link

ti-chi-bot bot commented Jul 9, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: wuhuizuo

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link

ti-chi-bot bot commented Jul 9, 2024

[LGTM Timeline notifier]

Timeline:

  • 2024-07-09 11:38:06.004622418 +0000 UTC m=+357583.239856546: ☑️ agreed by wuhuizuo.

@ti-chi-bot ti-chi-bot bot added the approved label Jul 9, 2024
@ti-chi-bot ti-chi-bot bot merged commit d9814ed into main Jul 9, 2024
1 check passed
@ti-chi-bot ti-chi-bot bot deleted the renovate/hairyhenderson-gomplate-4.x branch July 9, 2024 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant