Skip to content
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

bootstrap a dart backend for sidekick #1034

Open
8 of 18 tasks
devoncarew opened this issue Feb 6, 2025 · 1 comment
Open
8 of 18 tasks

bootstrap a dart backend for sidekick #1034

devoncarew opened this issue Feb 6, 2025 · 1 comment
Labels
sidekick Issues related to the code generator type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design.

Comments

@devoncarew
Copy link
Collaborator

devoncarew commented Feb 6, 2025

This is a meta issue to track bootstrapping a Dart backend for sidekick (this is intended to track initial, early work on a generator).

  • land a hello-world generator (generating mostly empty files)
  • the main library file for package:google_client_api should be called api.dart (not client.dart)
  • emit enums
  • handle emitting primitive types to dart types (string, int32, int64, ...)
  • emit messages
  • create a WKT for google.protobuf.FieldMask
  • create a WKT for google.protobuf.Duration
  • add basic tests for the implementation
  • emit service method calls
  • dart format generated source
  • escape dart keywords
  • update proto doc references; [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] ==> [SecretVersion]
  • determine the most idoimatic way to namespace nested messages and enums (i.e., SecretVersion$State vs SecretVersionState vs SecretVersion_State).
  • create a WKT for google.protobuf.Timestamp
  • create a WKT for google.protobuf.Any
  • handle BYTES_TYPE (BytesValue?)
  • generate google/cloud/location
  • generate google/iam
@devoncarew devoncarew added sidekick Issues related to the code generator type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design. labels Feb 6, 2025
@devoncarew
Copy link
Collaborator Author

Longer term, we'll also want to decide whether we're generating one library file per API or one file per service (or per backing proto definition file?).

package:kms
  lib/
    kms.dart (w/ all n services)

vs.

package:kms
  lib/
    kms.dart (mostly empty, importing and exporting the two libs in src)
    src/
      kms.dart (w/ KeyManagementService )
      kms_service.dart (w/ EkmService)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sidekick Issues related to the code generator type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design.
Projects
None yet
Development

No branches or pull requests

1 participant