Update all (major)
This PR contains the following updates:
Release Notes
typicode/husky
v6.0.0
After being in early access for Open Source projects and Sponsors for a limited time, I'm happy to announce that husky 6 is MIT again and can be freely used in commercial projects! 🎉
Many thanks to the Open Source projects and Companies which have switched to/sponsored the new husky during this period!
OSS is my full-time job, please consider sponsoring the development of husky on GitHub sponsors or Open Collective. Thank you!
Breaking change
-
husky inithas been moved to its own package (npx husky-init)
Added
- Programmatically use husky:
require('husky') - TypeScript definitions
Migrating from husky 4
Husky 6 contains breaking changes. If you're coming from v4, npm install husky@6 won't be enough.
Recommended: see husky-4-to-6 CLI to automatically migrate your config. There's also a dedicated section in the docs.
If you're curious why config has changed, you may be interested in reading: https://blog.typicode.com/husky-git-hooks-javascript-config/
Also Husky 6 follows official npm and Yarn best practices regarding autoinstall. It's recommended to use prepare script instead (see usage in docs).
v5.2.0
- Add
setcommand to replace hooks (husky set .husky/pre-commit cmd) - Update
addcommand to append command (husky add .husky/pre-commit cmd) - Improve error messages
v5.1.3
- docs: add specific Yarn v2 install/uninstall instructions
- cli:
husky initwill detect Yarn v2 and initialize accordingly
v5.1.2
- docs: recommend
preparescript instead ofpostinstall(#​890) - cli:
husky initusepreparescript (#​890)
v5.1.1
- style(shell): add trailing newlines (#​870)
- fix(init): update package.json postinstall
v5.1.0
- Add
husky init
v5.0.9
- fix(install): do not fail if not inside a Git directory (closes #​851)
See https://github.com/typicode/husky/releases/tag/v5.0.0 for v5 release notes
v5.0.8
v5.0.7
- fix(shell): double quote params (#​824)
v5.0.6
- Remove unused files
v5.0.5
- Fix custom directory support #​827
v5.0.4
v5.0.3
v5.0.2
v5.0.1
v5.0.0
👉 See https://typicode.github.io/husky for breaking changes and new installation instructions.
Note about the license
Husky 5 is released under The Parity Public License.
It doesn't affect you if you're using husky in an Open Source project or if you're a sponsor. You're free to use it as usual and I hope you'll enjoy this new release ❤️
If you're using husky in a commercial project, you may want to consider becoming a sponsor to support the project. You can also try it for 30 days.
This is only for a limited time, husky will be MIT again later.
Migrating
Important Husky v5 brings a lot of improvements but is also very different from v4. Git hooks won't work if you only upgrade husky dependency, existing config needs to be migrated too.
The best way to switch to v5 is to follow the new installation instructions and migrate existing hooks command using husky add.
v4.3.8
- Fix
Cannot read property 'toString' of null - Improve error messages
v4.3.7
- Fix: upgrade find-versions to 4.0.0 https://github.com/typicode/husky/pull/837
v4.3.6
- Fix
prepare-commit-msgon windows #​737
v4.3.5
- Rollback and do not throw error if husky install fails
v4.3.4
- Throw error if husky install fails
- Add workaround for npm 7 currently missing
INIT_CWDenvironment variable
v4.3.3
v4.3.2
v4.3.1
v4.3.0
- Add
.cjsconfig file support #​754
v4.2.5
v4.2.4
- When Node version is unsupported, log actual version in addition to the error message #​701
- Fix: support
cnpmpackage manager #​687 - Fix: always use
shto run scripts and avoid inconsistencies #​707 - Fix: don't throw error if files are already removed during uninstall #​708
v4.2.3
- Fix: check for
husky.config.jsnot.huskyrc.config.js#​669
v4.2.2
- Fix #​662 disable fast-skip heuristic for
.husky.jsand.husky.config.js - Fix do not install
update,pre/post-receivehooks
v4.2.1
- Fix: support spaces in path to husky.local.sh #​658
v4.2.0
- Check Git version during install and log an error if it's
<2.13.0
v4.1.0
- Improve speed and refactor hooks
v4.0.10
v4.0.9
- Fix: read stdin from hook script (#​645)
v4.0.8
v4.0.7
- Fix: Yarn when running inside
winpty(#​634)
v4.0.6
- Revert change in v4.0.5
v4.0.5
- Fix: use process.exit if install fails #​633
v4.0.4
- Fix: npm ignore
.eslintrc.js(#​627)
v4.0.3
- Fix: error message if trying to install in a non-git repo (#​627)
v4.0.2
- Fix: show error message when hook fails
v4.0.1
- Fix: make Yarn silent. When Husky was installed with Yarn 1.21.1, hooks output was too verbose (#​626).
v4.0.0
- Support
Yarn v2new Plug'n'Play feature (thanks to @​arcanis) - Improve path handling on Windows (in particular with
CygwinandCmdr) - Remove
dependenciesand simplify code -
Breaking requires
Node 10+
Thanks to all contributors and everyone who is supporting Husky on Open Collective, GitHub sponsors and Patreon!
v3.1.0
- Add
pre-merge-commithook (#​605)
v3.0.9
- Reduce dependencies: replace
is-ciwithci-info#​579
v3.0.8
- Fix: git worktree support #​580
- Debug: check
GIT_DIRenvironment variable when hooks are run
v3.0.7
Debug: display husky version and created at
v3.0.6
Debug: improve messages
v3.0.5
Fix: prevent postinstall from failing on windows https://github.com/typicode/husky/pull/573
v3.0.4
Fix: skip install earlier when HUSKY_SKIP_INSTALL=1 (https://github.com/typicode/husky/issues/563)
v3.0.3
Fix: prevent old hooks (husky < 1.0) to be run if new ones are defined (husky >= 1.0 ) https://github.com/typicode/husky/issues/556
v3.0.2
- Fix: add shebang to run.js (#​528)
v3.0.1
- Improve error message if git command fails
v3.0.0
- Fix HUSKY_SKIP_INSTALL=1 not skipping install
-
Breaking change husky requires now Git
>= 2.13.2. If you're already using huskyv2and don't use an old version of Git, you can safely upgrade.
v2.7.0
v2.6.0
v2.5.0
v2.4.1
v2.4.0
v2.3.0
v2.2.0
v2.1.0
v2.0.0
dankogai/js-combinatorics
v1.4.5
v1.4.4
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.3.0
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.1.1
v1.1.0
v1.0.0
v0.6.1
v0.6.0
mochajs/mocha
v9.0.0
:boom: Breaking Changes
-
#​4633: Drop Node.js v10.x support (@​juergba)
-
#​4635:
import-first loading of test files (@​giltayar)
Mocha is going ESM-first! This means that it will now use ESM import(test_file) to load the test files, instead of the CommonJS require(test_file). This is not a problem, as import can also load most files that require does. In the rare cases where this fails, it will fallback to require(...). This ESM-first approach is the next step in Mocha's ESM migration, and allows ESM loaders to load and transform the test file.
-
#​4636: Remove deprecated
utils.lookupFiles()(@​juergba) -
#​4638: Limit the size of
actual/expectedfordiffgeneration (@​juergba) -
#​4389: Refactoring: Consuming log-symbols alternate to code for win32 in reporters/base (@​MoonSupport)
:tada: Enhancements
-
#​4640: Add new option
--dry-run(@​juergba)
:bug: Fixes
- #​4128: Fix: control stringification of error message (@​syeutyu)
:nut_and_bolt: Other
-
#​4646: Deprecate
Runner(suite: Suite, delay: boolean)signature (@​juergba) - #​4643: Update production dependencies (@​juergba)
v8.4.0
:tada: Enhancements
- #​4502: CLI file parsing errors now have error codes (@​evaline-ju)
:bug: Fixes
- #​4614: Watch: fix crash when reloading files (@​outsideris)
:book: Documentation
-
#​4630: Add
options.requireto Mocha constructor forroot hookplugins on parallel runs (@​juergba) -
#​4617: Dynamically generating tests with
top-level awaitand ESM test files (@​juergba) - #​4608: Update default file extensions (@​outsideris)
Also thanks to @​outsideris for various improvements on our GH actions workflows.
v8.3.2
:bug: Fixes
-
#​4599: Fix regression in
requireinterface (@​alexander-fenster)
:book: Documentation
- #​4601: Add build to GH actions run (@​christian-bromann)
- #​4596: Filter active sponsors/backers (@​juergba)
- #​4225: Update config file examples (@​pkuczynski)
v8.3.1
:bug: Fixes
-
#​4577: Browser: fix
EvalErrorcaused by regenerator-runtime (@​snoack) -
#​4574: ESM: allow
importfrom mocha in parallel mode (@​nicojs)
v8.3.0
:tada: Enhancements
- #​4506: Add error code for test timeout errors (@​boneskull)
- #​4112: Add BigInt support to stringify util function (@​JosejeSinohui)
:bug: Fixes
- #​4557: Add file location when SyntaxError happens in ESM (@​giltayar)
-
#​4521: Fix
requireerror when bundling Mocha with Webpack (@​devhazem)
:book: Documentation
- #​4507: Add support for typescript-style docstrings (@​boneskull)
- #​4503: Add GH Actions workflow status badge (@​outsideris)
- #​4494: Add example of generating tests dynamically with a closure (@​maxwellgerber)
:nut_and_bolt: Other
- #​4556: Upgrade all dependencies to latest stable (@​AviVahl)
- #​4543: Update dependencies yargs and yargs-parser (@​juergba)
Also thanks to @​outsideris and @​HyunSangHan for various fixes to our website and documentation.
v8.2.1
Fixed stuff.
:bug: Fixes
-
#​4489: Fix problematic handling of otherwise-unhandled
Promiserejections and erroneous "done()called twice" errors (@​boneskull) -
#​4496: Avoid
MaxListenersExceededWarningin watch mode (@​boneskull)
Also thanks to @​akeating for a documentation fix!
v8.2.0
The major feature added in v8.2.0 is addition of support for global fixtures.
While Mocha has always had the ability to run setup and teardown via a hook (e.g., a before() at the top level of a test file) when running tests in serial, Mocha v8.0.0 added support for parallel runs. Parallel runs are incompatible with this strategy; e.g., a top-level before() would only run for the file in which it was defined.
With global fixtures, Mocha can now perform user-defined setup and teardown regardless of mode, and these fixtures are guaranteed to run once and only once. This holds for parallel mode, serial mode, and even "watch" mode (the teardown will run once you hit Ctrl-C, just before Mocha finally exits). Tasks such as starting and stopping servers are well-suited to global fixtures, but not sharing resources--global fixtures do not share context with your test files (but they do share context with each other).
Here's a short example of usage:
// fixtures.js
// can be async or not
exports.mochaGlobalSetup = async function() {
this.server = await startSomeServer({port: process.env.TEST_PORT});
console.log(`server running on port ${this.server.port}`);
};
exports.mochaGlobalTeardown = async function() {
// the context (`this`) is shared, but not with the test files
await this.server.stop();
console.log(`server on port ${this.server.port} stopped`);
};
// this file can contain root hook plugins as well!
// exports.mochaHooks = { ... }
Fixtures are loaded with --require, e.g., mocha --require fixtures.js.
For detailed information, please see the documentation and this handy-dandy flowchart to help understand the differences between hooks, root hook plugins, and global fixtures (and when you should use each).
:tada: Enhancements
- #​4308: Support run-once global setup & teardown fixtures (@​boneskull)
-
#​4442: Multi-part extensions (e.g.,
test.js) now usable with--extensionoption (@​jordanstephens) -
#​4472: Leading dots (e.g.,
.js,.test.js) now usable with--extensionoption (@​boneskull) -
#​4434: Output of
jsonreporter now containsspeed("fast"/"medium"/"slow") property (@​wwhurin) - #​4464: Errors thrown by serializer in parallel mode now have error codes (@​evaline-ju)
For implementors of custom reporters:
-
#​4409: Parallel mode and custom reporter improvements (@​boneskull):
- Support custom worker-process-only reporters (
Runner.prototype.workerReporter()); reporters should subclassParallelBufferedReporterinmocha/lib/nodejs/reporters/parallel-buffered - Allow opt-in of object reference matching for "sufficiently advanced" custom reporters (
Runner.prototype.linkPartialObjects()); use if strict object equality is needed when consumingRunnerevent data - Enable detection of parallel mode (
Runner.prototype.isParallelMode())
- Support custom worker-process-only reporters (
:bug: Fixes
-
#​4476: Workaround for profoundly bizarre issue affecting
npmv6.x causing some of Mocha's deps to be installed whenmochais present in a package'sdevDependenciesandnpm install --productionis run the package's working copy (@​boneskull) -
#​4465: Worker processes guaranteed (as opposed to "very likely") to exit before Mocha does; fixes a problem when using
nycwith Mocha in parallel mode (@​boneskull) -
#​4419: Restore
lookupFiles()inmocha/lib/utils, which was broken/missing in Mocha v8.1.0; it now prints a deprecation warning (useconst {lookupFiles} = require('mocha/lib/cli')instead) (@​boneskull)
Thanks to @​AviVahl, @​donghoon-song, @​ValeriaVG, @​znarf, @​sujin-park, and @​majecty for other helpful contributions!
v8.1.3
:bug: Fixes
-
#​4425: Restore
Mocha.utils.lookupFiles()and Webpack compatibility (both broken since v8.1.0);Mocha.utils.lookupFiles()is now deprecated and will be removed in the next major revision of Mocha; userequire('mocha/lib/cli').lookupFilesinstead (@​boneskull)
v8.1.2
:bug: Fixes
- #​4418: Fix command-line flag incompatibility in forthcoming Node.js v14.9.0 (@​boneskull)
- #​4401: Fix missing global variable in browser (@​irrationnelle)
:lock: Security Fixes
:book: Documentation
- Various fixes by @​sujin-park, @​wwhurin & @​Donghoon759
v8.1.1
:bug: Fixes
- #​4394: Fix regression wherein certain reporters did not correctly detect terminal width (@​boneskull)
v8.1.0
In this release, Mocha now builds its browser bundle with Rollup and Babel, which will provide the project's codebase more flexibility and consistency.
While we've been diligent about backwards compatibility, it's possible consumers of the browser bundle will encounter differences (other than an increase in the bundle size). If you do encounter an issue with the build, please report it here.
This release does not drop support for IE11.
Other community contributions came from @​Devjeel, @​Harsha509 and @​sharath2106. Thank you to everyone who contributed to this release!
Do you read Korean? See this guide to running parallel tests in Mocha, translated by our maintainer, @​outsideris.
:tada: Enhancements
- #​4287: Use background colors with inline diffs for better visual distinction (@​michael-brade)
:bug: Fixes
- #​4328: Fix "watch" mode when Mocha run in parallel (@​boneskull)
- #​4382: Fix root hook execution in "watch" mode (@​indieisaconcept)
- #​4383: Consistent auto-generated hook titles (@​cspotcode)
-
#​4359: Better errors when running
mocha init(@​boneskull) -
#​4341: Fix weirdness when using
delayoption in browser (@​craigtaub)
:lock: Security Fixes
- #​4378, #​4333: Update javascript-serialize (@​martinoppitz, @​wnghdcjfe)
- #​4354: Update yargs-unparser (@​martinoppitz)
:book: Documentation & Website
-
#​4173: Document how to use
--enable-source-mapswith Mocha (@​bcoe) - #​4343: Clean up some API docs (@​craigtaub)
- #​4318: Sponsor images are now self-hosted (@​Munter)
:nut_and_bolt: Other
- #​4293: Use Rollup and Babel in build pipeline; add source map to published files (@​Munter)
v8.0.1
The obligatory patch after a major.
:bug: Fixes
-
#​4328: Fix
--parallelwhen combined with--watch(@​boneskull)
v8.0.0
In this major release, Mocha adds the ability to run tests in parallel. Better late than never! Please note the breaking changes detailed below.
Let's welcome @​giltayar and @​nicojs to the maintenance team!
:boom: Breaking Changes
-
#​4164: Mocha v8.0.0 now requires Node.js v10.12.0 or newer. Mocha no longer supports the Node.js v8.x line ("Carbon"), which entered End-of-Life at the end of 2019 (@​UlisesGascon)
-
#​4175: Having been deprecated with a warning since v7.0.0,
mocha.optsis no longer supported (@​juergba):sparkles: WORKAROUND: Replace
mocha.optswith a configuration file. -
#​4260: Remove
enableTimeout()(this.enableTimeout()) from the context object (@​craigtaub):sparkles: WORKAROUND: Replace usage of
this.enableTimeout(false)in your tests withthis.timeout(0). -
#​4315: The
specoption no longer supports a comma-delimited list of files (@​juergba):sparkles: WORKAROUND: Use an array instead (e.g.,
"spec": "foo.js,bar.js"becomes"spec": ["foo.js", "bar.js"]). -
#​4309: Drop support for Node.js v13.x line, which is now End-of-Life (@​juergba)
-
#​4282:
--forbid-onlywill throw an error even if exclusive tests are avoided via--grepor other means (@​arvidOtt) -
#​4223: The context object's
skip()(this.skip()) in a "before all" (before()) hook will no longer execute subsequent sibling hooks, in addition to hooks in child suites (@​juergba) -
#​4178: Remove previously soft-deprecated APIs (@​wnghdcjfe):
-
Mocha.prototype.ignoreLeaks() -
Mocha.prototype.useColors() -
Mocha.prototype.useInlineDiffs() -
Mocha.prototype.hideDiff()
-
:tada: Enhancements
-
#​4245: Add ability to run tests in parallel for Node.js (see docs) (@​boneskull)
:exclamation: See also #​4244; Root Hook Plugins (docs) -- root hooks must be defined via Root Hook Plugins to work in parallel mode
-
#​4304:
--requirenow works with ES modules (@​JacobLey) -
#​4299: In some circumstances, Mocha can run ES modules under Node.js v10 -- use at your own risk! (@​giltayar)
:book: Documentation
- #​4246: Add documentation for parallel mode and Root Hook plugins (@​boneskull)
:nut_and_bolt: Other
- #​4200: Drop mkdirp and replace it with fs.mkdirSync (@​HyunSangHan)
:bug: Fixes
(All bug fixes in Mocha v8.0.0 are also breaking changes, and are listed above)
v7.2.0
:tada: Enhancements
- #​4234: Add ability to run tests in a mocha instance multiple times (@​nicojs)
- #​4219: Exposing filename in JSON, doc, and json-stream reporters (@​Daniel0113)
- #​4244: Add Root Hook Plugins (@​boneskull)
:bug: Fixes
- #​4258: Fix missing dot in name of configuration file (@​sonicdoe)
- #​4194: Check if module.paths really exists (@​ematipico)
-
#​4256:
--forbid-onlydoes not recognizeit.onlywhenbeforecrashes (@​arvidOtt) - #​4152: Bug with multiple async done() calls (@​boneskull)
- #​4275: Improper warnings for invalid reporters (@​boneskull)
- #​4288: Broken hook.spec.js test for IE11 (@​boneskull)
:book: Documentation
- #​4081: Insufficient white space for API docs in view on mobile (@​HyunSangHan)
- #​4255: Update mocha-docdash for UI fixes on API docs (@​craigtaub)
- #​4235: Enable emoji on website; enable normal ul elements (@​boneskull)
- #​4272: Fetch sponsors at build time, show ALL non-skeevy sponsors (@​boneskull)
:nut_and_bolt: Other
- #​4249: Refactoring improving encapsulation (@​arvidOtt)
- #​4242: CI add job names, add Node.js v14 to matrix (@​boneskull)
- #​4237: Refactor validatePlugins to throw coded errors (@​boneskull)
- #​4236: Better debug output (@​boneskull)
v7.1.2
:nut_and_bolt: Other
- #​4251: Prevent karma-mocha from stalling (@​juergba)
- #​4222: Update dependency mkdirp to v0.5.5 (@​outsideris)
:book: Documentation
- #​4208: Add Wallaby logo to site (@​boneskull)
v7.1.1
:lock: Security Fixes
- #​4204: Update dependencies mkdirp, yargs-parser and yargs (@​juergba)
:bug: Fixes
-
#​3660: Fix
runnerlistening tostarta
Configuration
đź“… Schedule: "before 3am on Monday" (UTC).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
đź‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
- [ ] If you want to rebase/retry this PR, check this box.
This PR has been generated by WhiteSource Renovate. View repository job log here.