* Debug
* Building steps logging.
* Chop up restore and clean cache in between
* Restore does not take as much space as codespaces setup files in "/workspaces/.codespaces".
* Try removing the biggest offender.
* Cannot see the impact of cleanup on the size check logs.
* Move setup code into post-create
* Pass arg to the script, otherwise nothing is triggered
* Move all commands up to restore to onCreate. Restore should be done after codespaces setup when occupied disc space drops.
* Fix: wasm does not have artifacts dir on writing to this file.
* This would work but is not 100% reliable - user can interact with the VM before the command finishes.
* Build subset by subset.
* Easy fix - requre bigger disc.
Adds a default configuration that comes with all the dependencies preinstalled, but not prebuilt. This reduces confusion if you don't use the "New with options..." dropdown when creating the Codespace since you'd just get a standard Ubuntu container then.
Also install a specific version of dotnet-serve.
The prebuild on Codespaces broke after the minimum CMake version was bumped in https://github.com/dotnet/runtime/pull/86530 because the container was still using Ubuntu 20.04 (Focal) which only has CMake 3.16.1.
Upgrade to Ubuntu 22.04 (Jammy) so we have a new enough CMake.
Also fix a missing policy in the Mono CMakeLists.txt that was accidentally removed.
* Simplify numasupport
* short-circuit
* Cleanup from QUIC readme
* Address CR feedback: early bail for < 2 NUMA nodes
* Fix node numbering, which is 0-based
Follow-up on #32451
Follow-up on #80074
In #43651, the "Windows" OS name was lowercased to achieve target frameworks with RIDs in them. At that time, the original plan was to lowercase all TargetOS values but that had to be cut because of resources. This PR finishes that and updates build systems, YML, markdowns and managed components.
To not break existing developer workflows, the passed-in -os value is automatically lower-cased in the script entry points and validated in the msbuild entry point.
* Split libraries and wasm devcontainers
Codespaces allows for monorepo support now. So we can have different pre-builds for different dev environments.
Creating a "libraries" pre-build and a "wasm" pre-build devcontainer.
* Move devcontainer files into separate folders
* Path up a directory to the Dockerfile
* Split the Dockerfile so it can be customized per devcontainer
* Update Codespaces docs
* Respond to PR feedback
* Use the new open devcontainers path.
* Use the GH CLI feature instead of installing it ourselves
* Set hostRequirements for Codespaces
Developing in dotnet/runtime with a 2-core / 4GB ram machine doesn't work very well. Add a minimum of 4-core machine to the devcontainer spec.
Fix#75680
* First compiling and working version just proxying messages.
* almost working, already showing the cs files
* Working on firefox.
* Use internal e not public.
* Debugging on firefox working.
* Working after the merge
* Keep the TcpListener open and use a random port.
* Show null value.
* - Show JS Callstack
- Skip properties
- Get array value from evaluateAsyncJS and not use the preview value.
* Fix compilation
* Infrastructure to run debugger tests.
* fix merge
* run test.
* Skipping tests that are not passing on Firefox.
* Skipping tests that are not passing on Firefox.
* Passing 13 steppingtests.
* Passing 13 steppingtests.
* Passing 13 steppingtests.
* Failed: 0, Passed: 39, Skipped: 203, Total: 242, Duration: 5 m 6 s - DebuggerTestSuite.dll (net6.0)
* Failed: 0, Passed: 66, Skipped: 195, Total: 261, Duration: 9 m 29 s - DebuggerTestSuite.dll (net6.0)
* Using ConditionalTheory and ConditionalFact implemented by @radical.
* Fixing side effect.
* Implemented conditional breakpoints.
Failed: 0, Passed: 74, Skipped: 189, Total: 263, Duration: 8 m 41 s - DebuggerTestSuite.dll (net6.0)
* Fix special characters and pointers.
Failed: 0, Passed: 116, Skipped: 177, Total: 293
* Fix merge
* Run debugger-tests on firefox using codespace
* Starting firefox correctly not stopping in the breakpoint yet.
* Remove unnecessary change
* Fix pause behavior (now showing correctly, pause on breakpoint, pause while stepping)
Start implementing evaluate expressions, working correctly on VSCode.
* Fix local tests.
* Fix missing )
* Passing 190 tests, evaluate expressions working.
* Remove Task.Delays.
Move some attributes from FirefoxMonoProxy to FirefoxExecutionContext.
* Fix container creation
* Trying to run firefox tests on CI.
* Moving file to the right place.
* Trying to run debugger-tests using firefox on CI.
* fixing path
* Missing url to download firefox on helix.
* On run the tests only on linux.
* Trying to download firefox on helix.
* fix error on helix-wasm.targets.
* trying to fix ci
* trying to install firefox on helix.
* Fixing firefox path
* Fix debugger tests on firefox
* fixing profile path
* Install libdbus-glib-1-2 on docker and on codespace
* Trying to run using firefox on CI
* update docker image
* Adding more messages to see errors on CI
* Trying to make it work on CI
* Real test on CI
* Trying to use the firefox machine only to run firefox tests
Retrying connection to Proxy
Remove extra messages added to help to fix CI
* Fix CI
* Fix CI
* Fix CI.
* Remove unnecessary changes.
* Using machine with sudo installed
* Addressing @lewing comments
* Fix run tests on codespace
Using image with python3
* Use default image to build and new image only to run firefox tests
* Fix unrelated change
* Fix ci
* check python version
* Print python versions
* Using image with PIP installed
* Using image with pip updated
* Remove unrelated changes
Increase time to wait for firefox to be ready
* Trying to fix evaluate tests.
* Fix evaluateoncallframe tests
* Trying to fix evaluation tests.
* trying to fix evaluateoncallframetests
* fiz evaluateoncallframetests
* Trying to kill firefox to avoid errors.
* Trying to fix EvaluateOnCallFrameTests
* Fix CI
* Remove failing test
* Fix misctests
* Fix other build errors.
* Trying to fix CI.
* Fix CI
* Remove unecessary message.
* Update src/tests/BuildWasmApps/Wasm.Debugger.Tests/Wasm.Debugger.Tests.csproj
Co-authored-by: Ankit Jain <radical@gmail.com>
* Addressing @radical comments
* Merge error while accept @radical suggestion
* Merge error while accept @radical suggestion
* Update src/mono/wasm/debugger/BrowserDebugProxy/DebugStore.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
* Apply suggestions from code review
Co-authored-by: Ankit Jain <radical@gmail.com>
* Addressing @radical comments
* Abort the tcp connection if the proxy throws an exception
* Refactor a bit
* Use more compile time checks for chrome vs firefox
* fix pipeline
* Make debugger job names unique by including the browser
* fix runtime-wasm pipeline
* fix firefox ci job
* split into more files
* cleanup
* Add support for running chrome, and firefox tests in the same job
* fix yml
* fix build
* fix build
* fix windows build
* Don't delete profile folder nor pkill firefox
* Delete and create a new profile folder for each execution
* fix helix command line
* [wasm][debugger] Fix tests broken on 'main'
This test broke because it was checking for the number of members on
`System.TimeSpan`, and that changed with
https://github.com/dotnet/runtime/pull/67666 , which added new members
like `TotalNanoseconds`.
The test shouldn't depend on this number anyway, so remove that.
```
Failed DebuggerTests.MiscTests.InspectLocalsForToStringDescriptions(line: 137, col: 12, method_name: "MethodWithLocalsForToStringTest", call_other: False, invoke_async: False) [758 ms]
Error Message:
[ts_props] Number of fields don't match, Expected: 12, Actual: 16
Expected: True
Actual: False
Stack Trace:
at DebuggerTests.DebuggerTestBase.CheckProps(JToken actual, Object exp_o, String label, Int32 num_fields) in /_/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestBase.cs:line 800
at DebuggerTests.DebuggerTestBase.CompareObjectPropertiesFor(JToken locals, String name, Object o, String label, Int32 num_fields) in /_/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestBase.cs:line 908
at DebuggerTests.MiscTests.InspectLocalsForToStringDescriptions(Int32 line, Int32 col, String method_name, Boolean call_other, Boolean invoke_async) in /_/src/mono/wasm/debugger/DebuggerTestSuite/MiscTests.cs:line 559
```
* wip
* big refactor
* chrome runs
* ff runs
* ff runs
* cleanup
* cleanup
* cleanup
* change console verbosity to info, for proxy
* More refactoring
* More refactoring, and fix some issues with connections, and other
cleanup
* some cleanup
* fix file name
* Improve cleanup after tests
* some refactoring, fixing some hangs, faster failures etc
* Fix BrowserCrash test for chrome
* fix up logging
* Improve error handling for the proxy running independently
* fix debugging from vscode
* proxy host: add --log-path for logs
* support canceling for the proxy host too, and distinguish different instances of the proxy
* Fix debugger after refreshing the debugged page.
* Fixing chrome debugging.
* Fix startup to work on chrome and also on firefox.
Co-authored-by: Ankit Jain <radical@gmail.com>
* Tmp change for debugging.
* Added chromium, needed for running debugger tests.
* Corrected line breaking, removed suso.
* Removed update duplicate.
* Prevent regex on null.
* Set special env variable only for containers.
* Locally docker build crashes without it.
* Applied @eerhardt suggestion.
* Moved env assignment to a place that is executed by onCreateCommand.sh
* Revert accidential new line removal.
* Upgrade is unnecessary, works without it.
* Moved all logic to C# code.
* Remove duplicated line.
* Applied @thays's and @lewing's comments.
* Enabling @radical approach for chromium installation.
Co-authored-by: Ankit Jain <radical@gmail.com>
With these changes, running the following in the Codespace will open the local browser to a page served from the codespace hosting the WASM sample:
```console
cd src/mono/sample/wasm/browser
make
make run-browser
```
* Set EMSDK_PATH in .devcontainer.json
We provision Emscripten as part of the devcontainer prebuild.
Set EMSDK_PATH to allow rebuilding the wasm runtime to work without any additional ceremony
* Install dotnet-serve into .dotnet-tools-global
* [wasm] Don't try to open browser if running in Codespaces
* .devcontainer: add global tools dir to PATH
* .devcontainer: forward port 8000
This enables running the mono wasm samples in the local browser:
* [wasm] samples: also check for dotnet-serve on the path
On Codespaces we install dotnet-serve on the PATH but not where `dotnet tool list` can see it
* remove onAutoForward: notify - it's the default
* Adjust the path of v8 depends if running in a dev container
* Check if we're running in any Docker container, not just Codespaces
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
* Add instructions for using Codespaces
* Automate resetting the HEAD to the same commit ID used to build the pre-built container
* - Add notes about testing changes.
- Add 4-core machines
* Revert 4-core change since prebuild doesn't support multiple sku_names.
- mark onCreateCommand.sh as executable
- add more regions so users outside of West US can take advantage of prebuilt codespaces
- use v1-stable version, as recommended by docs
- use faster machines for dev productivity