Commit Graph

196 Commits

Author SHA1 Message Date
Gleb Bahmutov ff095df144 fix: include event emitter types from cypress types (#14992) 2021-02-10 11:29:51 -05:00
Lachlan Miller 2d182902ca chore: update files based on TR review 2021-02-08 16:49:52 +10:00
Brian Mann af26fbebe6 feat: component testing (#14479)
Co-authored-by: Jessica Sachs <jess@jessicasachs.io>
Co-authored-by: Barthélémy Ledoux <bart@cypress.io>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Dmitriy Kovalenko <dmtr.kovalenko@outlook.com>
Co-authored-by: ElevateBart <ledouxb@gmail.com>
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
2021-02-04 15:45:16 -05:00
Kukhyeon Heo 012d58c228 fix: Added types for runtime config. (#14584)
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2021-01-20 15:08:16 +06:30
Zach Panzarino f4b01394a8 feat: Cypress Studio - record test steps through interacting with your site (#9542)
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
2021-01-19 10:23:26 -05:00
Chris Breiding df813be133 feat: Add downloadsFolder config option (#14465) 2021-01-11 11:57:25 -05:00
Chris Breiding 9a25fd02c2 feat: Add after:run event (#14263) 2020-12-21 13:40:55 -05:00
Chris Breiding d6c0bcfc04 feat: Add before:run event (#14238) 2020-12-21 13:06:45 -05:00
Chris Breiding c9916c8bbd feat: Add after:spec event (#14178) 2020-12-18 09:45:15 -05:00
Chris Breiding f47d5c0574 feat: Add before:spec event (#9646)
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-12-16 16:25:14 -05:00
Kukhyeon Heo 4ef189e329 chore: Add EventEmitter type to FileObject (#9276)
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
2020-12-16 15:46:21 -05:00
Jennifer Shehane 3d1565e3d5 fix(types): add scrollBehavior type to allowed TestConfig options (#14166) 2020-12-14 10:37:53 -05:00
Jennifer Shehane c616af48ee chore: update wording of Cypress.moment deprecation to say 'removed' instead of 'replaced' (#9552) 2020-12-07 12:07:01 -05:00
Jennifer Shehane 6fa222eba8 chore: deprecate Cypress.moment() (#9398)
* Warn when using Cypress.moment() that its deprecated + deprecated types

* Remove trailing whitespace in types
2020-12-02 13:16:08 +06:30
Luke Page 0b07e8f789 feat: add scrollBehavior option (#8837)
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
2020-11-30 16:04:18 -05:00
Jennifer Shehane 197f3097f7 fix: Remove deprecated flag from types for cy.screenshot() (#9323) 2020-11-25 23:33:01 +06:30
Zach Bloomquist 6c0154ce8e feat(net-stubbing): rename cy.http to cy.intercept (#9283)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-11-23 13:52:28 -05:00
Jennifer Shehane 679d85e512 chore: Add deprecated warnings to cy.route() and cy.server() in types (#9241)
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-11-23 12:30:06 -05:00
Zach Bloomquist 0d5b932f41 feat(types): have cy.wait(alias) yield new Request type (#9266)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-11-23 12:21:12 -05:00
Kukhyeon Heo 8b78af399a chore: Fix Response type. (#9275) 2020-11-23 09:27:07 -05:00
Zach Bloomquist 3fec100397 feat: deprecate cy.route(), remove experimentalNetworkStubbing flag (#9185)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-11-17 10:56:19 -05:00
Zach Bloomquist 3d0d1d89de feat(net-stubbing): rename cy.route2 to cy.http (#9182)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-11-14 14:22:21 +06:30
Jennifer Shehane 5ed66690db Merge branch 'develop' into v6.0-release 2020-11-06 11:55:06 +06:30
David Mejorado a52b7736d5 fix: Add timeout option to the invoke and its types (#8453)
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2020-11-03 14:44:19 -05:00
Jennifer Shehane 58252a24fd Merge branch 'develop' into v6.0-release 2020-11-03 15:30:24 +06:30
Zach Bloomquist 54639f8a6d fix: improve route2 logs (#9051) 2020-11-02 11:26:57 -05:00
Jennifer Shehane bae9d7da73 Merge branch 'develop' into v6.0-release 2020-10-30 13:02:17 +06:30
Kevin Wittmer e57c13562d feat: Update types for Cypress.Chainable.task to allow for parameterizing the task return type (#8753)
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-10-28 11:56:53 -04:00
Jennifer Shehane 735d2286fd Merge branch 'develop' into v6.0-release 2020-10-26 16:56:28 +06:30
Sagar Rajput 5c01832883 feat(driver): add macbook-16 viewport (#8892)
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-10-21 16:37:11 +06:30
Ben Kucera 7d658ad029 fix(types): fix typedefs for retries config (#8869)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-10-19 15:15:01 +06:30
Ryota Murakami 66d1a5210c feat(driver): add some iphone viewport (#8624)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-10-13 13:30:35 +06:30
Chris Breiding d28676c43e feat: Add codeFrame to record data attempt errors (#8595) 2020-10-01 09:48:49 -04:00
Zach Bloomquist 10b9a5b172 feat: take Firefox support out of beta (#8586) 2020-09-25 13:47:04 -04:00
Kukhyeon Heo 2c8c15fa41 fix: Replaced deprecated Mocha interfaces. (#8613)
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2020-09-18 10:29:54 -04:00
Gleb Bahmutov 59ee265fa7 fix: discriminate cypress run types (#8604) 2020-09-18 10:07:45 -04:00
Chris Breiding d3c480f5ad chore: Deprecate experimentalShadowDomSupport flag and remove its usage (#8548) 2020-09-10 16:25:55 -04:00
Chris Breiding 9abed894eb feat: Add "global" shadow dom config option (#8479) 2020-09-10 14:31:01 -04:00
Kukhyeon Heo 6801aa7184 fix(typedefs): Cypress.Commands.add can return Promises. (#8501) 2020-09-09 10:49:34 -04:00
Kukhyeon Heo 15fdf12ae7 feat: can dispatch events with the type they want. (#8305)
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
2020-08-31 12:05:28 -04:00
Zach Bloomquist 2469473eb2 chore: rename experimental network stubbing (#8450) 2020-08-31 11:46:00 -04:00
Zach Bloomquist c37896089b feat(net-stubbing): experimental full network mocking support (#4176) 2020-08-31 09:41:47 -04:00
Zach Panzarino f00e328b42 fix: elements with opacity: 0 are not visible (#8244)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-08-28 14:04:38 +06:30
Joseph Zidell 603ecb9b17 chore: Fixes type definitions (#8417) 2020-08-27 12:59:43 +06:30
Nick Bolles 12080dc205 fix: Add typing for specType field on spec method (#8256)
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-08-27 12:52:58 +06:30
Jennifer Shehane 83fa4ceb18 fix: Add retries to test config types (#8408)
* Add retries to test config types

* Add type tests for retries in test options

* fix duplicated type

Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
2020-08-27 12:36:54 +06:30
Matt Revell 2f835f7f15 fix: Add reporter options (#8217)
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-08-17 14:16:40 +06:30
Ben Kucera 966fbf0e42 fix: remove private properties, move screenshots in module API results (#8148)
* add retries output to server/reporter, fix mocha pass event order, cleanup

* e2e tests - dont run electron tests in other browsers

* Update readme to reflect how to start server for cypress tests

* fix after merge

* fix .coffee -> .js after merge

* fix attempt.tsx

* fix runnable titles emitted to terminal reporters

* fix more tests: update snapshots, fix 7_record_spec, 8_reporters_spec

* remove styling for 'attempt-error-region' so it's not indented

- This was the older styling before error improvements and is no longer
necessary.

* try 2: fix rerun before/after hooks

* fix runner with only, runner snapshots, lint fixes

* temp 04/29/20 [skip ci]

* backport changes from test-retries

* change logic to rerun before hooks after top navigation

* fix windowSize for browser e2e test

* fix windowSize for xvfb chrome in e2e test

* ok fine, just disable screenshots

* fix after merge: decaffed navigation.js

* update server/unit test snapshots

* fix after merge: decaffed aliases.js

* fix usage of cypress --parallel flag in circle.yml

* fix circle.yml integration-tests jobs

* fix decaf related typo

* fix circle.yml separate command for runner-integration-tests

* update runner/integration tests + snapshot after error improvements

* fix runner/integration snapshots for chrome/ff stacktrace differences

* rerun ci

* fix passing --parallel to runner-integration tests

* perf: faster lookup for hooks without runnables

* fix afterAll hook switch logic

* simplify mocha prototype patches

* fix decaf utils.coffee after merge

* backport to before/after fix

* backport to before/after fix 2

* cleanup from decaf, fix ui/package.json

* update helpers, simplify runner.spec

* fix lint-types errors, flaky spec

* fix noExit passed to e2e test inline options

* cleanup snapshot utility - refactor to use util file

* remove before/after changes

* make cy obj a class instance

* cleanup/unmerge before/after fixes PR...

* more cleanup

* add comment

* fix runner.spec

* cleanup snapshot utility more, cleanup reporter.spec

* fix after merge

* minor rename variable

* fix after merge: decaffed files

* fix specName in reporterHeader, spec_helper require

* replace reporter specPath usages with spec object from config

* cleanup, fix specs, fix types tests

* fix config spec paths in isolated runner, fix snapshot plugin button

* combine runner.spec.js and runner_spec.js

* fix incorrect merge

* minor minor cleanup

* rename driver/test/cypress to driver/test

* use yarn workspace over lerna for individual package commands

* add error message to driver start

* remove usage of wait-on

* update <reference types/>, import string

* fix driver/readme

* fix readmes after regex replace

* revert wait-on changes

* Revert "revert wait-on changes"

This reverts commit 6de684cf34.

* update yarn.lock

* fix broken path in spec

* fix broken paths in specs with @packages/driver

* move runner/test/cypress into runner/cypress

* start server in pluginsFile in runner/cypress tests

* fix more broken spec paths

* fix broken paths after runner/cypress folder move

* move type definition loading for driver/cypress into dedicated file

* move internal-types to "types" folder, fix driver/index.d.ts

* fix type-check in packages/runner. not exactly sure why

* fix runner type-check by excluding test folder in tsconfig

* bump timeout on e2e/8_error_ui_spec

* update snapshot utility, rename tests in runner/runner.spec, fix README yarn commands

* delete old spec

* fix snapshot naming, remove redundant test in reporter_spec

* fix file renames after merge

* rename runner/ snapshot

* update server/unit/reporter_spec snapshot

* update runner/runner_spec snapshot

* rename runner snapshot file

* address feedback: move server reporter snapshot specs out

* address feedback: add comment about exposing globals

* fix test-retries after merging isolated-runner

* fix runner/test helper, update snapshot

* address feedback: split out runner/retries spec, move reporter/ui tests to runner/ui spec (mostly done), various cleanup

* fix scrolling, attempt opening, update snapshots

* fix e2e support file

* fix 5_spec_isolation

* fix mislabeling attempt screenshots

* only add test results prevAttempts if exists

* fix reporter/unit tests, server/unit tests

* remove dead code, fix test isOpen

* update snapshots for retries.mochaEvents, fix snapshot error in state hydration test, remove dead snapshots

* new moduleAPI schema using attempts array, fix wrapping errors from hook retries, update snapshots

* add displayError, null out fields in moduleAPI schema

* change default retries to {runMode:2, openMode:0}

* fix reporter type-check

* upgrade json-schemas, update snapshots

* reformat error.stack to be only stacktrace, update snapshots

* fix stacktrace replacing in 5_spec_isolation

* fix navigation error causing infinite reloading, bump timeout on e2e/8_error_ui

* fix server/unit tests for new schema

* fix reporter/unit tests

* fix reporting duplicate screenshots using cy.screenshot during test retry

* update snapshot for 6_uncaught_support_file_spec

* bump x-route-version: 3

* fix test.tsx collapsible content, css, fix e2e/8_error_ui, e2e projects excluding retries

* fix css, fix padding in runnable-instruments, fix runner/integration tests

* fixup after merge

* fix reporter/runner to work with split hooks

* update api tests, runner/cypress tests, reporter

* fix 5_spec_isolation snapshots, fix runner/cypress errors.spec, fix null reference in test.tsx

* fix e2e/non_root spec, fix type_check, fix reporter/unit tests

* setup percy snapshots in runner/cypress, fix driver/runner test:after:run event, add tests for only,skip in runner/cypress, fix retried css

* add customPercySnapshot

* fix circle.yml

* fix circle.yml 2

* fix circle.yml 3

* add warning for incompatible retries plugin

* add more percy snapshots

* fix firefox screenshot resolution in e2e test

* Fix testConfigOverrides not affecting viewport (#8006)

* finish adding percy snapshots to runner/cypress retries spec, update error msgs, add tests to be fixed

* remove .only

* fixing missing repo argument

* fix testConfigOverrides usage with retries, fix test

* fix issues from previous merge

* add script that can query CircleCI workflow status

* add circleci job to poll

* add retries

* try yarn lock

* retry, percy finalize

* check for current running job

* do not swallow request error

* better print

* use job name from circle environment

* use debug instead

* renamed circle polling script

* refactor circle to conditionally run percy-finalize when env var is available

- pass job-names to wait on as an argument

* use multi-line strings and quote --job-names

- rename —circle-jobs to —job-names

* add comment

* only poll until the jobs to wait for are blocked or running

* fix running hooks at correct depth after attempt fails from hook and will retry, update e2e snapshots

* fix reporter/unit tests, remove unused toggleOpen code

* move custom percy command into @packages/ui-components and apply them to desktop-gui

* halt percy finalize job if env variable is not set

* if only I could code

* update runner/cypress mochaEvent snapshots, fix e2e firefox resolution

* fix css for attempt border-left, fix attempt-tag open/close icon, add color to attempt collapsible dot

* try percy set viewport width

* set default retries back to {runMode:0, openMode:0}

* formatting: add backticks to warning message

* write explicit test for screenshot overwriting behavior, fix snapshots after changing retries defaults

* fix e2e.it.only`

* cleanup whitespace

* update snapshots

* remap module API result, move e2e timing tests from 5_spec_isolation into 7_record_spec, unit test

* fix cypress module API types for new result schema

* build and upload binary for test-retries branch too (linux)

* update module api typedefs for moving screenshot info

* cleanup typedef

* small refactor, add cypress-inspect-brk feat to e2e tests, fix typedefs for moduleapi

* add pre-release PR comment

* fix pre-release commit comment

* rename runner/cypress test

* update retries.ui.spec test titles

* fix after merge: use most recent attempt for before/after hooks

* add suite title to hook error in runner/cypress tests

* fix snapshot

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2020-08-11 08:58:40 -04:00
Ben Kucera 860a20af30 feat: support test retries (#3968)
* add retries e2e test

* restore runner/test/eslintrc

* use mocha pass event, move runner.spec to runner package

* fix .eslintignore

* remove npmInstall logic in helper/e2e script, force custom reporters to use our mocha

* temp 04/09/20 [skip ci]

* add retries output to server/reporter, fix mocha pass event order, cleanup

* e2e tests - dont run electron tests in other browsers

* Update readme to reflect how to start server for cypress tests

* fix after merge

* fix .coffee -> .js after merge

* fix attempt.tsx

* fix runnable titles emitted to terminal reporters

* fix more tests: update snapshots, fix 7_record_spec, 8_reporters_spec

* remove styling for 'attempt-error-region' so it's not indented

- This was the older styling before error improvements and is no longer
necessary.

* try 2: fix rerun before/after hooks

* fix runner with only, runner snapshots, lint fixes

* temp 04/29/20 [skip ci]

* backport changes from test-retries

* change logic to rerun before hooks after top navigation

* fix windowSize for browser e2e test

* fix windowSize for xvfb chrome in e2e test

* ok fine, just disable screenshots

* fix after merge: decaffed navigation.js

* update server/unit test snapshots

* fix after merge: decaffed aliases.js

* fix usage of cypress --parallel flag in circle.yml

* fix circle.yml integration-tests jobs

* fix decaf related typo

* fix circle.yml separate command for runner-integration-tests

* update runner/integration tests + snapshot after error improvements

* fix runner/integration snapshots for chrome/ff stacktrace differences

* rerun ci

* fix passing --parallel to runner-integration tests

* perf: faster lookup for hooks without runnables

* fix afterAll hook switch logic

* simplify mocha prototype patches

* fix decaf utils.coffee after merge

* backport to before/after fix

* backport to before/after fix 2

* cleanup from decaf, fix ui/package.json

* update helpers, simplify runner.spec

* fix lint-types errors, flaky spec

* fix noExit passed to e2e test inline options

* cleanup snapshot utility - refactor to use util file

* remove before/after changes

* make cy obj a class instance

* cleanup/unmerge before/after fixes PR...

* more cleanup

* add comment

* fix runner.spec

* cleanup snapshot utility more, cleanup reporter.spec

* fix after merge

* minor rename variable

* fix after merge: decaffed files

* fix specName in reporterHeader, spec_helper require

* replace reporter specPath usages with spec object from config

* cleanup, fix specs, fix types tests

* fix config spec paths in isolated runner, fix snapshot plugin button

* combine runner.spec.js and runner_spec.js

* fix incorrect merge

* minor minor cleanup

* rename driver/test/cypress to driver/test

* use yarn workspace over lerna for individual package commands

* add error message to driver start

* remove usage of wait-on

* update <reference types/>, import string

* fix driver/readme

* fix readmes after regex replace

* revert wait-on changes

* Revert "revert wait-on changes"

This reverts commit 6de684cf34.

* update yarn.lock

* fix broken path in spec

* fix broken paths in specs with @packages/driver

* move runner/test/cypress into runner/cypress

* start server in pluginsFile in runner/cypress tests

* fix more broken spec paths

* fix broken paths after runner/cypress folder move

* move type definition loading for driver/cypress into dedicated file

* move internal-types to "types" folder, fix driver/index.d.ts

* fix type-check in packages/runner. not exactly sure why

* fix runner type-check by excluding test folder in tsconfig

* bump timeout on e2e/8_error_ui_spec

* update snapshot utility, rename tests in runner/runner.spec, fix README yarn commands

* delete old spec

* fix snapshot naming, remove redundant test in reporter_spec

* fix file renames after merge

* rename runner/ snapshot

* update server/unit/reporter_spec snapshot

* update runner/runner_spec snapshot

* rename runner snapshot file

* address feedback: move server reporter snapshot specs out

* address feedback: add comment about exposing globals

* fix test-retries after merging isolated-runner

* fix runner/test helper, update snapshot

* address feedback: split out runner/retries spec, move reporter/ui tests to runner/ui spec (mostly done), various cleanup

* fix scrolling, attempt opening, update snapshots

* fix e2e support file

* fix 5_spec_isolation

* fix mislabeling attempt screenshots

* only add test results prevAttempts if exists

* fix reporter/unit tests, server/unit tests

* remove dead code, fix test isOpen

* update snapshots for retries.mochaEvents, fix snapshot error in state hydration test, remove dead snapshots

* new moduleAPI schema using attempts array, fix wrapping errors from hook retries, update snapshots

* add displayError, null out fields in moduleAPI schema

* change default retries to {runMode:2, openMode:0}

* fix reporter type-check

* upgrade json-schemas, update snapshots

* reformat error.stack to be only stacktrace, update snapshots

* fix stacktrace replacing in 5_spec_isolation

* fix navigation error causing infinite reloading, bump timeout on e2e/8_error_ui

* fix server/unit tests for new schema

* fix reporter/unit tests

* fix reporting duplicate screenshots using cy.screenshot during test retry

* update snapshot for 6_uncaught_support_file_spec

* bump x-route-version: 3

* fix test.tsx collapsible content, css, fix e2e/8_error_ui, e2e projects excluding retries

* fix css, fix padding in runnable-instruments, fix runner/integration tests

* fixup after merge

* fix reporter/runner to work with split hooks

* update api tests, runner/cypress tests, reporter

* fix 5_spec_isolation snapshots, fix runner/cypress errors.spec, fix null reference in test.tsx

* fix e2e/non_root spec, fix type_check, fix reporter/unit tests

* setup percy snapshots in runner/cypress, fix driver/runner test:after:run event, add tests for only,skip in runner/cypress, fix retried css

* add customPercySnapshot

* fix circle.yml

* fix circle.yml 2

* fix circle.yml 3

* add warning for incompatible retries plugin

* add more percy snapshots

* fix firefox screenshot resolution in e2e test

* Fix testConfigOverrides not affecting viewport (#8006)

* finish adding percy snapshots to runner/cypress retries spec, update error msgs, add tests to be fixed

* remove .only

* fixing missing repo argument

* fix testConfigOverrides usage with retries, fix test

* fix issues from previous merge

* add script that can query CircleCI workflow status

* add circleci job to poll

* add retries

* try yarn lock

* retry, percy finalize

* check for current running job

* do not swallow request error

* better print

* use job name from circle environment

* use debug instead

* renamed circle polling script

* refactor circle to conditionally run percy-finalize when env var is available

- pass job-names to wait on as an argument

* use multi-line strings and quote --job-names

- rename —circle-jobs to —job-names

* add comment

* only poll until the jobs to wait for are blocked or running

* fix running hooks at correct depth after attempt fails from hook and will retry, update e2e snapshots

* fix reporter/unit tests, remove unused toggleOpen code

* move custom percy command into @packages/ui-components and apply them to desktop-gui

* halt percy finalize job if env variable is not set

* if only I could code

* update runner/cypress mochaEvent snapshots, fix e2e firefox resolution

* fix css for attempt border-left, fix attempt-tag open/close icon, add color to attempt collapsible dot

* try percy set viewport width

* set default retries back to {runMode:0, openMode:0}

* formatting: add backticks to warning message

* write explicit test for screenshot overwriting behavior, fix snapshots after changing retries defaults

* fix e2e.it.only`

* cleanup whitespace

* update snapshots

* fix cypress module API types for new result schema

* build and upload binary for test-retries branch too (linux)

* add pre-release PR comment

* fix pre-release commit comment

* rename runner/cypress test

* update retries.ui.spec test titles

* fix after merge: use most recent attempt for before/after hooks

* add suite title to hook error in runner/cypress tests

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2020-08-10 18:36:45 -04:00
Jennifer Shehane a882763f08 Merge branch 'develop' into v5.0-release 2020-08-10 20:14:11 +06:30