wellwelwel/poku

Version 3.0.0 (planned breaking changes and architecture improvements)

wellwelwel opened this issue · 0 comments

In favor of better maintenance, performance and a more cohesive architecture, I'm planning to make some major updates and migrate the opening issues to the next Poku version.

📦 Installing

# Node.js
npm i -D poku

# Node.js + TypeScript
npm i -D poku tsx

# Bun
bun add poku

# Deno (optional)
deno add npm:poku # use "deno run npm:poku" to run tests

⚙️ Migrating

  • For Node.js, make sure you have version 14.x.x or higher.
  • Instead of poku --parallel or poku -p, just use poku.
  • Instead of poku (sequential in v2), use poku --sequential.
  • If you have some flag using kebab case (e.g., --fail-fast), use camel case instead (e.g., --failFast).
  • Instead of setting the platform manually (poku --platform=..., poku --deno, poku --bun or poku --node), just use the platform/runtime to call Poku, for example: npx poku, bun poku or deno run poku.

🗺️ Roadmap

✅ v3.0.0-rc.0

Focused on performance and breaking changes:

  • Drop the support for Node.js 8, 10 and 12 (for performance reasons).
  • Remove all methods and options marked as deprecated.
  • Improve performance.
    • #886
    • Investigate the use of fork instead of spawn:
      • Benchmarks were all negative against fork.
  • Use parallel run as default, such as Node.js, Jest, etc.
  • Remove the need to manually define the platform for environments with multiple runtimes (--platform, --node, --bun, --deno).

v3.0.0-rc.1

Note

From this point on, there is no intention of breaking changes, except for some inevitable case.

Focused on improvements and major features:

  • Revisit early access and experimental features.
  • Improve the global cache to increase initial performance.

v3.0.0 (fresh out of the oven)

  • Improve architecture to allow external plugins.
    • Investigate the use of events approach:
      • Benchmarks were all negative against events (more than 2x slower).
    • #921

Note

I'm extremely satisfied with the current benchmarks (#926). I'll wait to write the extensive report after v3.