funkwhale merge requestshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests2022-02-03T01:03:31Zhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1592Update dependency mocha to v9 (develop) - autoclosed2022-02-03T01:03:31ZRenovateBotUpdate dependency mocha to v9 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [mocha](https://mochajs.org/) ([source](https://github.com/mochajs/mocha)) | devDependencies | major | [`5.2.0` -> `9.2.0`](https://renovat...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [mocha](https://mochajs.org/) ([source](https://github.com/mochajs/mocha)) | devDependencies | major | [`5.2.0` -> `9.2.0`](https://renovatebot.com/diffs/npm/mocha/5.2.0/9.2.0) |
---
### Release Notes
<details>
<summary>mochajs/mocha</summary>
### [`v9.2.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​920--2022-01-24)
[Compare Source](https://github.com/mochajs/mocha/compare/v9.1.4...v9.2.0)
#### :tada: Enhancements
- [#​4813](https://github.com/mochajs/mocha/issues/4813): Parallel: assign each worker a worker-id ([**@​forty**](https://github.com/forty))
#### :nut_and_bolt: Other
- [#​4818](https://github.com/mochajs/mocha/issues/4818): Update production dependencies ([**@​juergba**](https://github.com/juergba))
### [`v9.1.4`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​914--2022-01-14)
[Compare Source](https://github.com/mochajs/mocha/compare/v9.1.3...v9.1.4)
#### :bug: Fixes
- [#​4807](https://github.com/mochajs/mocha/issues/4807): `import` throws wrong error if loader is used ([**@​giltayar**](https://github.com/giltayar))
#### :nut_and_bolt: Other
- [#​4777](https://github.com/mochajs/mocha/issues/4777): Add Node v17 to CI test matrix ([**@​outsideris**](https://github.com/outsideris))
### [`v9.1.3`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​913--2021-10-15)
[Compare Source](https://github.com/mochajs/mocha/compare/v9.1.2...v9.1.3)
#### :bug: Fixes
- [#​4769](https://github.com/mochajs/mocha/issues/4769): Browser: re-enable `bdd` ES6 style import ([**@​juergba**](https://github.com/juergba))
#### :nut_and_bolt: Other
- [#​4764](https://github.com/mochajs/mocha/issues/4764): Revert deprecation of `EVENT_SUITE_ADD_*` events ([**@​beatfactor**](https://github.com/beatfactor))
### [`v9.1.2`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​912--2021-09-25)
[Compare Source](https://github.com/mochajs/mocha/compare/v9.1.1...v9.1.2)
#### :bug: Fixes
- [#​4746](https://github.com/mochajs/mocha/issues/4746): Browser: stop using all global vars in `browser-entry.js` ([**@​PaperStrike**](https://github.com/PaperStrike))
#### :nut_and_bolt: Other
- [#​4754](https://github.com/mochajs/mocha/issues/4754): Remove dependency wide-align ([**@​juergba**](https://github.com/juergba))
- [#​4736](https://github.com/mochajs/mocha/issues/4736): ESM: remove code for Node versions <10 ([**@​juergba**](https://github.com/juergba))
### [`v9.1.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​911--2021-08-28)
[Compare Source](https://github.com/mochajs/mocha/compare/v9.1.0...v9.1.1)
#### :bug: Fixes
- [#​4623](https://github.com/mochajs/mocha/issues/4623): `XUNIT` and `JSON` reporter crash in `parallel` mode ([**@​curtisman**](https://github.com/curtisman))
### [`v9.1.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​910--2021-08-20)
[Compare Source](https://github.com/mochajs/mocha/compare/v9.0.3...v9.1.0)
#### :tada: Enhancements
- [#​4716](https://github.com/mochajs/mocha/issues/4716): Add new option `--fail-zero` ([**@​juergba**](https://github.com/juergba))
- [#​4691](https://github.com/mochajs/mocha/issues/4691): Add new option `--node-option` ([**@​juergba**](https://github.com/juergba))
- [#​4607](https://github.com/mochajs/mocha/issues/4607): Add output option to `JSON` reporter ([**@​dorny**](https://github.com/dorny))
### [`v9.0.3`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​903--2021-07-25)
[Compare Source](https://github.com/mochajs/mocha/compare/v9.0.2...v9.0.3)
#### :bug: Fixes
- [#​4702](https://github.com/mochajs/mocha/issues/4702): Error rethrow from cwd-relative path while loading `.mocharc.js` ([**@​kirill-golovan**](https://github.com/kirill-golovan))
- [#​4688](https://github.com/mochajs/mocha/issues/4688): Usage of custom interface in parallel mode ([**@​juergba**](https://github.com/juergba))
- [#​4687](https://github.com/mochajs/mocha/issues/4687): ESM: don't swallow `MODULE_NOT_FOUND` errors in case of `type:module` ([**@​giltayar**](https://github.com/giltayar))
### [`v9.0.2`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​902--2021-07-03)
[Compare Source](https://github.com/mochajs/mocha/compare/v9.0.1...v9.0.2)
#### :bug: Fixes
- [#​4668](https://github.com/mochajs/mocha/issues/4668): ESM: make `--require <dir>` work with new `import`-first loading ([**@​giltayar**](https://github.com/giltayar))
#### :nut_and_bolt: Other
- [#​4674](https://github.com/mochajs/mocha/issues/4674): Update production dependencies ([**@​juergba**](https://github.com/juergba))
### [`v9.0.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​901--2021-06-18)
[Compare Source](https://github.com/mochajs/mocha/compare/v9.0.0...v9.0.1)
#### :nut_and_bolt: Other
- [#​4657](https://github.com/mochajs/mocha/issues/4657): Browser: add separate bundle for modern browsers ([**@​juergba**](https://github.com/juergba))
We added a separate browser bundle `mocha-es2018.js` in javascript ES2018, as we skipped the transpilation down to ES5. This is an **experimental step towards freezing Mocha's support of IE11**.
- [#​4653](https://github.com/mochajs/mocha/issues/4653): ESM: proper version check in `hasStableEsmImplementation` ([**@​alexander-fenster**](https://github.com/alexander-fenster))
### [`v9.0.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​900--2021-06-07)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.4.0...v9.0.0)
#### :boom: Breaking Changes
- [#​4633](https://github.com/mochajs/mocha/issues/4633): **Drop Node.js v10.x support** ([**@​juergba**](https://github.com/juergba))
- [#​4635](https://github.com/mochajs/mocha/issues/4635): `import`-first loading of test files ([**@​giltayar**](https://github.com/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](https://github.com/mochajs/mocha/issues/4636): Remove deprecated `utils.lookupFiles()` ([**@​juergba**](https://github.com/juergba))
- [#​4638](https://github.com/mochajs/mocha/issues/4638): Limit the size of `actual`/`expected` for `diff` generation ([**@​juergba**](https://github.com/juergba))
- [#​4389](https://github.com/mochajs/mocha/issues/4389): Refactoring: Consuming log-symbols alternate to code for win32 in reporters/base ([**@​MoonSupport**](https://github.com/MoonSupport))
#### :tada: Enhancements
- [#​4640](https://github.com/mochajs/mocha/issues/4640): Add new option `--dry-run` ([**@​juergba**](https://github.com/juergba))
#### :bug: Fixes
- [#​4128](https://github.com/mochajs/mocha/issues/4128): Fix: control stringification of error message ([**@​syeutyu**](https://github.com/syeutyu))
#### :nut_and_bolt: Other
- [#​4646](https://github.com/mochajs/mocha/issues/4646): Deprecate `Runner(suite: Suite, delay: boolean)` signature ([**@​juergba**](https://github.com/juergba))
- [#​4643](https://github.com/mochajs/mocha/issues/4643): Update production dependencies ([**@​juergba**](https://github.com/juergba))
### [`v8.4.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​840--2021-05-07)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.3.2...v8.4.0)
#### :tada: Enhancements
- [#​4502](https://github.com/mochajs/mocha/issues/4502): CLI file parsing errors now have error codes ([**@​evaline-ju**](https://github.com/evaline-ju))
#### :bug: Fixes
- [#​4614](https://github.com/mochajs/mocha/issues/4614): Watch: fix crash when reloading files ([**@​outsideris**](https://github.com/outsideris))
#### :book: Documentation
- [#​4630](https://github.com/mochajs/mocha/issues/4630): Add `options.require` to Mocha constructor for `root hook` plugins on parallel runs ([**@​juergba**](https://github.com/juergba))
- [#​4617](https://github.com/mochajs/mocha/issues/4617): Dynamically generating tests with `top-level await` and ESM test files ([**@​juergba**](https://github.com/juergba))
- [#​4608](https://github.com/mochajs/mocha/issues/4608): Update default file extensions ([**@​outsideris**](https://github.com/outsideris))
Also thanks to [**@​outsideris**](https://github.com/outsideris) for various improvements on our GH actions workflows.
### [`v8.3.2`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​832--2021-03-12)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.3.1...v8.3.2)
#### :bug: Fixes
- [#​4599](https://github.com/mochajs/mocha/issues/4599): Fix regression in `require` interface ([**@​alexander-fenster**](https://github.com/alexander-fenster))
#### :book: Documentation
- [#​4601](https://github.com/mochajs/mocha/issues/4601): Add build to GH actions run ([**@​christian-bromann**](https://github.com/christian-bromann))
- [#​4596](https://github.com/mochajs/mocha/issues/4596): Filter active sponsors/backers ([**@​juergba**](https://github.com/juergba))
- [#​4225](https://github.com/mochajs/mocha/issues/4225): Update config file examples ([**@​pkuczynski**](https://github.com/pkuczynski))
### [`v8.3.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​831--2021-03-06)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.3.0...v8.3.1)
#### :bug: Fixes
- [#​4577](https://github.com/mochajs/mocha/issues/4577): Browser: fix `EvalError` caused by regenerator-runtime ([**@​snoack**](https://github.com/snoack))
- [#​4574](https://github.com/mochajs/mocha/issues/4574): ESM: allow `import` from mocha in parallel mode ([**@​nicojs**](https://github.com/nicojs))
### [`v8.3.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​830--2021-02-11)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.2.1...v8.3.0)
#### :tada: Enhancements
- [#​4506](https://github.com/mochajs/mocha/issues/4506): Add error code for test timeout errors ([**@​boneskull**](https://github.com/boneskull))
- [#​4112](https://github.com/mochajs/mocha/issues/4112): Add BigInt support to stringify util function ([**@​JosejeSinohui**](https://github.com/JosejeSinohui))
#### :bug: Fixes
- [#​4557](https://github.com/mochajs/mocha/issues/4557): Add file location when SyntaxError happens in ESM ([**@​giltayar**](https://github.com/giltayar))
- [#​4521](https://github.com/mochajs/mocha/issues/4521): Fix `require` error when bundling Mocha with Webpack ([**@​devhazem**](https://github.com/devhazem))
#### :book: Documentation
- [#​4507](https://github.com/mochajs/mocha/issues/4507): Add support for typescript-style docstrings ([**@​boneskull**](https://github.com/boneskull))
- [#​4503](https://github.com/mochajs/mocha/issues/4503): Add GH Actions workflow status badge ([**@​outsideris**](https://github.com/outsideris))
- [#​4494](https://github.com/mochajs/mocha/issues/4494): Add example of generating tests dynamically with a closure ([**@​maxwellgerber**](https://github.com/maxwellgerber))
#### :nut_and_bolt: Other
- [#​4556](https://github.com/mochajs/mocha/issues/4556): Upgrade all dependencies to latest stable ([**@​AviVahl**](https://github.com/AviVahl))
- [#​4543](https://github.com/mochajs/mocha/issues/4543): Update dependencies yargs and yargs-parser ([**@​juergba**](https://github.com/juergba))
Also thanks to [**@​outsideris**](https://github.com/outsideris) and [**@​HyunSangHan**](https://github.com/HyunSangHan) for various fixes to our website and documentation.
### [`v8.2.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​821--2020-11-02)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.2.0...v8.2.1)
Fixed stuff.
#### :bug: Fixes
- [#​4489](https://github.com/mochajs/mocha/issues/4489): Fix problematic handling of otherwise-unhandled `Promise` rejections and erroneous "`done()` called twice" errors ([**@​boneskull**](https://github.com/boneskull))
- [#​4496](https://github.com/mochajs/mocha/issues/4496): Avoid `MaxListenersExceededWarning` in watch mode ([**@​boneskull**](https://github.com/boneskull))
Also thanks to [**@​akeating**](https://github.com/akeating) for a documentation fix!
### [`v8.2.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​820--2020-10-16)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.1.3...v8.2.0)
The major feature added in v8.2.0 is addition of support for [*global fixtures*](https://mochajs.org/#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](https://mochajs.org/#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:
```js
// 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](https://mochajs.org/#global-fixtures) and this handy-dandy [flowchart](https://mochajs.org/#test-fixture-decision-tree-wizard-thing) to help understand the differences between hooks, root hook plugins, and global fixtures (and when you should use each).
#### :tada: Enhancements
- [#​4308](https://github.com/mochajs/mocha/issues/4308): Support run-once [global setup & teardown fixtures](https://mochajs.org/#global-fixtures) ([**@​boneskull**](https://github.com/boneskull))
- [#​4442](https://github.com/mochajs/mocha/issues/4442): Multi-part extensions (e.g., `test.js`) now usable with `--extension` option ([**@​jordanstephens**](https://github.com/jordanstephens))
- [#​4472](https://github.com/mochajs/mocha/issues/4472): Leading dots (e.g., `.js`, `.test.js`) now usable with `--extension` option ([**@​boneskull**](https://github.com/boneskull))
- [#​4434](https://github.com/mochajs/mocha/issues/4434): Output of `json` reporter now contains `speed` ("fast"/"medium"/"slow") property ([**@​wwhurin**](https://github.com/wwhurin))
- [#​4464](https://github.com/mochajs/mocha/issues/4464): Errors thrown by serializer in parallel mode now have error codes ([**@​evaline-ju**](https://github.com/evaline-ju))
*For implementors of custom reporters:*
- [#​4409](https://github.com/mochajs/mocha/issues/4409): Parallel mode and custom reporter improvements ([**@​boneskull**](https://github.com/boneskull)):
- Support custom worker-process-only reporters (`Runner.prototype.workerReporter()`); reporters should subclass `ParallelBufferedReporter` in `mocha/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 consuming `Runner` event data
- Enable detection of parallel mode (`Runner.prototype.isParallelMode()`)
#### :bug: Fixes
- [#​4476](https://github.com/mochajs/mocha/issues/4476): Workaround for profoundly bizarre issue affecting `npm` v6.x causing some of Mocha's deps to be installed when `mocha` is present in a package's `devDependencies` and `npm install --production` is run the package's working copy ([**@​boneskull**](https://github.com/boneskull))
- [#​4465](https://github.com/mochajs/mocha/issues/4465): Worker processes guaranteed (as opposed to "very likely") to exit before Mocha does; fixes a problem when using `nyc` with Mocha in parallel mode ([**@​boneskull**](https://github.com/boneskull))
- [#​4419](https://github.com/mochajs/mocha/issues/4419): Restore `lookupFiles()` in `mocha/lib/utils`, which was broken/missing in Mocha v8.1.0; it now prints a deprecation warning (use `const {lookupFiles} = require('mocha/lib/cli')` instead) ([**@​boneskull**](https://github.com/boneskull))
Thanks to [**@​AviVahl**](https://github.com/AviVahl), [**@​donghoon-song**](https://github.com/donghoon-song), [**@​ValeriaVG**](https://github.com/ValeriaVG), [**@​znarf**](https://github.com/znarf), [**@​sujin-park**](https://github.com/sujin-park), and [**@​majecty**](https://github.com/majecty) for other helpful contributions!
### [`v8.1.3`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​813--2020-08-28)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.1.2...v8.1.3)
#### :bug: Fixes
- [#​4425](https://github.com/mochajs/mocha/issues/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; use `require('mocha/lib/cli').lookupFiles` instead ([**@​boneskull**](https://github.com/boneskull))
### [`v8.1.2`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​812--2020-08-25)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.1.1...v8.1.2)
#### :bug: Fixes
- [#​4418](https://github.com/mochajs/mocha/issues/4418): Fix command-line flag incompatibility in forthcoming Node.js v14.9.0 ([**@​boneskull**](https://github.com/boneskull))
- [#​4401](https://github.com/mochajs/mocha/issues/4401): Fix missing global variable in browser ([**@​irrationnelle**](https://github.com/irrationnelle))
#### :lock: Security Fixes
- [#​4396](https://github.com/mochajs/mocha/issues/4396): Update many dependencies ([**@​GChuf**](https://github.com/GChuf))
#### :book: Documentation
- Various fixes by [**@​sujin-park**](https://github.com/sujin-park), [**@​wwhurin**](https://github.com/wwhurin) & [**@​Donghoon759**](https://github.com/Donghoon759)
### [`v8.1.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​811--2020-08-04)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.1.0...v8.1.1)
#### :bug: Fixes
- [#​4394](https://github.com/mochajs/mocha/issues/4394): Fix regression wherein certain reporters did not correctly detect terminal width ([**@​boneskull**](https://github.com/boneskull))
### [`v8.1.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​810--2020-07-30)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.0.1...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](https://github.com/mochajs/mocha/issues/new?labels=unconfirmed-bug\&template=bug_report.md\&title=).
This release **does not** drop support for IE11.
Other community contributions came from [**@​Devjeel**](https://github.com/Devjeel), [**@​Harsha509**](https://github.com/Harsha509) and [**@​sharath2106**](https://github.com/sharath2106). *Thank you* to everyone who contributed to this release!
> Do you read Korean? See [this guide to running parallel tests in Mocha](https://blog.outsider.ne.kr/1489), translated by our maintainer, [**@​outsideris**](https://github.com/outsideris).
#### :tada: Enhancements
- [#​4287](https://github.com/mochajs/mocha/issues/4287): Use background colors with inline diffs for better visual distinction ([**@​michael-brade**](https://github.com/michael-brade))
#### :bug: Fixes
- [#​4328](https://github.com/mochajs/mocha/issues/4328): Fix "watch" mode when Mocha run in parallel ([**@​boneskull**](https://github.com/boneskull))
- [#​4382](https://github.com/mochajs/mocha/issues/4382): Fix root hook execution in "watch" mode ([**@​indieisaconcept**](https://github.com/indieisaconcept))
- [#​4383](https://github.com/mochajs/mocha/issues/4383): Consistent auto-generated hook titles ([**@​cspotcode**](https://github.com/cspotcode))
- [#​4359](https://github.com/mochajs/mocha/issues/4359): Better errors when running `mocha init` ([**@​boneskull**](https://github.com/boneskull))
- [#​4341](https://github.com/mochajs/mocha/issues/4341): Fix weirdness when using `delay` option in browser ([**@​craigtaub**](https://github.com/craigtaub))
#### :lock: Security Fixes
- [#​4378](https://github.com/mochajs/mocha/issues/4378), [#​4333](https://github.com/mochajs/mocha/issues/4333): Update [javascript-serialize](https://npm.im/javascript-serialize) ([**@​martinoppitz**](https://github.com/martinoppitz), [**@​wnghdcjfe**](https://github.com/wnghdcjfe))
- [#​4354](https://github.com/mochajs/mocha/issues/4354): Update [yargs-unparser](https://npm.im/yargs-unparser) ([**@​martinoppitz**](https://github.com/martinoppitz))
#### :book: Documentation & Website
- [#​4173](https://github.com/mochajs/mocha/issues/4173): Document how to use `--enable-source-maps` with Mocha ([**@​bcoe**](https://github.com/bcoe))
- [#​4343](https://github.com/mochajs/mocha/issues/4343): Clean up some API docs ([**@​craigtaub**](https://github.com/craigtaub))
- [#​4318](https://github.com/mochajs/mocha/issues/4318): Sponsor images are now self-hosted ([**@​Munter**](https://github.com/Munter))
#### :nut_and_bolt: Other
- [#​4293](https://github.com/mochajs/mocha/issues/4293): Use Rollup and Babel in build pipeline; add source map to published files ([**@​Munter**](https://github.com/Munter))
### [`v8.0.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​801--2020-06-10)
[Compare Source](https://github.com/mochajs/mocha/compare/v8.0.0...v8.0.1)
The obligatory patch after a major.
#### :bug: Fixes
- [#​4328](https://github.com/mochajs/mocha/issues/4328): Fix `--parallel` when combined with `--watch` ([**@​boneskull**](https://github.com/boneskull))
### [`v8.0.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​800--2020-06-10)
[Compare Source](https://github.com/mochajs/mocha/compare/v7.2.0...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**](https://github.com/giltayar) and [**@​nicojs**](https://github.com/nicojs) to the maintenance team!
#### :boom: Breaking Changes
- [#​4164](https://github.com/mochajs/mocha/issues/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**](https://github.com/UlisesGascon))
- [#​4175](https://github.com/mochajs/mocha/issues/4175): Having been deprecated with a warning since v7.0.0, **`mocha.opts` is no longer supported** ([**@​juergba**](https://github.com/juergba))
:sparkles: **WORKAROUND:** Replace `mocha.opts` with a [configuration file](https://mochajs.org/#configuring-mocha-nodejs).
- [#​4260](https://github.com/mochajs/mocha/issues/4260): Remove `enableTimeout()` (`this.enableTimeout()`) from the context object ([**@​craigtaub**](https://github.com/craigtaub))
:sparkles: **WORKAROUND:** Replace usage of `this.enableTimeout(false)` in your tests with `this.timeout(0)`.
- [#​4315](https://github.com/mochajs/mocha/issues/4315): The `spec` option no longer supports a comma-delimited list of files ([**@​juergba**](https://github.com/juergba))
:sparkles: **WORKAROUND**: Use an array instead (e.g., `"spec": "foo.js,bar.js"` becomes `"spec": ["foo.js", "bar.js"]`).
- [#​4309](https://github.com/mochajs/mocha/issues/4309): Drop support for Node.js v13.x line, which is now End-of-Life ([**@​juergba**](https://github.com/juergba))
- [#​4282](https://github.com/mochajs/mocha/issues/4282): `--forbid-only` will throw an error even if exclusive tests are avoided via `--grep` or other means ([**@​arvidOtt**](https://github.com/arvidOtt))
- [#​4223](https://github.com/mochajs/mocha/issues/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**](https://github.com/juergba))
- [#​4178](https://github.com/mochajs/mocha/issues/4178): Remove previously soft-deprecated APIs ([**@​wnghdcjfe**](https://github.com/wnghdcjfe)):
- `Mocha.prototype.ignoreLeaks()`
- `Mocha.prototype.useColors()`
- `Mocha.prototype.useInlineDiffs()`
- `Mocha.prototype.hideDiff()`
#### :tada: Enhancements
- [#​4245](https://github.com/mochajs/mocha/issues/4245): Add ability to run tests in parallel for Node.js (see [docs](https://mochajs.org/#parallel-tests)) ([**@​boneskull**](https://github.com/boneskull))
:exclamation: See also [#​4244](https://github.com/mochajs/mocha/issues/4244); [Root Hook Plugins (docs)](https://mochajs.org/#root-hook-plugins) -- *root hooks must be defined via Root Hook Plugins to work in parallel mode*
- [#​4304](https://github.com/mochajs/mocha/issues/4304): `--require` now works with ES modules ([**@​JacobLey**](https://github.com/JacobLey))
- [#​4299](https://github.com/mochajs/mocha/issues/4299): In some circumstances, Mocha can run ES modules under Node.js v10 -- *use at your own risk!* ([**@​giltayar**](https://github.com/giltayar))
#### :book: Documentation
- [#​4246](https://github.com/mochajs/mocha/issues/4246): Add documentation for parallel mode and Root Hook plugins ([**@​boneskull**](https://github.com/boneskull))
#### :nut_and_bolt: Other
- [#​4200](https://github.com/mochajs/mocha/issues/4200): Drop mkdirp and replace it with fs.mkdirSync ([**@​HyunSangHan**](https://github.com/HyunSangHan))
#### :bug: Fixes
(All bug fixes in Mocha v8.0.0 are also breaking changes, and are listed above)
### [`v7.2.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​720--2020-05-22)
[Compare Source](https://github.com/mochajs/mocha/compare/v7.1.2...v7.2.0)
#### :tada: Enhancements
- [#​4234](https://github.com/mochajs/mocha/issues/4234): Add ability to run tests in a mocha instance multiple times ([**@​nicojs**](https://github.com/nicojs))
- [#​4219](https://github.com/mochajs/mocha/issues/4219): Exposing filename in JSON, doc, and json-stream reporters ([**@​Daniel0113**](https://github.com/Daniel0113))
- [#​4244](https://github.com/mochajs/mocha/issues/4244): Add Root Hook Plugins ([**@​boneskull**](https://github.com/boneskull))
#### :bug: Fixes
- [#​4258](https://github.com/mochajs/mocha/issues/4258): Fix missing dot in name of configuration file ([**@​sonicdoe**](https://github.com/sonicdoe))
- [#​4194](https://github.com/mochajs/mocha/issues/4194): Check if module.paths really exists ([**@​ematipico**](https://github.com/ematipico))
- [#​4256](https://github.com/mochajs/mocha/issues/4256): `--forbid-only` does not recognize `it.only` when `before` crashes ([**@​arvidOtt**](https://github.com/arvidOtt))
- [#​4152](https://github.com/mochajs/mocha/issues/4152): Bug with multiple async done() calls ([**@​boneskull**](https://github.com/boneskull))
- [#​4275](https://github.com/mochajs/mocha/issues/4275): Improper warnings for invalid reporters ([**@​boneskull**](https://github.com/boneskull))
- [#​4288](https://github.com/mochajs/mocha/issues/4288): Broken hook.spec.js test for IE11 ([**@​boneskull**](https://github.com/boneskull))
#### :book: Documentation
- [#​4081](https://github.com/mochajs/mocha/issues/4081): Insufficient white space for API docs in view on mobile ([**@​HyunSangHan**](https://github.com/HyunSangHan))
- [#​4255](https://github.com/mochajs/mocha/issues/4255): Update mocha-docdash for UI fixes on API docs ([**@​craigtaub**](https://github.com/craigtaub))
- [#​4235](https://github.com/mochajs/mocha/issues/4235): Enable emoji on website; enable normal ul elements ([**@​boneskull**](https://github.com/boneskull))
- [#​4272](https://github.com/mochajs/mocha/issues/4272): Fetch sponsors at build time, show ALL non-skeevy sponsors ([**@​boneskull**](https://github.com/boneskull))
#### :nut_and_bolt: Other
- [#​4249](https://github.com/mochajs/mocha/issues/4249): Refactoring improving encapsulation ([**@​arvidOtt**](https://github.com/arvidOtt))
- [#​4242](https://github.com/mochajs/mocha/issues/4242): CI add job names, add Node.js v14 to matrix ([**@​boneskull**](https://github.com/boneskull))
- [#​4237](https://github.com/mochajs/mocha/issues/4237): Refactor validatePlugins to throw coded errors ([**@​boneskull**](https://github.com/boneskull))
- [#​4236](https://github.com/mochajs/mocha/issues/4236): Better debug output ([**@​boneskull**](https://github.com/boneskull))
### [`v7.1.2`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​712--2020-04-26)
[Compare Source](https://github.com/mochajs/mocha/compare/v7.1.1...v7.1.2)
#### :nut_and_bolt: Other
- [#​4251](https://github.com/mochajs/mocha/issues/4251): Prevent karma-mocha from stalling ([**@​juergba**](https://github.com/juergba))
- [#​4222](https://github.com/mochajs/mocha/issues/4222): Update dependency mkdirp to v0.5.5 ([**@​outsideris**](https://github.com/outsideris))
#### :book: Documentation
- [#​4208](https://github.com/mochajs/mocha/issues/4208): Add Wallaby logo to site ([**@​boneskull**](https://github.com/boneskull))
### [`v7.1.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​711--2020-03-18)
[Compare Source](https://github.com/mochajs/mocha/compare/v7.1.0...v7.1.1)
#### :lock: Security Fixes
- [#​4204](https://github.com/mochajs/mocha/issues/4204): Update dependencies mkdirp, yargs-parser and yargs ([**@​juergba**](https://github.com/juergba))
#### :bug: Fixes
- [#​3660](https://github.com/mochajs/mocha/issues/3660): Fix `runner` listening to `start` and `end` events ([**@​juergba**](https://github.com/juergba))
#### :book: Documentation
- [#​4190](https://github.com/mochajs/mocha/issues/4190): Show Netlify badge on footer ([**@​outsideris**](https://github.com/outsideris))
### [`v7.1.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​710--2020-02-26)
[Compare Source](https://github.com/mochajs/mocha/compare/v7.0.1...v7.1.0)
#### :tada: Enhancements
[#​4038](https://github.com/mochajs/mocha/issues/4038): Add Node.js native ESM support ([**@​giltayar**](https://github.com/giltayar))
Mocha supports writing your test files as ES modules:
- Node.js only v12.11.0 and above
- Node.js below v13.2.0, you must set `--experimental-modules` option
- current limitations: please check our [documentation](https://mochajs.org/#nodejs-native-esm-support)
- for programmatic usage: see [API: loadFilesAsync()](https://mochajs.org/api/mocha#loadFilesAsync)
**Note:** Node.JS native [ECMAScript Modules](https://nodejs.org/api/esm.html) implementation has status: **Stability: 1 - Experimental**
#### :bug: Fixes
- [#​4181](https://github.com/mochajs/mocha/issues/4181): Programmatic API cannot access retried test objects ([**@​juergba**](https://github.com/juergba))
- [#​4174](https://github.com/mochajs/mocha/issues/4174): Browser: fix `allowUncaught` option ([**@​juergba**](https://github.com/juergba))
#### :book: Documentation
- [#​4058](https://github.com/mochajs/mocha/issues/4058): Manage author list in AUTHORS instead of `package.json` ([**@​outsideris**](https://github.com/outsideris))
#### :nut_and_bolt: Other
- [#​4138](https://github.com/mochajs/mocha/issues/4138): Upgrade ESLint v6.8 ([**@​kaicataldo**](https://github.com/kaicataldo))
### [`v7.0.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​701--2020-01-25)
[Compare Source](https://github.com/mochajs/mocha/compare/v7.0.0...v7.0.1)
#### :bug: Fixes
- [#​4165](https://github.com/mochajs/mocha/issues/4165): Fix exception when skipping tests programmatically ([**@​juergba**](https://github.com/juergba))
- [#​4153](https://github.com/mochajs/mocha/issues/4153): Restore backwards compatibility for `reporterOptions` ([**@​holm**](https://github.com/holm))
- [#​4150](https://github.com/mochajs/mocha/issues/4150): Fix recovery of an open test upon uncaught exception ([**@​juergba**](https://github.com/juergba))
- [#​4147](https://github.com/mochajs/mocha/issues/4147): Fix regression of leaking uncaught exception handler ([**@​juergba**](https://github.com/juergba))
#### :book: Documentation
- [#​4146](https://github.com/mochajs/mocha/issues/4146): Update copyright & trademark notices per OJSF ([**@​boneskull**](https://github.com/boneskull))
- [#​4140](https://github.com/mochajs/mocha/issues/4140): Fix broken links ([**@​KyoungWan**](https://github.com/KyoungWan))
#### :nut_and_bolt: Other
- [#​4133](https://github.com/mochajs/mocha/issues/4133): Print more descriptive error message ([**@​Zirak**](https://github.com/Zirak))
### [`v7.0.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​700--2020-01-05)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.2.3...v7.0.0)
#### :boom: Breaking Changes
- [#​3885](https://github.com/mochajs/mocha/issues/3885): **Drop Node.js v6.x support** ([**@​mojosoeun**](https://github.com/mojosoeun))
- [#​3890](https://github.com/mochajs/mocha/issues/3890): Remove Node.js debug-related flags `--debug`/`--debug-brk` and deprecate `debug` argument ([**@​juergba**](https://github.com/juergba))
- [#​3962](https://github.com/mochajs/mocha/issues/3962): Changes to command-line options ([**@​ParkSB**](https://github.com/ParkSB)):
- `--list-interfaces` replaces `--interfaces`
- `--list-reporters` replaces `--reporters`
- Hook pattern of `this.skip()` ([**@​juergba**](https://github.com/juergba)):
- [#​3859](https://github.com/mochajs/mocha/issues/3859): When conditionally skipping in a `it` test, related `afterEach` hooks are now executed
- [#​3741](https://github.com/mochajs/mocha/issues/3741): When conditionally skipping in a `beforeEach` hook, subsequent inner `beforeEach` hooks are now skipped and related `afterEach` hooks are executed
- [#​4136](https://github.com/mochajs/mocha/issues/4136): Disallow `this.skip()` within `after` hooks
- [#​3967](https://github.com/mochajs/mocha/issues/3967): Remove deprecated `getOptions()` and `lib/cli/options.js` ([**@​juergba**](https://github.com/juergba))
- [#​4083](https://github.com/mochajs/mocha/issues/4083): Uncaught exception in `pending` test: don't swallow, but retrospectively fail the test for correct exit code ([**@​juergba**](https://github.com/juergba))
- [#​4004](https://github.com/mochajs/mocha/issues/4004): Align `Mocha` constructor's option names with command-line options ([**@​juergba**](https://github.com/juergba))
#### :tada: Enhancements
- [#​3980](https://github.com/mochajs/mocha/issues/3980): Refactor and improve `--watch` mode with chokidar ([**@​geigerzaehler**](https://github.com/geigerzaehler)):
- adds command-line options `--watch-files` and `--watch-ignore`
- removes `--watch-extensions`
- [#​3979](https://github.com/mochajs/mocha/issues/3979): Type "rs\n" to restart tests ([**@​broofa**](https://github.com/broofa))
#### :fax: Deprecations
These are *soft*-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha:
- [#​3968](https://github.com/mochajs/mocha/issues/3968): Deprecate legacy configuration via `mocha.opts` ([**@​juergba**](https://github.com/juergba))
#### :bug: Fixes
- [#​4125](https://github.com/mochajs/mocha/issues/4125): Fix timeout handling with `--inspect-brk`/`--inspect` ([**@​juergba**](https://github.com/juergba))
- [#​4070](https://github.com/mochajs/mocha/issues/4070): `Mocha` constructor: improve browser setup ([**@​juergba**](https://github.com/juergba))
- [#​4068](https://github.com/mochajs/mocha/issues/4068): XUnit reporter should handle exceptions during diff generation ([**@​rgroothuijsen**](https://github.com/rgroothuijsen))
- [#​4030](https://github.com/mochajs/mocha/issues/4030): Fix `--allow-uncaught` with `this.skip()` ([**@​juergba**](https://github.com/juergba))
#### :mag: Coverage
- [#​4109](https://github.com/mochajs/mocha/issues/4109): Add Node.js v13.x to CI test matrix ([**@​juergba**](https://github.com/juergba))
#### :book: Documentation
- [#​4129](https://github.com/mochajs/mocha/issues/4129): Fix broken links ([**@​SaeromB**](https://github.com/SaeromB))
- [#​4127](https://github.com/mochajs/mocha/issues/4127): Add reporter alias names to docs ([**@​khg0712**](https://github.com/khg0712))
- [#​4101](https://github.com/mochajs/mocha/issues/4101): Clarify invalid usage of `done()` ([**@​jgehrcke**](https://github.com/jgehrcke))
- [#​4092](https://github.com/mochajs/mocha/issues/4092): Replace `:coffee:` with emoji ☕️ ([**@​pzrq**](https://github.com/pzrq))
- [#​4088](https://github.com/mochajs/mocha/issues/4088): Initial draft of project charter ([**@​boneskull**](https://github.com/boneskull))
- [#​4066](https://github.com/mochajs/mocha/issues/4066): Change `sh` to `bash` for code block in docs/index.md ([**@​HyunSangHan**](https://github.com/HyunSangHan))
- [#​4045](https://github.com/mochajs/mocha/issues/4045): Update README.md concerning GraphicsMagick installation ([**@​HyunSangHan**](https://github.com/HyunSangHan))
- [#​3988](https://github.com/mochajs/mocha/issues/3988): Fix sponsors background color for readability ([**@​outsideris**](https://github.com/outsideris))
#### :nut_and_bolt: Other
- [#​4118](https://github.com/mochajs/mocha/issues/4118): Update node-environment-flags to 1.0.6 ([**@​kylef**](https://github.com/kylef))
- [#​4097](https://github.com/mochajs/mocha/issues/4097): Add GH Funding Metadata ([**@​SheetJSDev**](https://github.com/SheetJSDev))
- [#​4089](https://github.com/mochajs/mocha/issues/4089): Add funding information to `package.json` ([**@​Munter**](https://github.com/Munter))
- [#​4077](https://github.com/mochajs/mocha/issues/4077): Improve integration tests ([**@​soobing**](https://github.com/soobing))
### [`v6.2.3`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​623--2020-03-25)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.2.2...v6.2.3)
#### :lock: Security Fixes
- [848d6fb8](https://github.com/mochajs/mocha/commit/848d6fb8feef659564b296db457312d38176910d): Update dependencies mkdirp, yargs-parser and yargs ([**@​juergba**](https://github.com/juergba))
### [`v6.2.2`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​622--2019-10-18)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.2.1...v6.2.2)
#### :bug: Fixes
- [#​4025](https://github.com/mochajs/mocha/issues/4025): Fix duplicate `EVENT_RUN_END` events upon uncaught exception ([**@​juergba**](https://github.com/juergba))
- [#​4051](https://github.com/mochajs/mocha/issues/4051): Fix "unhide" function in `html` reporter (browser) ([**@​pec9399**](https://github.com/pec9399))
- [#​4063](https://github.com/mochajs/mocha/issues/4063): Fix use of [esm](https://npm.im/esm) in Node.js v8.x ([**@​boneskull**](https://github.com/boneskull))
- [#​4033](https://github.com/mochajs/mocha/issues/4033): Fix output when multiple async exceptions are thrown ([**@​juergba**](https://github.com/juergba))
#### :book: Documentation
- [#​4046](https://github.com/mochajs/mocha/issues/4046): Site accessibility fixes ([**@​Mia-jeong**](https://github.com/Mia-jeong))
- [#​4026](https://github.com/mochajs/mocha/issues/4026): Update docs for custom reporters in browser ([**@​Lindsay-Needs-Sleep**](https://github.com/Lindsay-Needs-Sleep))
- [#​3971](https://github.com/mochajs/mocha/issues/3971): Adopt new OpenJS Foundation Code of Conduct ([**@​craigtaub**](https://github.com/craigtaub))
### [`v6.2.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​621--2019-09-29)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.2.0...v6.2.1)
#### :bug: Fixes
- [#​3955](https://github.com/mochajs/mocha/issues/3955): tty.getWindowSize is not a function inside a "worker_threads" worker ([**@​1999**](https://github.com/1999))
- [#​3970](https://github.com/mochajs/mocha/issues/3970): remove extraGlobals() ([**@​juergba**](https://github.com/juergba))
- [#​3984](https://github.com/mochajs/mocha/issues/3984): Update yargs-unparser to v1.6.0 ([**@​juergba**](https://github.com/juergba))
- [#​3983](https://github.com/mochajs/mocha/issues/3983): Package 'esm': spawn child-process for correct loading ([**@​juergba**](https://github.com/juergba))
- [#​3986](https://github.com/mochajs/mocha/issues/3986): Update yargs to v13.3.0 and yargs-parser to v13.1.1 ([**@​juergba**](https://github.com/juergba))
#### :book: Documentation
- [#​3886](https://github.com/mochajs/mocha/issues/3886): fix styles on mochajs.org ([**@​outsideris**](https://github.com/outsideris))
- [#​3966](https://github.com/mochajs/mocha/issues/3966): Remove jsdoc index.html placeholder from eleventy file structure and fix broken link in jsdoc tutorial ([**@​Munter**](https://github.com/Munter))
- [#​3765](https://github.com/mochajs/mocha/issues/3765): Add Matomo to website ([**@​MarioDiaz98**](https://github.com/MarioDiaz98))
- [#​3947](https://github.com/mochajs/mocha/issues/3947): Clarify effect of .skip() ([**@​oliversalzburg**](https://github.com/oliversalzburg))
### [`v6.2.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​620--2019-07-18)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.1.4...v6.2.0)
#### :tada: Enhancements
- [#​3827](https://github.com/mochajs/mocha/issues/3827): Do not fork child-process if no Node flags are present ([**@​boneskull**](https://github.com/boneskull))
- [#​3725](https://github.com/mochajs/mocha/issues/3725): Base reporter store ref to console.log, see [mocha/wiki](https://github.com/mochajs/mocha/wiki/HOW-TO:-Correctly-stub-stdout) ([**@​craigtaub**](https://github.com/craigtaub))
#### :bug: Fixes
- [#​3942](https://github.com/mochajs/mocha/issues/3942): Fix "No test files found" Error when file is passed via `--file` ([**@​gabegorelick**](https://github.com/gabegorelick))
- [#​3914](https://github.com/mochajs/mocha/issues/3914): Modify Mocha constructor to accept options `global` or `globals` ([**@​pascalpp**](https://github.com/pascalpp))
- [#​3894](https://github.com/mochajs/mocha/issues/3894): Fix parsing of config files with `_mocha` binary ([**@​juergba**](https://github.com/juergba))
- [#​3834](https://github.com/mochajs/mocha/issues/3834): Fix CLI parsing with default values ([**@​boneskull**](https://github.com/boneskull), [**@​juergba**](https://github.com/juergba))
- [#​3831](https://github.com/mochajs/mocha/issues/3831): Fix `--timeout`/`--slow` string values and duplicate arguments ([**@​boneskull**](https://github.com/boneskull), [**@​juergba**](https://github.com/juergba))
#### :book: Documentation
- [#​3906](https://github.com/mochajs/mocha/issues/3906): Document option to define custom report name for XUnit reporter ([**@​pkuczynski**](https://github.com/pkuczynski))
- [#​3889](https://github.com/mochajs/mocha/issues/3889): Adds doc links for mocha-examples ([**@​craigtaub**](https://github.com/craigtaub))
- [#​3887](https://github.com/mochajs/mocha/issues/3887): Fix broken links ([**@​toyjhlee**](https://github.com/toyjhlee))
- [#​3841](https://github.com/mochajs/mocha/issues/3841): Fix anchors to configuration section ([**@​trescube**](https://github.com/trescube))
#### :mag: Coverage
- [#​3915](https://github.com/mochajs/mocha/issues/3915), [#​3929](https://github.com/mochajs/mocha/issues/3929): Increase tests coverage for `--watch` options ([**@​geigerzaehler**](https://github.com/geigerzaehler))
#### :nut_and_bolt: Other
- [#​3953](https://github.com/mochajs/mocha/issues/3953): Collect test files later, prepares improvements to the `--watch` mode behavior ([**@​geigerzaehler**](https://github.com/geigerzaehler))
- [#​3939](https://github.com/mochajs/mocha/issues/3939): Upgrade for npm audit ([**@​boneskull**](https://github.com/boneskull))
- [#​3930](https://github.com/mochajs/mocha/issues/3930): Extract `runWatch` into separate module ([**@​geigerzaehler**](https://github.com/geigerzaehler))
- [#​3922](https://github.com/mochajs/mocha/issues/3922): Add `mocha.min.js` file to stacktrace filter ([**@​brian-lagerman**](https://github.com/brian-lagerman))
- [#​3919](https://github.com/mochajs/mocha/issues/3919): Update CI config files to use Node-12.x ([**@​plroebuck**](https://github.com/plroebuck))
- [#​3892](https://github.com/mochajs/mocha/issues/3892): Rework reporter tests ([**@​plroebuck**](https://github.com/plroebuck))
- [#​3872](https://github.com/mochajs/mocha/issues/3872): Rename `--exclude` to `--ignore` and create alias ([**@​boneskull**](https://github.com/boneskull))
- [#​3963](https://github.com/mochajs/mocha/issues/3963): Hide stacktrace when cli args are missing ([**@​outsideris**](https://github.com/outsideris))
- [#​3956](https://github.com/mochajs/mocha/issues/3956): Do not redeclare variable in docs array example ([**@​DanielRuf**](https://github.com/DanielRuf))
- [#​3957](https://github.com/mochajs/mocha/issues/3957): Remove duplicate line-height property in `mocha.css` ([**@​DanielRuf**](https://github.com/DanielRuf))
- [#​3960](https://github.com/mochajs/mocha/issues/3960): Don't re-initialize grep option on watch re-run ([**@​geigerzaehler**](https://github.com/geigerzaehler))
### [`v6.1.4`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​614--2019-04-18)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.1.3...v6.1.4)
#### :lock: Security Fixes
- [#​3877](https://github.com/mochajs/mocha/issues/3877): Upgrade [js-yaml](https://npm.im/js-yaml), addressing [code injection vulnerability](https://www.npmjs.com/advisories/813) ([**@​bjornstar**](https://github.com/bjornstar))
### [`v6.1.3`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​613--2019-04-11)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.1.2...v6.1.3)
#### :bug: Fixes
- [#​3863](https://github.com/mochajs/mocha/issues/3863): Fix `yargs`-related global scope pollution ([**@​inukshuk**](https://github.com/inukshuk))
- [#​3869](https://github.com/mochajs/mocha/issues/3869): Fix failure when installed w/ `pnpm` ([**@​boneskull**](https://github.com/boneskull))
### [`v6.1.2`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​612--2019-04-08)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.1.1...v6.1.2)
#### :bug: Fixes
- [#​3867](https://github.com/mochajs/mocha/issues/3867): Re-publish v6.1.1 from POSIX OS to avoid dropped executable flags ([**@​boneskull**](https://github.com/boneskull))
### [`v6.1.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​611--2019-04-07)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.1.0...v6.1.1)
#### :bug: Fixes
- [#​3866](https://github.com/mochajs/mocha/issues/3866): Fix Windows End-of-Line publishing issue ([**@​juergba**](https://github.com/juergba) & [**@​cspotcode**](https://github.com/cspotcode))
### [`v6.1.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​610--2019-04-07)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.0.2...v6.1.0)
#### :lock: Security Fixes
- [#​3845](https://github.com/mochajs/mocha/issues/3845): Update dependency "js-yaml" to v3.13.0 per npm security advisory ([**@​plroebuck**](https://github.com/plroebuck))
#### :tada: Enhancements
- [#​3766](https://github.com/mochajs/mocha/issues/3766): Make reporter constructor support optional `options` parameter ([**@​plroebuck**](https://github.com/plroebuck))
- [#​3760](https://github.com/mochajs/mocha/issues/3760): Add support for config files with `.jsonc` extension ([**@​sstephant**](https://github.com/sstephant))
#### :fax: Deprecations
These are *soft*-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha:
- [#​3719](https://github.com/mochajs/mocha/issues/3719): Deprecate `this.skip()` for "after all" hooks ([**@​juergba**](https://github.com/juergba))
#### :bug: Fixes
- [#​3829](https://github.com/mochajs/mocha/issues/3829): Use cwd-relative pathname to load config file ([**@​plroebuck**](https://github.com/plroebuck))
- [#​3745](https://github.com/mochajs/mocha/issues/3745): Fix async calls of `this.skip()` in "before each" hooks ([**@​juergba**](https://github.com/juergba))
- [#​3669](https://github.com/mochajs/mocha/issues/3669): Enable `--allow-uncaught` for uncaught exceptions thrown inside hooks ([**@​givanse**](https://github.com/givanse))
and some regressions:
- [#​3848](https://github.com/mochajs/mocha/issues/3848): Fix `Suite` cloning by copying `root` property ([**@​fatso83**](https://github.com/fatso83))
- [#​3816](https://github.com/mochajs/mocha/issues/3816): Guard against undefined timeout option ([**@​boneskull**](https://github.com/boneskull))
- [#​3814](https://github.com/mochajs/mocha/issues/3814): Update "yargs" in order to avoid deprecation message ([**@​boneskull**](https://github.com/boneskull))
- [#​3788](https://github.com/mochajs/mocha/issues/3788): Fix support for multiple node flags ([**@​aginzberg**](https://github.com/aginzberg))
#### :book: Documentation
- [mochajs/mocha-examples](https://github.com/mochajs/mocha-examples): New repository of working examples of common configurations using mocha ([**@​craigtaub**](https://github.com/craigtaub))
- [#​3850](https://github.com/mochajs/mocha/issues/3850): Remove pound icon showing on header hover on docs ([**@​jd2rogers2**](https://github.com/jd2rogers2))
- [#​3812](https://github.com/mochajs/mocha/issues/3812): Add autoprefixer to documentation page CSS ([**@​Munter**](https://github.com/Munter))
- [#​3811](https://github.com/mochajs/mocha/issues/3811): Update doc examples "tests.html" ([**@​DavidLi119**](https://github.com/DavidLi119))
- [#​3807](https://github.com/mochajs/mocha/issues/3807): Mocha website HTML tweaks ([**@​plroebuck**](https://github.com/plroebuck))
- [#​3793](https://github.com/mochajs/mocha/issues/3793): Update config file example ".mocharc.yml" ([**@​cspotcode**](https://github.com/cspotcode))
#### :nut_and_bolt: Other
- [#​3830](https://github.com/mochajs/mocha/issues/3830): Replace dependency "findup-sync" with "find-up" for faster startup ([**@​cspotcode**](https://github.com/cspotcode))
- [#​3799](https://github.com/mochajs/mocha/issues/3799): Update devDependencies to fix many npm vulnerabilities ([**@​XhmikosR**](https://github.com/XhmikosR))
### [`v6.0.2`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​602--2019-02-25)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.0.1...v6.0.2)
#### :bug: Fixes
Two more regressions fixed:
- [#​3768](https://github.com/mochajs/mocha/issues/3768): Test file paths no longer dropped from `mocha.opts` ([**@​boneskull**](https://github.com/boneskull))
- [#​3767](https://github.com/mochajs/mocha/issues/3767): `--require` does not break on module names that look like certain `node` flags ([**@​boneskull**](https://github.com/boneskull))
### [`v6.0.1`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​601--2019-02-21)
[Compare Source](https://github.com/mochajs/mocha/compare/v6.0.0...v6.0.1)
The obligatory round of post-major-release bugfixes.
#### :bug: Fixes
These issues were regressions.
- [#​3754](https://github.com/mochajs/mocha/issues/3754): Mocha again finds `test.js` when run without arguments ([**@​plroebuck**](https://github.com/plroebuck))
- [#​3756](https://github.com/mochajs/mocha/issues/3756): Mocha again supports third-party interfaces via `--ui` ([**@​boneskull**](https://github.com/boneskull))
- [#​3755](https://github.com/mochajs/mocha/issues/3755): Fix broken `--watch` ([**@​boneskull**](https://github.com/boneskull))
- [#​3759](https://github.com/mochajs/mocha/issues/3759): Fix unwelcome deprecation notice when Mocha run against languages (CoffeeScript) with implicit return statements; *returning a non-`undefined` value from a `describe` callback is no longer considered deprecated* ([**@​boneskull**](https://github.com/boneskull))
#### :book: Documentation
- [#​3738](https://github.com/mochajs/mocha/issues/3738): Upgrade to `@mocha/docdash@2` ([**@​tendonstrength**](https://github.com/tendonstrength))
- [#​3751](https://github.com/mochajs/mocha/issues/3751): Use preferred names for example config files ([**@​Szauka**](https://github.com/Szauka))
### [`v6.0.0`](https://github.com/mochajs/mocha/blob/HEAD/CHANGELOG.md#​600--2019-02-18)
[Compare Source](https://github.com/mochajs/mocha/compare/v5.2.0...v6.0.0)
#### :tada: Enhancements
- [#​3726](https://github.com/mochajs/mocha/issues/3726): Add ability to unload files from `require` cache ([**@​plroebuck**](https://github.com/plroebuck))
#### :bug: Fixes
- [#​3737](https://github.com/mochajs/mocha/issues/3737): Fix falsy values from options globals ([**@​plroebuck**](https://github.com/plroebuck))
- [#​3707](https://github.com/mochajs/mocha/issues/3707): Fix encapsulation issues for `Suite#_onlyTests` and `Suite#_onlySuites` ([**@​vkarpov15**](https://github.com/vkarpov15))
- [#​3711](https://github.com/mochajs/mocha/issues/3711): Fix diagnostic messages dealing with plurality and markup of output ([**@​plroebuck**](https://github.com/plroebuck))
- [#​3723](https://github.com/mochajs/mocha/issues/3723): Fix "reporter-option" to allow comma-separated options ([**@​boneskull**](https://github.com/boneskull))
- [#​3722](https://github.com/mochajs/mocha/issues/3722): Fix code quality and performance of `lookupFiles` and `files` ([**@​plroebuck**](https://github.com/plroebuck))
- [#​3650](https://github.com/mochajs/mocha/issues/3650), [#​3654](https://github.com/mochajs/mocha/issues/3654): Fix noisy error message when no files found ([**@​craigtaub**](https://github.com/craigtaub))
- [#​3632](https://github.com/mochajs/mocha/issues/3632): Tests having an empty title are no longer confused with the "root" suite ([**@​juergba**](https://github.com/juergba))
- [#​3666](https://github.com/mochajs/mocha/issues/3666): Fix missing error codes ([**@​vkarpov15**](https://github.com/vkarpov15))
- [#​3684](https://github.com/mochajs/mocha/issues/3684): Fix exiting problem in Node.js v11.7.0+ ([**@​addaleax**](https://github.com/addaleax))
- [#​3691](https://github.com/mochajs/mocha/issues/3691): Fix `--delay` (and other boolean options) not working in all cases ([**@​boneskull**](https://github.com/boneskull))
- [#​3692](https://github.com/mochajs/mocha/issues/3692): Fix invalid command-line argument usage not causing actual errors ([**@​boneskull**](https://github.com/boneskull))
- [#​3698](https://github.com/mochajs/mocha/issues/3698), [#​3699](https://github.com/mochajs/mocha/issues/3699): Fix debug-related Node.js options not working in all cases ([**@​boneskull**](https://github.com/boneskull))
- [#​3700](https://github.com/mochajs/mocha/issues/3700): Growl notifications now show the correct number of tests run ([**@​outsideris**](https://github.com/outsideris))
- [#​3686](https://github.com/mochajs/mocha/issues/3686): Avoid potential ReDoS when diffing large objects ([**@​cyjake**](https://github.com/cyjake))
- [#​3715](https://github.com/mochajs/mocha/issues/3715): Fix incorrect order of emitted events when used programmatically ([**@​boneskull**](https://github.com/boneskull))
- [#​3706](https://github.com/mochajs/mocha/issues/3706): Fix regression wherein `--reporter-option`/`--reporter-options` did not support comma-separated key/value pairs ([**@​boneskull**](https://github.com/boneskull))
#### :book: Documentation
- [#​3652](https://github.com/mochajs/mocha/issues/3652): Switch from Jekyll to Eleventy ([**@​Munter**](https://github.com/Munter))
#### :nut_and_bolt: Other
- [#​3677](https://github.com/mochajs/mocha/issues/3677): Add error objects for createUnsupportedError and createInvalidExceptionError ([**@​boneskull**](https://github.com/boneskull))
- [#​3733](https://github.com/mochajs/mocha/issues/3733): Removed unnecessary processing in post-processing hook ([**@​wanseob**](https://github.com/wanseob))
- [#​3730](https://github.com/mochajs/mocha/issues/3730): Update nyc to latest version ([**@​coreyfarrell**](https://github.com/coreyfarrell))
- [#​3648](https://github.com/mochajs/mocha/issues/3648), [#​3680](https://github.com/mochajs/mocha/issues/3680): Fixes to support latest versions of [unexpected](https://npm.im/unexpected) and [unexpected-sinon](https://npm.im/unexpected-sinon) ([**@​sunesimonsen**](https://github.com/sunesimonsen))
- [#​3638](https://github.com/mochajs/mocha/issues/3638): Add meta tag to site ([**@​MartijnCuppens**](https://github.com/MartijnCuppens))
- [#​3653](https://github.com/mochajs/mocha/issues/3653): Fix parts of test suite failing to run on Windows ([**@​boneskull**](https://github.com/boneskull))
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1591Update dependency focus-trap to v6 (develop) - autoclosed2022-02-03T01:03:28ZRenovateBotUpdate dependency focus-trap to v6 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [focus-trap](https://github.com/focus-trap/focus-trap) | dependencies | major | [`5.1.0` -> `6.7.2`](https://renovatebot.com/diffs/npm/focu...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [focus-trap](https://github.com/focus-trap/focus-trap) | dependencies | major | [`5.1.0` -> `6.7.2`](https://renovatebot.com/diffs/npm/focus-trap/5.1.0/6.7.2) |
---
### Release Notes
<details>
<summary>focus-trap/focus-trap</summary>
### [`v6.7.2`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​672)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.7.1...v6.7.2)
##### Patch Changes
- [`c932330`](https://github.com/focus-trap/focus-trap/commit/c932330): Fixed bug where tabbing forward from an element with negative tabindex that is last in the trap would result in focus remaining on that element ([565](https://github.com/focus-trap/focus-trap/issues/565))
### [`v6.7.1`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​671)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.7.0...v6.7.1)
##### Patch Changes
- [`28a069f`](https://github.com/focus-trap/focus-trap/commit/28a069f): Fix bug from [#​504](https://github.com/focus-trap/focus-trap/issues/504) where it's no longer possible to create a trap without any options \[[#​525](https://github.com/focus-trap/focus-trap/issues/525)]
### [`v6.7.0`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​670)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.6.1...v6.7.0)
##### Minor Changes
- [`893dd2c`](https://github.com/focus-trap/focus-trap/commit/893dd2c): Add `document` option to support focus traps inside `<iframe>` elements ([#​97](https://github.com/focus-trap/focus-trap/issues/97))
- [`244f0c1`](https://github.com/focus-trap/focus-trap/commit/244f0c1): Extend the `setReturnFocus` option to receive a reference to the element that had focus prior to the trap being activated when a function is specified. Additionally, the function can now return `false` to leave focus where it is at the time of deactivation. ([#​485](https://github.com/focus-trap/focus-trap/issues/485))
##### Patch Changes
- [`60162eb`](https://github.com/focus-trap/focus-trap/commit/60162eb): Fix bug where `KeyboardEvent` was not being passed to `escapeDeactivates` option when it's a function ([#​498](https://github.com/focus-trap/focus-trap/issues/498))
- [`7b6abfa`](https://github.com/focus-trap/focus-trap/commit/7b6abfa): Fix how focus-trap determines the event's target, which was preventing traps inside open shadow DOMs from working properly ([#​496](https://github.com/focus-trap/focus-trap/issues/496))
- [`14b0ee8`](https://github.com/focus-trap/focus-trap/commit/14b0ee8): Fix `initialFocus` option not supporting function returning `false` as documented ([#​490](https://github.com/focus-trap/focus-trap/issues/490))
### [`v6.6.1`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​661)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.6.0...v6.6.1)
##### Patch Changes
- [`24063d7`](https://github.com/focus-trap/focus-trap/commit/24063d7): Update tabbable to v5.2.1 to get bug fix for disabled fieldsets.
### [`v6.6.0`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​660)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.5.1...v6.6.0)
##### Minor Changes
- [`281e66c`](https://github.com/focus-trap/focus-trap/commit/281e66c): Add option to allow no initial focus when trap activates via `initialFocus: false`
There may be cases where we don't want to focus the first tabbable element when a focus trap activates.
Examples use-cases:
- Modals/dialogs
- On mobile devices where "tabbing" doesn't make sense without a connected Bluetooth keyboard
In addition, this change ensures that any element inside the trap manually focused outside of `focus-trap` code will be brought back in focus if focus is somehow found outside of the trap.
Example usage:
When the trap activates, there will be no initially focused element inside the new trap.
```js
const focusTrap = createFocusTrap('#some-container', {
initialFocus: false,
});
```
- [`75be463`](https://github.com/focus-trap/focus-trap/commit/75be463): `escapeDeactivates` can now be either a boolean (as before) or a function that takes an event and returns a boolean.
##### Patch Changes
- [`e2294f0`](https://github.com/focus-trap/focus-trap/commit/e2294f0): Fix race condition when activating a second trap where initial focus in the second trap may be thwarted because pausing of first trap clears the `delayInitialFocus` timer created for the second trap before during its activation sequence.
### [`v6.5.1`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​651)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.5.0...v6.5.1)
##### Patch Changes
- [`c38bf3f`](https://github.com/focus-trap/focus-trap/commit/c38bf3f): onPostDeactivate should always be called even if returnFocus/OnDeactivate is disabled.
### [`v6.5.0`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​650)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.4.0...v6.5.0)
##### Minor Changes
- [`278e77e`](https://github.com/focus-trap/focus-trap/commit/278e77e): Adding 4 new configuration event options to improve support for animated dialogs and animated focus trap triggers: `checkCanFocusTrap()`, `onPostActivate()`, `checkCanReturnFocus()`, and `onPostDeactivate()`.
##### Patch Changes
- [`8d11e15`](https://github.com/focus-trap/focus-trap/commit/8d11e15): Improve docs and types for most options, adding `SVGElement` as a supported type of "DOM node" since it supports the `focus()` method, same as `HTMLElement`.
### [`v6.4.0`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​640)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.3.0...v6.4.0)
##### Minor Changes
- [`21c82ce`](https://github.com/focus-trap/focus-trap/commit/21c82ce): Bump tabbable from 5.1.6 to 5.2.0. There should be no changes in behavior as a result of this upgrade as `focus-trap` does not currently leverage the new `displayCheck` option.
##### Patch Changes
- [`1baf62e`](https://github.com/focus-trap/focus-trap/commit/1baf62e): Fix focus trapped on initial focus container with tabindex=-1 when pressing shift+tab ([#​363](https://github.com/focus-trap/focus-trap/issues/363))
### [`v6.3.0`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​630)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.2.3...v6.3.0)
##### Minor Changes
- [`a882d62`](https://github.com/focus-trap/focus-trap/commit/a882d62): `clickOutsideDeactivates` can now also be a function that returns a `boolean`, similar to `allowOutsideClick`. The function receives the `MouseEvent` that triggered the click. ([#​289](https://github.com/focus-trap/focus-trap/issues/289))
##### Patch Changes
- [`4d67dee`](https://github.com/focus-trap/focus-trap/commit/4d67dee): Fix a focus escape when pressing TAB after hiding element with focus ([#​281](https://github.com/focus-trap/focus-trap/issues/281))
- [`ca32014`](https://github.com/focus-trap/focus-trap/commit/ca32014): Bump tabbable from 5.1.4 to 5.1.5
### [`v6.2.3`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​623)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.2.2...v6.2.3)
##### Patch Changes
- [`036a72e`](https://github.com/focus-trap/focus-trap/commit/036a72e): Fix crash in IE due to use of `Array.findIndex()` not supported in that browser ([#​257](https://github.com/focus-trap/focus-trap/issues/257))
### [`v6.2.2`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​622)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.2.1...v6.2.2)
##### Patch Changes
- [`fd3f2d1`](https://github.com/focus-trap/focus-trap/commit/fd3f2d1): Fix a bug where a multi-container trap would cease to work if all tabbable nodes were removed from one of the containers (fixes [#​223](https://github.com/focus-trap/focus-trap/issues/223)). As a result, an error is now thrown if the trap is left in a state where none of its containers contain any tabbable nodes (unless a `fallbackFocus` node has been configured in the trap's options). Also, the most-recently-focused node is more reliably tracked now, should focus somehow escape the trap and be brought back in by the trap, resulting in the truly most-recently-focused node to regain focus if that ever happens.
### [`v6.2.1`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​621)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.2.0...v6.2.1)
##### Patch Changes
- [`f0c2aff`](https://github.com/focus-trap/focus-trap/commit/f0c2aff): Bump tabbable to [5.1.4](https://github.com/focus-trap/tabbable/blob/master/CHANGELOG.md#​514) for bug fix.
- [`2ba512b`](https://github.com/focus-trap/focus-trap/commit/2ba512b):
- Refactored code to use function declarations instead of hoisted functions (this should have no bearing on functionality in the build output included in `./dist`.
- Fixed bugs where `trap.activate()` and `trap.deactivate()` would not always return the trap (now they do in all circumstances).
- [`d26d2e1`](https://github.com/focus-trap/focus-trap/commit/d26d2e1): Refactoring to use const/let, and simplify a few lines. This does NOT impact the build output published in `./dist`, however, and hence does not impact browser support.
### [`v6.2.0`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​620)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.1.4...v6.2.0)
##### Minor Changes
- [`2267d17`](https://github.com/focus-trap/focus-trap/commit/2267d17): Adding support for multiple elements to be passed in [#​217](https://github.com/focus-trap/focus-trap/issues/217)
### [`v6.1.4`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​614)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.1.3...v6.1.4)
##### Patch Changes
- [`38b6b98`](https://github.com/focus-trap/focus-trap/commit/38b6b98): Update tabbable to [5.1.3](https://github.com/focus-trap/tabbable/blob/master/CHANGELOG.md#​513) to get bug fixes related to detail and summary elements.
### [`v6.1.3`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​613)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.1.2...v6.1.3)
##### Patch Changes
- [`6a39217`](https://github.com/focus-trap/focus-trap/commit/6a39217): Close the gap with [#​172](https://github.com/focus-trap/focus-trap/issues/172) and bump `tabbable` to 5.1.2 which has a similar fix.
- [`756c79d`](https://github.com/focus-trap/focus-trap/commit/756c79d): Fix [#​172](https://github.com/focus-trap/focus-trap/issues/172) (again): Transpile ESM bundle down to the same browser target used for the CJS and UMD bundles. ESM is just the module system, not the browser target.
### [`v6.1.2`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​612)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.1.1...v6.1.2)
##### Patch Changes
- [`00674dd`](https://github.com/focus-trap/focus-trap/commit/00674dd): Fix [#​172](https://github.com/focus-trap/focus-trap/issues/172): Transpile non-minified bundles so they are compatible with IE11.
- [`679009b`](https://github.com/focus-trap/focus-trap/commit/679009b): Update tabbable dependency to 5.1.1 to get transpiled non-minified bundles.
### [`v6.1.1`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​611)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.1.0...v6.1.1)
##### Patch Changes
- [`fe2b0ad`](https://github.com/focus-trap/focus-trap/commit/fe2b0ad): Fixed [#​103](https://github.com/focus-trap/focus-trap/issues/103): `returnFocusOnDeactivate` is now respected on auto-deactivation with `clickOutsideDeactivates=true`.
### [`v6.1.0`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​610)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.0.1...v6.1.0)
##### Minor Changes
- [`5174ce1`](https://github.com/focus-trap/focus-trap/commit/5174ce1): Add delayInitialFocus option
##### Patch Changes
- [`53b906b`](https://github.com/focus-trap/focus-trap/commit/53b906b): Change `prepublishOnly` script to `prepare` script so that it also runs if someone installs the package directly from the git repo (e.g. from your work in which you fixed a bug or added a feature you're waiting to get merged to master and published to NPM).
- [`31bb28e`](https://github.com/focus-trap/focus-trap/commit/31bb28e): Update tabbable dependency to 5.1.0. The most significant update for focus-trap is a bug fix related to fixed-position containers.
### [`v6.0.1`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​601)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/v6.0.0...v6.0.1)
##### Patch Changes
- [`694e2fa`](https://github.com/focus-trap/focus-trap/commit/694e2fa): Package main/module entries no longer point to minified bundles.
### [`v6.0.0`](https://github.com/focus-trap/focus-trap/blob/HEAD/CHANGELOG.md#​600)
[Compare Source](https://github.com/focus-trap/focus-trap/compare/5.1.0...v6.0.0)
- Add boolean value support for `allowOutsideClick` option.
- New `preventScroll` feature to *prevent* scrolling to the element getting focus if not in the viewport.
- Changed code formatting to use dangling commas where ES5 supports them.
- **BREAKING**: Updated [tabbable](https://github.com/focus-trap/tabbable/blob/master/CHANGELOG.md#​500) dependency to the new 5.0.0 release which contains breaking changes to its `isTabbableRadio()` internal function.
- Help with tree shaking by having `package.json` state `sideEffects: false` to mark this module as having no side effects as a result of merely importing it.
- **BREAKING**: This `package.json`'s "main" no longer points to `./index.js` in the package (although it still points to a CJS module, so it's possible this actually doesn't break anything). It now has:
- "main": `dist/focus-trap.min.js` (the CJS bundle)
- "module": `dist/focus-trap.esm.min.js` (the **new ESM bundle**)
- the UMD is `dist/focus-trap.umd.min.js` if needed (convenient for loading directly in an older browser that doesn't support ESM)
- **NOTE:** The CJS build no longer provides a function as a default export. Use `const { createFocusTrap } = require('focus-trap');` to get the function from before.
- **NOTE:** The ESM build does not provide a default export. Use `import { createFocusTrap } from 'focus-trap';` to import the module.
- **New ESM Build**: Included in `dist/focus-trap.esm.*`.
- New UMD Build: Included in `dist/focus-trap.umd.*`.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1590Update dependency flake8 to v4 (develop)2022-02-03T00:03:09ZRenovateBotUpdate dependency flake8 to v4 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [flake8](https://github.com/pycqa/flake8) ([changelog](http://flake8.pycqa.org/en/latest/release-notes/index.html)) | dev-dependencies | ma...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [flake8](https://github.com/pycqa/flake8) ([changelog](http://flake8.pycqa.org/en/latest/release-notes/index.html)) | dev-dependencies | major | `==3.9.2` -> `==4.0.1` |
---
### Release Notes
<details>
<summary>pycqa/flake8</summary>
### [`v4.0.1`](https://github.com/pycqa/flake8/compare/4.0.0...4.0.1)
[Compare Source](https://github.com/pycqa/flake8/compare/4.0.0...4.0.1)
### [`v4.0.0`](https://github.com/pycqa/flake8/compare/3.9.2...4.0.0)
[Compare Source](https://github.com/pycqa/flake8/compare/3.9.2...4.0.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1589Update dependency eslint-plugin-vue to v8 (develop)2023-10-10T11:03:20ZRenovateBotUpdate dependency eslint-plugin-vue to v8 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eslint-plugin-vue](https://eslint.vuejs.org) ([source](https://github.com/vuejs/eslint-plugin-vue)) | devDependencies | major | [`7.20.0` ...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eslint-plugin-vue](https://eslint.vuejs.org) ([source](https://github.com/vuejs/eslint-plugin-vue)) | devDependencies | major | [`7.20.0` -> `8.4.0`](https://renovatebot.com/diffs/npm/eslint-plugin-vue/7.20.0/8.4.0) |
---
### Release Notes
<details>
<summary>vuejs/eslint-plugin-vue</summary>
### [`v8.4.0`](https://github.com/vuejs/eslint-plugin-vue/releases/v8.4.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v8.3.0...v8.4.0)
#### ✨ Enhancements
- [#​1760](https://github.com/vuejs/eslint-plugin-vue/issues/1760) Added [`vue/no-v-text-v-html-on-component`](https://eslint.vuejs.org/rules/no-v-text-v-html-on-component.html) rule that disallows the use of `v-text` / `v-html` on component.
- [#​1762](https://github.com/vuejs/eslint-plugin-vue/issues/1762) Added [`vue/object-shorthand`](https://eslint.vuejs.org/rules/object-shorthand.html) rule that applies [`object-shorthand`](https://eslint.org/docs/rules/object-shorthand) rule to expressions in `<template>`.
- [#​1763](https://github.com/vuejs/eslint-plugin-vue/issues/1763) Added [`vue/no-undef-components`](https://eslint.vuejs.org/rules/no-undef-components.html) rule that warns reports component that are used in the `<template>`, but that are not defined in the `<script setup>` or the Options API's `components` section.
- [#​1769](https://github.com/vuejs/eslint-plugin-vue/issues/1769) Added [`vue/quote-props`](https://eslint.vuejs.org/rules/quote-props.html) rule that applies [`quote-props`](https://eslint.org/docs/rules/quote-props) rule to expressions in `<template>`.
- [#​1761](https://github.com/vuejs/eslint-plugin-vue/issues/1761) Added support for Vue2 functional component to [`vue/no-unused-properties`](https://eslint.vuejs.org/rules/no-unused-properties.html) rule.
- [#​1761](https://github.com/vuejs/eslint-plugin-vue/issues/1761) Added support for Vue2 functional component to [`vue/no-undef-properties`](https://eslint.vuejs.org/rules/no-undef-properties.html) rule.
#### 🐛 Bug Fixes
- [#​1770](https://github.com/vuejs/eslint-plugin-vue/issues/1770) Fixed false positives for import brace in [`vue/script-indent`](https://eslint.vuejs.org/rules/script-indent.html) rule.
- [#​1771](https://github.com/vuejs/eslint-plugin-vue/issues/1771) Fixed false positives for `v-bind="obj"` with `v-model` in [`vue/attributes-order`](https://eslint.vuejs.org/rules/attributes-order.html) rule.
- [#​1775](https://github.com/vuejs/eslint-plugin-vue/issues/1775) Fixed false positives for CSS `v-bind()` in [`vue/no-extra-parens`](https://eslint.vuejs.org/rules/no-extra-parens.html) rule.
- [#​1777](https://github.com/vuejs/eslint-plugin-vue/issues/1777) Skip conditional expressions in [`vue/valid-next-tick`](https://eslint.vuejs.org/rules/valid-next-tick.html) rule.
#### ⚙️ Updates
- [#​1763](https://github.com/vuejs/eslint-plugin-vue/issues/1763) Deprecated [`vue/no-unregistered-components`](https://eslint.vuejs.org/rules/no-unregistered-components.html) rule.
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v8.3.0...v8.4.0
### [`v8.3.0`](https://github.com/vuejs/eslint-plugin-vue/releases/v8.3.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v8.2.0...v8.3.0)
#### 🐛 Bug Fixes
- [#​1755](https://github.com/vuejs/eslint-plugin-vue/issues/1755) Fix crash on `<textarea>` without end tag in [`vue/html-indent` rule](https://eslint.vuejs.org/rules/html-indent.html).
- [#​1756](https://github.com/vuejs/eslint-plugin-vue/issues/1756) Fix false positive for unknown emits definition in [`vue/require-explicit-emits` rule](https://eslint.vuejs.org/rules/require-explicit-emits.html).
#### ⚙️ Updates
- [#​1750](https://github.com/vuejs/eslint-plugin-vue/issues/1750) Report [`$set`](https://eslint.vuejs.org/rules/no-side-effects-in-computed-properties.html) and [`$nextTick`](https://eslint.vuejs.org/rules/no-async-in-computed-properties.html) in computed properties.
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v8.2.0...v8.3.0
### [`v8.2.0`](https://github.com/vuejs/eslint-plugin-vue/releases/v8.2.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v8.1.1...v8.2.0)
#### ✨ Enhancements
- [#​1725](https://github.com/vuejs/eslint-plugin-vue/issues/1725) Added [`vue/component-options-name-casing` rule](https://eslint.vuejs.org/rules/component-options-name-casing.html) that enforces the casing of component name in `components` options.
- [#​1729](https://github.com/vuejs/eslint-plugin-vue/issues/1729) Added [`vue/prefer-separate-static-class` rule](https://eslint.vuejs.org/rules/prefer-separate-static-class.html) that requires static class names in template to be in a separate `class` attribute.
#### 🐛 Bug Fixes
- [#​1736](https://github.com/vuejs/eslint-plugin-vue/issues/1736) Fixed false positives for import binding in [`vue/valid-define-emits`](https://eslint.vuejs.org/rules/valid-define-emits.html) and [`vue/valid-define-props`](https://eslint.vuejs.org/rules/valid-define-props.html) rules.
#### :gear: Updates
- [#​1719](https://github.com/vuejs/eslint-plugin-vue/issues/1719) Added support for TypeScript 4.5 to [`vue/script-indent` rule](https://eslint.vuejs.org/rules/script-indent.html).
- [#​1735](https://github.com/vuejs/eslint-plugin-vue/issues/1735) Changed to allow `asyncData` in [`vue/no-dupe-keys` rule](https://eslint.vuejs.org/rules/no-dupe-keys.html).
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v8.1.1...v8.2.0
### [`v8.1.1`](https://github.com/vuejs/eslint-plugin-vue/releases/v8.1.1)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v8.1.0...v8.1.1)
#### 🐛 Bug Fixes
- [#​1721](https://github.com/vuejs/eslint-plugin-vue/issues/1721) Fixed crash in [`vue/component-api-style` rule](https://eslint.vuejs.org/rules/component-api-style.html).
***
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v8.1.0...v8.1.1
### [`v8.1.0`](https://github.com/vuejs/eslint-plugin-vue/releases/v8.1.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v8.0.3...v8.1.0)
#### ✨ Enhancements
- [#​1707](https://github.com/vuejs/eslint-plugin-vue/issues/1707) Added [`vue/no-child-content` rule](https://eslint.vuejs.org/rules/no-child-content.html) that reports child content of elements that have a directive which overwrites that child content.
- [#​1712](https://github.com/vuejs/eslint-plugin-vue/issues/1712) Added [`vue/no-expose-after-await` rule](https://eslint.vuejs.org/rules/no-expose-after-await.html) that reports the `expose()` after `await` expression.
- [#​1703](https://github.com/vuejs/eslint-plugin-vue/issues/1703) Added `composition-vue2` style option in [`vue/component-api-style` rule](https://eslint.vuejs.org/rules/component-api-style.html).
#### 🐛 Bug Fixes
- [#​1713](https://github.com/vuejs/eslint-plugin-vue/issues/1713) Fixed false positives for type-only exports in [`vue/no-export-in-script-setup` rule](https://eslint.vuejs.org/rules/no-export-in-script-setup.html).
- [#​1715](https://github.com/vuejs/eslint-plugin-vue/issues/1715) Fixed false negatives for `v-bind.sync` in [`vue/no-mutating-props` rule](https://eslint.vuejs.org/rules/no-mutating-props.html).
- [#​1715](https://github.com/vuejs/eslint-plugin-vue/issues/1715) Fixed false positives for shadowed props in [`vue/no-mutating-props` rule](https://eslint.vuejs.org/rules/no-mutating-props.html).
- [#​1718](https://github.com/vuejs/eslint-plugin-vue/issues/1718) Fixed memory leak.
***
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v8.0.3...v8.1.0
### [`v8.0.3`](https://github.com/vuejs/eslint-plugin-vue/releases/v8.0.3)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v8.0.2...v8.0.3)
#### 🐛 Bug Fixes
- [#​1691](https://github.com/vuejs/eslint-plugin-vue/issues/1691) Upgrade [vue-eslint-parser](https://github.com/vuejs/vue-eslint-parser) to use patch.
It upgrade fixes the wrong location in multiple `<script>`
***
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v8.0.2...v8.0.3
### [`v8.0.2`](https://github.com/vuejs/eslint-plugin-vue/releases/v8.0.2)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v8.0.1...v8.0.2)
#### 🐛 Bug Fixes
- [#​1689](https://github.com/vuejs/eslint-plugin-vue/issues/1689) Fixed false positive for filename in [`vue/multi-word-component-names` rule](https://eslint.vuejs.org/rules/multi-word-component-names.html)
***
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v8.0.1...v8.0.2
### [`v8.0.1`](https://github.com/vuejs/eslint-plugin-vue/releases/v8.0.1)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v8.0.0...v8.0.1)
#### 🐛 Bug Fixes
- [#​1686](https://github.com/vuejs/eslint-plugin-vue/issues/1686) Fixed false positives for arrow return in [`vue/valid-next-tick` rule](https://eslint.vuejs.org/rules/valid-next-tick.html).
***
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v8.0.0...v8.0.1
### [`v8.0.0`](https://github.com/vuejs/eslint-plugin-vue/releases/v8.0.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v7.20.0...v8.0.0)
#### 💥 Breaking Changes
- [#​1588](https://github.com/vuejs/eslint-plugin-vue/issues/1588) Dropped supports Node.js v8-10, v13 and v15.
- [#​1664](https://github.com/vuejs/eslint-plugin-vue/issues/1664) Upgraded [vue-eslint-parser](https://github.com/vuejs/vue-eslint-parser) to v8.0.0.
- Changed presets configs.
- Changed `plugin:vue/vue3-essential` config.
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/no-deprecated-v-is` rule](https://eslint.vuejs.org/rules/no-deprecated-v-is.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/no-export-in-script-setup` rule](https://eslint.vuejs.org/rules/no-export-in-script-setup.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/valid-define-emits` rule](https://eslint.vuejs.org/rules/valid-define-emits.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/valid-define-props` rule](https://eslint.vuejs.org/rules/valid-define-props.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/valid-next-tick` rule](https://eslint.vuejs.org/rules/valid-next-tick.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/valid-v-memo` rule](https://eslint.vuejs.org/rules/valid-v-memo.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/no-useless-template-attributes` rule](https://eslint.vuejs.org/rules/no-useless-template-attributes.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/no-computed-properties-in-data` rule](https://eslint.vuejs.org/rules/no-computed-properties-in-data.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/multi-word-component-names` rule](https://eslint.vuejs.org/rules/multi-word-component-names.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/no-deprecated-router-link-tag-prop` rule](https://eslint.vuejs.org/rules/no-deprecated-router-link-tag-prop.html).
- [#​1678](https://github.com/vuejs/eslint-plugin-vue/issues/1678) Added [`vue/no-reserved-props` rule](https://eslint.vuejs.org/rules/no-reserved-props.html).
- Changed `plugin:vue/vue3-strongly-recommended` config.
- Same changes as above.
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/v-on-event-hyphenation` rule](https://eslint.vuejs.org/rules/v-on-event-hyphenation.html).
- [#​1587](https://github.com/vuejs/eslint-plugin-vue/issues/1587) Added [`vue/first-attribute-linebreak` rule](https://eslint.vuejs.org/rules/first-attribute-linebreak.html).
- Changed `plugin:vue/vue3-recommended` config.
- Same changes as above.
- Changed `plugin:vue/essential` config.
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/valid-next-tick` rule](https://eslint.vuejs.org/rules/valid-next-tick.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/no-useless-template-attributes` rule](https://eslint.vuejs.org/rules/no-useless-template-attributes.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/no-computed-properties-in-data` rule](https://eslint.vuejs.org/rules/no-computed-properties-in-data.html).
- [#​1603](https://github.com/vuejs/eslint-plugin-vue/issues/1603) Added [`vue/multi-word-component-names` rule](https://eslint.vuejs.org/rules/multi-word-component-names.html).
- [#​1678](https://github.com/vuejs/eslint-plugin-vue/issues/1678) Added [`vue/no-reserved-props` rule](https://eslint.vuejs.org/rules/no-reserved-props.html).
- Changed `plugin:vue/strongly-recommended` config.
- Same changes as above.
- [#​1587](https://github.com/vuejs/eslint-plugin-vue/issues/1587) Added [`vue/first-attribute-linebreak` rule](https://eslint.vuejs.org/rules/first-attribute-linebreak.html).
- Changed `plugin:vue/recommended` config.
- Same changes as above.
- [#​1587](https://github.com/vuejs/eslint-plugin-vue/issues/1587) Removed the `allowFirstLine` option of the [`vue/max-attributes-per-line` rule](https://eslint.vuejs.org/rules/max-attributes-per-line.html).
#### ✨ Enhancements
**Core:**
- [#​1685](https://github.com/vuejs/eslint-plugin-vue/issues/1685) Added `setup-compiler-macros` environment.
**Rules:**
- [#​1587](https://github.com/vuejs/eslint-plugin-vue/issues/1587) Added [`vue/first-attribute-linebreak` rule](https://eslint.vuejs.org/rules/first-attribute-linebreak.html) aims to enforce a consistent location for the first attribute.
- [#​1678](https://github.com/vuejs/eslint-plugin-vue/issues/1678) Added [`vue/no-reserved-props` rule](https://eslint.vuejs.org/rules/no-reserved-props.html) that disallow reserved names to be used in props.
- [#​1680](https://github.com/vuejs/eslint-plugin-vue/issues/1680) Added [`vue/no-loss-of-precision` rule](https://eslint.vuejs.org/rules/no-loss-of-precision.html) that applies `no-loss-of-precision` rule to expressions in `<template>`.
- [#​1681](https://github.com/vuejs/eslint-plugin-vue/issues/1681) Added `ignore` option to [`vue/multi-word-component-names` rule](https://eslint.vuejs.org/rules/multi-word-component-names.html).
- [#​1679](https://github.com/vuejs/eslint-plugin-vue/issues/1679) Added support for Nuxt.js's `asyncData` in [`vue/no-dupe-keys`](https://eslint.vuejs.org/rules/no-dupe-keys.html), [`vue/no-reserved-keys`](https://eslint.vuejs.org/rules/no-reserved-keys.html), [`vue/no-template-shadow`](https://eslint.vuejs.org/rules/no-template-shadow.html), [`vue/no-undef-properties`](https://eslint.vuejs.org/rules/no-undef-properties.html), and [`vue/no-unused-properties`](https://eslint.vuejs.org/rules/no-unused-properties.html) rules.
#### 🐛 Bug Fixes
- [#​1684](https://github.com/vuejs/eslint-plugin-vue/issues/1684) Fixed false positives for non-vue file in [`vue/multi-word-component-names` rule](https://eslint.vuejs.org/rules/multi-word-component-names.html).
***
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v7.20.0...v8.0.0
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1588Update dependency eslint-plugin-promise to v6 (develop) - autoclosed2022-02-03T01:03:24ZRenovateBotUpdate dependency eslint-plugin-promise to v6 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eslint-plugin-promise](https://github.com/xjamundx/eslint-plugin-promise) | devDependencies | major | [`4.3.1` -> `6.0.0`](https://renovat...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eslint-plugin-promise](https://github.com/xjamundx/eslint-plugin-promise) | devDependencies | major | [`4.3.1` -> `6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-promise/4.3.1/6.0.0) |
---
### Release Notes
<details>
<summary>xjamundx/eslint-plugin-promise</summary>
### [`v6.0.0`](https://github.com/xjamundx/eslint-plugin-promise/blob/HEAD/CHANGELOG.md#​600)
[Compare Source](https://github.com/xjamundx/eslint-plugin-promise/compare/1f982da02579fcc18a13880b4c4904e530d3a54b...f10d8fc0b9f5680f849d6b4d50ac9e33008c5a29)
- Dropped node 10 from engines [#​231](https://github.com/xjamundx/eslint-plugin-promise/issues/231)
- Updated a ton of deps [#​236](https://github.com/xjamundx/eslint-plugin-promise/issues/236), [#​237](https://github.com/xjamundx/eslint-plugin-promise/issues/237), [#​235](https://github.com/xjamundx/eslint-plugin-promise/issues/235), [#​234](https://github.com/xjamundx/eslint-plugin-promise/issues/234)
- ESLint 8 support [#​219](https://github.com/xjamundx/eslint-plugin-promise/issues/219)
### [`v5.2.0`](https://github.com/xjamundx/eslint-plugin-promise/blob/HEAD/CHANGELOG.md#​520)
[Compare Source](https://github.com/xjamundx/eslint-plugin-promise/compare/v5.1.1...1f982da02579fcc18a13880b4c4904e530d3a54b)
- Updated `param-names` rule to allow for unused params
### [`v5.1.1`](https://github.com/xjamundx/eslint-plugin-promise/blob/HEAD/CHANGELOG.md#​511)
[Compare Source](https://github.com/xjamundx/eslint-plugin-promise/compare/v5.1.0...v5.1.1)
- Updated docs to include `no-callback-in-promise` reasons [#​215](https://github.com/xjamundx/eslint-plugin-promise/issues/215)
### [`v5.1.0`](https://github.com/xjamundx/eslint-plugin-promise/blob/HEAD/CHANGELOG.md#​510)
[Compare Source](https://github.com/xjamundx/eslint-plugin-promise/compare/v5.0.0...v5.1.0)
- Included `catch()` and `finally()` in `prefer-await-to-then` [#​196](https://github.com/xjamundx/eslint-plugin-promise/issues/196)
- Added some additional tests and upgraded some dev deps [#​196](https://github.com/xjamundx/eslint-plugin-promise/issues/196)
- Exempted array methods in prefer-await-to-callbacks
([#​212](https://github.com/xjamundx/eslint-plugin-promise/issues/212))
### [`v5.0.0`](https://github.com/xjamundx/eslint-plugin-promise/blob/HEAD/CHANGELOG.md#​500)
[Compare Source](https://github.com/xjamundx/eslint-plugin-promise/compare/v4.3.1...v5.0.0)
- ESLint 7.0 Support
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1587Update dependency eslint-plugin-html to v6 (develop) - autoclosed2022-02-03T01:03:21ZRenovateBotUpdate dependency eslint-plugin-html to v6 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eslint-plugin-html](https://github.com/BenoitZugmeyer/eslint-plugin-html) | devDependencies | major | [`4.0.6` -> `6.2.0`](https://renovat...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eslint-plugin-html](https://github.com/BenoitZugmeyer/eslint-plugin-html) | devDependencies | major | [`4.0.6` -> `6.2.0`](https://renovatebot.com/diffs/npm/eslint-plugin-html/4.0.6/6.2.0) |
---
### Release Notes
<details>
<summary>BenoitZugmeyer/eslint-plugin-html</summary>
### [`v6.2.0`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.1.2...v6.2.0)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.1.2...v6.2.0)
### [`v6.1.2`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.1.1...v6.1.2)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.1.1...v6.1.2)
### [`v6.1.1`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.1.0...v6.1.1)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.1.0...v6.1.1)
### [`v6.1.0`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.0.3...v6.1.0)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.0.3...v6.1.0)
### [`v6.0.3`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.0.2...v6.0.3)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.0.2...v6.0.3)
### [`v6.0.2`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.0.1...v6.0.2)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.0.1...v6.0.2)
### [`v6.0.1`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.0.0...v6.0.1)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v6.0.0...v6.0.1)
### [`v6.0.0`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.5...v6.0.0)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.5...v6.0.0)
### [`v5.0.5`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.4...v5.0.5)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.4...v5.0.5)
### [`v5.0.4`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.3...v5.0.4)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.3...v5.0.4)
### [`v5.0.3`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.2...v5.0.3)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.2...v5.0.3)
### [`v5.0.2`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.1...v5.0.2)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.1...v5.0.2)
### [`v5.0.1`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.0...v5.0.1)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v5.0.0...v5.0.1)
### [`v5.0.0`](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v4.0.6...v5.0.0)
[Compare Source](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v4.0.6...v5.0.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1586Update dependency @babel/eslint-parser to v7.17.0 (develop) - autoclosed2022-02-03T01:03:19ZRenovateBotUpdate dependency @babel/eslint-parser to v7.17.0 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [@babel/eslint-parser](https://babel.dev/) ([source](https://github.com/babel/babel)) | devDependencies | minor | [`7.16.5` -> `7.17.0`](ht...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [@babel/eslint-parser](https://babel.dev/) ([source](https://github.com/babel/babel)) | devDependencies | minor | [`7.16.5` -> `7.17.0`](https://renovatebot.com/diffs/npm/@babel%2feslint-parser/7.16.5/7.17.0) |
---
### Release Notes
<details>
<summary>babel/babel</summary>
### [`v7.17.0`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7170-2022-02-02)
[Compare Source](https://github.com/babel/babel/compare/v7.16.5...v7.17.0)
##### :rocket: New Feature
- `babel-cli`, `babel-core`
- [#​14065](https://github.com/babel/babel/pull/14065) Allow plugins/presets to indicate external dependencies ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo))
- `babel-core`, `babel-parser`, `babel-traverse`
- [#​14174](https://github.com/babel/babel/pull/14174) Expose `.index` on Position to internally track nodes location ([@​tolmasky](https://github.com/tolmasky))
- `babel-generator`, `babel-parser`, `babel-plugin-proposal-pipeline-operator`, `babel-plugin-syntax-pipeline-operator`
- [#​13973](https://github.com/babel/babel/pull/13973) proposal-pipe: Add support for `^^` and `@@​` topics ([@​js-choi](https://github.com/js-choi))
- `babel-traverse`
- [#​13940](https://github.com/babel/babel/pull/13940) Add new method to check if node is null or not ([@​danez](https://github.com/danez))
- `babel-generator`, `babel-parser`, `babel-plugin-syntax-destructuring-private`, `babel-standalone`
- [#​13931](https://github.com/babel/babel/pull/13931) Parse destructuring private fields ([@​JLHwung](https://github.com/JLHwung))
- `babel-helper-create-class-features-plugin`, `babel-helpers`, `babel-plugin-proposal-decorators`, `babel-plugin-syntax-decorators`, `babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`, `babel-standalone`, `babel-types`
- [#​14004](https://github.com/babel/babel/pull/14004) Add new decorators transform ([@​pzuraq](https://github.com/pzuraq))
- `babel-generator`, `babel-parser`, `babel-traverse`, `babel-types`
- [#​13681](https://github.com/babel/babel/pull/13681) Add the `decoratorsAutoAccessors` parser plugin ([@​pzuraq](https://github.com/pzuraq))
- `babel-core`, `babel-helper-create-regexp-features-plugin`, `babel-plugin-proposal-unicode-sets-regex`, `babel-plugin-syntax-unicode-sets-regex`, `babel-plugin-transform-dotall-regex`
- [#​14125](https://github.com/babel/babel/pull/14125) Add transform support for the "regexp unicode sets" proposal ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo))
- `babel-parser`
- [#​14086](https://github.com/babel/babel/pull/14086) Add parser support for the "regexp unicode sets" proposal ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo))
- `babel-register`
- [#​14087](https://github.com/babel/babel/pull/14087) Expose `@babel/register/experimental-worker` ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo))
##### :bug: Bug Fix
- `babel-parser`
- [#​14145](https://github.com/babel/babel/pull/14145) Reinterpret << when parsing TS type arguments ([@​JLHwung](https://github.com/JLHwung))
- `babel-plugin-transform-runtime`
- [#​14187](https://github.com/babel/babel/pull/14187) Normalize absolute paths on Windows ([@​atti187](https://github.com/atti187))
##### :memo: Documentation
- [#​14223](https://github.com/babel/babel/pull/14223) Remove Babel 6 from SECURITY.md ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo))
##### :house: Internal
- `babel-helper-fixtures`, `babel-parser`
- [#​14201](https://github.com/babel/babel/pull/14201) Fuzz test location-related parser options ([@​tolmasky](https://github.com/tolmasky))
- `babel-compat-data`
- [#​14208](https://github.com/babel/babel/pull/14208) Update compat data (specifically for rhino 1.7.14) ([@​phulin](https://github.com/phulin))
- Other
- [#​14190](https://github.com/babel/babel/pull/14190) chore: run tscheck on babel 8 breaking test ([@​JLHwung](https://github.com/JLHwung))
##### :running_woman: Performance
- `babel-cli`, `babel-core`
- [#​14209](https://github.com/babel/babel/pull/14209) Switch to `@ampproject/remapping` to merge source maps ([@​jridgewell](https://github.com/jridgewell))
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1574Update dependency axios-auth-refresh to v3 (develop)2022-02-03T07:58:50ZRenovateBotUpdate dependency axios-auth-refresh to v3 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [axios-auth-refresh](https://github.com/Flyrell/axios-auth-refresh) | dependencies | major | [`2.2.8` -> `3.2.1`](https://renovatebot.com/d...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [axios-auth-refresh](https://github.com/Flyrell/axios-auth-refresh) | dependencies | major | [`2.2.8` -> `3.2.1`](https://renovatebot.com/diffs/npm/axios-auth-refresh/2.2.8/3.2.1) |
---
### Release Notes
<details>
<summary>Flyrell/axios-auth-refresh</summary>
### [`v3.2.1`](https://github.com/Flyrell/axios-auth-refresh/compare/v3.2.0...v3.2.1)
[Compare Source](https://github.com/Flyrell/axios-auth-refresh/compare/v3.2.0...v3.2.1)
### [`v3.2.0`](https://github.com/Flyrell/axios-auth-refresh/releases/v3.2.0)
[Compare Source](https://github.com/Flyrell/axios-auth-refresh/compare/v3.1.0...v3.2.0)
Dependencies update, security update & multiple issues fixed.
### [`v3.1.0`](https://github.com/Flyrell/axios-auth-refresh/releases/v3.1.0)
[Compare Source](https://github.com/Flyrell/axios-auth-refresh/compare/v3.0.0...v3.1.0)
Axios v0.21.1 & interceptNetworkError option
### [`v3.0.0`](https://github.com/Flyrell/axios-auth-refresh/compare/v2.2.8...v3.0.0)
[Compare Source](https://github.com/Flyrell/axios-auth-refresh/compare/v2.2.8...v3.0.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1572Update dependency Django to v4 (develop)2022-02-02T13:02:29ZRenovateBotUpdate dependency Django to v4 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [Django](https://www.djangoproject.com/) ([source](https://github.com/django/django), [changelog](https://github.com/django/django/tree/mas...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [Django](https://www.djangoproject.com/) ([source](https://github.com/django/django), [changelog](https://github.com/django/django/tree/master/docs/releases)) | dependencies | major | `==3.2.12` -> `==4.0.2` |
---
### Release Notes
<details>
<summary>django/django</summary>
### [`v4.0.2`](https://github.com/django/django/compare/4.0.1...4.0.2)
[Compare Source](https://github.com/django/django/compare/4.0.1...4.0.2)
### [`v4.0.1`](https://github.com/django/django/compare/4.0...4.0.1)
[Compare Source](https://github.com/django/django/compare/4.0...4.0.1)
### [`v4.0`](https://github.com/django/django/compare/3.2.12...4.0)
[Compare Source](https://github.com/django/django/compare/3.2.12...4.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1570Update python Docker tag to v3.10 (develop)2022-02-02T11:03:14ZRenovateBotUpdate python Docker tag to v3.10 (develop)This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| python | image | minor | `3.6` -> `3.10` |
| python | final | minor | `3.6` -> `3.10` |
---
### Configuration
📅 **Schedule**: At any tim...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| python | image | minor | `3.6` -> `3.10` |
| python | final | minor | `3.6` -> `3.10` |
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about these updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1563Update dependency setuptools to v57.5.0 (develop) - autoclosed2022-02-02T01:07:45ZRenovateBotUpdate dependency setuptools to v57.5.0 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [setuptools](https://github.com/pypa/setuptools) | dependencies | minor | `==57.4.0` -> `==57.5.0` |
---
### Release Notes
<details>
<su...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [setuptools](https://github.com/pypa/setuptools) | dependencies | minor | `==57.4.0` -> `==57.5.0` |
---
### Release Notes
<details>
<summary>pypa/setuptools</summary>
### [`v57.5.0`](https://github.com/pypa/setuptools/blob/HEAD/CHANGES.rst#v5750)
[Compare Source](https://github.com/pypa/setuptools/compare/v57.4.0...v57.5.0)
Changes
^^^^^^^
- [#​2712](https://github.com/pypa/setuptools/issues/2712): Added implicit globbing support for `[options.data_files]` values.
Documentation changes
^^^^^^^^^^^^^^^^^^^^^
- [#​2737](https://github.com/pypa/setuptools/issues/2737): fix various syntax and style errors in code snippets in docs
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1562Update dependency pytest-randomly to v3.11.0 (develop) - autoclosed2022-02-02T01:07:35ZRenovateBotUpdate dependency pytest-randomly to v3.11.0 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) ([changelog](https://github.com/pytest-dev/pytest-randomly/blob/main/HISTO...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) ([changelog](https://github.com/pytest-dev/pytest-randomly/blob/main/HISTORY.rst)) | dev-dependencies | minor | `==3.10.3` -> `==3.11.0` |
---
### Release Notes
<details>
<summary>pytest-dev/pytest-randomly</summary>
### [`v3.11.0`](https://github.com/pytest-dev/pytest-randomly/blob/HEAD/HISTORY.rst#​3110-2022-01-10)
[Compare Source](https://github.com/pytest-dev/pytest-randomly/compare/3.10.3...3.11.0)
- Drop Python 3.6 support.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1561Update dependency pytest-mock to v3.7.0 (develop) - autoclosed2022-02-02T01:07:31ZRenovateBotUpdate dependency pytest-mock to v3.7.0 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | dev-dependencies | minor | `==3.6.1` -> `==3.7.0` |
---
### Release Notes
<de...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | dev-dependencies | minor | `==3.6.1` -> `==3.7.0` |
---
### Release Notes
<details>
<summary>pytest-dev/pytest-mock</summary>
### [`v3.7.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#​370-2022-01-28)
[Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.6.1...v3.7.0)
- Python 3.10 now officially supported.
- Dropped support for Python 3.6.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1560Update dependency pytest-django to v4.5.2 (develop) - autoclosed2022-02-02T01:07:27ZRenovateBotUpdate dependency pytest-django to v4.5.2 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-django](https://pytest-django.readthedocs.io/) ([source](https://github.com/pytest-dev/pytest-django), [changelog](https://pytest-d...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-django](https://pytest-django.readthedocs.io/) ([source](https://github.com/pytest-dev/pytest-django), [changelog](https://pytest-django.readthedocs.io/en/latest/changelog.html)) | dev-dependencies | minor | `==4.4.0` -> `==4.5.2` |
---
### Release Notes
<details>
<summary>pytest-dev/pytest-django</summary>
### [`v4.5.2`](https://github.com/pytest-dev/pytest-django/releases/v4.5.2)
[Compare Source](https://github.com/pytest-dev/pytest-django/compare/v4.5.1...v4.5.2)
https://pytest-django.readthedocs.io/en/latest/changelog.html#v4-5-2-2021-12-07
### [`v4.5.1`](https://github.com/pytest-dev/pytest-django/releases/v4.5.1)
[Compare Source](https://github.com/pytest-dev/pytest-django/compare/v4.5.0...v4.5.1)
https://pytest-django.readthedocs.io/en/latest/changelog.html#v4-5-1-2021-12-02
### [`v4.5.0`](https://github.com/pytest-dev/pytest-django/releases/v4.5.0)
[Compare Source](https://github.com/pytest-dev/pytest-django/compare/v4.4.0...v4.5.0)
https://pytest-django.readthedocs.io/en/latest/changelog.html#v4-5-0-2021-12-01
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1559Update dependency pytest-asyncio to v0.17.2 (develop) - autoclosed2022-02-02T01:07:20ZRenovateBotUpdate dependency pytest-asyncio to v0.17.2 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | dev-dependencies | minor | `==0.15.1` -> `==0.17.2` |
---
### Release No...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | dev-dependencies | minor | `==0.15.1` -> `==0.17.2` |
---
### Release Notes
<details>
<summary>pytest-dev/pytest-asyncio</summary>
### [`v0.17.2`](https://github.com/pytest-dev/pytest-asyncio/releases/v0.17.2)
[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.17.1...v0.17.2)
***
## title: 'pytest-asyncio: pytest support for asyncio'
[![image](https://img.shields.io/pypi/v/pytest-asyncio.svg)](https://pypi.python.org/pypi/pytest-asyncio)
[![image](https://github.com/pytest-dev/pytest-asyncio/workflows/CI/badge.svg)](https://github.com/pytest-dev/pytest-asyncio/actions?workflow=CI)
[![image](https://codecov.io/gh/pytest-dev/pytest-asyncio/branch/master/graph/badge.svg)](https://codecov.io/gh/pytest-dev/pytest-asyncio)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/pytest-asyncio.svg)](https://github.com/pytest-dev/pytest-asyncio)
[![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
pytest-asyncio is an Apache2 licensed library, written in Python, for
testing asyncio code with pytest.
asyncio code is usually written in the form of coroutines, which makes
it slightly more difficult to test using normal testing tools.
pytest-asyncio provides useful fixtures and markers to make testing
easier.
```{.sourceCode .python}
@​pytest.mark.asyncio
async def test_some_asyncio_code():
res = await library.do_something()
assert b"expected result" == res
```
pytest-asyncio has been strongly influenced by
[pytest-tornado](https://github.com/eugeniy/pytest-tornado).
# Features
- fixtures for creating and injecting versions of the asyncio event
loop
- fixtures for injecting unused tcp/udp ports
- pytest markers for treating tests as asyncio coroutines
- easy testing with non-default event loops
- support for \[async def]{.title-ref} fixtures and async generator
fixtures
- support *auto* mode to handle all async fixtures and tests
automatically by asyncio; provide *strict* mode if a test suite
should work with different async frameworks simultaneously, e.g.
`asyncio` and `trio`.
# Installation
To install pytest-asyncio, simply:
```{.sourceCode .bash}
$ pip install pytest-asyncio
```
This is enough for pytest to pick up pytest-asyncio.
# Modes
Starting from `pytest-asyncio>=0.17`, three modes are provided: *auto*,
*strict* and *legacy* (default).
The mode can be set by `asyncio_mode` configuration option in
[configuration
file](https://docs.pytest.org/en/latest/reference/customize.html):
```{.sourceCode .ini}
### pytest.ini
[pytest]
asyncio_mode = auto
```
The value can be overriden by command-line option for `pytest`
invocation:
```{.sourceCode .bash}
$ pytest tests --asyncio-mode=strict
```
## Auto mode
When the mode is auto, all discovered *async* tests are considered
*asyncio-driven* even if they have no `@pytest.mark.asyncio` marker.
All async fixtures are considered *asyncio-driven* as well, even if they
are decorated with a regular `@pytest.fixture` decorator instead of
dedicated `@pytest_asyncio.fixture` counterpart.
*asyncio-driven* means that tests and fixtures are executed by
`pytest-asyncio` plugin.
This mode requires the simplest tests and fixtures configuration and is
recommended for default usage *unless* the same project and its test
suite should execute tests from different async frameworks, e.g.
`asyncio` and `trio`. In this case, auto-handling can break tests
designed for other framework; plase use *strict* mode instead.
## Strict mode
Strict mode enforces `@pytest.mark.asyncio` and
`@pytest_asyncio.fixture` usage. Without these markers, tests and
fixtures are not considered as *asyncio-driven*, other pytest plugin can
handle them.
Please use this mode if multiple async frameworks should be combined in
the same test suite.
## Legacy mode
This mode follows rules used by `pytest-asyncio<0.17`: tests are not
auto-marked but fixtures are.
This mode is used by default for the sake of backward compatibility,
deprecation warnings are emitted with suggestion to either switching to
`auto` mode or using `strict` mode with `@pytest_asyncio.fixture`
decorators.
In future, the default will be changed.
# Fixtures
## `event_loop`
Creates and injects a new instance of the default asyncio event loop. By
default, the loop will be closed at the end of the test (i.e. the
default fixture scope is `function`).
Note that just using the `event_loop` fixture won't make your test
function a coroutine. You'll need to interact with the event loop
directly, using methods like `event_loop.run_until_complete`. See the
`pytest.mark.asyncio` marker for treating test functions like
coroutines.
Simply using this fixture will not set the generated event loop as the
default asyncio event loop, or change the asyncio event loop policy in
any way. Use `pytest.mark.asyncio` for this purpose.
```{.sourceCode .python}
def test_http_client(event_loop):
url = "http://httpbin.org/get"
resp = event_loop.run_until_complete(http_client(url))
assert b"HTTP/1.1 200 OK" in resp
```
This fixture can be easily overridden in any of the standard pytest
locations (e.g. directly in the test file, or in `conftest.py`) to use a
non-default event loop. This will take effect even if you're using the
`pytest.mark.asyncio` marker and not the `event_loop` fixture directly.
```{.sourceCode .python}
@​pytest.fixture
def event_loop():
loop = MyCustomLoop()
yield loop
loop.close()
```
If the `pytest.mark.asyncio` marker is applied, a pytest hook will
ensure the produced loop is set as the default global loop. Fixtures
depending on the `event_loop` fixture can expect the policy to be
properly modified when they run.
## `unused_tcp_port`
Finds and yields a single unused TCP port on the localhost interface.
Useful for binding temporary test servers.
## `unused_tcp_port_factory`
A callable which returns a different unused TCP port each invocation.
Useful when several unused TCP ports are required in a test.
```{.sourceCode .python}
def a_test(unused_tcp_port_factory):
port1, port2 = unused_tcp_port_factory(), unused_tcp_port_factory()
...
```
## `unused_udp_port` and `unused_udp_port_factory`
Work just like their TCP counterparts but return unused UDP ports.
## Async fixtures
Asynchronous fixtures are defined just like ordinary pytest fixtures,
except they should be decorated with `@pytest_asyncio.fixture`.
```{.sourceCode .python3}
import pytest_asyncio
@​pytest_asyncio.fixture
async def async_gen_fixture():
await asyncio.sleep(0.1)
yield "a value"
@​pytest_asyncio.fixture(scope="module")
async def async_fixture():
return await asyncio.sleep(0.1)
```
All scopes are supported, but if you use a non-function scope you will
need to redefine the `event_loop` fixture to have the same or broader
scope. Async fixtures need the event loop, and so must have the same or
narrower scope than the `event_loop` fixture.
*auto* and *legacy* mode automatically converts async fixtures declared
with the standard `@pytest.fixture` decorator to *asyncio-driven*
versions.
# Markers
## `pytest.mark.asyncio`
Mark your test coroutine with this marker and pytest will execute it as
an asyncio task using the event loop provided by the `event_loop`
fixture. See the introductory section for an example.
The event loop used can be overridden by overriding the `event_loop`
fixture (see above).
In order to make your test code a little more concise, the pytest
`pytestmark`\_ feature can be used to mark entire modules or classes
with this marker. Only test coroutines will be affected (by default,
coroutines prefixed by `test_`), so, for example, fixtures are safe to
define.
```{.sourceCode .python}
import asyncio
import pytest
### All test coroutines will be treated as marked.
pytestmark = pytest.mark.asyncio
async def test_example(event_loop):
"""No marker!"""
await asyncio.sleep(0, loop=event_loop)
```
In *auto* mode, the `pytest.mark.asyncio` marker can be omitted, the
marker is added automatically to *async* test functions.
# Note about unittest
Test classes subclassing the standard
[unittest](https://docs.python.org/3/library/unittest.html) library are
not supported, users are recommended to use
[unitest.IsolatedAsyncioTestCase](https://docs.python.org/3/library/unittest.html#unittest.IsolatedAsyncioTestCase)
or an async framework such as
[asynctest](https://asynctest.readthedocs.io/en/latest).
# Changelog
## 0.17.2 (22-01-17)
- Require `typing-extensions` on Python<3.8 only.
[#​269](https://github.com/pytest-dev/pytest-asyncio/issues/269)
- Fix a regression in tests collection introduced by 0.17.1, the
plugin works fine with non-python tests again.
[#​267](https://github.com/pytest-dev/pytest-asyncio/issues/267)
## 0.17.1 (22-01-16)
- Fixes a bug that prevents async Hypothesis tests from working
without explicit `asyncio` marker when `--asyncio-mode=auto` is set.
[#​258](https://github.com/pytest-dev/pytest-asyncio/issues/258)
- Fixed a bug that closes the default event loop if the loop doesn't
exist
[#​257](https://github.com/pytest-dev/pytest-asyncio/issues/257)
- Added type annotations.
[#​198](https://github.com/pytest-dev/pytest-asyncio/issues/198)
- Show asyncio mode in pytest report headers.
[#​266](https://github.com/pytest-dev/pytest-asyncio/issues/266)
- Relax `asyncio_mode` type definition; it allows to support pytest
6.1+.
[#​262](https://github.com/pytest-dev/pytest-asyncio/issues/262)
## 0.17.0 (22-01-13)
- \[pytest-asyncio]{.title-ref} no longer alters existing event loop
policies.
[#​168](https://github.com/pytest-dev/pytest-asyncio/issues/168),
[#​188](https://github.com/pytest-dev/pytest-asyncio/issues/168)
- Drop support for Python 3.6
- Fixed an issue when pytest-asyncio was used in combination with
\[flaky]{.title-ref} or inherited asynchronous Hypothesis tests.
[#​178](https://github.com/pytest-dev/pytest-asyncio/issues/178)
[#​231](https://github.com/pytest-dev/pytest-asyncio/issues/231)
- Added [flaky](https://pypi.org/project/flaky/) to test dependencies
- Added `unused_udp_port` and `unused_udp_port_factory` fixtures
(similar to `unused_tcp_port` and `unused_tcp_port_factory`
counterparts.
[#​99](https://github.com/pytest-dev/pytest-asyncio/issues/99)
- Added the plugin modes: *strict*, *auto*, and *legacy*. See
[documentation](https://github.com/pytest-dev/pytest-asyncio#modes)
for details.
[#​125](https://github.com/pytest-dev/pytest-asyncio/issues/125)
- Correctly process `KeyboardInterrupt` during async fixture setup
phase
[#​219](https://github.com/pytest-dev/pytest-asyncio/issues/219)
## 0.16.0 (2021-10-16)
- Add support for Python 3.10
## 0.15.1 (2021-04-22)
- Hotfix for errors while closing event loops while replacing them.
[#​209](https://github.com/pytest-dev/pytest-asyncio/issues/209)
[#​210](https://github.com/pytest-dev/pytest-asyncio/issues/210)
## 0.15.0 (2021-04-19)
- Add support for Python 3.9
- Abandon support for Python 3.5. If you still require support for
Python 3.5, please use pytest-asyncio v0.14 or earlier.
- Set `unused_tcp_port_factory` fixture scope to 'session'.
[#​163](https://github.com/pytest-dev/pytest-asyncio/pull/163)
- Properly close event loops when replacing them.
[#​208](https://github.com/pytest-dev/pytest-asyncio/issues/208)
## 0.14.0 (2020-06-24)
- Fix
[#​162](https://github.com/pytest-dev/pytest-asyncio/issues/162),
and `event_loop` fixture behavior now is coherent on all scopes.
[#​164](https://github.com/pytest-dev/pytest-asyncio/pull/164)
## 0.12.0 (2020-05-04)
- Run the event loop fixture as soon as possible. This helps with
fixtures that have an implicit dependency on the event loop.
[#​156](https://github.com/pytest-dev/pytest-asyncio/pull/156)
## 0.11.0 (2020-04-20)
- Test on 3.8, drop 3.3 and 3.4. Stick to 0.10 for these versions.
[#​152](https://github.com/pytest-dev/pytest-asyncio/pull/152)
- Use the new Pytest 5.4.0 Function API. We therefore depend on
pytest >= 5.4.0.
[#​142](https://github.com/pytest-dev/pytest-asyncio/pull/142)
- Better `pytest.skip` support.
[#​126](https://github.com/pytest-dev/pytest-asyncio/pull/126)
## 0.10.0 (2019-01-08)
- `pytest-asyncio` integrates with
[Hypothesis](https://hypothesis.readthedocs.io) to support `@given`
on async test functions using `asyncio`.
[#​102](https://github.com/pytest-dev/pytest-asyncio/pull/102)
- Pytest 4.1 support.
[#​105](https://github.com/pytest-dev/pytest-asyncio/pull/105)
## 0.9.0 (2018-07-28)
- Python 3.7 support.
- Remove `event_loop_process_pool` fixture and
`pytest.mark.asyncio_process_pool` marker (see
<https://bugs.python.org/issue34075> for deprecation and removal
details)
## 0.8.0 (2017-09-23)
- Improve integration with other packages (like aiohttp) with more
careful event loop handling.
[#​64](https://github.com/pytest-dev/pytest-asyncio/pull/64)
## 0.7.0 (2017-09-08)
- Python versions pre-3.6 can use the async_generator library for
async fixtures. \[[#​62](https://github.com/pytest-dev/pytest-asyncio/issues/62)
\<https://github.com/pytest-dev/pytest-asyncio/pull/62>]{.title-ref}
## 0.6.0 (2017-05-28)
- Support for Python versions pre-3.5 has been dropped.
- `pytestmark` now works on both module and class level.
- The `forbid_global_loop` parameter has been removed.
- Support for async and async gen fixtures has been added.
[#​45](https://github.com/pytest-dev/pytest-asyncio/pull/45)
- The deprecation warning regarding `asyncio.async()` has been fixed.
[#​51](https://github.com/pytest-dev/pytest-asyncio/pull/51)
## 0.5.0 (2016-09-07)
- Introduced a changelog.
[#​31](https://github.com/pytest-dev/pytest-asyncio/issues/31)
- The `event_loop` fixture is again responsible for closing itself.
This makes the fixture slightly harder to correctly override, but
enables other fixtures to depend on it correctly.
[#​30](https://github.com/pytest-dev/pytest-asyncio/issues/30)
- Deal with the event loop policy by wrapping a special pytest hook,
`pytest_fixture_setup`. This allows setting the policy before
fixtures dependent on the `event_loop` fixture run, thus allowing
them to take advantage of the `forbid_global_loop` parameter. As a
consequence of this, we now depend on pytest 3.0.
[#​29](https://github.com/pytest-dev/pytest-asyncio/issues/29)
## 0.4.1 (2016-06-01)
- Fix a bug preventing the propagation of exceptions from the plugin.
[#​25](https://github.com/pytest-dev/pytest-asyncio/issues/25)
## 0.4.0 (2016-05-30)
- Make `event_loop` fixtures simpler to override by closing them in
the plugin, instead of directly in the fixture.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
- Introduce the `forbid_global_loop` parameter.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
## 0.3.0 (2015-12-19)
- Support for Python 3.5 `async`/`await` syntax.
[#​17](https://github.com/pytest-dev/pytest-asyncio/pull/17)
## 0.2.0 (2015-08-01)
- `unused_tcp_port_factory` fixture.
[#​10](https://github.com/pytest-dev/pytest-asyncio/issues/10)
## 0.1.1 (2015-04-23)
Initial release.
# Contributing
Contributions are very welcome. Tests can be run with `tox`, please
ensure the coverage at least stays the same before you submit a pull
request.
### [`v0.17.1`](https://github.com/pytest-dev/pytest-asyncio/releases/v0.17.1)
[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.17.0...v0.17.1)
***
## title: 'pytest-asyncio: pytest support for asyncio'
[![image](https://img.shields.io/pypi/v/pytest-asyncio.svg)](https://pypi.python.org/pypi/pytest-asyncio)
[![image](https://github.com/pytest-dev/pytest-asyncio/workflows/CI/badge.svg)](https://github.com/pytest-dev/pytest-asyncio/actions?workflow=CI)
[![image](https://codecov.io/gh/pytest-dev/pytest-asyncio/branch/master/graph/badge.svg)](https://codecov.io/gh/pytest-dev/pytest-asyncio)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/pytest-asyncio.svg)](https://github.com/pytest-dev/pytest-asyncio)
[![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
pytest-asyncio is an Apache2 licensed library, written in Python, for
testing asyncio code with pytest.
asyncio code is usually written in the form of coroutines, which makes
it slightly more difficult to test using normal testing tools.
pytest-asyncio provides useful fixtures and markers to make testing
easier.
```{.sourceCode .python}
@​pytest.mark.asyncio
async def test_some_asyncio_code():
res = await library.do_something()
assert b"expected result" == res
```
pytest-asyncio has been strongly influenced by
[pytest-tornado](https://github.com/eugeniy/pytest-tornado).
# Features
- fixtures for creating and injecting versions of the asyncio event
loop
- fixtures for injecting unused tcp/udp ports
- pytest markers for treating tests as asyncio coroutines
- easy testing with non-default event loops
- support for \[async def]{.title-ref} fixtures and async generator
fixtures
- support *auto* mode to handle all async fixtures and tests
automatically by asyncio; provide *strict* mode if a test suite
should work with different async frameworks simultaneously, e.g.
`asyncio` and `trio`.
# Installation
To install pytest-asyncio, simply:
```{.sourceCode .bash}
$ pip install pytest-asyncio
```
This is enough for pytest to pick up pytest-asyncio.
# Modes
Starting from `pytest-asyncio>=0.17`, three modes are provided: *auto*,
*strict* and *legacy* (default).
The mode can be set by `asyncio_mode` configuration option in
[configuration
file](https://docs.pytest.org/en/latest/reference/customize.html):
```{.sourceCode .ini}
### pytest.ini
[pytest]
asyncio_mode = auto
```
The value can be overriden by command-line option for `pytest`
invocation:
```{.sourceCode .bash}
$ pytest tests --asyncio-mode=strict
```
## Auto mode
When the mode is auto, all discovered *async* tests are considered
*asyncio-driven* even if they have no `@pytest.mark.asyncio` marker.
All async fixtures are considered *asyncio-driven* as well, even if they
are decorated with a regular `@pytest.fixture` decorator instead of
dedicated `@pytest_asyncio.fixture` counterpart.
*asyncio-driven* means that tests and fixtures are executed by
`pytest-asyncio` plugin.
This mode requires the simplest tests and fixtures configuration and is
recommended for default usage *unless* the same project and its test
suite should execute tests from different async frameworks, e.g.
`asyncio` and `trio`. In this case, auto-handling can break tests
designed for other framework; plase use *strict* mode instead.
## Strict mode
Strict mode enforces `@pytest.mark.asyncio` and
`@pytest_asyncio.fixture` usage. Without these markers, tests and
fixtures are not considered as *asyncio-driven*, other pytest plugin can
handle them.
Please use this mode if multiple async frameworks should be combined in
the same test suite.
## Legacy mode
This mode follows rules used by `pytest-asyncio<0.17`: tests are not
auto-marked but fixtures are.
This mode is used by default for the sake of backward compatibility,
deprecation warnings are emitted with suggestion to either switching to
`auto` mode or using `strict` mode with `@pytest_asyncio.fixture`
decorators.
In future, the default will be changed.
# Fixtures
## `event_loop`
Creates and injects a new instance of the default asyncio event loop. By
default, the loop will be closed at the end of the test (i.e. the
default fixture scope is `function`).
Note that just using the `event_loop` fixture won't make your test
function a coroutine. You'll need to interact with the event loop
directly, using methods like `event_loop.run_until_complete`. See the
`pytest.mark.asyncio` marker for treating test functions like
coroutines.
Simply using this fixture will not set the generated event loop as the
default asyncio event loop, or change the asyncio event loop policy in
any way. Use `pytest.mark.asyncio` for this purpose.
```{.sourceCode .python}
def test_http_client(event_loop):
url = "http://httpbin.org/get"
resp = event_loop.run_until_complete(http_client(url))
assert b"HTTP/1.1 200 OK" in resp
```
This fixture can be easily overridden in any of the standard pytest
locations (e.g. directly in the test file, or in `conftest.py`) to use a
non-default event loop. This will take effect even if you're using the
`pytest.mark.asyncio` marker and not the `event_loop` fixture directly.
```{.sourceCode .python}
@​pytest.fixture
def event_loop():
loop = MyCustomLoop()
yield loop
loop.close()
```
If the `pytest.mark.asyncio` marker is applied, a pytest hook will
ensure the produced loop is set as the default global loop. Fixtures
depending on the `event_loop` fixture can expect the policy to be
properly modified when they run.
## `unused_tcp_port`
Finds and yields a single unused TCP port on the localhost interface.
Useful for binding temporary test servers.
## `unused_tcp_port_factory`
A callable which returns a different unused TCP port each invocation.
Useful when several unused TCP ports are required in a test.
```{.sourceCode .python}
def a_test(unused_tcp_port_factory):
port1, port2 = unused_tcp_port_factory(), unused_tcp_port_factory()
...
```
## `unused_udp_port` and `unused_udp_port_factory`
Work just like their TCP counterparts but return unused UDP ports.
## Async fixtures
Asynchronous fixtures are defined just like ordinary pytest fixtures,
except they should be decorated with `@pytest_asyncio.fixture`.
```{.sourceCode .python3}
import pytest_asyncio
@​pytest_asyncio.fixture
async def async_gen_fixture():
await asyncio.sleep(0.1)
yield "a value"
@​pytest_asyncio.fixture(scope="module")
async def async_fixture():
return await asyncio.sleep(0.1)
```
All scopes are supported, but if you use a non-function scope you will
need to redefine the `event_loop` fixture to have the same or broader
scope. Async fixtures need the event loop, and so must have the same or
narrower scope than the `event_loop` fixture.
*auto* and *legacy* mode automatically converts async fixtures declared
with the standard `@pytest.fixture` decorator to *asyncio-driven*
versions.
# Markers
## `pytest.mark.asyncio`
Mark your test coroutine with this marker and pytest will execute it as
an asyncio task using the event loop provided by the `event_loop`
fixture. See the introductory section for an example.
The event loop used can be overridden by overriding the `event_loop`
fixture (see above).
In order to make your test code a little more concise, the pytest
`pytestmark`\_ feature can be used to mark entire modules or classes
with this marker. Only test coroutines will be affected (by default,
coroutines prefixed by `test_`), so, for example, fixtures are safe to
define.
```{.sourceCode .python}
import asyncio
import pytest
### All test coroutines will be treated as marked.
pytestmark = pytest.mark.asyncio
async def test_example(event_loop):
"""No marker!"""
await asyncio.sleep(0, loop=event_loop)
```
In *auto* mode, the `pytest.mark.asyncio` marker can be omitted, the
marker is added automatically to *async* test functions.
# Note about unittest
Test classes subclassing the standard
[unittest](https://docs.python.org/3/library/unittest.html) library are
not supported, users are recommended to use
[unitest.IsolatedAsyncioTestCase](https://docs.python.org/3/library/unittest.html#unittest.IsolatedAsyncioTestCase)
or an async framework such as
[asynctest](https://asynctest.readthedocs.io/en/latest).
# Changelog
## 0.17.1 (22-01-16)
- Fixes a bug that prevents async Hypothesis tests from working
without explicit `asyncio` marker when `--asyncio-mode=auto` is set.
[#​258](https://github.com/pytest-dev/pytest-asyncio/issues/258)
- Fixed a bug that closes the default event loop if the loop doesn't
exist
[#​257](https://github.com/pytest-dev/pytest-asyncio/issues/257)
- Added type annotations.
[#​198](https://github.com/pytest-dev/pytest-asyncio/issues/198)
- Show asyncio mode in pytest report headers.
[#​266](https://github.com/pytest-dev/pytest-asyncio/issues/266)
- Relax `asyncio_mode` type definition; it allows to support pytest
6.1+.
[#​262](https://github.com/pytest-dev/pytest-asyncio/issues/262)
## 0.17.0 (22-01-13)
- \[pytest-asyncio]{.title-ref} no longer alters existing event loop
policies.
[#​168](https://github.com/pytest-dev/pytest-asyncio/issues/168),
[#​188](https://github.com/pytest-dev/pytest-asyncio/issues/168)
- Drop support for Python 3.6
- Fixed an issue when pytest-asyncio was used in combination with
\[flaky]{.title-ref} or inherited asynchronous Hypothesis tests.
[#​178](https://github.com/pytest-dev/pytest-asyncio/issues/178)
[#​231](https://github.com/pytest-dev/pytest-asyncio/issues/231)
- Added [flaky](https://pypi.org/project/flaky/) to test dependencies
- Added `unused_udp_port` and `unused_udp_port_factory` fixtures
(similar to `unused_tcp_port` and `unused_tcp_port_factory`
counterparts.
[#​99](https://github.com/pytest-dev/pytest-asyncio/issues/99)
- Added the plugin modes: *strict*, *auto*, and *legacy*. See
[documentation](https://github.com/pytest-dev/pytest-asyncio#modes)
for details.
[#​125](https://github.com/pytest-dev/pytest-asyncio/issues/125)
- Correctly process `KeyboardInterrupt` during async fixture setup
phase
[#​219](https://github.com/pytest-dev/pytest-asyncio/issues/219)
## 0.16.0 (2021-10-16)
- Add support for Python 3.10
## 0.15.1 (2021-04-22)
- Hotfix for errors while closing event loops while replacing them.
[#​209](https://github.com/pytest-dev/pytest-asyncio/issues/209)
[#​210](https://github.com/pytest-dev/pytest-asyncio/issues/210)
## 0.15.0 (2021-04-19)
- Add support for Python 3.9
- Abandon support for Python 3.5. If you still require support for
Python 3.5, please use pytest-asyncio v0.14 or earlier.
- Set `unused_tcp_port_factory` fixture scope to 'session'.
[#​163](https://github.com/pytest-dev/pytest-asyncio/pull/163)
- Properly close event loops when replacing them.
[#​208](https://github.com/pytest-dev/pytest-asyncio/issues/208)
## 0.14.0 (2020-06-24)
- Fix
[#​162](https://github.com/pytest-dev/pytest-asyncio/issues/162),
and `event_loop` fixture behavior now is coherent on all scopes.
[#​164](https://github.com/pytest-dev/pytest-asyncio/pull/164)
## 0.12.0 (2020-05-04)
- Run the event loop fixture as soon as possible. This helps with
fixtures that have an implicit dependency on the event loop.
[#​156](https://github.com/pytest-dev/pytest-asyncio/pull/156)
## 0.11.0 (2020-04-20)
- Test on 3.8, drop 3.3 and 3.4. Stick to 0.10 for these versions.
[#​152](https://github.com/pytest-dev/pytest-asyncio/pull/152)
- Use the new Pytest 5.4.0 Function API. We therefore depend on
pytest >= 5.4.0.
[#​142](https://github.com/pytest-dev/pytest-asyncio/pull/142)
- Better `pytest.skip` support.
[#​126](https://github.com/pytest-dev/pytest-asyncio/pull/126)
## 0.10.0 (2019-01-08)
- `pytest-asyncio` integrates with
[Hypothesis](https://hypothesis.readthedocs.io) to support `@given`
on async test functions using `asyncio`.
[#​102](https://github.com/pytest-dev/pytest-asyncio/pull/102)
- Pytest 4.1 support.
[#​105](https://github.com/pytest-dev/pytest-asyncio/pull/105)
## 0.9.0 (2018-07-28)
- Python 3.7 support.
- Remove `event_loop_process_pool` fixture and
`pytest.mark.asyncio_process_pool` marker (see
<https://bugs.python.org/issue34075> for deprecation and removal
details)
## 0.8.0 (2017-09-23)
- Improve integration with other packages (like aiohttp) with more
careful event loop handling.
[#​64](https://github.com/pytest-dev/pytest-asyncio/pull/64)
## 0.7.0 (2017-09-08)
- Python versions pre-3.6 can use the async_generator library for
async fixtures. \[[#​62](https://github.com/pytest-dev/pytest-asyncio/issues/62)
\<https://github.com/pytest-dev/pytest-asyncio/pull/62>]{.title-ref}
## 0.6.0 (2017-05-28)
- Support for Python versions pre-3.5 has been dropped.
- `pytestmark` now works on both module and class level.
- The `forbid_global_loop` parameter has been removed.
- Support for async and async gen fixtures has been added.
[#​45](https://github.com/pytest-dev/pytest-asyncio/pull/45)
- The deprecation warning regarding `asyncio.async()` has been fixed.
[#​51](https://github.com/pytest-dev/pytest-asyncio/pull/51)
## 0.5.0 (2016-09-07)
- Introduced a changelog.
[#​31](https://github.com/pytest-dev/pytest-asyncio/issues/31)
- The `event_loop` fixture is again responsible for closing itself.
This makes the fixture slightly harder to correctly override, but
enables other fixtures to depend on it correctly.
[#​30](https://github.com/pytest-dev/pytest-asyncio/issues/30)
- Deal with the event loop policy by wrapping a special pytest hook,
`pytest_fixture_setup`. This allows setting the policy before
fixtures dependent on the `event_loop` fixture run, thus allowing
them to take advantage of the `forbid_global_loop` parameter. As a
consequence of this, we now depend on pytest 3.0.
[#​29](https://github.com/pytest-dev/pytest-asyncio/issues/29)
## 0.4.1 (2016-06-01)
- Fix a bug preventing the propagation of exceptions from the plugin.
[#​25](https://github.com/pytest-dev/pytest-asyncio/issues/25)
## 0.4.0 (2016-05-30)
- Make `event_loop` fixtures simpler to override by closing them in
the plugin, instead of directly in the fixture.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
- Introduce the `forbid_global_loop` parameter.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
## 0.3.0 (2015-12-19)
- Support for Python 3.5 `async`/`await` syntax.
[#​17](https://github.com/pytest-dev/pytest-asyncio/pull/17)
## 0.2.0 (2015-08-01)
- `unused_tcp_port_factory` fixture.
[#​10](https://github.com/pytest-dev/pytest-asyncio/issues/10)
## 0.1.1 (2015-04-23)
Initial release.
# Contributing
Contributions are very welcome. Tests can be run with `tox`, please
ensure the coverage at least stays the same before you submit a pull
request.
### [`v0.17.0`](https://github.com/pytest-dev/pytest-asyncio/releases/v0.17.0)
[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.16.0...v0.17.0)
***
## title: 'pytest-asyncio: pytest support for asyncio'
[![image](https://img.shields.io/pypi/v/pytest-asyncio.svg)](https://pypi.python.org/pypi/pytest-asyncio)
[![image](https://github.com/pytest-dev/pytest-asyncio/workflows/CI/badge.svg)](https://github.com/pytest-dev/pytest-asyncio/actions?workflow=CI)
[![image](https://codecov.io/gh/pytest-dev/pytest-asyncio/branch/master/graph/badge.svg)](https://codecov.io/gh/pytest-dev/pytest-asyncio)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/pytest-asyncio.svg)](https://github.com/pytest-dev/pytest-asyncio)
[![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
pytest-asyncio is an Apache2 licensed library, written in Python, for
testing asyncio code with pytest.
asyncio code is usually written in the form of coroutines, which makes
it slightly more difficult to test using normal testing tools.
pytest-asyncio provides useful fixtures and markers to make testing
easier.
```{.sourceCode .python}
@​pytest.mark.asyncio
async def test_some_asyncio_code():
res = await library.do_something()
assert b"expected result" == res
```
pytest-asyncio has been strongly influenced by
[pytest-tornado](https://github.com/eugeniy/pytest-tornado).
# Features
- fixtures for creating and injecting versions of the asyncio event
loop
- fixtures for injecting unused tcp/udp ports
- pytest markers for treating tests as asyncio coroutines
- easy testing with non-default event loops
- support for \[async def]{.title-ref} fixtures and async generator
fixtures
- support *auto* mode to handle all async fixtures and tests
automatically by asyncio; provide *strict* mode if a test suite
should work with different async frameworks simultaneously, e.g.
`asyncio` and `trio`.
# Installation
To install pytest-asyncio, simply:
```{.sourceCode .bash}
$ pip install pytest-asyncio
```
This is enough for pytest to pick up pytest-asyncio.
# Modes
Starting from `pytest-asyncio>=0.17`, three modes are provided: *auto*,
*strict* and *legacy* (default).
The mode can be set by `asyncio_mode` configuration option in
[configuration
file](https://docs.pytest.org/en/latest/reference/customize.html):
```{.sourceCode .ini}
### pytest.ini
[pytest]
asyncio_mode = auto
```
The value can be overriden by command-line option for `pytest`
invocation:
```{.sourceCode .bash}
$ pytest tests --asyncio-mode=strict
```
## Auto mode
When the mode is auto, all discovered *async* tests are considered
*asyncio-driven* even if they have no `@pytest.mark.asyncio` marker.
All async fixtures are considered *asyncio-driven* as well, even if they
are decorated with a regular `@pytest.fixture` decorator instead of
dedicated `@pytest_asyncio.fixture` counterpart.
*asyncio-driven* means that tests and fixtures are executed by
`pytest-asyncio` plugin.
This mode requires the simplest tests and fixtures configuration and is
recommended for default usage *unless* the same project and its test
suite should execute tests from different async frameworks, e.g.
`asyncio` and `trio`. In this case, auto-handling can break tests
designed for other framework; plase use *strict* mode instead.
## Strict mode
Strict mode enforces `@pytest.mark.asyncio` and
`@pytest_asyncio.fixture` usage. Without these markers, tests and
fixtures are not considered as *asyncio-driven*, other pytest plugin can
handle them.
Please use this mode if multiple async frameworks should be combined in
the same test suite.
## Legacy mode
This mode follows rules used by `pytest-asyncio<0.17`: tests are not
auto-marked but fixtures are.
This mode is used by default for the sake of backward compatibility,
deprecation warnings are emitted with suggestion to either switching to
`auto` mode or using `strict` mode with `@pytest_asyncio.fixture`
decorators.
In future, the default will be changed.
# Fixtures
## `event_loop`
Creates and injects a new instance of the default asyncio event loop. By
default, the loop will be closed at the end of the test (i.e. the
default fixture scope is `function`).
Note that just using the `event_loop` fixture won't make your test
function a coroutine. You'll need to interact with the event loop
directly, using methods like `event_loop.run_until_complete`. See the
`pytest.mark.asyncio` marker for treating test functions like
coroutines.
Simply using this fixture will not set the generated event loop as the
default asyncio event loop, or change the asyncio event loop policy in
any way. Use `pytest.mark.asyncio` for this purpose.
```{.sourceCode .python}
def test_http_client(event_loop):
url = "http://httpbin.org/get"
resp = event_loop.run_until_complete(http_client(url))
assert b"HTTP/1.1 200 OK" in resp
```
This fixture can be easily overridden in any of the standard pytest
locations (e.g. directly in the test file, or in `conftest.py`) to use a
non-default event loop. This will take effect even if you're using the
`pytest.mark.asyncio` marker and not the `event_loop` fixture directly.
```{.sourceCode .python}
@​pytest.fixture
def event_loop():
loop = MyCustomLoop()
yield loop
loop.close()
```
If the `pytest.mark.asyncio` marker is applied, a pytest hook will
ensure the produced loop is set as the default global loop. Fixtures
depending on the `event_loop` fixture can expect the policy to be
properly modified when they run.
## `unused_tcp_port`
Finds and yields a single unused TCP port on the localhost interface.
Useful for binding temporary test servers.
## `unused_tcp_port_factory`
A callable which returns a different unused TCP port each invocation.
Useful when several unused TCP ports are required in a test.
```{.sourceCode .python}
def a_test(unused_tcp_port_factory):
port1, port2 = unused_tcp_port_factory(), unused_tcp_port_factory()
...
```
## `unused_udp_port` and `unused_udp_port_factory`
Work just like their TCP counterparts but return unused UDP ports.
## Async fixtures
Asynchronous fixtures are defined just like ordinary pytest fixtures,
except they should be decorated with `@pytest_asyncio.fixture`.
```{.sourceCode .python3}
import pytest_asyncio
@​pytest_asyncio.fixture
async def async_gen_fixture():
await asyncio.sleep(0.1)
yield "a value"
@​pytest_asyncio.fixture(scope="module")
async def async_fixture():
return await asyncio.sleep(0.1)
```
All scopes are supported, but if you use a non-function scope you will
need to redefine the `event_loop` fixture to have the same or broader
scope. Async fixtures need the event loop, and so must have the same or
narrower scope than the `event_loop` fixture.
*auto* and *legacy* mode automatically converts async fixtures declared
with the standard `@pytest.fixture` decorator to *asyncio-driven*
versions.
# Markers
## `pytest.mark.asyncio`
Mark your test coroutine with this marker and pytest will execute it as
an asyncio task using the event loop provided by the `event_loop`
fixture. See the introductory section for an example.
The event loop used can be overridden by overriding the `event_loop`
fixture (see above).
In order to make your test code a little more concise, the pytest
`pytestmark`\_ feature can be used to mark entire modules or classes
with this marker. Only test coroutines will be affected (by default,
coroutines prefixed by `test_`), so, for example, fixtures are safe to
define.
```{.sourceCode .python}
import asyncio
import pytest
### All test coroutines will be treated as marked.
pytestmark = pytest.mark.asyncio
async def test_example(event_loop):
"""No marker!"""
await asyncio.sleep(0, loop=event_loop)
```
In *auto* mode, the `pytest.mark.asyncio` marker can be omitted, the
marker is added automatically to *async* test functions.
# Note about unittest
Test classes subclassing the standard
[unittest](https://docs.python.org/3/library/unittest.html) library are
not supported, users are recommended to use
[unitest.IsolatedAsyncioTestCase](https://docs.python.org/3/library/unittest.html#unittest.IsolatedAsyncioTestCase)
or an async framework such as
[asynctest](https://asynctest.readthedocs.io/en/latest).
# Changelog
## 0.17.0 (22-01-13)
- \[pytest-asyncio]{.title-ref} no longer alters existing event loop
policies.
[#​168](https://github.com/pytest-dev/pytest-asyncio/issues/168),
[#​188](https://github.com/pytest-dev/pytest-asyncio/issues/168)
- Drop support for Python 3.6
- Fixed an issue when pytest-asyncio was used in combination with
\[flaky]{.title-ref} or inherited asynchronous Hypothesis tests.
[#​178](https://github.com/pytest-dev/pytest-asyncio/issues/178)
[#​231](https://github.com/pytest-dev/pytest-asyncio/issues/231)
- Added [flaky](https://pypi.org/project/flaky/) to test dependencies
- Added `unused_udp_port` and `unused_udp_port_factory` fixtures
(similar to `unused_tcp_port` and `unused_tcp_port_factory`
counterparts.
[#​99](https://github.com/pytest-dev/pytest-asyncio/issues/99)
- Added the plugin modes: *strict*, *auto*, and *legacy*. See
[documentation](https://github.com/pytest-dev/pytest-asyncio#modes)
for details.
[#​125](https://github.com/pytest-dev/pytest-asyncio/issues/125)
- Correctly process `KeyboardInterrupt` during async fixture setup
phase
[#​219](https://github.com/pytest-dev/pytest-asyncio/issues/219)
## 0.16.0 (2021-10-16)
- Add support for Python 3.10
## 0.15.1 (2021-04-22)
- Hotfix for errors while closing event loops while replacing them.
[#​209](https://github.com/pytest-dev/pytest-asyncio/issues/209)
[#​210](https://github.com/pytest-dev/pytest-asyncio/issues/210)
## 0.15.0 (2021-04-19)
- Add support for Python 3.9
- Abandon support for Python 3.5. If you still require support for
Python 3.5, please use pytest-asyncio v0.14 or earlier.
- Set `unused_tcp_port_factory` fixture scope to 'session'.
[#​163](https://github.com/pytest-dev/pytest-asyncio/pull/163)
- Properly close event loops when replacing them.
[#​208](https://github.com/pytest-dev/pytest-asyncio/issues/208)
## 0.14.0 (2020-06-24)
- Fix
[#​162](https://github.com/pytest-dev/pytest-asyncio/issues/162),
and `event_loop` fixture behavior now is coherent on all scopes.
[#​164](https://github.com/pytest-dev/pytest-asyncio/pull/164)
## 0.12.0 (2020-05-04)
- Run the event loop fixture as soon as possible. This helps with
fixtures that have an implicit dependency on the event loop.
[#​156](https://github.com/pytest-dev/pytest-asyncio/pull/156)
## 0.11.0 (2020-04-20)
- Test on 3.8, drop 3.3 and 3.4. Stick to 0.10 for these versions.
[#​152](https://github.com/pytest-dev/pytest-asyncio/pull/152)
- Use the new Pytest 5.4.0 Function API. We therefore depend on
pytest >= 5.4.0.
[#​142](https://github.com/pytest-dev/pytest-asyncio/pull/142)
- Better `pytest.skip` support.
[#​126](https://github.com/pytest-dev/pytest-asyncio/pull/126)
## 0.10.0 (2019-01-08)
- `pytest-asyncio` integrates with
[Hypothesis](https://hypothesis.readthedocs.io) to support `@given`
on async test functions using `asyncio`.
[#​102](https://github.com/pytest-dev/pytest-asyncio/pull/102)
- Pytest 4.1 support.
[#​105](https://github.com/pytest-dev/pytest-asyncio/pull/105)
## 0.9.0 (2018-07-28)
- Python 3.7 support.
- Remove `event_loop_process_pool` fixture and
`pytest.mark.asyncio_process_pool` marker (see
<https://bugs.python.org/issue34075> for deprecation and removal
details)
## 0.8.0 (2017-09-23)
- Improve integration with other packages (like aiohttp) with more
careful event loop handling.
[#​64](https://github.com/pytest-dev/pytest-asyncio/pull/64)
## 0.7.0 (2017-09-08)
- Python versions pre-3.6 can use the async_generator library for
async fixtures. \[[#​62](https://github.com/pytest-dev/pytest-asyncio/issues/62)
\<https://github.com/pytest-dev/pytest-asyncio/pull/62>]{.title-ref}
## 0.6.0 (2017-05-28)
- Support for Python versions pre-3.5 has been dropped.
- `pytestmark` now works on both module and class level.
- The `forbid_global_loop` parameter has been removed.
- Support for async and async gen fixtures has been added.
[#​45](https://github.com/pytest-dev/pytest-asyncio/pull/45)
- The deprecation warning regarding `asyncio.async()` has been fixed.
[#​51](https://github.com/pytest-dev/pytest-asyncio/pull/51)
## 0.5.0 (2016-09-07)
- Introduced a changelog.
[#​31](https://github.com/pytest-dev/pytest-asyncio/issues/31)
- The `event_loop` fixture is again responsible for closing itself.
This makes the fixture slightly harder to correctly override, but
enables other fixtures to depend on it correctly.
[#​30](https://github.com/pytest-dev/pytest-asyncio/issues/30)
- Deal with the event loop policy by wrapping a special pytest hook,
`pytest_fixture_setup`. This allows setting the policy before
fixtures dependent on the `event_loop` fixture run, thus allowing
them to take advantage of the `forbid_global_loop` parameter. As a
consequence of this, we now depend on pytest 3.0.
[#​29](https://github.com/pytest-dev/pytest-asyncio/issues/29)
## 0.4.1 (2016-06-01)
- Fix a bug preventing the propagation of exceptions from the plugin.
[#​25](https://github.com/pytest-dev/pytest-asyncio/issues/25)
## 0.4.0 (2016-05-30)
- Make `event_loop` fixtures simpler to override by closing them in
the plugin, instead of directly in the fixture.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
- Introduce the `forbid_global_loop` parameter.
[#​21](https://github.com/pytest-dev/pytest-asyncio/pull/21)
## 0.3.0 (2015-12-19)
- Support for Python 3.5 `async`/`await` syntax.
[#​17](https://github.com/pytest-dev/pytest-asyncio/pull/17)
## 0.2.0 (2015-08-01)
- `unused_tcp_port_factory` fixture.
[#​10](https://github.com/pytest-dev/pytest-asyncio/issues/10)
## 0.1.1 (2015-04-23)
Initial release.
# Contributing
Contributions are very welcome. Tests can be run with `tox`, please
ensure the coverage at least stays the same before you submit a pull
request.
### [`v0.16.0`](https://github.com/pytest-dev/pytest-asyncio/compare/v0.15.1...v0.16.0)
[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.15.1...v0.16.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1558Update dependency djangorestframework to v3.13.1 (develop) - autoclosed2022-02-02T01:07:15ZRenovateBotUpdate dependency djangorestframework to v3.13.1 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [djangorestframework](https://www.django-rest-framework.org/) ([source](https://github.com/encode/django-rest-framework), [changelog](https...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [djangorestframework](https://www.django-rest-framework.org/) ([source](https://github.com/encode/django-rest-framework), [changelog](https://www.django-rest-framework.org/community/release-notes/)) | dependencies | minor | `==3.12.4` -> `==3.13.1` |
---
### Release Notes
<details>
<summary>encode/django-rest-framework</summary>
### [`v3.13.1`](https://github.com/encode/django-rest-framework/compare/3.13.0...3.13.1)
[Compare Source](https://github.com/encode/django-rest-framework/compare/3.13.0...3.13.1)
### [`v3.13.0`](https://github.com/encode/django-rest-framework/compare/3.12.4...3.13.0)
[Compare Source](https://github.com/encode/django-rest-framework/compare/3.12.4...3.13.0)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1557Update dependency django-storages to v1.12.3 (develop) - autoclosed2022-02-02T01:07:11ZRenovateBotUpdate dependency django-storages to v1.12.3 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-storages](https://github.com/jschneier/django-storages) ([changelog](https://github.com/jschneier/django-storages/blob/master/CHANG...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-storages](https://github.com/jschneier/django-storages) ([changelog](https://github.com/jschneier/django-storages/blob/master/CHANGELOG.rst)) | dependencies | minor | `==1.11.1` -> `==1.12.3` |
---
### Release Notes
<details>
<summary>jschneier/django-storages</summary>
### [`v1.12.3`](https://github.com/jschneier/django-storages/compare/1.12.2...1.12.3)
[Compare Source](https://github.com/jschneier/django-storages/compare/1.12.2...1.12.3)
### [`v1.12.2`](https://github.com/jschneier/django-storages/compare/1.12.1...1.12.2)
[Compare Source](https://github.com/jschneier/django-storages/compare/1.12.1...1.12.2)
### [`v1.12.1`](https://github.com/jschneier/django-storages/compare/1.12...1.12.1)
[Compare Source](https://github.com/jschneier/django-storages/compare/1.12...1.12.1)
### [`v1.12`](https://github.com/jschneier/django-storages/compare/1.11.1...1.12)
[Compare Source](https://github.com/jschneier/django-storages/compare/1.11.1...1.12)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1556Update dependency django-redis to v5.2.0 (develop) - autoclosed2022-02-02T01:07:05ZRenovateBotUpdate dependency django-redis to v5.2.0 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-redis](https://github.com/jazzband/django-redis) | dependencies | minor | `==5.0.0` -> `==5.2.0` |
---
### Release Notes
<detail...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-redis](https://github.com/jazzband/django-redis) | dependencies | minor | `==5.0.0` -> `==5.2.0` |
---
### Release Notes
<details>
<summary>jazzband/django-redis</summary>
### [`v5.2.0`](https://github.com/jazzband/django-redis/blob/HEAD/CHANGELOG.rst#django-redis-520-2021-12-22)
[Compare Source](https://github.com/jazzband/django-redis/compare/5.1.0...5.2.0)
\===============================
## Bug Fixes
- Block use with broken redis-py 4.0.0 and 4.0.1 (`#​542 <https://github.com/jazzband/django-redis/issues/542>`\_)
## Miscellaneous
- Unblock redis-py >=4.0.2 (`#​576 <https://github.com/jazzband/django-redis/issues/576>`\_)
- Add support for django 4 (`#​579 <https://github.com/jazzband/django-redis/issues/579>`\_)
### [`v5.1.0`](https://github.com/jazzband/django-redis/blob/HEAD/CHANGELOG.rst#DjangoRedis-510-2021-11-29)
[Compare Source](https://github.com/jazzband/django-redis/compare/5.0.0...5.1.0)
\===============================
## Features
- Add Python 3.10 to CI (`#​536 <https://github.com/jazzband/django-redis/issues/536>`\_)
- Configured `towncrier` to generate the changelog. (`#​548 <https://github.com/jazzband/django-redis/issues/548>`\_)
- Added `django_redis.compressors.zstd.ZStdCompressor` to provide `pyzstd` cache value compression. (`#​551 <https://github.com/jazzband/django-redis/issues/551>`\_)
- Change pickle default version to Python default instead of highest version. (`#​555 <https://github.com/jazzband/django-redis/issues/555>`\_)
- Add `hiredis` extra dependency to request `redis[hiredis]`. (`#​556 <https://github.com/jazzband/django-redis/issues/556>`\_)
- Add pexpireat to allow setting 'expire at' with millisecond precision. (`#​564 <https://github.com/jazzband/django-redis/issues/564>`\_)
## Bug Fixes
- Make expire, pexpire, expireat and persist return the redis client value (`#​564 <https://github.com/jazzband/django-redis/issues/564>`\_)
## Miscellaneous
- Convert most unittest class tests to pytest tests. (`#​553 <https://github.com/jazzband/django-redis/issues/553>`\_)
- Update type comments to type annotations. (`#​568 <https://github.com/jazzband/django-redis/issues/568>`\_)
- Pin redis-py to 3.x until 4.x breaking changes can be addressed. (`#​570 <https://github.com/jazzband/django-redis/issues/570>`\_)
## Documentation
- Clarify redis primary name in sentinel documentation. (`#​529 <https://github.com/jazzband/django-redis/issues/529>`\_)
- Add documentation on configuring self signed SSL certificates. (`#​559 <https://github.com/jazzband/django-redis/issues/559>`\_)
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1554Update dependency django-oauth-toolkit to v1.7.0 (develop) - autoclosed2022-02-01T21:09:03ZRenovateBotUpdate dependency django-oauth-toolkit to v1.7.0 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-oauth-toolkit](https://github.com/jazzband/django-oauth-toolkit) | dependencies | minor | `==1.5.0` -> `==1.7.0` |
---
### Releas...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-oauth-toolkit](https://github.com/jazzband/django-oauth-toolkit) | dependencies | minor | `==1.5.0` -> `==1.7.0` |
---
### Release Notes
<details>
<summary>jazzband/django-oauth-toolkit</summary>
### [`v1.7.0`](https://github.com/jazzband/django-oauth-toolkit/blob/HEAD/CHANGELOG.md#​170-2022-01-23)
[Compare Source](https://github.com/jazzband/django-oauth-toolkit/compare/1.6.3...1.7.0)
##### Added
- [#​969](https://github.com/jazzband/django-oauth-toolkit/issues/969) Add batching of expired token deletions in `cleartokens` management command and `models.clear_expired()`
to improve performance for removal of large numers of expired tokens. Configure with
[`CLEAR_EXPIRED_TOKENS_BATCH_SIZE`](https://django-oauth-toolkit.readthedocs.io/en/latest/settings.html#clear-expired-tokens-batch-size) and
[`CLEAR_EXPIRED_TOKENS_BATCH_INTERVAL`](https://django-oauth-toolkit.readthedocs.io/en/latest/settings.html#clear-expired-tokens-batch-interval).
- [#​1070](https://github.com/jazzband/django-oauth-toolkit/issues/1070) Add a Celery task for clearing expired tokens, e.g. to be scheduled as a [periodic task](https://docs.celeryproject.org/en/stable/userguide/periodic-tasks.html).
- [#​1062](https://github.com/jazzband/django-oauth-toolkit/issues/1062) Add Brazilian Portuguese (pt-BR) translations.
- [#​1069](https://github.com/jazzband/django-oauth-toolkit/issues/1069) OIDC: Add an alternate form of
[get_additional_claims()](https://django-oauth-toolkit.readthedocs.io/en/latest/oidc.html#adding-claims-to-the-id-token)
which makes the list of additional `claims_supported` available at the OIDC auto-discovery endpoint (`.well-known/openid-configuration`).
##### Fixed
- [#​1012](https://github.com/jazzband/django-oauth-toolkit/issues/1012) Return 200 status code with `{"active": false}` when introspecting a nonexistent token
per [RFC 7662](https://datatracker.ietf.org/doc/html/rfc7662#section-2.2). It had been incorrectly returning 401.
### [`v1.6.3`](https://github.com/jazzband/django-oauth-toolkit/blob/HEAD/CHANGELOG.md#​163-2022-01-11)
[Compare Source](https://github.com/jazzband/django-oauth-toolkit/compare/1.6.2...1.6.3)
##### Fixed
- [#​1085](https://github.com/jazzband/django-oauth-toolkit/issues/1085) Fix for [#​1083](https://github.com/jazzband/django-oauth-toolkit/issues/1083) admin UI search for idtoken results in `django.core.exceptions.FieldError: Cannot resolve keyword 'token' into field.`
##### Added
- [#​1085](https://github.com/jazzband/django-oauth-toolkit/issues/1085) Add admin UI search fields for additional models.
### [`v1.6.2`](https://github.com/jazzband/django-oauth-toolkit/blob/HEAD/CHANGELOG.md#​162-2022-01-06)
[Compare Source](https://github.com/jazzband/django-oauth-toolkit/compare/1.6.1...1.6.2)
**NOTE: This release reverts an inadvertently-added breaking change.**
##### Fixed
- [#​1056](https://github.com/jazzband/django-oauth-toolkit/issues/1056) Add missing migration triggered by [Django 4.0 changes to the migrations autodetector](https://docs.djangoproject.com/en/4.0/releases/4.0/#migrations-autodetector-changes).
- [#​1068](https://github.com/jazzband/django-oauth-toolkit/issues/1068) Revert [#​967](https://github.com/jazzband/django-oauth-toolkit/issues/967) which incorrectly changed an API. See [#​1066](https://github.com/jazzband/django-oauth-toolkit/issues/1066).
### [`v1.6.1`](https://github.com/jazzband/django-oauth-toolkit/blob/HEAD/CHANGELOG.md#​161-2021-12-23)
[Compare Source](https://github.com/jazzband/django-oauth-toolkit/compare/1.6.0...1.6.1)
##### Changed
- Note: Only Django 4.0.1+ is supported due to a regression in Django 4.0.0. [Explanation](https://github.com/jazzband/django-oauth-toolkit/pull/1046#issuecomment-998015272)
##### Fixed
- Miscellaneous 1.6.0 packaging issues.
### [`v1.6.0`](https://github.com/jazzband/django-oauth-toolkit/blob/HEAD/CHANGELOG.md#​160-2021-12-19)
[Compare Source](https://github.com/jazzband/django-oauth-toolkit/compare/1.5.0...1.6.0)
##### Added
- [#​949](https://github.com/jazzband/django-oauth-toolkit/issues/949) Provide django.contrib.auth.authenticate() with a `request` for compatibiity with more backends (like django-axes).
- [#​968](https://github.com/jazzband/django-oauth-toolkit/issues/968), [#​1039](https://github.com/jazzband/django-oauth-toolkit/issues/1039) Add support for Django 3.2 and 4.0.
- [#​953](https://github.com/jazzband/django-oauth-toolkit/issues/953) Allow loopback redirect URIs using random ports as described in [RFC8252 section 7.3](https://datatracker.ietf.org/doc/html/rfc8252#section-7.3).
- [#​972](https://github.com/jazzband/django-oauth-toolkit/issues/972) Add Farsi/fa language support.
- [#​978](https://github.com/jazzband/django-oauth-toolkit/issues/978) OIDC: Add support for [rotating multiple RSA private keys](https://django-oauth-toolkit.readthedocs.io/en/latest/oidc.html#rotating-the-rsa-private-key).
- [#​978](https://github.com/jazzband/django-oauth-toolkit/issues/978) OIDC: Add new [OIDC_JWKS_MAX_AGE_SECONDS](https://django-oauth-toolkit.readthedocs.io/en/latest/settings.html#oidc-jwks-max-age-seconds) to improve `jwks_uri` caching.
- [#​967](https://github.com/jazzband/django-oauth-toolkit/issues/967) OIDC: Add [additional claims](https://django-oauth-toolkit.readthedocs.io/en/latest/oidc.html#adding-claims-to-the-id-token) beyond `sub` to the id_token.
- [#​1041](https://github.com/jazzband/django-oauth-toolkit/issues/1041) Add a search field to the Admin UI (e.g. for search for tokens by email address).
##### Changed
- [#​981](https://github.com/jazzband/django-oauth-toolkit/issues/981) Require redirect_uri if multiple URIs are registered per [RFC6749 section 3.1.2.3](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1.2.3)
- [#​991](https://github.com/jazzband/django-oauth-toolkit/issues/991) Update documentation of [REFRESH_TOKEN_EXPIRE_SECONDS](https://django-oauth-toolkit.readthedocs.io/en/latest/settings.html#refresh-token-expire-seconds) to indicate it may be `int` or `datetime.timedelta`.
- [#​977](https://github.com/jazzband/django-oauth-toolkit/issues/977) Update [Tutorial](https://django-oauth-toolkit.readthedocs.io/en/stable/tutorial/tutorial\_01.html#) to show required `include`.
##### Removed
- [#​968](https://github.com/jazzband/django-oauth-toolkit/issues/968) Remove support for Django 3.0 & 3.1 and Python 3.6
- [#​1035](https://github.com/jazzband/django-oauth-toolkit/issues/1035) Removes default_app_config for Django Deprecation Warning
- [#​1023](https://github.com/jazzband/django-oauth-toolkit/issues/1023) six should be dropped
##### Fixed
- [#​963](https://github.com/jazzband/django-oauth-toolkit/issues/963) Fix handling invalid hex values in client query strings with a 400 error rather than 500.
- [#​973](https://github.com/jazzband/django-oauth-toolkit/issues/973) [Tutorial](https://django-oauth-toolkit.readthedocs.io/en/latest/tutorial/tutorial\_01.html#start-your-app) updated to use `django-cors-headers`.
- [#​956](https://github.com/jazzband/django-oauth-toolkit/issues/956) OIDC: Update documentation of [get_userinfo_claims](https://django-oauth-toolkit.readthedocs.io/en/latest/oidc.html#adding-information-to-the-userinfo-service) to add the missing argument.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1553Update dependency django-environ to v0.8.1 (develop) - autoclosed2022-02-01T21:09:00ZRenovateBotUpdate dependency django-environ to v0.8.1 (develop) - autoclosedThis MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-environ](https://django-environ.readthedocs.org) ([source](https://github.com/joke2k/django-environ), [changelog](https://django-en...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [django-environ](https://django-environ.readthedocs.org) ([source](https://github.com/joke2k/django-environ), [changelog](https://django-environ.readthedocs.org/en/latest/changelog.html)) | dependencies | minor | `==0.4.5` -> `==0.8.1` |
---
### Release Notes
<details>
<summary>joke2k/django-environ</summary>
### [`v0.8.1`](https://github.com/joke2k/django-environ/releases/v0.8.1)
[Compare Source](https://github.com/joke2k/django-environ/compare/v0.8.0...v0.8.1)
##### Fixed
- Fixed "Invalid line" spam logs on blank lines in env file [#​340](https://github.com/joke2k/django-environ/issues/340).
- Fixed `memcache`/`pymemcache` URL parsing for correct identification of connection type [#​337](https://github.com/joke2k/django-environ/issues/337).
***
**Full diff**: https://github.com/joke2k/django-environ/compare/v0.8.0...v0.8.1
### [`v0.8.0`](https://github.com/joke2k/django-environ/blob/HEAD/CHANGELOG.rst#v080---17-October-2021)
[Compare Source](https://github.com/joke2k/django-environ/compare/v0.7.0...v0.8.0)
Added
\+++++
- Log invalid lines when parse .env file
`#​283 <https://github.com/joke2k/django-environ/pull/283>`\_.
- Added docker-style file variable support
`#​189 <https://github.com/joke2k/django-environ/issues/189>`\_.
- Added option to override existing variables with `read_env`
`#​103 <https://github.com/joke2k/django-environ/issues/103>`*,
`#​249 <https://github.com/joke2k/django-environ/issues/249>`*.
- Added support for empty var with None default value
`#​209 <https://github.com/joke2k/django-environ/issues/209>`\_.
- Added `pymemcache` cache backend for Django 3.2+
`#​335 <https://github.com/joke2k/django-environ/pull/335>`\_.
Fixed
\+++++
- Keep newline/tab escapes in quoted strings
`#​296 <https://github.com/joke2k/django-environ/pull/296>`\_.
- Handle escaped dollar sign in values
`#​271 <https://github.com/joke2k/django-environ/issues/271>`\_.
- Fixed incorrect parsing of `DATABASES_URL` for Google Cloud MySQL
`#​294 <https://github.com/joke2k/django-environ/issues/294>`\_.
### [`v0.7.0`](https://github.com/joke2k/django-environ/blob/HEAD/CHANGELOG.rst#v070---11-September-2021)
[Compare Source](https://github.com/joke2k/django-environ/compare/v0.6.0...v0.7.0)
Added
\+++++
- Added support for negative float strings
`#​160 <https://github.com/joke2k/django-environ/issues/160>`\_.
- Added Elasticsearch5 to search scheme
`#​297 <https://github.com/joke2k/django-environ/pull/297>`\_.
- Added Elasticsearch7 to search scheme
`#​314 <https://github.com/joke2k/django-environ/issues/314>`\_.
- Added the ability to use `bytes` or `str` as a default value for `Env.bytes()`.
Fixed
\+++++
- Fixed links in the documentation.
- Use default option in `Env.bytes()`
`#​206 <https://github.com/joke2k/django-environ/pull/206>`\_.
- Safely evaluate a string containing an invalid Python literal
`#​200 <https://github.com/joke2k/django-environ/issues/200>`\_.
Changed
\+++++++
- Added 'Funding' and 'Say Thanks!' project urls on pypi.
- Stop raising `UserWarning` if `.env` file isn't found. Log a message with
`INFO` log level instead `#​243 <https://github.com/joke2k/django-environ/issues/243>`\_.
### [`v0.6.0`](https://github.com/joke2k/django-environ/blob/HEAD/CHANGELOG.rst#v060---4-September-2021)
[Compare Source](https://github.com/joke2k/django-environ/compare/v0.5.0...v0.6.0)
Added
\+++++
- Python 3.9, 3.10 and pypy 3.7 are now supported.
- Django 3.1 and 3.2 are now supported.
- Added missed classifiers to `setup.py`.
- Accept Python 3.6 path-like objects for `read_env`
`#​106 <https://github.com/joke2k/django-environ/issues/106>`*,
`#​286 <https://github.com/joke2k/django-environ/issues/286>`*.
Fixed
\+++++
- Fixed various code linting errors.
- Fixed typos in the documentation.
- Added missed files to the package contents.
- Fixed `db_url_config` to work the same for all postgres-like schemes
`#​264 <https://github.com/joke2k/django-environ/issues/264>`*,
`#​268 <https://github.com/joke2k/django-environ/issues/268>`*.
Changed
\+++++++
- Refactor tests to use pytest and follow DRY.
- Moved CI to GitHub Actions.
- Restructuring of project documentation.
- Build and test package documentation as a part of CI pipeline.
- Build and test package distribution as a part of CI pipeline.
- Check `MANIFEST.in` in a source package for completeness as a part of CI
pipeline.
- Added `pytest` and `coverage[toml]` to setuptools' `extras_require`.
### [`v0.5.0`](https://github.com/joke2k/django-environ/blob/HEAD/CHANGELOG.rst#v050---30-August-2021)
[Compare Source](https://github.com/joke2k/django-environ/compare/v0.4.5...v0.5.0)
Added
\+++++
- Support for Django 2.1 & 2.2.
- Added tox.ini targets.
- Added secure redis backend URLs via `rediss://`.
- Add `cast=str` to `str()` method.
Fixed
\+++++
- Fixed misspelling in the documentation.
Changed
\+++++++
- Validate empty cache url and invalid cache schema.
- Set `long_description_content_type` in setup.
- Improved Django 1.11 database configuration support.
</details>
---
### Configuration
📅 **Schedule**: At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, click this checkbox.
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).