Conversation
isaacs
requested review from
JPeer264 and
mydea
and removed request for
a team
September 16, 2026 00:54
isaacs
force-pushed
the
test/consolidate-deno-e2e-apps
branch
from
September 16, 2026 00:56
a533ba6 to
781691e
Compare
isaacs
added this pull request to stack #24410
September 16, 2026 00:58
Contributor
size-limit report 📦
|
Five Deno E2E apps become one. `deno-static`, `deno-mysql`, `deno-pg` and `deno-redis` are deleted, and CI goes from five required rows plus one optional to two required plus one optional. The split was accidental rather than designed. `deno-static` was a verbatim copy of `deno` taken before the span streaming port (#24002), one of twenty such copies from that rollout. `deno-mysql` and `deno-pg` were one route each, and carried an `import '@sentry/deno/import'` first-import rule that a comment tied to Deno 2.8.0 through 2.8.2. That rule is stale: the SDK now requires Deno >= 2.8.3 (#22790), and the README documents `--preload` (#24215). Nothing in E2E ran that documented setup. The consolidated app now starts with `deno run --preload=@sentry/deno/import`, so it needs no import ordering rule and no dynamic `import()`. `mysql`, `pg`, `redis` and `ioredis` are plain static imports, and one `docker-compose.yml` starts all three databases. The static trace lifecycle becomes a `sentryTest` variant of the same app, driven by `E2E_TEST_STATIC`, rather than a second copy. The six lifecycle-agnostic specs (errors, scope, context, breadcrumbs, logs, metrics) live once and run in both modes. Only the specs that assert envelope shape are split, into `tests/streamed/` and `tests/static/`, selected by `testIgnore`. `isSegmentFor` and the Redis span helpers, previously copied across four files, move into `tests/streamed/utils.ts`. Decisions: - `deno.json` maps `@sentry/deno/import` to the installed file rather than to `npm:@sentry/deno/import`. This app installs the SDK from a local tarball, which has no registry version for Deno to match a preloaded `npm:` specifier against. `--preload=npm:zod` works here, so the limitation is the tarball, not `--preload`. - The variant runs `pnpm test:build:static` / `pnpm test:assert:static` rather than an inline `E2E_TEST_STATIC=true` prefix. The local runner wraps the command in `volta run`, which reads a leading assignment as the executable name. `node-express`'s existing `E2E_TEST_OTEL_SETUP` variant has the same problem and is broken locally today; fixing `run.ts` is separate work. - The database specs stay streaming only, as they are today. There is no static database coverage to preserve, and writing it is separate work. - `docker compose up` stays in the start command. Playwright creates its web server tasks before global setup, so the app starts first. The three deleted apps all did the same. - The first-import form keeps its coverage in `deno-integration-tests` (`suites/orchestrion-{mysql,postgres}`). Their stale `TODO: revisit --preload once Deno 2.8.3 ships` comments are dropped. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
isaacs
force-pushed
the
test/consolidate-deno-e2e-apps
branch
from
September 16, 2026 03:58
15918a3 to
907d83d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Five Deno E2E apps become one.
deno-static,deno-mysql,deno-pganddeno-redisare deleted, and CI goes from five required rows plus one optional to two required plus one optional.The split was accidental rather than designed.
deno-staticwas a verbatim copy ofdenotaken before the span streaming port (#24002), one of twenty such copies from that rollout.deno-mysqlanddeno-pgwere one route each, and carried animport '@sentry/deno/import'first-import rule that a comment tied to Deno 2.8.0 through 2.8.2. That rule is stale: the SDK now requires Deno >= 2.8.3 (#22790), and the README documents--preload(#24215). Nothing in E2E ran that documented setup.The consolidated app now starts with
deno run --preload=@sentry/deno/import, so it needs no import ordering rule and no dynamicimport().mysql,pg,redisandioredisare plain static imports, and onedocker-compose.ymlstarts all three databases.The static trace lifecycle becomes a
sentryTestvariant of the same app, driven byE2E_TEST_STATIC, rather than a second copy. The six lifecycle-agnostic specs (errors, scope, context, breadcrumbs, logs, metrics) live once and run in both modes. Only the specs that assert envelope shape are split, intotests/streamed/andtests/static/, selected bytestIgnore.isSegmentForand the Redis span helpers, previously copied across four files, move intotests/streamed/utils.ts.Decisions:
deno.jsonmaps@sentry/deno/importto the installed file rather than tonpm:@sentry/deno/import. This app installs the SDK from a local tarball, which has no registry version for Deno to match a preloadednpm:specifier against.--preload=npm:zodworks here, so the limitation is the tarball, not--preload.pnpm test:build:static/pnpm test:assert:staticrather than an inlineE2E_TEST_STATIC=trueprefix. The local runner wraps the command involta run, which reads a leading assignment as the executable name.node-express's existingE2E_TEST_OTEL_SETUPvariant has the same problem and is broken locally today; fixingrun.tsis separate work.docker compose upstays in the start command. Playwright creates its web server tasks before global setup, so the app starts first. The three deleted apps all did the same.deno-integration-tests(suites/orchestrion-{mysql,postgres}). Their staleTODO: revisit --preload once Deno 2.8.3 shipscomments are dropped.