Commit Graph

18 Commits

Author SHA1 Message Date
Jan Tattermusch b59fcc2479
Upgrading to protobuf 22.x: Adapt make_grpcio_tools.py to changes in protobuf bazel build (#32213)
Protobuf's HEAD has changed the layout of bazel targets we use for
getting the list of source files for our python grpcio.tools build.

With this patch, make_grpcio_tools.py finishes successfully and gives
reasonable results.
2023-03-28 15:05:31 +00:00
Jan Tattermusch 0cde9a7550
make_grpcio_tools.py improvements: more readable diffs (#32583)
- sort source files to ensure stable ordering
- generate one source file per line

together this should produce diffs that are much more readable by humans
when sources get added/removed to/from protobuf (and
make_grpcio_tools.py is used to regenerate).
2023-03-10 10:56:04 +01:00
Richard Belleville 2d94537854
Re-add compiler protos to grpcio-tools (#31062)
* Re-add compiler protos to grpcio-tools

* Attempt to break

* Actually fail if protobufs don't compile. Who wrote this thing?

* Add an actual test

* yapf

* Whoops. Thought I'd reverted you

* Please the formatter gods
2022-09-20 17:15:39 -07:00
Yash Tibrewal 41ec08c69a
Update third_party/protobuf to 3.21.4 (#30377)
* Update third_party/protobuf

* run tools/distrib/python/make_grpcio_tools.py

* regenerate protos for ruby, php

* update build_handwritten.yaml

* regenerate projects

* Build - Use :well_known_type_protos instead of :well_known_protos

* Fix target

* Update upb

* Update Python for Protobuf 4.21 (#140)

* Update protobuf dependency on grpcio-tools

* Off by one

* Drop python 3.6 support

* Try upgrading pip

* And in the other script

* Try to figure out if we're compatible with abi3

* See what we've already got installed

* Update the requirements.txt file I didn't know existed

* And here too

* See what's installed

* Let's try that again

* Remove

* Try to confirm version

* Let me see the generated code

* Fix non-Bazel test runner

* Work for all test directories

* Regenerate example protos

* Clean up

* Generate .pyi files

* Fix type checking and linting

* Exclude pyi files from isort

* Upgrade to 3.21.4

* Update iwyu to get around messy protobuf IWYU rules

Co-authored-by: Richard Belleville <gnossen@gmail.com>
2022-08-04 09:39:49 -07:00
Richard Belleville 59693b7e72
Migrate Infrastructure Scripts to Python 3 (#27135)
* Run 2to3 on tools directory

* Delete github_stats_tracking

* Re-run 2to3

* Remove unused script

* Remove unused script

* Remove unused line count utility

* Yapf. Isort

* Remove accidentally included file

* Migrate tools/distrib directory to python 3

* Remove unnecessary shebang

* Restore line_count directory

* Immediately convert subprocess.check_output output to string

* Take care of Python 2 shebangs

* Invoke scripts using a Python 3 interpreter

* Yapf. Isort

* Try installing Python 3 first

* See if we have any Python 3 versions installed

* Add Python 3.7 to Windows path

* Try adding a symlink

* Try to symlink differently

* Install six for Python 3

* Run run_interop_tests with python 3

* Try installing six in python3.7 explicitly

* Revert "Try installing six in python3.7 explicitly"

This reverts commit 2cf60d72f3.

* And debug some more

* Fix issue with jobset.py

* Add debug for CI failure

* Revert microbenchmark changes
2021-11-08 08:55:25 -08:00
Jan Tattermusch dd009359e3 add some transparency to make_grpcio_tools.py 2018-05-23 22:02:41 +02:00
Mehrdad Afshari 87cd994b04 Upgrade yapf to 0.20.0
Upgrade yapf version to 0.20.0 and reformat Python files.
2018-01-02 14:40:00 -08:00
ncteisen 7a2be20a8a yapf tools/distrib 2017-12-11 16:49:19 -08:00
Mehrdad Afshari 9b4315682b Do not require bazel for check_grpcio_tools.py
The `make_grpcio_tools.py` rube-goldberg machinery relies on
`bazel` to extract the list of files required to compile the
`grpcio-tools` package that are provided by the `protobuf`
submodule.  In order to ensure that list is up to date,
`check_grpcio_tools.py` sanity check does the same `bazel`
query, and checks the full contents against the already
existing list in the repository.  This has the downside of
requiring `bazel` to run that particular check at sanity test
time, and flakiness has been seen there.

This commit changes the code generation process to include
the git hash of the submodule at the time `make_grpcio_tools.py`
is invoked and stores it in the generated file and instead of
doing the whole process at test time, the `check_grpcio_tools.py`
sanity test simply checks the submodule version at test time
and verifies it against the version included in the file by
`make_grpcio_tools.py` thus removing the `bazel` dependency
at test time and increasing test robustness and speed.
2017-11-20 12:14:23 -08:00
Jan Tattermusch 9f401e53c9 fix make_grpcio_tools.py 2017-06-08 11:22:41 +02:00
Jan Tattermusch 7897ae9308 auto-fix most of licenses 2017-06-08 11:22:41 +02:00
Ken Payson 5998cd760c Add Python3.5 artifact targets 2016-08-15 10:57:47 -07:00
Masood Malekghassemi 792d899b7e Support long paths in make_grpcio_tools.py 2016-07-16 02:32:55 -07:00
Masood Malekghassemi 9756fa3e1a Allow make_grpcio_tools.py to be invoked in parallel 2016-07-16 01:31:50 -07:00
Masood Malekghassemi 2dbc217e5e Add common proto files to Python grpcio-tools 2016-06-07 16:57:14 -07:00
Masood Malekghassemi 176ac65faf Don't truncate deps file on failure to find bazel 2016-05-04 15:30:30 -07:00
Masood Malekghassemi 0e25c8d71a Tightly integrate the Python plugin with its protoc
This grossly simplifies the protoc invocation to:
python -m grpc.protoc.compiler --python_out=... --grpc_python_out=...
[...] --plugin=protoc-gen-python-grpc=grpc_python_protoc_plugin... [...]
2016-05-04 15:30:30 -07:00
Masood Malekghassemi 58d24c259a Add sanity test for grpcio protoc package 2016-05-04 15:30:30 -07:00