Conversation
71c04be to
9913264
Compare
daf5aec to
6f4feee
Compare
- Created tasks/generate-importmap.ts to automatically collect all external dependencies from workspace packages - Added "generate-importmap" task to root deno.json - Replaced @gordonb/pipe with remeda in watch package - Updated all remeda versions to ^2 - Added ws dependency to websocket package - Added v4.importmap.json to .gitignore (generated file)
… events in for-each tests
…g on results length
- Read exports field from each package's deno.json - Support both string and object export formats - Map workspace packages to their actual export paths - Automatically add @std/testing sub-packages (/bdd, /mock, /time) - Force all packages to use effection v4
- Rewrite batch implementation to use iterator-based approach with timebox - Remove all console.log debug statements from batch - Add sleep(1) calls in tests for operation tree setup timing - Update batch tests to use signal convergence patterns - Refactor tracker tests to use createArraySignal and is() - Remove unused imports from test files - Add @effectionx/timebox dependency to stream-helpers
- Initialize next with done=true to handle stream completion properly - When lastPull times out, halt it and clear the reference before checking next - When lastPull resolves, use its result as next instead of pushing to batch - Move subscription.next() into else block to avoid duplicate calls - Return next directly at end to propagate done state correctly - When lastPull exists at the start of next(), wrap it in a timebox to respect maxTime. If the timeout occurs, halt the task instead of waiting indefinitely. This fixes the hanging test where forEach would wait indefinitely for more items after the source stream was exhausted.
f3ad201 to
0e48239
Compare
…Windows verification, and update job conditions for publishing tasks.
…ection from npm and update deno.json to include --allow-net permission.
…nagement features, including usage examples for exec() and daemon() functions, and clarify error handling with join() and expect() methods.
…ss multiple modules, and update @effectionx/test-adapter to version 0.6.0 in bdd module.
…@effectionx/test-adapter, and related packages across multiple modules.
…nx/bdd, @effectionx/test-adapter, and related packages across multiple modules." This reverts commit 0bdeb12.
…nd improve usage documentation. Update dependencies for @effectionx/bdd and related packages to version 0.2.2 across multiple modules, and adjust GitHub Actions workflows to use the new import map generation.
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.
Closes thefrontside/effection#1035
Motivation
All
@effectionxextensions were migrated to v3 in #87, but we now want to ensure compatibility with effection v4. This PR adds the infrastructure to run tests against both v3 and v4 versions of effection, and prepares all packages for publishing with dual version support.Changes
Import Map Generation
tasks/generate-importmap.tsthat dynamically fetches the latest v4 version from the npm registry at generation time@effectionx/*packages to their local paths for testingCI Workflow Updates
.github/workflows/verify-posix.yamland.github/workflows/verify-windows.yamlto useworkflow_callfor reusability--trace-leaksflag to v4 tests for better debuggingNPM Peer Dependency
tasks/build-npm.tsto use"effection": "^3 || ^4.0.0-0"to support v4 prereleasesVersion Bumps
All 16 packages received minor version bumps to publish with v3/v4 compatibility:
Test Adapter Enhancements
Resource Refactoring
Test Compatibility Fixes
Multiple test files were updated to work with both v3 and v4:
sleep(0)calls to give the operation tree time to set up subscriptionsspawnwhere v4's stricter lifecycle management requires itbatchstream completion handling for proper done state propagationDocumentation
README.mdfor running v3 and v4 testsprocess/README.mdwith comprehensive documentationHow to Use
Generate the v4 import map:
Run tests with v4:
deno test --import-map v4.importmap.json -ARun tests with v3 (default):
deno test -ASummary
stream-helpers,signals,task-buffer,watch,process,test-adapter,fx