Skip to content

Download api breaking improvements#13

Merged
lberrymage merged 5 commits into
mainfrom
download-api-breaking-improvements
Oct 13, 2025
Merged

Download api breaking improvements#13
lberrymage merged 5 commits into
mainfrom
download-api-breaking-improvements

Conversation

@lberrymage
Copy link
Copy Markdown
Member

No description provided.

@lberrymage lberrymage added the buf skip breaking Skip Buf breaking change detection for this PR label Oct 13, 2025
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Oct 13, 2025

The latest Buf updates on your PR. Results from workflow Buf CI / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed⏩ skippedOct 13, 2025, 5:48 PM

This reverts commit 85551c0.

Clients may want to know the exact package information for the app
described in an AppDownloadInfo, as described in the referenced commit.
However, the Accrescent client has no need of this field at the moment,
and it may actually be better to include package info regardless of
whether the app is compatible (contrary to the referenced commit) if we
were to include it.

Since we don't need this information, exclude it from the public API so
that we don't prematurely commit to providing it.
Semantically, an incompatibility between an app and device is moreso an
error than a commonly expected "success" response, so we should
represent incompatibilities as error codes instead of wire-protocol
messages. If we ever need to provide more information in the error
response, we can use gRPC's extended error model.
While retrieving initial app download info and update info are
conceptually similar operations, conflating them causes some API quirks
wherein we cannot annotate certain response fields as required (i.e.
expected) implicitly based on request parameters. In addition, as we
inevitably add more information specific to app updates (e.g., update
deltas), the API would become less precise by including update-specific
fields in the data types returned to clients requesting only initial
download info.

This commit splits `GetAppDownloadInfo` into two distinct RPCs - one for
initial downloads and one for updates - to resolve these conflation
issues.
This API name has a much more clear intent on what the API's purpose
actually is.
@lberrymage lberrymage force-pushed the download-api-breaking-improvements branch from 0b432a0 to c86f289 Compare October 13, 2025 17:47
@lberrymage lberrymage merged commit 886485c into main Oct 13, 2025
7 checks passed
@lberrymage lberrymage deleted the download-api-breaking-improvements branch October 13, 2025 19:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

buf skip breaking Skip Buf breaking change detection for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant