Skip to content

v1.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 13 Feb 00:50
· 172 commits to main since this release
705db6e

1.0.0 (2024-02-13)

Bug Fixes

  • per_request needs to consider extra requests by back-pressure (83fb762)
  • add a flag to log source file and line number (4fd65a8)
  • add back nextEvent() to EventWorker (87aada8)
  • add cpu/wall clock limit tests (ba60801)
  • add deno_tls module and expose Deno.resolveDns (b02537e)
  • add Deno.connect global (185e4c9)
  • add Deno.errors (15bbc42)
  • add Deno.execPath() (a0b20bb)
  • add Deno.refTimer & Deno.unrefTimer (72764e4)
  • add format exception callback (8b8b4f7)
  • add intentional peer reset test (aeb66bc)
  • add metadata to console events (00d332d)
  • add metadata to events (a77fa85)
  • add missing WebSocket global (932e170)
  • add navigator global (77ebaf1)
  • add request timeout test (f74431b)
  • add structuredClone (182074b)
  • add tests for PKU-related AV (66b8f46)
  • add unhandled promise rejection callbacks (ad15b0f)
  • added missing types (e351208)
  • allow loading modules from any local path (3288f8b)
  • apply acceptable bounds into max-parallelism (084e79a)
  • apply connection watcher into integration tests (822f4c0)
  • better handling of new requests (4b3adb7)
  • bootstrap script (886560b)
  • bump up rust builder image into 1.74.1 (cc97e1c)
  • cache docker build steps (24d1b59)
  • cargo fmt (ff7377c)
  • chage target directory again (7a0ab1b)
  • change target directory (54a4412)
  • check retiring workers more strictly (a0b5688)
  • checkout code before arm build (392c4c5)
  • clappy unwanted warning (6195957)
  • clippy warnings (863f368)
  • clippy warnings (5cc6e64)
  • clippy warnings (1047d86)
  • clippy warnings (56f5dd9)
  • configure v8 flags via env variables (3b8e191)
  • correctly drop the worker (e32a7b7)
  • correctly enforce max duration (7171ec7)
  • correctly handle null body statuses (9de4c6e)
  • correctly parse paths with query params (2d53e55)
  • correctly remove worker from pool (502edf1)
  • cpu_timer: minimize unsoundness for ffi routines (3a11551)
  • cpu_timer: polishing (9b2d794)
  • cpu_timer: rid flakiness due to signal on integrate testing (5d332f3)
  • cpu_timer: there is no specification at POSIX that the timer id in the buffer should be saved as a non-zero id (858afe0)
  • cpu_timer: update dependencies (6e54851)
  • crash when V8 tries to JIT compilation in the PKU-supported environment (d83e87b)
  • describe client connection error (1c0035b)
  • disable image caching for arm build (dfdefbf)
  • do not allow set and delete env API calls (4c5b9b9)
  • do not expose Deno.core (b6e9757)
  • do not panic if unix rx is not available (1486387)
  • do not patch HttpConn (9250fda)
  • don't give a grace wall clock period for the rest requests in oneshot policy (ea41901)
  • don't leave pending requests orphan state for a long time (63aff04)
  • don't register the signal handler while unit testing (aab5fd4)
  • don't use cpu timer when unit testing (b870346)
  • don’t let exits the v8 isolate twice from a thread if it failed to initialize (ff08b2f)
  • dont check service path if eszip is prpvided (62b23bf)
  • drop the runtime after receiving the termination event (f602313)
  • empty body responses (#84) (c02987e)
  • Enable Deno IO APIs and Deno.cwd() on user workers (fb2c70f)
  • enable performance API (fad3a24)
  • exclude default v8 heap stats from user worker logs (420682a)
  • expose AbortController and AbortSignal (1bbb77b)
  • Expose Deno.errors in global scope (c0750c7)
  • expose EdgeRuntime only to main worker (d7eb441)
  • expose execution_id as a environment variable (1d1f436)
  • expose window/self as global properties (5f36b4a)
  • exposing primary worker pool size as an env var and restricts the value as its acceptable bounds (ce9108f)
  • exposing the error that indicates the main worker should re-polled a worker again (4724dc2)
  • failing abort test (7f7a6f1)
  • Fix CLI Graph Resolver singleton, initialize nodejs variables (adcb254)
  • Fix clippy issues & formatting (b667c1f)
  • Fix clippy issues & formatting (e8745a8)
  • Fix import maps for graph resolver (d5a4932)
  • Fix node server (6fc1ca1)
  • format bootstrap.js (43f0492)
  • formatting (8f1ad6f)
  • globalThis (cc87b5d)
  • globalThis.addEventListener (671de74)
  • handle abnormal connection closure correctly (04c59c6)
  • handle errors in Deno.serve (b64d3d6)
  • handle exceptions in user worker mod evaulation. (06a34d9)
  • handle invalid paths to bundle command (8bbb1bd)
  • handle worker boot errors (96ddfae)
  • handling concurrent requests to workers (d47f05d)
  • hasBody check (7e2bd19)
  • implement worker service (bbc7ac0)
  • import defineEvent from deno web module (dded1ed)
  • Include fmt (b8b4f55)
  • include target platform arg (208926e)
  • include total memory used in shutdown event (c807568)
  • increase worker caps to prevent the integration tests from being flaky (330031c)
  • init deno_io in snapshot build (8d65a04)
  • install cmake in Dockerfile (3e4b28f)
  • install LLVM deps in Dockerfile (b697861)
  • instantaneous CPU time increase amount also needed to include in CPU metric (0765eb4)
  • Integrate Deno.stdout and isatty, fixes #162 (4ad1d81)
  • introduce termination token for all worker control hierarchy (f9e8a6a)
  • log worker errors (47fdde3)
  • logging unexpected event loop escape explicitly (91b9d0e)
  • main function example (7cf7567)
  • make all unit test pass (c4a4b63)
  • make clippy happy (060ae4f)
  • make cpu timer not to be re-armed in per_request policy (5f271aa)
  • make invoking the v8 platform initialize not dependent with cli (e5a31d9)
  • make major worker tasks managed separately from the user worker (151004c)
  • make perform sync between supervisor and pooler correctly in per_worker policy (10f3f9b)
  • make sure wall clock duration is in valid range (666a771)
  • master -> main (70f7f8f)
  • Merge pull request #155 from supabase/refactor-edge-rt-pt-2 (448dcd1)
  • missing null check in nextRequest shim (03f3899)
  • missing values in global scope (3668471)
  • move listening log to debug (3a4952d)
  • move main module load to worker boot phase (1c55447)
  • move webidl.brand (b123c5e)
  • move worker handling to a module (3cde613)
  • no_cache -> no_module_cache (f00537e)
  • Node server (ca3322a)
  • notify shutdowns to the worker pool (86f8aef)
  • oak tests (c08f5b8)
  • oops 😅(retrigger test) (c4d0a79)
  • oops 🙄 (ace1057)
  • oops 🙄 (047a6d7)
  • option to allow remote modules (63a9e91)
  • option to disable net access via permissions (090c89c)
  • parse unknown media type as JS (8ed6e79)
  • pass a worker to the service. (2a33697)
  • polishing main service scripts (8e2c2be)
  • polishing runtime entrypoint (b775128)
  • polishing supervisor nits (299beb9)
  • pooler needs to consider force creation mode (a088f3c)
  • print to stderr when logger is not available (bc7e75a)
  • process request body streams (8ad5e8c)
  • provide optional entrypoints for main/events eszips (1e51301)
  • README (971c24f)
  • refactor how env vars are passed to a worker (2fb6d08)
  • refactor the JsWorker (da832ae)
  • refactor worker init (8d5016e)
  • register error classes (7b855b7)
  • relaxing connection watcher restriction (a187692)
  • release requires cmake (dfb6772)
  • releaserc (bddd849)
  • remove commit-analyzer (b19dedf)
  • remove error spam (ade9298)
  • remove eszip extract op (d962522)
  • remove other ecr image too (f56e8ee)
  • remove perl from runtime container (9a396be)
  • remove prepare build environment step (31d72dd)
  • remove the staging aws image (bd383e7)
  • remove the staging release steps (a613947)
  • Remove unnecessary println (86dc364)
  • remove warnings (fabdf9f)
  • removed main.js (0cd55ed)
  • request creation task must be synchronized with the supervisor when entering the job (58cc591)
  • request parsing error (69bf544)
  • retire workers at the 50% of wall-clock limit (72d779a)
  • return an error when service path does not exist (45962a9)
  • reuse user workers by default (508ece4)
  • revive the transfer encoding test (87df275)
  • rid flakiness of integration tests (f111403)
  • rid unsoundness of integration test util (14e9968)
  • rid warnings that only appear on the release profile (dd1ded3)
  • sb_core: adjusting http handler to be compatible with [email protected] (cb3301e)
  • sb_graph: checking whether the path is relative and unix format while reading module path (1371747)
  • send a signal to halt the worker when memory or time limit reached (2af4023)
  • send console events from user worker to events (0816003)
  • set a module root for loading modules (a03877b)
  • set root cert store for deno_fetch (2ddf663)
  • set the id for the build step (9d486d2)
  • shouldn't be initialized the v8 platform from DenoRuntime::new (b329fc6)
  • show more descriptive error when module not found (0f5b160)
  • show the actual deno cli version in Deno.version (fcae33d)
  • silly mistake 🥹 (0bcf1b2)
  • simplify Deno.osUptime implementation (e4bfca5)
  • supervisor must wake up the worker's event loop to terminate an isolate correctly (8ea2b37)
  • supervisor should also consider cases where the CPU time limit is zero (9178687)
  • Support module_code for eszipping code only (441710e)
  • support sending transfer-encoding: chunked requests (eb29435)
  • sync drop timing of unix stream sender to timing of an isolate drops (16377b1)
  • tests (975c054)
  • tests (666e4d8)
  • thread safe handle may no longer have an isolate pointer (c8bbb4f)
  • trigger a new build (350ba23)
  • trigger build (9c6b004)
  • update .env.build (c24a6ae)
  • update Cargo.lock (c531f86)
  • update dependencies (a8f6a4b)
  • update docker builder to 1.73 (6d0e21f)
  • update Dockerfile to use latest rust (dc7fc76)
  • update packages to Deno 1.37.2 (e45f19e)
  • update the main worker script for testing (c0af2b8)
  • updated readme (bb1ab27)
  • Updated README & other cleanups (3e61fdc)
  • upgrade semantic release (028abcd)
  • use prefix for custom crates (e7c1818)
  • use available_parallelism as default maximum parallelism value (65ef283)
  • use absolute path for the import map (23229bd)
  • use debug for listen msg (ab49d08)
  • use default stdio (ec0b072)
  • use deno_ast from workspace (bc3f3ac)
  • use error instead of debug for logging errors (feae79d)
  • use JsBuffer for eszip (6fac9fe)
  • use the arm runner to produce builds (2b3d1d2)
  • user worker create should be non-blocking (ba97af3)
  • wait for req body stream promise to compplete (58a9fb6)
  • wall clock limit test smaller than 100ms can be responded to in various error messages (8837e0d)
  • what a silly mistake again 🫠 (758648a)
  • workflows/release.yml (35d2a76)
  • write bundle output to stdout (1cdcc07)

Features

  • Add source code to the eszip so eszip bin is sufficient in itself (f18511a)
  • add support for import maps in generated eszips (c930533)
  • add support for providing import map as a data URI (bda03ee)
  • added EdgeRuntime.eszip.extract method (1f582ac)
  • Adding CI script to build docker image with Git version of release (348253c)
  • allowing cpu timer to be reset from another thread (52af11c)
  • Enable Deno fs for the main runtime (#87) (87ee2f6)
  • enforce limits on array buffer allocations (7a71c84)
  • eszip module loader (072da40)
  • Eszip now supports NPM modules (e41898f)
  • feat: feat: feat: feat: feat: feat: feat: feat: Deno 1.36.0 (f85cd9d)
  • First implementation of deno 1.37.1 crates (9a5c35f)
  • First implementation of deno 1.37.1 crates (8d0edad)
  • Implement Deno version according to latest upgrade (5d37df5)
  • Implement ESZIP factory for easier eszip building, and first steps for npm (f6b26e7)
  • Implement node:http createServer for EdgeRuntime (93f328c)
  • Implenet NPM modules first draft (d0c16bf)
  • Include Deno.serve functionality based on serveHttp op (c9485cc)
  • Include eszip extractor, refactor references for payload, fs crate (c931f7a)
  • include isolate memory & cpu usage in shutdwon event (a603db9)
  • introduce EdgeRuntime.getRuntimeMetrics (cb9dcea)
  • introduce oneshot supervisor policy (80313e7), closes supabase/edge-runtime#192 supabase/edge-runtime#212
  • introduce termination token for the workers (077aad4)
  • log CPU time used as an event (abae097)
  • make CPU time limit optional (14f75b0)
  • Merge pull request #156 from supabase/add-stats-to-events (c9a8699)
  • Merge pull request #244 from nyannyacha/perf-use-green-thread (3d218b5)
  • Npm modules in Edge runtime (ebeea0e)
  • option to disable net access when creating a worker (570d654)
  • option to provide eszips for main/event worker functions (68e510c)
  • printing out deno version in command line (5f7b6ef)
  • Refactor module_fetcher and references (e027de8)
  • release Deno 1.30.3 update (05d119f)
  • remove health check endpoint (7d66b5a)
  • retire workers from pool (a0a7611)
  • send requests to workers via Unix streams (76488f9)
  • set soft and hard limits for CPU time (01d7f07)
  • supervisor need to track lifetime of requests to perform early termination of worker (b4a0834)
  • support aborting user worker request (5ffe357)
  • support loading inline module code (ea8204d)
  • upgrade docker image to use bookworm base image (815e25f)
  • Upgrade to Deno 1.40.3 (1cc92e1)
  • Upgrade to Deno 1.40.3 (fd9e3c5)
  • Upgrade to deno core 0.243.0 (dfd3de1)

Performance Improvements

  • make advance the sending of the request end signal timing earlier (6567af7)
  • partially recovers the regression of request throughput on the per_worker policy (555cf5a)