Skip to content

Commit

Permalink
Bump version to 4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
sgravrock committed Jan 1, 2022
1 parent cff54c2 commit 53fa648
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 2 deletions.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"bdd"
],
"license": "MIT",
"version": "4.0.0-pre.0",
"version": "4.0.0",
"repository": {
"type": "git",
"url": "https://github.com/jasmine/jasmine-npm"
Expand All @@ -29,7 +29,7 @@
],
"dependencies": {
"glob": "^7.1.6",
"jasmine-core": "github:jasmine/jasmine#main"
"jasmine-core": "^4.0.0"
},
"bin": "./bin/jasmine.js",
"main": "./lib/jasmine.js",
Expand Down
108 changes: 108 additions & 0 deletions release_notes/4.0.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Jasmine NPM 4.0.0 Release Notes

## Summary

This is a major release. In addition to new features and bug fixes it contains
a variety of breaking changes that are intended to improve ES module support,
improve awkward or outdated interfaces, and make Jasmine easier to maintain
and contribute to. If you're upgrading from Jasmine 3.x, we recommend installing
3.99 and fixing any deprecation warnings that it emits before updating to 4.0.
See the [migration guide](https://jasmine.github.io/tutorials/upgrading_to_Jasmine_4.0)
for more information. Be sure to read the release notes for `jasmine-core` 4.0.0
as well.

## Highlights

* The `jasmine-core` dependency has been updated to 4.0.0
* ES module support is enabled by default.
* Node 10 and 12.0-12.16 are no longer supported.

## Breaking changes

* Node versions older than 12.17 are no longer supported because they have
insufficient support for interop between ES modules and CommonJS modules.

* Beginning with this release, everything not documented in the
[API reference](https://jasmine.github.io/api/npm/4.0/Jasmine) is considered
a private API.

* Config files can be ES modules. This is a breaking change because it requires
`Jasmine#loadConfigFile` to be async.

* The `--fail-fast` CLI flag now causes Jasmine to stop spec execution on the
first expectation failure as well as stopping suite execution on the first
spec failure.

* The ambiguously named `--stop-on-failure` CLI flag is no longer supported.

* Failure to load or instantiate a reporter is a fatal error, not just a warning.

* Relative reporter paths are resolved based on the working directory rather
than the location of the module inside Jasmine that calls `require()`.

* The `jasmine` command now uses distinct exit codes for various types of non-success:
* 1 for anything unexpected, i.e. Jasmine didn't run to completion
* 2 for incomplete (focused specs/suites but no failures)
* 3 for failed (spec/suite failures)
* Other nonzero exit codes may be used for other purposes. Code that checks
the exit code of the `jasmine` command should not treat any value other than
0 as success.
* Fixes [#154](https://github.com/jasmine/jasmine-npm/issues/154).

* `Jasmine#onComplete` is no longer supported. To run code after execution
finishes, set the Jasmine instance's `exitOnCompletion` to false and use the
promise returned by `Jasmine#execute`. See the
[API reference for `execute`](https://jasmine.github.io/api/npm/4.0/Jasmine.html#execute)
for more information.

## New features and bugfixes

* Full support for ES modules in the default configuration:
* ES module support is enabled by default, but can still be disabled by
adding `jsLoader: "require"` to the configuration. `jsLoader: "import"` is
now a no-op.

We think it's highly unlikely that this change will break anything. If it
does (i.e. your code works with `jsLoader: "require"` but not without it),
please [let us know](https://github.com/jasmine/jasmine-npm/issues/new).
This will help us understand whether the `jsLoader` config property is still
needed.

* Files listed in the `requires` config property can be ES modules

* Reporters specified with `--reporter=` can be ES modules.

* Allow use without creating globals.
* See <https://jasmine.github.io/api/npm/4.0/JasmineOptions.html#globals>.
* Fixes [jasmine/jasmine#1235](https://github.com/jasmine/jasmine/issues/1235).

* Autodiscover spec/support/jasmine.js as well as spec/support/jasmine.json.

* Moved `stopSpecOnExpectationFailure` and `random` to `env` in the sample
config generated by `jasmine init`.

* Top suite failures are included in the failure count displayed by the default
`ConsoleReporter`.

* Added support for the debug logging feature introduced in `jasmine-core` 4.0.0.

* Fixed handling of module paths containing `..` on OS X.

## Internal improvements

* Use the promise returned from `Env#execute` to determine when suite execution
is finished and obtain the overall result.

* Removed unnecessary code to filter Jasmine's frames from stack traces. The same
filtering has been done in jasmine-core since 3.0.

* Inlined loadConfig.js back into command.js to resolve naming conflicts.

## Supported environments

The jasmine NPM package has been tested on Node 12.17-12.22, 14, and 16.


------

_Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_

0 comments on commit 53fa648

Please sign in to comment.