Repository navigation
feat: isolated Sails hook fixtures and Sounding 0.3.0 release preparation - #104
Merged
Merged
Conversation
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.
Reusable hook packages currently need manual temporary apps and lifecycle ownership to test real Sails furnishing and configuration. This adds an optional install-discovered hook plugin: the normal
require('sounding').testimport gets a fresh app/hook per trial, pre-boot config/files,{ hook }context and owned cleanup. The real Shipwright example asserts exact manifest-derived JS/CSS tags and view-local integration withdontLift: true, without starting Rsbuild.Refs #101. This implements the direct-mount fixture slice; it does not close the whole issue.
Release proposal
sounding0.3.0: additive preparation API and teardown errors now reject.sounding-plugin-hook0.1.0: first public package, peer ^0.3.0.sounding-plugin-stress0.1.1: only widens core peer compatibility.Validation
173 unit/integration tests passed on macOS arm64, Node 24.14.1; JavaScript typecheck passed. Clean locked installation (including the locked native SQLite rebuild), package packing and real Shipwright source/packed demos passed locally. The initial CI exposed missing SQLite bindings; the explicit rebuild corrects that without dependency upgrades. Added Linux/macOS Node 24 CI for tests/typecheck/packing; actual remote checks must pass before merge. Historical benchmark raw samples and reproducible commands are included: eight alternating fresh processes measured 240.977 → 241.473ms overall (~0.21%, no meaningful speedup claim). Browser performance is unmeasured; warm/shared timings are explicitly distinguished from isolated fixtures.
Failures remain visible: combined trial/cleanup errors are preserved; a deliberately failing real-hook demo exited 1, then proved isolation and fixture cleanup. HTTP failure tests close the actual loopback listener.
Boundaries and release gates
Fresh/direct fixtures only; concurrent hook lifecycles reject. Expected-boot-failure helpers, package/api-hooks discovery mounts, reuse and extra matchers remain follow-ups. ORM/views/other hook dependencies must be explicit; browser/socket hook variants need separate proof. No production app/job runs or broad dependency upgrades.
Draft for review. Do not merge, tag or npm publish until the release owner approves coordinated versions/auth. No release/tag has been created. Canonical docs are docs.sailscasts.com #302, a separate narrowly scoped PR; adoption issues are Shipwright #33 and Quest #15. Mail already has #35; Dev fork issues are disabled.