The workspace build is already in fairly bad shape, as it does not work with
Bazel 8 or with recent versions of `rules_rust`. I doubt that anyone is using
it, and I think we might as well remove it at this point.
PiperOrigin-RevId: 815894682
This release stabilizes the workspace publishing feature, so we can now get
that without having to resort to a nightly release.
PiperOrigin-RevId: 811368336
We need to use a recent nightly release to be able to use the `--workspace`
flag to `cargo publish`. Our minimum supported Rust version is 1.79,
so I think we should test that version with Bazel to make sure we stay
compatible. Our Bazel build is currently using 1.86 since that is the default
from rules_rust, but this change explicitly selects 1.79.
I also tried having Bazel use a more recent version, but unfortunately
rules_rust is broken for 1.87 and up, due to name mangling changes in rustc:
https://github.com/bazelbuild/rules_rust/issues/3459
As soon as Rust 1.90 is released, we can start using that with Cargo instead of
nightly.
PiperOrigin-RevId: 793660982
Migrate all tests to run on bazel 7 and fix errors that came up in the process. 30.x will no longer guarantee support for bazel 6.
#test-continuous
PiperOrigin-RevId: 703590770
Upgrading to rules_rust 0.54.1 seems to have fixed some of our Rust linking
problems, but not all, so this change adds back in the
`--@rules_rust//rust/settings:experimental_use_cc_common_link=True` flag.
This fixes some local build errors like the following:
```
$ bazel build //rust/test/shared:bad_names_cpp_test
...
= note: bazel-out/k8-fastbuild/bin/rust/test/shared/_ambiguous_libs/bad_names_cpp_test/libport-330124825.a(port.pic.o):port.cc:function google::protobuf::internal::CounterMap():(.text+0xe6): error: undefined reference to 'atexit'
```
PiperOrigin-RevId: 702380176
This will have the side effect of upgrading the Rust version we test against to
1.82.0.
This should fix some build issues caused by Bazel trying to use two separate
linkers, one for for Rust and one for C++. The workaround for that was setting
`--@rules_rust//rust/settings:experimental_use_cc_common_link=True`, but this
upgrade makes that unnecessary.
PiperOrigin-RevId: 702349267
We need this type to be trivial and standard layout because we directly read
its contents in Rust. This change removes its user-defined constructors so that
it becomes a trivial type.
PiperOrigin-RevId: 670572557
Putting it into BUILD files unintentionally forces it on all our downstream users. Instead, we just want to enable this during testing and let them choose for themselves in their builds.
Note, that this expands the scope of -Werror to our entire repo for CI, so a bunch of fixes and opt-outs had to be applied to get this change passing.
Closed#14714
PiperOrigin-RevId: 666903224
Before this PR, we stored a list internally of tests that must pass on presubmit and tried to keep it up to date.
This PR moves that information keeping into GitHub by adding a 'continuous-only' variable to most testing matrices to allow authors to specify which of their tests should be skipped on presubmit. During presubmit, tests that were specified to not run on presubmit will not be run and their names will be prefixed with "[SKIPPED]". All continuous only tests will be suffixed with "(Continuous)".
At the end of running all the tests, we have a single "All Blocking Tests" signal that will tell us whether all of the necessary tests have passed (either for presubmit or continuous based on how the test was triggered).
I've tested this from a different branch [here](https://github.com/protocolbuffers/protobuf/actions/runs/9602443750?pr=17151) and from a different fork [here](https://github.com/protocolbuffers/protobuf/actions/runs/9602554500?pr=17192). These should be the same and are as far as I can tell.
I also have a continuous test run [here](https://github.com/protocolbuffers/protobuf/actions/runs/9603824200) which runs the entire test suite.
Closes#17198
PiperOrigin-RevId: 662940724
This will allow them to reuse our bazelrc and remote caching setup. This also silences the non-bzlmod windows test that's hitting the windows path length.
PiperOrigin-RevId: 626390416
We're seeing a high flake rate due to remote cache-misses only on Bazel 7 builds. The key change here seems to be adding the remote_download_output flag, but this also upgrades us to 7.1.1 and adds some retry behavior to caching issues.
PiperOrigin-RevId: 625892332
This will enable us to get the correct crate names for Rust gencode. The actual
reading of the mapping file in protoc happens in the followup.
PiperOrigin-RevId: 597509582
This will retry up to 3 times if we hit networks flakes updating our submodules. It will also allow us to easily inject other stability fixes to this step in the future.
PiperOrigin-RevId: 568306356
My editor reformatted this file to add a missing newline, and this ended up
breaking the test. The added newline caused there to be a newline in the middle
of the Bazel command. So this change adds the missing newline and fixes up the
Bazel command by using the `>-` syntax to treat this as a multiline string
without adding any newlines.
PiperOrigin-RevId: 558149295
This turns out to be quite of a yak shave to be able to perfectly test both kernels without having to pass extra Blaze flags.
PiperOrigin-RevId: 521850709