Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: mochajs/mocha
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: eb781e25a0c212aca8c39a0c7c82d426442def68
Choose a base ref
...
head repository: mochajs/mocha
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: afe8daac603d398743dd5572f497ba088193bf53
Choose a head ref
Loading
Showing with 40,739 additions and 22,379 deletions.
  1. +12 −0 .browserslistrc
  2. +17 −3 .eleventy.js
  3. +5 −1 .eslintignore
  4. +33 −23 .eslintrc.yml
  5. +45 −9 .github/CODE_OF_CONDUCT.md
  6. +50 −50 .github/CONTRIBUTING.md
  7. +1 −0 .github/FUNDING.yml
  8. +202 −0 .github/workflows/mocha.yml
  9. +16 −0 .github/workflows/nightly-site-deploy.yml
  10. +9 −0 .gitignore
  11. +3 −8 .lintstagedrc.json
  12. +2 −1 .markdownlint.json
  13. +13 −6 .mocharc.yml
  14. +1 −0 .npmrc
  15. +13 −2 .nycrc
  16. +6 −60 .travis.yml
  17. +5 −15 .wallaby.js
  18. +519 −0 AUTHORS
  19. +388 −1,346 CHANGELOG.md
  20. +1 −1 LICENSE
  21. +79 −81 MAINTAINERS.md
  22. +107 −0 PROJECT_CHARTER.md
  23. +29 −27 README.md
  24. +0 −77 appveyor.yml
  25. BIN assets/mocha-fixture-wizard.sketch
  26. +46 −47 bin/mocha
  27. +0 −10 bin/options.js
  28. +36 −8 browser-entry.js
  29. +4 −0 docs/.eleventyignore
  30. +2 −3 docs/API.md
  31. +17 −2 docs/README.md
  32. +19 −0 docs/_data/blocklist.json
  33. +48 −0 docs/_data/files.js
  34. +291 −0 docs/_data/supporters.js
  35. +21 −0 docs/_data/toc.js
  36. +21 −0 docs/_data/usage.js
  37. +0 −7 docs/_includes/backers.md
  38. +0 −69 docs/_includes/default.html
  39. +170 −0 docs/_includes/default.liquid
  40. +436 −0 docs/_includes/fixture-wizard.html
  41. +0 −9 docs/_includes/sponsors.md
  42. +35 −0 docs/_includes/supporters.md
  43. +23 −90 docs/api-tutorials/custom-reporter.md
  44. +1,258 −0 docs/changelogs/CHANGELOG_V3_older.md
  45. +84 −0 docs/changelogs/CHANGELOG_V4.md
  46. +7 −0 docs/changelogs/README.md
  47. +167 −32 docs/css/style.css
  48. +13 −0 docs/css/supporters.css
  49. +0 −12 docs/images/backer-background.svg
  50. +68 −0 docs/images/openjsf-logo.svg
  51. BIN docs/images/wallaby-logo.png
  52. +822 −329 docs/index.md
  53. +0 −32 docs/js/avatars.js
  54. +3 −2 example/config/.mocharc.js
  55. +3 −2 example/config/.mocharc.json
  56. +4 −2 example/config/.mocharc.jsonc
  57. +16 −12 example/config/.mocharc.yml
  58. +1 −1 jsdoc.conf.json
  59. +294 −137 karma.conf.js
  60. +2 −1 lib/browser/growl.js
  61. +39 −0 lib/browser/highlight-tags.js
  62. +24 −0 lib/browser/parse-query.js
  63. +4 −0 lib/browser/progress.js
  64. +7 −5 lib/browser/template.html
  65. +0 −13 lib/browser/tty.js
  66. +25 −11 lib/cli/cli.js
  67. +17 −10 lib/cli/collect-files.js
  68. +8 −7 lib/cli/config.js
  69. +0 −6 lib/cli/index.js
  70. +1 −2 lib/cli/init.js
  71. +151 −0 lib/cli/lookup-files.js
  72. +12 −10 lib/cli/node-flags.js
  73. +2 −2 lib/cli/one-and-dones.js
  74. +20 −125 lib/cli/options.js
  75. +103 −39 lib/cli/run-helpers.js
  76. +35 −9 lib/cli/run-option-metadata.js
  77. +99 −25 lib/cli/run.js
  78. +307 −43 lib/cli/watch-run.js
  79. +0 −15 lib/context.js
  80. +319 −17 lib/errors.js
  81. +36 −0 lib/esm-utils.js
  82. +38 −1 lib/hook.js
  83. +21 −10 lib/interfaces/common.js
  84. +650 −186 lib/mocha.js
  85. +3 −3 lib/mocharc.json
  86. +172 −0 lib/nodejs/buffered-worker-pool.js
  87. +15 −0 lib/nodejs/file-unloader.js
  88. +3 −2 lib/{ → nodejs}/growl.js
  89. +433 −0 lib/nodejs/parallel-buffered-runner.js
  90. +165 −0 lib/nodejs/reporters/parallel-buffered.js
  91. +412 −0 lib/nodejs/serializer.js
  92. +151 −0 lib/nodejs/worker.js
  93. +4 −0 lib/pending.js
  94. +286 −0 lib/plugin-loader.js
  95. +58 −20 lib/reporters/base.js
  96. +6 −0 lib/reporters/doc.js
  97. +2 −2 lib/reporters/html.js
  98. +3 −1 lib/reporters/json-stream.js
  99. +2 −0 lib/reporters/json.js
  100. +11 −3 lib/reporters/landing.js
  101. +1 −2 lib/reporters/tap.js
  102. +6 −5 lib/reporters/xunit.js
  103. +71 −90 lib/runnable.js
  104. +444 −229 lib/runner.js
  105. +93 −40 lib/suite.js
  106. +65 −3 lib/test.js
  107. +202 −377 lib/utils.js
  108. +9 −0 netlify.toml
  109. +19,450 −13,512 package-lock.json
  110. +58 −67 package-scripts.js
  111. +123 −563 package.json
  112. +64 −0 rollup.config.js
  113. +0 −24 scripts/dedefine.js
  114. +156 −0 scripts/karma-rollup-plugin.js
  115. +1 −1 scripts/linkify-changelog.js
  116. +0 −105 scripts/markdown-magic.config.js
  117. +11 −4 scripts/netlify-headers.js
  118. +0 −17 scripts/package-json-cullify.js
  119. +28 −0 scripts/pick-from-package-json.js
  120. +62 −0 scripts/update-authors.js
  121. +331 −311 test/assertions.js
  122. +4 −0 test/browser-specific/esm.spec.mjs
  123. +1 −0 test/browser-specific/fixtures/esm.fixture.mjs
  124. +3 −0 test/browser-specific/fixtures/requirejs/lib.fixture.js
  125. +9 −0 test/browser-specific/fixtures/requirejs/main.fixture.js
  126. +22 −0 test/browser-specific/fixtures/webpack/webpack.config.js
  127. +2 −0 test/browser-specific/fixtures/webpack/webpack.fixture.mjs
  128. +0 −6 test/browser-specific/mocha.opts
  129. +17 −0 test/browser-specific/requirejs-setup.js
  130. +5 −3 test/browser-specific/setup.js
  131. +0 −16 test/bundle/amd.spec.js
  132. +2 −0 test/integration/config.spec.js
  133. +1 −1 test/integration/diffs.spec.js
  134. +3 −3 test/integration/duplicate-arguments.spec.js
  135. +55 −0 test/integration/esm.spec.js
  136. +230 −103 test/integration/file-utils.spec.js
  137. +9 −0 test/integration/fixtures/config/mocharc.cjs
  138. +4 −4 test/integration/fixtures/deprecate.fixture.js
  139. +3 −0 test/integration/fixtures/esm/add.mjs
  140. +5 −0 test/integration/fixtures/esm/esm-failure.fixture.mjs
  141. +5 −0 test/integration/fixtures/esm/esm-success.fixture.mjs
  142. +3 −0 test/integration/fixtures/esm/js-folder/add.js
  143. +5 −0 test/integration/fixtures/esm/js-folder/esm-in-js.fixture.js
  144. +3 −0 test/integration/fixtures/esm/js-folder/package.json
  145. +20 −0 test/integration/fixtures/multiple-done-async.fixture.js
  146. +1 −1 ...integration/fixtures/{multiple-done-beforeEach.fixture.js → multiple-done-before-each.fixture.js}
  147. +1 −1 test/integration/fixtures/multiple-done-before.fixture.js
  148. +6 −0 test/integration/fixtures/multiple-runs/clean-references.fixture.js
  149. +6 −0 test/integration/fixtures/multiple-runs/dispose.fixture.js
  150. +19 −0 test/integration/fixtures/multiple-runs/multiple-runs-with-different-output-suite.fixture.js
  151. +18 −0 test/integration/fixtures/multiple-runs/multiple-runs-with-flaky-before-each-suite.fixture.js
  152. +13 −0 test/integration/fixtures/multiple-runs/multiple-runs-with-flaky-before-each.fixture.js
  153. +24 −0 test/integration/fixtures/multiple-runs/run-thrice-helper.js
  154. +6 −0 test/integration/fixtures/multiple-runs/run-thrice.fixture.js
  155. +5 −0 ...integration/fixtures/multiple-runs/start-second-run-if-previous-is-still-running-suite.fixture.js
  156. +12 −0 test/integration/fixtures/multiple-runs/start-second-run-if-previous-is-still-running.fixture.js
  157. +12 −0 test/integration/fixtures/options/allow-uncaught/propagate.fixture.js
  158. +21 −0 test/integration/fixtures/options/allow-uncaught/this-skip-it.fixture.js
  159. +8 −0 test/integration/fixtures/options/forbid-only/only-before-each.fixture.js
  160. +8 −0 test/integration/fixtures/options/forbid-only/only-before.fixture.js
  161. +0 −1 test/integration/fixtures/options/help/test/mocha.opts
  162. +7 −0 test/integration/fixtures/options/jobs/fail-in-parallel.fixture.js
  163. +0 −5 test/integration/fixtures/options/opts.fixture.js
  164. +9 −0 test/integration/fixtures/options/parallel/bail.fixture.js
  165. +3 −0 test/integration/fixtures/options/parallel/exclusive-test-a.fixture.js
  166. +3 −0 test/integration/fixtures/options/parallel/exclusive-test-b.fixture.js
  167. +5 −0 test/integration/fixtures/options/parallel/retries-a.fixture.js
  168. +8 −0 test/integration/fixtures/options/parallel/retries-b.fixture.js
  169. +1 −0 test/integration/fixtures/options/parallel/syntax-err.fixture.js
  170. +3 −0 test/integration/fixtures/options/parallel/test-a.fixture.js
  171. +3 −0 test/integration/fixtures/options/parallel/test-b.fixture.js
  172. +5 −0 test/integration/fixtures/options/parallel/test-c.fixture.js
  173. +7 −0 test/integration/fixtures/options/parallel/test-d.fixture.js
  174. +7 −0 test/integration/fixtures/options/parallel/uncaught.fixture.js
  175. +2 −2 test/integration/fixtures/options/slow-test.fixture.js
  176. +7 −0 test/integration/fixtures/options/watch/hook.fixture.js
  177. +8 −0 test/integration/fixtures/pending/programmatic.fixture.js
  178. +42 −29 test/integration/fixtures/pending/skip-async-before-hooks.fixture.js
  179. +37 −9 test/integration/fixtures/pending/skip-async-beforeEach.fixture.js
  180. +19 −1 test/integration/fixtures/pending/skip-async-spec.fixture.js
  181. +1 −2 test/integration/fixtures/pending/skip-sync-after.fixture.js
  182. +39 −27 test/integration/fixtures/pending/skip-sync-before-hooks.fixture.js
  183. +38 −0 test/integration/fixtures/pending/skip-sync-before-inner.fixture.js
  184. +28 −0 test/integration/fixtures/pending/skip-sync-beforeEach-cond.fixture.js
  185. +35 −5 test/integration/fixtures/pending/skip-sync-beforeEach.fixture.js
  186. +19 −1 test/integration/fixtures/pending/skip-sync-spec.fixture.js
  187. +20 −0 test/integration/fixtures/plugins/global-fixtures/global-setup-teardown-multiple.fixture.js
  188. +10 −0 test/integration/fixtures/plugins/global-fixtures/global-setup-teardown.fixture.js
  189. +6 −0 test/integration/fixtures/plugins/global-fixtures/global-setup.fixture.js
  190. +5 −0 test/integration/fixtures/plugins/global-fixtures/global-teardown.fixture.js
  191. +1 −0 test/integration/fixtures/plugins/root-hooks/esm/package.json
  192. +8 −0 test/integration/fixtures/plugins/root-hooks/esm/root-hook-defs-esm.fixture.js
  193. +16 −0 test/integration/fixtures/plugins/root-hooks/root-hook-defs-a.fixture.js
  194. +36 −0 test/integration/fixtures/plugins/root-hooks/root-hook-defs-b.fixture.js
  195. +16 −0 test/integration/fixtures/plugins/root-hooks/root-hook-defs-c.fixture.js
  196. +36 −0 test/integration/fixtures/plugins/root-hooks/root-hook-defs-d.fixture.js
  197. +8 −0 test/integration/fixtures/plugins/root-hooks/root-hook-defs-esm-broken.fixture.js
  198. +8 −0 test/integration/fixtures/plugins/root-hooks/root-hook-defs-esm.fixture.mjs
  199. +6 −0 test/integration/fixtures/plugins/root-hooks/root-hook-test-2.fixture.js
  200. +6 −0 test/integration/fixtures/plugins/root-hooks/root-hook-test.fixture.js
  201. +0 −17 test/integration/fixtures/regression/issue-1327.fixture.js
  202. +8 −0 test/integration/fixtures/retries/early-pass.fixture.js
  203. +9 −0 test/integration/fixtures/timeout-override.fixture.js
  204. +0 −11 test/integration/fixtures/uncaught-fatal.fixture.js
  205. +9 −0 test/integration/fixtures/uncaught/after-runner.fixture.js
  206. +6 −6 test/integration/fixtures/{uncaught.fixture.js → uncaught/double.fixture.js}
  207. +22 −0 test/integration/fixtures/uncaught/fatal.fixture.js
  208. 0 test/integration/fixtures/{uncaught-hook.fixture.js → uncaught/hook.fixture.js}
  209. +17 −0 test/integration/fixtures/uncaught/issue-1327.fixture.js
  210. 0 test/integration/fixtures/{regression → uncaught}/issue-1417.fixture.js
  211. +13 −0 test/integration/fixtures/uncaught/listeners.fixture.js
  212. +15 −0 test/integration/fixtures/uncaught/pending.fixture.js
  213. +28 −0 test/integration/fixtures/uncaught/recover.fixture.js
  214. +522 −194 test/integration/helpers.js
  215. +6 −3 test/integration/hook-err.spec.js
  216. +2 −2 test/integration/hooks.spec.js
  217. +33 −13 test/integration/init.spec.js
  218. +86 −59 test/integration/multiple-done.spec.js
  219. +104 −0 test/integration/multiple-runs.spec.js
  220. +46 −0 test/integration/options/allowUncaught.spec.js
  221. +0 −130 test/integration/options/debug.spec.js
  222. +21 −9 test/integration/options/exit.spec.js
  223. +26 −2 test/integration/options/extension.spec.js
  224. +70 −35 test/integration/options/forbidOnly.spec.js
  225. +0 −26 test/integration/options/help.spec.js
  226. +34 −0 test/integration/options/jobs.spec.js
  227. +2 −2 test/integration/options/{interfaces.spec.js → listInterfaces.spec.js}
  228. +2 −2 test/integration/options/{reporters.spec.js → listReporters.spec.js}
  229. +9 −32 test/integration/options/opts.spec.js
  230. +562 −0 test/integration/options/parallel.spec.js
  231. +15 −0 test/integration/options/timeout.spec.js
  232. +6 −3 test/integration/options/ui.spec.js
  233. +268 −121 test/integration/options/watch.spec.js
  234. +132 −118 test/integration/pending.spec.js
  235. +293 −0 test/integration/plugins/global-fixtures.spec.js
  236. +298 −0 test/integration/plugins/root-hooks.spec.js
  237. +0 −38 test/integration/regression.spec.js
  238. +12 −14 test/integration/retries.spec.js
  239. +5 −3 test/integration/suite.spec.js
  240. +11 −0 test/integration/timeout.spec.js
  241. +151 −47 test/integration/uncaught.spec.js
  242. +0 −1 test/jsapi/index.js
  243. +184 −0 test/node-unit/buffered-worker-pool.spec.js
  244. +46 −32 test/node-unit/cli/config.spec.js
  245. +1 −0 test/node-unit/cli/fixtures/bad-module.fixture.js
  246. +20 −15 test/node-unit/cli/node-flags.spec.js
  247. +116 −306 test/node-unit/cli/options.spec.js
  248. +82 −35 test/node-unit/cli/run-helpers.spec.js
  249. 0 test/node-unit/fixtures/dumb-module.fixture.js
  250. 0 test/node-unit/fixtures/dumber-module.fixture.js
  251. +1 −0 test/node-unit/fixtures/wonky-reporter.fixture.js
  252. +347 −49 test/node-unit/mocha.spec.js
  253. +710 −0 test/node-unit/parallel-buffered-runner.spec.js
  254. +228 −0 test/node-unit/reporters/parallel-buffered.spec.js
  255. +543 −0 test/node-unit/serializer.spec.js
  256. +49 −0 test/node-unit/utils.spec.js
  257. +235 −0 test/node-unit/worker.spec.js
  258. +0 −127 test/only/bdd.spec.js
  259. +0 −75 test/only/qunit.spec.js
  260. +0 −127 test/only/tdd.spec.js
  261. +0 −10 test/opts/mocha.opts
  262. +0 −11 test/opts/opts.spec.js
  263. +32 −28 test/reporters/base.spec.js
  264. +16 −0 test/reporters/doc.spec.js
  265. +14 −16 test/reporters/dot.spec.js
  266. +8 −10 test/reporters/helpers.js
  267. +17 −1 test/reporters/json-stream.spec.js
  268. +48 −19 test/reporters/json.spec.js
  269. +11 −13 test/reporters/landing.spec.js
  270. +13 −15 test/reporters/list.spec.js
  271. +37 −74 test/reporters/nyan.spec.js
  272. +13 −18 test/reporters/progress.spec.js
  273. +7 −9 test/reporters/spec.spec.js
  274. +6 −42 test/reporters/tap.spec.js
  275. +75 −33 test/reporters/xunit.spec.js
  276. +0 −9 test/sanity/sanity.spec.js
  277. +9 −7 test/setup.js
  278. +15 −0 test/smoke/smoke.spec.js
  279. +0 −6 test/unit/context.spec.js
  280. +135 −17 test/unit/errors.spec.js
  281. +7 −6 test/unit/hook-timeout.spec.js
  282. +44 −0 test/unit/hook.spec.js
  283. +1,113 −256 test/unit/mocha.spec.js
  284. +23 −0 test/unit/parse-query.spec.js
  285. +514 −0 test/unit/plugin-loader.spec.js
  286. +65 −74 test/unit/runnable.spec.js
  287. +980 −770 test/unit/runner.spec.js
  288. +521 −487 test/unit/suite.spec.js
  289. +49 −5 test/unit/test.spec.js
  290. +1 −0 test/unit/throw.spec.js
  291. +3 −9 test/unit/timeout.spec.js
  292. +183 −126 test/unit/utils.spec.js
12 changes: 12 additions & 0 deletions .browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
node >= 10
last 2 Chrome versions
last 2 Edge versions
last 2 Firefox versions
last 2 Safari versions
last 2 Opera versions
unreleased Chrome versions
unreleased Edge versions
unreleased Firefox versions
unreleased Safari versions
unreleased Opera versions
IE 11
20 changes: 17 additions & 3 deletions .eleventy.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,30 @@
'use strict';

module.exports = function(eleventyConfig) {
eleventyConfig.addPlugin(
require('@11ty/eleventy-plugin-inclusive-language'),
{
words:
'simply,obviously,basically,of course,clearly,everyone knows,however,easy'
}
);

eleventyConfig.addPassthroughCopy('docs/css');
eleventyConfig.addPassthroughCopy('docs/js');
eleventyConfig.addPassthroughCopy('docs/images');
eleventyConfig.addPassthroughCopy('docs/CNAME');
eleventyConfig.addPassthroughCopy('docs/_headers');
eleventyConfig.addPassthroughCopy('docs/favicon.ico');

eleventyConfig.addPassthroughCopy('docs/example');
eleventyConfig.addPassthroughCopy('docs/api/images');
eleventyConfig.addPassthroughCopy('docs/api/scripts');
eleventyConfig.addPassthroughCopy('docs/api/styles');

/* Markdown Plugins */
const markdown = require('markdown-it')({
html: true,
linkify: true
linkify: true,
typographer: true
});

markdown.use(require('markdown-it-anchor'), {
@@ -31,13 +42,16 @@ module.exports = function(eleventyConfig) {

markdown.use(require('markdown-it-prism'));

markdown.use(require('markdown-it-emoji'));

eleventyConfig.setLibrary('md', markdown);

eleventyConfig.setUseGitIgnore(false);

return {
passthroughFileCopy: true,
dir: {
input: 'docs',
includes: '_includes',
output: 'docs/_site'
}
};
6 changes: 5 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
coverage/
mocha.js
*.fixture.js
docs/
docs/_site
docs/api
docs/_dist
docs/example
out/
!lib/mocha.js
test/integration/fixtures
!.*.js
*.min.js
56 changes: 33 additions & 23 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
@@ -3,42 +3,53 @@ extends:
- semistandard
- plugin:prettier/recommended
env:
node: yes
browser: yes
node: true
browser: true
es6: true
parserOptions:
ecmaVersion: 5
ecmaVersion: 2018
ecmaFeatures:
globalReturn: no
jsx: no
jsx: false
sourceType: script
rules:
strict:
- error
- safe
overrides:
- files:
- scripts/**/*.js
- package-scripts.js
- karma.conf.js
- .wallaby.js
- .eleventy.js
- bin/*
- lib/cli/**/*.js
- test/node-unit/**/*.js
- test/integration/options/watch.spec.js
- test/integration/helpers.js
- lib/growl.js
- 'docs/js/**/*.js'
env:
node: false
- files:
- '.eleventy.js'
- '.wallaby.js'
- 'package-scripts.js'
- 'karma.conf.js'
- 'bin/*'
- 'docs/_data/**/*.js'
- 'lib/cli/**/*.js'
- 'lib/nodejs/**/*.js'
- 'scripts/**/*.js'
- 'test/**/*.js'
- 'test/node-unit/**/*.js'
env:
browser: false
- files:
- esm-utils.js
- rollup.config.js
- scripts/pick-from-package-json.js
parserOptions:
ecmaVersion: 6
ecmaVersion: 2018
sourceType: module
parser: babel-eslint
env:
browser: no

browser: false
- files:
- test/**/*.{js,mjs}
env:
mocha: yes
mocha: true
globals:
expect: no
expect: readonly
- files:
- bin/*
- lib/**/*.js
@@ -73,11 +84,10 @@ overrides:
# disallow property access of `global.<timer>.*`
- selector: '*[object.object.name=global][object.property.name=/(Date|(set|clear)(Timeout|Immediate|Interval))/]:expression'
message: *GH-237

- files:
- test/**/*.mjs
parserOptions:
ecmaVersion: 6
ecmaVersion: 2018
sourceType: module

- files:
54 changes: 45 additions & 9 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -33,14 +33,14 @@ community should be respectful when dealing with other members as well as with p
We are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put
down other participants. Harassment and other exclusionary behavior aren’t acceptable. This includes, but is not limited to:

* Violent threats or language directed against another person.
* Discriminatory jokes and language.
* Posting sexually explicit or violent material.
* Posting (or threatening to post) other people’s personally identifying information (“doxing”).
* Personal insults, especially those using racist or sexist terms.
* Unwelcome sexual attention.
* Advocating for, or encouraging, any of the above behavior.
* Repeated harassment of others. In general, if someone asks you to stop, then stop.
- Violent threats or language directed against another person.
- Discriminatory jokes and language.
- Posting sexually explicit or violent material.
- Posting (or threatening to post) other people’s personally identifying information (“doxing”).
- Personal insults, especially those using racist or sexist terms.
- Unwelcome sexual attention.
- Advocating for, or encouraging, any of the above behavior.
- Repeated harassment of others. In general, if someone asks you to stop, then stop.

## When we disagree, try to understand why

@@ -55,4 +55,40 @@ Original text courtesy of the Speak Up! project and Django Project.

## QUESTIONS?

If you have questions, please see the FAQ. If that doesn’t answer your questions, feel free to email conduct@js.foundation.
If you have questions, please see the FAQ. If that doesn’t answer your questions, feel free to email report@lists.openjsf.org.

# OpenJS Foundation Code of Conduct

The OpenJS Foundation and its member projects use the Contributor
Covenant v1.4.1 as its Code of Conduct. Refer to the following
for the full text:

- [english](https://www.contributor-covenant.org/version/1/4/code-of-conduct)
- [translations](https://www.contributor-covenant.org/translations)

Refer to the section on reporting and escalation in this document for the specific emails that can be used to report and escalate issues.

## Reporting

### Project Spaces

For reporting issues in spaces related to a member project please use the email provided by the project for reporting. Projects handle CoC issues related to the spaces that they maintain. Projects maintainers commit to:

- maintain the confidentiality with regard to the reporter of an incident
- to participate in the path for escalation as outlined in
the section on Escalation when required.

### Foundation Spaces

For reporting issues in spaces managed by the OpenJS Foundation, for example, repositories within the OpenJS organization, use the email `report@lists.openjsf.org`. The Cross Project Council (CPC) is responsible for managing these reports and commits to:

- maintain the confidentiality with regard to the reporter of an incident
- to participate in the path for escalation as outlined in
the section on Escalation when required.

## Escalation

The OpenJS Foundation maintains a Code of Conduct Panel (CoCP). This is a foundation-wide team established to manage escalation when a reporter believes that a report to a member project or the CPC has not been properly handled. In order to escalate to the CoCP send an email to `"coc-escalation@lists.openjsf.org`.

For more information, refer to the full
[Code of Conduct governance document](https://github.com/openjs-foundation/cross-project-council/blob/master/FOUNDATION_CODE_OF_CONDUCT_REQUIREMENTS.md).
Loading