getsentry / getsentry/sentry

Community BrightScript/Roku SDK

Open
#123,724 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Docs Waiting for: Product Owner
Dominant language
Python
Stars
44.8k
Forks
4.9k
Avg merge
21h 23m
Merged PRs (30d)
607

Description

Problem Statement

Context

This follows up on https://github.com/getsentry/sentry/issues/66399 (locked). Sentry confirmed there is no plan for an official Roku SDK and pointed the community at the envelope ingest API and the SDK development guide.

We needed error reporting on Roku anyway, so we built an unofficial BrightScript client and have been running it in production on our Roku channel.

This is not an official Sentry product and we are not asking Sentry to take ownership. We are sharing it in case it is useful as a community SDK, and to ask where (if anywhere) you would like unofficial SDKs linked.

What it does

Small BrightScript module. Sends events to the envelope endpoint (/api/{project}/envelope/) with X-Sentry-Auth.

Public API (Sentry-shaped, BrightScript-friendly):

  • SentryInit({ dsn, environment, sampleRate })
  • SentryCaptureException(exception) — string or { message, code, ... } (extra fields go to extra)
  • SentrySetTag / SentrySetExtra / SentrySetUser

Each event includes device/OS/runtime context (roDeviceInfo / roAppInfo), release from the channel version, and tags for platform/sdk/environment.

We use sampling in production (sampleRate) so noisy SceneGraph invalid-state checks do not flood the project.

What it does not do

BrightScript limits this compared to first-party SDKs:

  • Transport is synchronous roUrlTransfer.postFromString (fine in Tasks; can hitch the UI thread)
  • No real stack traces - the runtime does not expose a call stack, so frames are placeholders
  • No breadcrumbs API, captureMessage, beforeSend, tracing/performance, or 429 backoff yet

Honest positioning: error reporting client, not a full SDK.

Ask

  1. Is a community Roku/BrightScript SDK something you are willing to list or mention (docs, Discord, a note on #66399), or should we just publish it independently (GitHub + npm/ropm)?
  2. Any naming/trademark constraints for an unofficial package (we planned sentry-roku with a clear “not affiliated with Sentry” disclaimer)?
  3. If useful, we can open-source the module and keep maintaining it. Happy to adjust envelope/SDK metadata (sdk.name, package name) to whatever you recommend for third-party clients.

SDK guide we followed: https://develop.sentry.dev/sdk
Envelope docs: https://develop.sentry.dev/sdk/envelopes

Solution Brainstorm

No response

Product Area

Unknown

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked SDK development guide and envelope documentation, then review the prior issue #66399 for existing guidance. The issue asks for a decision about listing, naming, trademarks, and SDK metadata rather than naming a repository change; done would be a maintainer-approved response or documented policy.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.