grpc / grpc-dart

The Dart language implementation of gRPC.
https://pub.dev/packages/grpc
Apache License 2.0
835 stars 256 forks source link

#703 broke grpc interop testing #705

Closed ejona86 closed 1 month ago

ejona86 commented 2 months ago

I'm seeing build errors making the grpc_interop_dart container. The first failure I see is from 5:27:13 AM PDT and there was a successful build at 3:40:21 AM PDT. The error message is talking about SDK, and #703 changed that configuration, so looks to be the trigger.

Full log

Interesting snippet:

SLVR:   fact: every version of grpc from path requires SDK version ^3.2.0
SLVR:   conflict: every version of grpc from path requires SDK version ^3.2.0
SLVR:   ! grpc from path is satisfied by grpc from path
SLVR:   ! which is caused by "interop depends on grpc from path"
SLVR:   ! thus: version solving failed
SLVR: Version solving took 0:00:01.258841 seconds.
    | Tried 1 solutions.
FINE: Resolving dependencies finished (1.314s).
ERR : The current Dart SDK version is 3.0.5.
    | 
    | Because interop depends on grpc from path which requires SDK version ^3.2.0, version solving failed.
FINE: Exception type: SolveFailure
FINE: package:pub/src/solver/version_solver.dart 329:5     VersionSolver._resolveConflict
    | package:pub/src/solver/version_solver.dart 140:27    VersionSolver._propagate
    | package:pub/src/solver/version_solver.dart 104:11    VersionSolver.solve.<fn>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.catchError
    | package:pub/src/utils.dart 113:52                    captureErrors.wrappedCallback
    | package:stack_trace                                  Chain.capture
    | package:pub/src/utils.dart 126:11                    captureErrors
    | package:pub/src/command.dart 198:13                  PubCommand.run
    | package:args/command_runner.dart 212:27              CommandRunner.runCommand
    | package:dartdev/dartdev.dart 226:30                  DartdevRunner.runCommand
    | package:args/command_runner.dart 122:25              CommandRunner.run.<fn>
    | dart:async                                           new Future.sync
    | package:args/command_runner.dart 122:14              CommandRunner.run
    | package:dartdev/dartdev.dart 58:29                   runDartdev
    | /b/s/w/ir/x/w/sdk/pkg/dartdev/bin/dartdev.dart 11:9  main
---- End log transcript ----
mraleph commented 2 months ago

/cc @mosuem

mosuem commented 2 months ago

Interesting that it seems to use Dart version 3.0.4, while the containing specifies stable, which would be 3.3.4. I will investigate.

ejona86 commented 2 months ago

We might be using an old build of that Docker build container. The shell script is then run within.

If we rebuilt the container (and it picked up 3.3.4), would that still work for older versions of grpc-dart?

mosuem commented 2 months ago

The new grpc-dart version requires a minimum Dart version 3.2.0, but people using older versions of the SDK could still use older versions of grpc-dart.

Rebuilding the container sounds like a good idea!

ejona86 commented 2 months ago

Looks like it was rebuilt 2 weeks ago. Surely that would be new enough? https://github.com/grpc/grpc/pull/36329

CC @veblush

ejona86 commented 1 month ago

I'm hoping https://github.com/grpc/grpc/pull/36556 resolves this. I hacked up the scripts a ton until it sorta looked like the results were correct.

ejona86 commented 1 month ago

The most recent run passed!