Skip to content

Provide a consistent gRPC interface for client streaming requests with stdout/stderr #2450

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

Closed
3 tasks done
dankeboy36 opened this issue Dec 6, 2023 · 0 comments · Fixed by #2472
Closed
3 tasks done
Assignees
Labels
type: enhancement Proposed improvement

Comments

@dankeboy36
Copy link
Contributor

dankeboy36 commented Dec 6, 2023

Describe the request

Please provide a consistent gRPC interface for client streaming requests with stdout/stderr.

Clients have to use two different styles of APIs:

  1. out_stream AND err_stream are optionally part of every response chunk:

    1. Compile (CompileResponse):
      message CompileResponse {
      // The output of the compilation process (stream)
      bytes out_stream = 1;
      // The error output of the compilation process (stream)
      bytes err_stream = 2;
    2. Upload using a programmer (UploadUsingProgrammerResponse):
      message UploadUsingProgrammerResponse {
      // The output of the upload process.
      bytes out_stream = 1;
      // The error output of the upload process.
      bytes err_stream = 2;
      }
    3. Burn bootload (BurnBootloaderResponse):
      message BurnBootloaderResponse {
      // The output of the burn bootloader process.
      bytes out_stream = 1;
      // The error output of the burn bootloader process.
      bytes err_stream = 2;
      }
  2. out_stream OR err_stream OR the result is part of the response message:

    1. Upload (UploadResponse):
      message UploadResponse {
      oneof message {
      // The output of the upload process.
      bytes out_stream = 1;
      // The error output of the upload process.
      bytes err_stream = 2;
      // The upload result
      UploadResult result = 3;
      }
      }

Providing the same dev experience for "similar" APIs would be highly appreciated downstream. Thank you!

Describe the current behavior

There is no consistent API for client streaming requests with stdout/stderr props.

Arduino CLI version

0.35.0-rc.7

Operating system

N/A

Operating system version

n/a

Additional context

No response

Issue checklist

  • I searched for previous requests in the issue tracker
  • I verified the feature was still missing when using the nightly build
  • My request contains all necessary details
@dankeboy36 dankeboy36 added the type: enhancement Proposed improvement label Dec 6, 2023
@dankeboy36 dankeboy36 changed the title Provide a consistent gRPC interface for client streaming requests Provide a consistent gRPC interface for client streaming requests with stdout/stderr Dec 6, 2023
@umbynos umbynos added this to the Arduino CLI v1.0.0 milestone Dec 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants