Skip to content

Releases: bufbuild/protovalidate-python

v1.2.0

Choose a tag to compare

@srikrsna-buf srikrsna-buf released this 22 Apr 11:52
a4d0988

This release is compatible with the v1.2.0 release of Protovalidate.

What's Changed

Full Changelog: v1.1.2...v1.2.0

v1.1.2

Choose a tag to compare

@stefanvanburen stefanvanburen released this 02 Mar 15:13
f85bf45

This release fixes support for protobuf==7, the latest major release of the protobuf runtime library.

What's Changed

Full Changelog: v1.1.1...v1.1.2

v1.1.1

Choose a tag to compare

@stefanvanburen stefanvanburen released this 02 Feb 13:56
4d3c769

The biggest change in this release is bumping cel-python to 0.5.0 (see #414), which should improve performance.

What's Changed

Full Changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@srikrsna-buf srikrsna-buf released this 09 Dec 18:42
1263db1

This release is compatible with the v1.1.0 release of Protovalidate.

What's Changed

New Contributors

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@stefanvanburen stefanvanburen released this 12 Sep 16:27
c7e5074

Protovalidate is now v1.0

After two years of development, Protovalidate has reached v1.0, marking our commitment to stability and production readiness.
Read more in our blog post. Get started at https://protovalidate.com.

What's Changed

There are no functional changes compared to the previous release.

Full Changelog: v0.15.0...v1.0.0

v0.15.0

Choose a tag to compare

@stefanvanburen stefanvanburen released this 27 Aug 00:09
12baa82

Another day, another release — this time, moving to v0.15.0 as we've bundled a couple of breaking changes into one release (we hope these are the last for awhile)!

Breaking Changes

  • Removed the protovalidate.Config class (#364)
    • Moved back to providing the fail_fast kwarg to either validate or collect_validations
  • Removed collect_validations(..., into=) argument (#365)
    • Let us know if you were using / have a usecase for this!
  • Made google-re2 a required dependency (#363)
    • This keeps our regex implementation compliant with CEL, and removes the need for the re2 extra that was added in v0.14.0. google-re2 supplies wheels for all supported versions of Python, so this shouldn't be an issue, but please let us know if you have issues!

What's Changed

Full Changelog: v0.14.1...v0.15.0

v0.14.1

Choose a tag to compare

@stefanvanburen stefanvanburen released this 25 Aug 22:05
42bfa58

This release fixes a bug with concatenated values (#354 + #357), and adds back support for protobuf==5 (#358). We plan to support protobuf==5 until protobuf==7 is released.

What's Changed

New Contributors

Full Changelog: v0.14.0...v0.14.1

v0.14.0

Choose a tag to compare

@smaye81 smaye81 released this 05 Aug 14:16
0925b76

Breaking Changes

Config option for custom regex removed

We have removed the regex_matches_func from the config. Now that google-re2 has pre-built binaries for Python 3.13, re2 can be fully supported inside protovalidate-python. Users no longer need to bring-their-own-re2.

To use re2 syntax, install protovalidate-python with an extra dependency on re2 as follows:

pip install protovalidate[re2]

For more context, see PR #346

What's Changed

This release is compatible with protovalidate v0.14.0.

Full Changelog: v0.13.0...v0.14.0

v0.13.0

Choose a tag to compare

@srikrsna-buf srikrsna-buf released this 17 Jul 17:50
707fd15

This release is compatible with the v0.14.0 release of Protovalidate.

Breaking changes

We want validation rules to be easy to understand for authors and consumers. To simplify Protovalidate, we are renaming an option and remove two others. This is a breaking change, and you will have to update your Protobuf files if they use the relevant options :

  • IGNORE_IF_UNPOPULATED is renamed to IGNORE_IF_ZERO_VALUE.
    See bufbuild/protovalidate#397 for details.
  • (buf.validate.message).disabled is removed.
    You can replace it by adding IGNORE_ALWAYS to every field of the message. See bufbuild/protovalidate#394 for details.
  • IGNORE_IF_DEFAULT_VALUE is removed.
    In most cases, you can replace it with IGNORE_IF_ZERO_VALUE. See bufbuild/protovalidate#396 for details.

Full Changelog: v0.12.0...v0.13.0

v0.12.0

Choose a tag to compare

@smaye81 smaye81 released this 18 Jun 19:27
3cfbfb3

Breaking Changes

New API for creating a validator and running validation.

Users can now specify a Config object when explicitly creating a validator, allowing for configuring validation logic. Currently, the two available options are:

fail_fast (bool): If True, validation stops after the first failure.
regex_matches_func (Callable[[str, str], bool): An optional function for overriding this library's matches logic for regular expressions.

Example:

from protovalidate import Config, Validator

cfg = Config(fail_fast=True)
validator = protovalidate.Validator(config=cfg)

validator.validate(msg)

As a result of the above, we have removed the fail_fast parameter from the validate and collect_violations methods on a validator. Users should instead use the above config approach.

Flagging invalid re2 syntax

Usage of invalid re2 syntax will now throw an evaluation error. While the CEL spec specifies that regular expressions should follow the re2 syntax, the underlying regex engine in protovalidate-python is still Python's re package. This is because there is currently no pre-built binary that supports Python 3.13 (issue).

So, to get as close as possible until then, we are flagging invalid re2 syntax used in regular expressions. Users can also choose to override this and bring their own re2 engine by using the config approach above.

What's Changed

  • Add ability to specify custom regex matcher by @smaye81 in #325
  • Add the ability to specify a config to validators by @smaye81 in #323
  • Implement matches override by @smaye81 in #319

This release is compatible with protovalidate v0.13.3.

Full Changelog: v0.11.0...v0.12.0