Other than a simple bump, we shouldn't check for the revision anymore. Now the recommended way to specify this dependency is only with a semantic version constraint.
Without this patch `ProcessRunner` output pollutes non-interactive terminals such as GitHub Actions logs, where `loadingMessage` value is printed multiple times in a row for every compiled file.
`carton` can't install toolchains from `.pkg` archives at the moment, and the latest toolchain snapshots are distributed exclusively as signed `.pkg` for macOS.
Parts of `ToolchainManagement.swift` related to toolchain installation were moved to `ToolchainInstallation.swift`.
* Add support for signed `.pkg` archives on macOS
* Bump toolchain version to `2020-10-21`
Resolves#119.
* Mention the Docker image in `README.md`
* Update .dockerignore
* Test Docker image building on CI
* Bring back the GitHub token to `swift.yml`
Resolves#114.
As support for SwiftLint in Danger seems a bit buggy (causing duplicate warning comments sometimes), this PR calls SwiftLint through a separate action that displays warnings only in the PR diff and hopefully in better way.
* Add support for Ubuntu 20.04
* Refine formatting
* Move SwiftLint to a separate GitHub Action
* Fix linker warnings
* Remove `danger.yml` and `Dangerfile.swift`
* Remove `--strict` argument from `swiftlint.yml`
* Update README.md
Now that Big Sur is available on GitHub Actions, we can get more certainty that everything works with the new OS (on Intel hardware for now).
* Build on macOS Big Sur with GitHub Actions
* Clarify Ubuntu 18.04 job name
* Remove sudo usage from `install_ubuntu_deps.sh`
`sudo` is not always available in Docker containers, so we should assume users will run the script itself with `sudo` when needed.
* Update swift.yml
In the latest 5.3 toolchain all known issues with IndexStoreDB and SwiftPM support were resolved.
Resolves the second point of #42.
Thanks to this you no longer need to maintain `LinuxMain.swift` and `XCTestManifests.swift` files in your test suites, so these are deleted from the test app `Tests` directory.
`TestApp/.swift-version` is removed as it was mostly duplicating the default toolchain version. Downloads of recent toolchains is fixed now with the new `macos` tarball suffix that replaces `osx`. `TestApp/main.swift` is updated to make #127 easily reproducible.
* Allow changing dev server's port
* Update entrypoint/dev.js
Co-authored-by: Jed Fox <git@jedfox.com>
* Revert unnecessary port injection to HTML
Co-authored-by: Jed Fox <git@jedfox.com>
TTY terminal output is unavailable on CI, or when users redirect output to a file or a pipe. In those cases `TerminalController` initializer returns `nil`. SwiftPM has a wrapper `InteractiveWriter` class for it, which writes output to stdout directly in that case. I've copied that, and replaced all uses of `TerminalController` with it. A VSCode task is added to test that.
In my testing it looks like download progress reporting is quite spammy, so it now has `removeDuplicates` Combine operator added to make it output only when values differ significantly from each other.
Additionally, SDK installs can hit GitHub API rate limit on CI nodes, so `carton` now reads `GITHUB_TOKEN` environment variable, which gives much higher limits to authenticated API users.
We can now also run various `carton` commands on CI for basic end-to-end testing.
Resolves#112.
The latest SwiftWasm 5.3 snapshot requires users to use `import WASILibc` instead of `import Glibc`. This makes differences between platforms more explicit.
Handling of the `static.zip` archive has changed slightly, where now the archive no longer has a nested `static` directory in it, which makes packaging slightly more predictable. For some reason passing wildcards to `zip` no longer works for me.
This change requires `wasm-5.3-SNAPSHOT-2020-09-08-a` or later, therefore the default toolchain version has been bumped.
Implements the `carton dev` part of #38, `carton bundle` support will be implemented in a future PR.
The latest 5.3 toolchain snapshot fixes release builds of Tokamak.
We no longer need `carton bundle` to produce debug builds by default, so it closes#103 as outdated.
Formatting of a `carton bundle` message is fixed as it didn't have a required trailing newline.
Allows passing a path to your custom `index.html` as `--custom-index-page` to `carton dev` and `carton bundle`. The entrypoint script is then injected into this file with a simple text substitution looking for a closing `</head>` tag. The assumption is that your custom `<body>` is not supposed to contain an unescaped `<head></head>`, and adding a dependency on a proper HTML parser to implement this injection is too costly.
Depends on #97.
Resolves#100.
New `bundle.js` entrypoint is added, which only differs from `dev.js` in the lack of the WebSocket hot reloading bit.
`wabt` and `binaryen` Homebrew dependencies are added as required for `wasm-strip` and `wasm-opt` respectively that reduce the resulting bundle binary size.
All resulting bundle files except `index.html` are named by their content hashes to enable [cache busting](https://www.keycdn.com/support/what-is-cache-busting).
Resolves#16.