Skip to content

Releases: CodSpeedHQ/codspeed-node

v5.7.0

23 Jun 15:50
v5.7.0
36834e8

Choose a tag to compare

Highlights

  • Dump full inlining information for higher optimization tiers in walltime so we can show more functions on the profiler. To test it out, set CODSPEED_WALLTIME_PROFILER=samply env variable in the codspeed action.
  • Added support for tinybench v5 and v6 in @codspeed/tinybench-plugin

What's Changed

  • Add necessary flags to dump optimized inlining info and fix walltime marker placement by @GuillaumeLagrange in #83

Full Changelog: v5.6.0...v5.7.0

v5.6.0

16 Jun 12:46
v5.6.0
bcd7e64

Choose a tag to compare

What's Changed

Full Changelog: v5.5.0...v5.6.0

v5.5.0

29 May 18:00
v5.5.0
4dae798

Choose a tag to compare

Highlights

We are introducing @codspeed/playwright, for walltime benchmarking and profiling of end to end browser applications through playwright.

Here's an example usage, but head to the docs for more information

import { bench, type Page } from "@codspeed/playwright-plugin";
import electronExecutable from "electron";
import path from "node:path";
import { fileURLToPath } from "node:url";

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const appRoot = path.resolve(__dirname, "..");

async function waitUntilSettled(page: Page): Promise<void> {
  await page.waitForFunction(() => {
    const main = document.getElementById("main");
    return !!main && !main.classList.contains("loading");
  });
}

await bench(
  "inbox-search-archive-threads",
  async ({ page }) => {
    await page.fill("#search", "update");
    await waitUntilSettled(page);

    await page.click("#select-visible-btn");
    await page.click("#archive-btn");
    await waitUntilSettled(page);

    await page.click('#sidebar nav button[data-view="threads"]');
    await waitUntilSettled(page);
  },
  {
    target: {
      kind: "electron",
      appPath: path.join(appRoot, "out/main/index.js"),
      cwd: appRoot,
    },
    beforeRound: async ({ page }) => {
      page.setDefaultTimeout(180_000);
      await page.waitForSelector("#main");
      await waitUntilSettled(page);
    },
  },
);

Note: this plugin is only compatible with the walltime instrument.

What's Changed

Full Changelog: v5.4.0...v5.5.0

v5.4.0

28 Apr 13:21
v5.4.0
aa9d127

Choose a tag to compare

What's Changed

This release adds first support for macOS walltime.

Please note that profiling and other instruments are not yet available on macOS and will come in a later update.

Full Changelog: v5.3.0...v5.4.0

v5.3.0

17 Apr 10:23
v5.3.0
7c97dc2

Choose a tag to compare

What's Changed

We now collect buildtime and runtime environment data to warn users about differences in their runtime environment when comparing two runs against one another.

This data includes toolchain metadata like version and build options, as well as a list of dynamically loaded linked libraries.

Full Changelog: v5.2.0...v5.3.0

v5.2.0

09 Feb 11:58
v5.2.0
1ddf48b

Choose a tag to compare

🎉 What's Changed

This release brings support for the memory instrument, which enables you to track memory usage, heap allocations, and memory leaks in your benchmarks.

📚 Details

Full Changelog: v5.1.0...v5.2.0

v5.1.0

03 Feb 17:43
v5.1.0
4b39225

Choose a tag to compare

🎉 What's Changed

This release brings support for Vitest v4, allowing you to use the latest version of
Vitest with CodSpeed. The plugin is backward compatible with Vitest v3.

📚 Details

New Contributors

Full Changelog: v5.0.1...v5.1.0

v5.0.1

02 Oct 08:40
b1e4a94

Choose a tag to compare

What's Changed

Full Changelog: v5.0.0...v5.0.1

v5.0.0

26 Sep 16:12
v5.0.0
f079976

Choose a tag to compare

🎉 What's Changed

This major release brings support for our Walltime instrument, allowing you to benchmark larger pieces of code more reliably by making use of CodSpeed's Macro Runners.

Support for newer versions of tinybench and vitest have been added. Feel free to visit our node.js documentation for more details.

Lastly, we now use our common instrument-hooks implementation to interact with our instruments.

💥 Breaking Changes

  • tinybench: Support for versions below v4 has been dropped. You must upgrade to tinybench v4 or above.
    ⚠️ Since tinybench v4 drops support for CJS, ES modules are now required to use the library.

🚀 Migration Path

This is a breaking change because we updated the compatible versions of underlying benchmarking libraries.
For example, support for tinybench v3 and below has been dropped. We recommend upgrading to tinybench v4 or above.

We recommend creating a dedicated PR to update your dependencies, and create a new performance baseline for your code.

📚 Details

Full Changelog: v4.0.1...v5.0.0

v4.0.1

24 Mar 14:53
6df11e8

Choose a tag to compare

What's Changed

  • feat: vitest-plugin - allow vite 6 in peer dependencies by @belgattitude in #43

New Contributors

Full Changelog: v4.0.0...v4.0.1