diff --git a/release_notes/6.0.0-alpha.0.md b/release_notes/6.0.0-alpha.0.md new file mode 100644 index 00000000..93d954dd --- /dev/null +++ b/release_notes/6.0.0-alpha.0.md @@ -0,0 +1,100 @@ +# Jasmine Core 6.0.0-alpha.0 Release Notes + +This is a pre-release, intended to offer a preview of breaking changes and to +solicit feedback. + +## A Note About Pre-Release Compatibility + +There may be additional breaking changes in future 6.0 pre-releases or in the +final 6.0 release. That's allowed by the semver specification, but users are +sometimes unpleasantly surprised by it. + +NPM's implementation of carat version ranges assumes that subsequent +pre-releases and final releases are fully compatible with earlier pre-releases. +If your package.json contains `"jasmine-core": "^6.0.0-alpha.0`, +NPM might install any later 6.x version even though there is no guarantee of +compatibility. If that isn't ok, you should specify an exact pre-release version: +`"jasmine-core": "6.0.0-alpha.0`. + +## Changes to supported environments + +* Node 18 is no longer supported. + +## Breaking changes + +### General + +* Private APIs have been removed from the `jasmine` namespace. + + The purpose of this change is to reduce the risk of users inadvertently + depending on private APIs. Anything that's not covered by + [the documentation](https://jasmine.github.io/pages/docs_home.html) remains + private regardless of namespacing. Private APIs may be changed or removed in + any release. This change is being made in a major release as a courtesy to users of + libraries that depend on private APIs. + +* Arguments to `setSpecProperty`/`setSuiteProperty` must be both + structured-cloneable and JSON-serializable. +* Mock clock timing functions cannot be spied on. Previously this "worked" but + prevented the mock clock from uninstalling itself. +* The default value of the `forbidDuplicateNames` config option has been + changed to true. +* The mock clock no longer supports the eval forms of `setTimeout` and + `setInterval`. +* If an execution order is passed to `Env#execute`, it must not enter any suite + more than once. +* The argument passed to spec filters is a + [spec metadata](https://jasmine.github.io/api/6.0.0-alpha.0/Spec.html) + instance, not the internal spec object. + +### Changes that affect reporters + +This release includes changes that are intended to streamline and clarify the +reporter interface, prevent sharing of mutable state, and prevent bugs involving +non-serializable objects. These changes should be compatible with most existing +reporters but could break reporters that manage their internal state in unusual +ways. Please [open an issue](https://github.com/jasmine/jasmine/issues/new?template=bug_report.yml) +if you find a published reporter package that works with jasmine-core 5.x but +not with this release. + +* Irrelevant properties such as `status` and `failedExpectations` are omitted + from [the event passed to specStarted](https://jasmine.github.io/api/6.0.0-alpha.0/global.html#SpecStartedEvent). +* Reporter events are deep-cloned before being passed to each reporter. This + protects reporters against later mutation by jasmine-core or other reporters. +* The `expected` and `actual` properties of + [passed and failed expectations](https://jasmine.github.io/api/6.0.0-alpha.0/global.html#ExpectationResult) + have been removed. +* The [order](https://jasmine.github.io/api/6.0.0-alpha.0/global.html#Order) + property of the`jasmineStarted` and `jasmineDone` reporter events no longer + includes undocumented properties. + +### Changes to Node boot functions + +* [boot](https://jasmine.github.io/api/6.0.0-alpha.0/module-jasmine-core.html#.boot) + defaults to creating a new core instance each time it's called. This restores + the pre-5.0 default behavior. +* [noGlobals](https://jasmine.github.io/api/6.0.0-alpha.0/module-jasmine-core.html#.noGlobals) + no longer takes a parameter. It always returns the same object when called + repeatedly. + +## Supported environments + +This version has been tested in the following environments. + +| Environment | Supported versions | +|-------------------|--------------------------------| +| Node | 20, 22, 24 | +| Safari | 16**, 17** | +| Chrome | 140* | +| Firefox | 102**, 115**, 128**, 140, 143* | +| Edge | 140* | + +\* Evergreen browser. Each version of Jasmine is tested against the latest +version available at release time.
+\** Supported on a best-effort basis. Support for these versions may be dropped +if it becomes impractical, and bugs affecting only these versions may not be +treated as release blockers. + +------ + +_Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_