Skip to content

Update module github.com/go-ozzo/ozzo-validation/v4 to v4.4.1 - #155

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/github.com-go-ozzo-ozzo-validation-v4-4.x
Open

Update module github.com/go-ozzo/ozzo-validation/v4 to v4.4.1#155
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/github.com-go-ozzo-ozzo-validation-v4-4.x

Conversation

@renovate

@renovate renovate Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
github.com/go-ozzo/ozzo-validation/v4 v4.3.0v4.4.1 age confidence

Release Notes

go-ozzo/ozzo-validation (github.com/go-ozzo/ozzo-validation/v4)

v4.4.1: — Performance: 36% fewer allocations

Compare Source

Performance

Struct field offset cache eliminates repeated reflect.StructField allocations.

Benchmark v4.4.0 v4.4.1 Improvement
ValidateStruct (6 fields) 59 allocs, 4.7 KB, 6.7µs 38 allocs, 2.3 KB, 3.6µs -36% allocs, -50% memory, -46% time
ValidateWithConditional 34 allocs, 3.8µs 19 allocs, 1.7µs -44% allocs, -56% time

Also fixes benchmark to pre-compile regex (was inflating alloc count).

Full Changelog: go-ozzo/ozzo-validation@v4.4.0...v4.4.1

v4.4.0: — Revival Release

Compare Source

Revival release — ozzo-validation is actively maintained again after 6 years.

12 community PRs merged, maintainer bug fixes, modernized CI infrastructure.

Added

Fixed

  • E.164 phone validation now requires + prefix per ITU-T standard (#​208 by @​Yanhu007)
  • Domain regex allows uppercase in final character (#​197 by @​mhargrove)
  • Each() now passes pointers correctly to By() callbacks (#​160 by @​dane)
  • IsEmpty() treats all zero-valued structs as empty (#​144 by @​soranoba)
  • Errors.Error() no longer panics on nil values (#​212)
  • Min()/Max() now validate zero values instead of silently skipping them (#​212)
  • README install command, code examples, documentation

Breaking Changes

These are bug fixes — the old behavior was incorrect:

  • is.E164 rejects phone numbers without + prefix (spec-correct)
  • Each() with By() on pointer slices passes *T instead of T
  • IsEmpty() returns true for zero-valued structs (was only time.Time{})
  • Min()/Max() validate numeric zero and time.Time{} (were silently skipped)

Thank You

Thanks to all contributors who waited patiently — some PRs were open for 5+ years.
Special thanks to @​qiangxue for entrusting the project to new maintainers.


Configuration

📅 Schedule: (in timezone Asia/Tokyo)

  • Branch creation
    • "every weekday,every weekend"
  • 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 was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants