Hi All,
I just wanted to share that icpp-pro 3.0.0 was released today, and the main focus of this release was to make true on our promise to create a nice dev environment for Windows.
It took a ton of effort, but it is working really nice now:
- We already could build the wasm with wasi-sdk without any issues. It is a cross platform SDK, and we have it embedded inside icpp for a long time.
- We can now also build a native debug executable with clang++, which is cross platform. We use the pre-build mingw version of clang++ and we had to overcome some hurdles. It is working great now. You can build the native Windows executable in your PowerShell, and debug your Smart Contract with VS Code.
- smoke-testing of deployed canisters is done with pytest. This is also cross platform and the main thing to figure out was how to invoke
dfxwhich we use inside icpp for a lot of things, using pre-defined pytest fixtures, for things like identity setting, verifying the network is up, and making the actual canister calls that we want to test:- I ended up using the same python subprocess calls we use on Linux & Mac, but now with a special format of the command. They look like [“powershell.exe”, “Command”, “wsl --% dfx canister …etc”], and then it all works just flawlessly. The PowerShell and wsl integration is very strong.
- the smoke tests are run using different pre-defined pytest fixtures, where the test first logs in with a certain identity, so you can test authentication logic.
- There is also a fixture to run against the local network or the main network.
Also, besides those internals, here is a PowerShell script that is an equivalent of this Bash script for the same canister.
I am giving a presentation/demo on this on Wednesday, for those of you who are part of the dev group. Hope to see you there.