* chore(install)
- make preinstall hook windows portable
- make link-packages script use junction symlinks for windows
* use npx
* run preinstll in appveyor
* remove win32 check, pin dep (and update .npmrc)
* add webpack
* fix build proccess
* fix reporter build and test
* fix reporter test .css
* use apply(window, ...) since strict mode in webpack
* temp 05/13/19 [skip ci] resolver
* temp 05/14/19 [skip ci] webpack w/ root level symlinks
* run ci
* minor fixes
* fix link-packages script
* hopefully fix mac build
* re-add build-prod script in reporter
* fix typo in link-packages script
* fix lint errors
* fix node-version
* namespace files in webpack
* bust circle ci cache
* bust circle ci cache 2
* remove deps
* bust circle ci cache 3
* bust circle ci cache (launcher)
* ok circleci, you win. I will change all the cache keys
* update snapshot: not sure why added stack lines
* add mocha to reporter devDeps
* separate build file for reporter
* remove unneeded code
* node-sass-globbing use relative imports for appveyor
* add debugging for appveyor failure
* node-sass-globbing force unix paths for windows
* node-sass-globbing force unix paths for windows 2
* node-sass-globbing force unix paths for windows in runner
* run ci
* add checksum to packages caches
* bust circle ci cache (sub packages)
* testing code for appveyor env vars
* fix appveyor env vars for branchname
06-00000026
* fix binary build script, smoke test catch errors, include pkg mains
03-0000000a
* build binary in appveyor for this branch
07-00000047
* fix binary unit test, revert mocha upgrade in root, fix e2e specs
02-00000004
* statically replace symlinks at build time, add test, remove proxy packages code
03-00000002
* oops, update snapshot
04-00000049
* bump circle packages cache
02-00000005
* fix path.win32 on windows, add test for it
00-00000058
* for some reason packages ci cache is not including `rebuild-node-sass` in node_modules/.bin, and npm does not recreate .bin links if a node_modules folder already exists. so Im bumping all the npm caches, again
00-00000003
* emit during webpack-dev-server watch mode
02-00000020
* try revert circle.yml
02-0000002f
* try revert everything
03-0000003b
* Revert "try revert everything"
This reverts commit be125b88ff.
* no circle cache now
02-00000013
* remove logging in reporter build
06-00002a41
* Merge branch develop of github.com:cypress-io/cypress into webpack-runner
02-0000089b
* make build scripts DRY
04-00000a7f
* fix missing fonts, better watch mode
06-00003053
* use webpack --progress in watch mode
00-00000582
* move webpack config files into dedicated package
05-000023bf
* build desktop-gui with webpack, use relative scss url()s
03-00001801
* add timings info, fix configs
07-00005582
* enable sourcemaps "eval", fix desktopgui test
04-00005a08
* try 2: fix desktopgui test
01-0000058e
* fix lint
03-00000b10
* fix snapshot (very minor do not worry)
04-000014a4
* code cleanup
00-00007a4f
* try disable devtool
07-0000a97a
* remove cypress:// devtool sourceURL mapping to prevent cross-domain on electron
00-000056e4
* re-enable eval sourcemap in dev and prod
06-000051e6
* code cleanup
02-000056ae
* refactor node-jsdom setup for tests
00-000041a2
* re-enable sourceURL protocol, enable crossorigin script on runner to appease electron
* smoke tests for static assets in binary build script, disable sourceURL protocol mapping, more consistent dev/prod webpack builds
* use cross-env for desktop-gui
* desktop-dui: expect development NODE_ENV during build script (as has been in past)
* fix build script unit test
* fix build script unit test for real
* fix sourcemaps for dev/prod, add comments, add build static asset tests
* add cross-env to runner devDeps
* fix unit tests for build binary script
* fix whitespace
* add postcss autoprefixer + staticAsset tets
* add eslintrc to scripts/unit
* tabs -> spaces
* tabs -> spaces
* fix binary/util scripts
* fix testStaticAssets in build script
* fix extension requiring node socket
* fix unit-test for binary build script
* fix unit test for runner/reporter
* disable sourcemaps/eval in production
* fix disable sourcemaps in prod code
* resort jsons w/ new lint
* linting fixes
* runner/package.json add back rebuild-node-sass
* no circle cache again
* fix circle.yml
* try appveyor again
* fix binary build: remove "timers" from server/package.json.files
* fix testStaticAssets false-positive sourcemap detection (due to diff package)
* fix 2 failing e2e tests (run in chrome for now)
use build-prod scripts in binary-build script
add build-prod scripts to all packages
* a string is no regex
* correct merge: global_mode_spec
* fix all snapshot screenshot dimensions
* fix all snapshot screenshot dimensions (again)
* fix testStaticAssets development -> production
* Revert "fix all snapshot screenshot dimensions (again)"
This reverts commit d9022ef950.
* Revert "fix all snapshot screenshot dimensions"
This reverts commit 4f7628a051.
* helpers/e2e: only normalize screenshot dimensions NOT on electron
* post-task: windows build don't build on this branch
* post-task: un-bump circleci cache
* post-task: bump circleci cache packages/node_modules to v9
* cleanup: fix eol-newline, remove unneeded eslintrc
* bump circleci cache
* run rebuild-node-sass inside webpack build config
* bump circleci cache
* use cache version from env variable on circle
* use custom command to save cache for most packages
* add custom restore cache command
* restore 2 packages separately
* allow passing package path to restore
* pass explicit path to package to restore
* add restore-caches and save-caches
* print name for restoring cache commands
* print name when storing cache
* print .bin when saving cache
* fix path to .bin
* print launcher .bin
* show .bin for desktop-gui
* print bins
* update npm version
* update npm version - try 2
* update npm version - try 3
* remove circleci debugging print commands
* Revert "remove circleci debugging print commands"
This reverts commit 248966efcd.
* add TERM=xterm to Circle
* Revert "Revert "remove circleci debugging print commands""
This reverts commit cf77273b10.
* Revert "add TERM=xterm to Circle"
This reverts commit dc77c94c57.
* remove --serial arg from run all scripts
* add web-config package to cache
* simplify circleci build job
* circleci: try rmrf node_modules/@packages before install
* appveyor: try removing --serial from install script
* Revert "appveyor: try removing --serial from install script"
This reverts commit 7ef619ff30.
* use appveyor from develop
* use preinstall removing subpackage symlinks
fix webpack config typescript errors
fix path to rebuild-node-sass in packages/web-config
assert replace minimum number of symlink requires
* test binary build [build binary]
* fix transformRequires code [build binary]
* retry requests, basic e2e test
* basic e2e test for chrome behavior
* don't use timeouts to test
* some minor cleanup
* validate google chrome's retry behavior w/ a proxy
* get retries on network errors workin
* cleanup
* final changes before switching approach
* Reverting previous approach in request.coffee, server.coffee
* add retryOnNetworkFailure
* now works with retryOnStatusCodeFailure
* retry 4 times in addition to the 1 initial attempt
* add tests for subresources
* much improved error handling
* have the e2e test really work
* e2e baseurl check
* retry baseurl check
* remove special handling for node 8.2.1 bug
* WIP: continue making progress building out request retry
- swap out passthrough’s for pumpify / duplexify / pump
- clean up error handling / messaging / retry logic
* pipe clientrequest events
* buffer req body to disk, restore error handling/retrying
* don't bubble up errors from failed attempts
* actually pipe reqstream, oops
* add some e2e tests for request body
* revert lib/request.coffee to 7be1051
* add almost-working lazy-stream
* manually fire the 'pipe' event on the reqStream to copy headers to the outgoing message
- restore the ‘error’ propagation so that all tests pass for now
* cleanup leaking 'undefined' into stdout, causing failing e2e tests
- do not set onWarning as a property of project, just pass as an
argument
* add new options to request_spec, deduplicate default opts
* use stream buffer in request.coffee
* revert request.coffee
* last stream_buffer changes before removing fs stuff
* remove fs stuff from stream_buffer, add stream piping tests
* it works! :tada::tada:🎉 using duplexify to separate delayStream and reqBodyBuffer
* retry for .5s max on ECONNREFUSED
* add error codes
* don't timeout proxied requests
* restore baseurl check
* update new e2e tests
* make delay work with rp
* propagate clientresponse events
* removing tests that don't do anything now that we don't ESOCKETTIMEOUT on proxied requests
* add new visit, req options to index.d.ts
* don't fail on server-performance-test
* make retries with status code work again
* account for different stack trace in ci
* fix test
* retry https requests
* add tests for https passthru retries working
* clean up error handling for https-proxy
* fix failing https-proxy tests, tweak agent error handling to prevent multiple callbacks
* make expectedExitCode actual vs. expected in the correct order
* bump up e2e test timeout so it can retry and still work
* update tests
* retry up to 500ms on proxied requests
* add tests for incompatible options errors
* remove .only
* maybe this will help it act more consistently
* help e2e test work in ci
* don't reconnect on already made connections
* clarify naming
* wip: testing https proxy
* better debug calls
* WIP: getting proxy passthrough retry tests going
* handle retrying upstream proxy errors
- add tests for successfully retrying proxy errors and for unsuccessful
retries
- fix onClose errors when proxy connection is closed before enough data
is received
- fix not returning setTimeout correctly
* group related code accordingly
* do not build typescript by default, drop extension from main
* more TODO notes
* don't set a default NO_PROXY if NO_PROXY = ''
* debugging-proxy@2.0.0
* null out reqBodyBuffer when req finishes
* wip: retry in agent, not https-proxy [skip-ci]
* update https-proxy to use @packages/network retries
* retry after connection but before proxy tunnel established
* appease my linty overlords
* update https-proxy tests
* update agent specs, decided to still use tls.connect
it's easier to test and has less complexity
* test retrying HTTPS passthru
* debugging-proxy@2.0.1
* increase defaultCommandTimeout 100 -> 200 to prevent flake in CI
* auto formatting
* fix test to be dynamic and not rely on magic constants
* copy types field when linking proxy images, update packages/network types field
* linting
* add network index.js file
* linting
* improve error messaging experience when verifying base url
* only insert 1 new line
* fix failing test not binding to localhost
* removed test that's covered by e2e specs
* remove dash in 're-try'
* some cleanup for readability
* use allocUnsafe per perf
* unset NO_PROXY with an empty string
* move retry ensuring the baseUrl into url, cleanup some imperative code
* if the head is already present during connect, make connection, else wait for first head bytes
* minor formatting, clarity around conditions, naming
* rename retryInterval -> retryIntervals
* set defaults for requests during creation for clarity
* rename send -> sendPromise to pair better with sendStream
* use retryIntervals instead of juggling MAX_REQUEST_RETRIES
- ensure debug messages are consistent between request streams +
promises
- set static constants
* DRY up status check + network failure + retry logic
- keeps the debug logic identical between promises + streams
- ensures all logic paths are also consistent
- consolidates the pop’ing of intervals in a single place
* find / replace fail
* derp
* make the logic actually correct, set intervals as cloned defaults for recursive lookup
* pass arg correctly
* reduce debugging noise, formatting
* rename intervals -> delaysRemaining for clarity
* added unit tests around getDelayForRetry
* set retryIntervals as default options correctly, add unit tests
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
* all: replace symlinks with proxy modules
* replacing symlinking with copying proxy packages
* https-proxy: add missing prod dependency lodash
* put actual path to main for each package proxy
* better console log
* driver: include index.js in published files
* https-proxy was missing debug production dependency
* app built with proxied packages works
* delete existing node_modules/@packages before making proxies
* explicit async fs call
* server: remove deep paths in tests
* driver: remove nested path to @packages
* link: ensure each package has main set