Commit Graph

56 Commits

Author SHA1 Message Date
Esun Kim 34a7e76359 [Deps] Rollfoward Protobuf upgrade to v26.1 (#36323)
This reverts commit 78b9d84fd3.

Closes #36323

PiperOrigin-RevId: 623547891
2024-04-10 11:07:26 -07:00
Esun Kim 78b9d84fd3 [Dep] Rollback Protobuf upgrade to v25.1 (#36247)
This is for gRPC Python that has an issue with Protobuf Python v26

Closes #36247

PiperOrigin-RevId: 621629528
2024-04-03 13:56:36 -07:00
Esun Kim 899aed0156 [Deps] Ruby uses protobuf 4.x (#36215)
Protobuf for Ruby bumped the major version to 4. [package](https://rubygems.org/gems/google-protobuf) so the Ruby gemspec should be updated to have 4 instead of 3.

But gRPC's other dependencies don't work with Protobuf 4.x so I fixed the version of google-protobuf for gRPC Ruby to 3.25 which was the last version gRPC used.

Closes #36215

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36215 from veblush:ruby-protobuf 171a6d63bc
PiperOrigin-RevId: 620987535
2024-04-01 16:38:17 -07:00
Chad Wilson 43d2b28e02 [ruby] Build/test ruby 3.3 and build native gems with Ruby 3.3 support (#35399)
Updates ruby-compiler-dock to 1.4.0 which brings Ruby 3.3 final support per https://github.com/rake-compiler/rake-compiler-dock/releases/tag/1.4.0 and starts cross-compiling for ruby 3.3.

I can't find obviously where the test infrastructure configuration is to run the tests under Ruby 3.3, so might need pointers or an accompanying PR for the test infra. (I note #31991 from @apolcyn so perhaps currently they are not run against newer versions)

Fixes #35396

- Backport to `1.60` is desirable since currently the Ruby gems cannot be installed with Ruby 3.3 and have to be built from source.

Closes #35399

PiperOrigin-RevId: 599200628
2024-01-17 09:37:18 -08:00
apolcyn 2ddd37a75b
[ruby] update google auth to ~> 1.0 (#34013)
Supersedes https://github.com/grpc/grpc/pull/33436

Fixes https://github.com/grpc/grpc/issues/33435
2023-08-23 10:57:43 -07:00
Jan Tattermusch a8508ec465
[build metadata] Bazel to "other build systems" improvements (#33803)
- Extract build metadata for some external dependencies from bazel
build. This is achieved by letting extract_metadata_from_bazel_xml.py
analyze some external libraries and sources. The logic is basically the
same as for internal libraries, I only needed to teach
extract_metadata_from_bazel_xml.py which external libraries it is
allowed to analyze.
* currently, the list of source files is automatically determined for
`z`, `upb`, `re2` and `gtest` dependencies (at least for the case where
we're building in "embedded" mode - e.g. mostly native extensions for
python, php, ruby etc. - cmake has the ability to replace some of these
dependencies by actual cmake dependency.)
- Eliminate the need for manually written gen_build_yaml.py for some
dependencies.
- Make the info on target dependencies in build_autogenerated.yaml more
accurate and complete. Until now, there were some depdendencies that
were allowed to show up in build_autogenerated.yaml and some that were
being skipped. This made generating the CMakeLists.txt and Makefile
quite confusing (since some dependencies are being explicitly mentioned
and some had to be assumed by the build system).
- Overhaul the Makefile
* the Makefile is currently only used internally (e.g. for ruby and PHP
builds)
* until now, the makefile wasn't really using the info about which
targets depend on what libraries, but it was effectively hardcoding the
depedendency data (by magically "knowing" what is the list of all the
stuff that e.g. "grpc" depends on).
* After the overhaul, the Makefile.template now actually looks at the
library dependencies and uses them when generating the makefile. This
gives a more correct and easier to maintain makefile.
* since csharp is no longer on the master branch, remove all mentions of
"csharp" targets in the Makefile.

Other notable changes:
- make extract_metadata_from_bazel_xml.py capable of resolving workspace
bind() rules (so that it knows the real name of the target that is
referred to as e.g. `//external:xyz`)

TODO:
- [DONE] ~~pkgconfig C++ distribtest~~
- [DONE} ~~update third_party/README to reflect changes in how some deps
get updated now.~~


Planned followups:
- cleanup naming of some targets in build metadata and buildsystem
templates: libssl vs boringssl, ares vs cares etc.
- further cleanup of Makefile
- further cleanup of CMakeLists.txt
- remote the need from manually hardcoding extra metadata for targets in
build_autogenerated.yaml. Either add logic that determines the
properties of targets automatically, or use metadata from bazel BUILD.
2023-08-16 19:13:39 +02:00
apolcyn c1a4b526fb
[ruby]: add pre-compiled binaries for ruby 3.2; drop them for ruby 2.6 (#32089)
[ruby]: add pre-compiled binaries for ruby 3.2; drop them for ruby 2.6
2023-01-19 15:32:26 -08:00
apolcyn e31cfaaa11
Update default ruby version to 3.2 on linux/macos ruby builds (#32010)
* Use ruby 3.2 in macos and linux ruby builds
2023-01-03 13:38:15 -08:00
Hannah Shi b9928a5154
[Ruby]fix a rake compile error since rake-compiler ~> 1.1 (#28666)
* fix a rake compile error since rake-compiler ~> 1.1

* change File.directory? check
2022-05-05 12:30:11 -07:00
Marco Concetto Rudilosso 06e2fcc6c7
Support pre-built binaries for Ruby 3.1 (#29000)
* Support pre-built binaries for Ruby 3.1

* use 3.1.0

* use 3.1.0 and install 3.1 in build files

* fix

* update gemspec template

* fix naming of variable

* Fix ruby 3.1 link

Co-authored-by: Jan Tattermusch <jtattermusch@users.noreply.github.com>
2022-04-06 14:02:13 +02:00
apolcyn 95b313de82
Remove ruby 2.4 support (#28522)
* changes to remove ruby 2.4 support

* some fixes

* remove opensuse since eol

* fixes

* remove unused x86 dockerfile

* stop building for ruby 2.4

* update build scripts

* fix scripts

* fix sanity

Co-authored-by: Jan Tattermusch <jtattermusch@google.com>
2022-01-11 13:30:58 +01:00
apolcyn e0c2bb063f
pin rake compiler to 1.1.1 (#28328) 2021-12-09 13:13:15 -08:00
Mike Dalessio 3181f4e530
ruby: build native Darwin gems using rake-compiler-dock (#25794)
* ruby: use squiggly heredoc for rake-compiler-dock commands

* ruby: use `bundler exec` when building native gems

* ruby: clean .{bundle,so} from src/ruby/lib when building native gems

Failing to remove these files between native builds leads
rake-compiler to establish circular dependencies (which may be a bug
in rake-compiler, but this feels like an easy and good thing to do,
anyway).

* ruby: extract linux and darwin RUBY_PLATFORM checks into variables

There were already "windows" and "bsd" flags, so let's improve
consistency and readability, and set a clear pattern for subsequent
flags.

* ruby: rely on rake-compiler-dock v1.1.0 to set no_native correctly

As of v1.1.0 there's no need to set this explicitly anymore; it will
be true whenever the extension is being built in a RCD container.

See https://github.com/rake-compiler/rake-compiler-dock/commit/362890d

* ruby: add "x86_64-darwin" platform gem

Using RCD for this platform unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in #25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- #25429
- #25756
2021-10-19 09:20:24 +02:00
Alexander Polcyn 126b9524d7 update in templates 2021-01-19 23:24:30 -08:00
Richard Belleville 38124ab0c6 Review comments 2020-12-07 11:52:44 -08:00
Richard Belleville 010d62175e Pin protobuf version dependency for grpcio-tools 2020-12-04 17:40:31 -08:00
Jan Tattermusch 3db07b9cbf upgrade ruby to protobuf 3.13.0 2020-08-25 12:57:21 +02:00
Stanley Cheung eccbac3443 Update grpc protoc plugins to support proto3 optional 2020-05-29 13:50:18 -07:00
Karthik Ravi Shankar 063704ebad
Revert "Update grpc protoc plugin to be compliant of proto3 field presence" 2020-05-29 11:21:24 -07:00
Stanley Cheung dc9b100865 Update grpc protoc plugins to support proto3 optional 2020-05-27 18:30:12 -07:00
Alexander Polcyn bad263d533 update ruby gem email to grpc-io@googlegroups.com 2020-04-29 16:43:44 -07:00
Lars Kanis 4c667476a0 Add ruby-2.7 to build process of binary gems for Windows and Linux
With rake-compiler-dock-1.0.1 there's no need to use a derived Dockerfile.
The standard RCD image can be used instead.
The only issue is with conflicting declarations of gettimeofday(), which can be easily worked around by patching win32.h before the build.

Fixes #21514
2020-02-16 21:25:38 +01:00
Jan Tattermusch b3acd7dc7d update ruby protobuf dependency 2020-01-15 04:43:59 -05:00
Esun Kim 885b1aa785 Change bundler version 2019-12-16 17:23:46 -08:00
Esun Kim de590a21b5 Make build template more robust 2019-12-10 12:44:43 -08:00
Esun Kim 221f5b25af Update by review 2019-11-10 09:27:33 -08:00
Esun Kim 8cad3b37dc Updates build files to use a sorted list of sources 2019-11-09 15:30:15 -08:00
Alexander Polcyn 9aa48c6d1c Drop support for ruby < 2.3; update and unskip distrib tests 2019-06-20 07:01:52 +00:00
Hao Nguyen a03cc2c876 Update ruby version to just 3.8 2019-06-11 10:11:55 -07:00
Hao Nguyen 1ddaafd677 Update protobuf version 2019-05-29 16:37:10 -07:00
Joe Bolinger 13f2c19aee loosen dependecy in gemspec template 2019-04-03 16:35:23 -07:00
Jan Tattermusch f601afae14 bump ruby google-protobuf dependency 2019-03-12 05:12:45 -04:00
Mike Moore a9ce1e0529
Update Ruby gemspec template
Loosen development dependencies for googleauth and signet.
2019-01-09 08:45:09 -07:00
ganmacs d18116872a grpc gem does not depend on googleauth 2018-05-14 18:47:23 +09:00
ganmacs ff456e11df Reject test directory in src/ruby/pb from packing as gem
This seems to be a test directory, as the name implies.
So This directory does not need to be include as grpc gem.
2018-05-14 18:47:22 +09:00
Alexander Polcyn 2c4cc1bf90 Update max-allowed-version of googleauth ruby dependency 2017-10-25 16:12:49 -07:00
Alexander Polcyn a594ba0bd7 add a client side utility for extracting a google rpc
status from a grpc::Status
2017-09-18 13:58:53 -07:00
Jan Tattermusch e2f845ccd5 fix ruby macos build on kokoro 2017-09-05 09:40:17 +02:00
Jan Tattermusch 4d5c3102a1 fix remaining license notices 2017-06-08 11:22:41 +02:00
DJ Mountney 37268d0526 Fix for using gem build/install
When pre-compiled assets are missing for the current platform, and you run gem install, the compiled native extensions are placed in the first require paths folder. This differs from rake-compiler task, where they are always placed in lib.

Setting the lib path as the first require path will ensure the compiled library is placed in the correct folder.
2017-03-10 15:55:52 -08:00
Alexander Polcyn d490a9e7c3 build fixes for ruby on mac 2017-02-09 09:10:51 -08:00
Alexander Polcyn 370e57a228 update dependency in template 2017-02-02 11:14:32 -08:00
Alex Polcyn 1625d12ea1 update ruby protbuf dep to 3.1.0 2016-11-30 13:51:54 -08:00
Nicolas "Pixel" Noble d1ca40995f Updating ruby dependency on protobuf to 3.0.2. 2016-09-22 21:41:19 +02:00
murgatroid99 3ed66976f6 Update ruby google-protobuf dependency to 3.0 2016-07-29 11:17:52 -07:00
murgatroid99 e621f13ecd Simplified ruby interop test files 2016-04-21 14:28:00 -07:00
vjpai c6e24602c6 Put facter development dependence in template as well. 2016-04-12 15:10:44 -07:00
Nicolas "Pixel" Noble ed59c7d5d4 Adding the .yardopts file into the gems. 2016-02-14 07:52:14 +01:00
Nicolas "Pixel" Noble ca144fd1e8 Fixing Ruby binary build (again). 2016-02-10 09:28:18 +01:00
Nicolas "Pixel" Noble f9e3c23fe8 Fixing ruby versionning. 2016-02-09 03:33:40 +01:00