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: Allow protobuf < 4.0 to support M1 Macs #3070

Merged
merged 3 commits into from Jul 29, 2022
Merged

chore: Allow protobuf < 4.0 to support M1 Macs #3070

merged 3 commits into from Jul 29, 2022

Conversation

liuverta
Copy link
Contributor

@liuverta liuverta commented Jul 27, 2022

Impact and Context

We need to allow newer versions of protobuf==3.* for M1 Mac support (airbytehq/airbyte#13624).

This effectively reverts #2633, which was done because protobuf==3.18.0 broke Python 2 installs (protocolbuffers/protobuf#8984). Since then, protobuf==3.18.0 has been yanked (protocolbuffers/protobuf#9045 (comment)) and the protobuf package metadata now specifies python_requires (protocolbuffers/protobuf#8989), making this looser upper constraint safe again.

Risks and Area of Effect

This once again puts us at the mercy of protobuf maintainers ensuring API compatibility for 3.*. But seeing as they've moved onto 4.* now, I'd expect 3.* to remain stable.

Testing

I've manually verified that pip2 install /path/to/modeldb/client/verta from this branch still installs protobuf==3.17.3—a known safe version.

I've also run the registry/model_version tests, which run the gamut of protobuf usage, and there are no related failures.

How to Revert

Revert this PR.

@liuverta liuverta changed the title chore: Allow protobug < 4.0 chore: Allow protobuf < 4.0 Jul 28, 2022
@liuverta liuverta changed the title chore: Allow protobuf < 4.0 chore: Allow protobuf < 4.0 to support M1 Macs Jul 28, 2022
Comment on lines -354 to -360
# List of optional constructs for which whitespace checking is disabled. `dict-
# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}.
# `trailing-comma` allows a space between comma and closing bracket: (a, ).
# `empty-line` allows space-only lines.
no-space-check=trailing-comma,
dict-separator

Copy link
Contributor Author

@liuverta liuverta Jul 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -285,7 +285,8 @@ ignored-classes=optparse.Values,
# (useful for modules/projects where namespaces are manipulated during runtime
# and thus existing member attributes cannot be deduced by static analysis. It
# supports qualified module names, as well as Unix pattern matching.
ignored-modules=verta._protos.*
ignored-modules=verta._protos.*,
google.protobuf.struct_pb2,
Copy link
Contributor Author

@liuverta liuverta Jul 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

protobuf==3.20 deepens its dynamic generation shenanigans

Protobuf python generated codes are simplified. Descriptors and message classes' definitions are now dynamic created in internal/builder.py.

which causes pylint check failures, unless explicitly ignored here.

@liuverta liuverta marked this pull request as ready for review July 28, 2022 17:42
@liuverta liuverta self-assigned this Jul 28, 2022
@liuverta liuverta merged commit c63622a into main Jul 29, 2022
@liuverta liuverta deleted the liu/proto branch July 29, 2022 22:56
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.

None yet

2 participants