📦✨ your favorite rust -> wasm workflow tool!
Restore --version command - lynn, issue/1301, pull/1305
The --version command got lost in space in v0.12.0. It's now brought back!
Fix value parser for Option<PathBuf> - Myriad-Dreamin, issue/1304, pull/1307
A value parser for OsString cannot parse a command line argument for Option<PathBuf>, which let it failed to specify paths for pack, publish and test commands, this faulty behavior was introduced in v0.12.0.
Add --no-pack flag to build command - hamza1311, ashleygwilliams, issue/691, issue/811, pull/695, pull/1291
When calling wasm-pack build a user can optionally pass --no-pack and wasm-pack will build your wasm, generate js, and not build a package.json.
Add wasmbindgen option: omit_default_module_path - matthiasgeihs, pull/1272
Adds an option to call wasm-bindgen with --omit_default_module_path.
Add HTTP header USER-AGENT - LeviticusNelson, issue/1266, pull/1285
We encountered some issues when we didn't send an User-Agent. This is now fixed.
Replace curl with ureq - hamza1311, issue/650, issue/823, issue/997, issue/1079, issue/1203, issue/1234, issue/1281, pull/1290
The HTTP client is now pure Rust. Removes the dependency of openssl which have caused a lot of issues for people using wasm-pack on various distributions.
Update binary-install to 0.2.0. binary-install replaced curl with ureq - drager
See PR in binary-install repo for more information.
Remove --always-auth from npm login - EstebanBorai, pull/1288
npm login doesn't support --always-auth anymore, instead it is under the adduser subcommand.
Turn off cargo colors during log level test - dtolnay, pull/1294
Fix getting the target-dir in wasm_bindgen_build - tomasol, issue/1278, pull/1279
Fixes a wasm-pack panic if --target-dir was supplied (and arguments are not sorted).
Respect package.readme in Cargo.toml - heaths, issue/1215, pull/1298, pull/1216
wasm-pack now respects specifying readme=false:
[package]
readme = false
Bump cargo-generate version to 0.18.2 - sassman, issue/1245 pull/1269
Replace unmaintained actions-rs/toolchain action in CI workflows - striezel, pull/1246
Now we are using https://github.com/dtolnay/rust-toolchain instead.
Update several dependencies - hamza1311, pull/1292
Updated clap, toml, predicates and serial_test to their latest versions.
Fix discovery of locally installed wasm-opt
- Liamolucko, issue/1247, pull/1257
Fix wasm-pack bin script entry - ahippler, issue/1248, pull/1250
bump openssl from 0.10.46 to 0.10.48 - pull/1254
Make Deno target available - egfx-notifications, issue/672, issue/879, pull/1117
Add support for more platforms to installer script - omninonsense, issue/1064, issue/952, issue/1125, pull/1122
This makes the installation script work on M1 macs, as well as inside docker (especially when combined with buildx) for aarch64/arm64 architectures.
Add Linux arm64 support - nnelgxorz, issue/1169, pull/1170
Add support for workspace inheritance - printfn, issue/1180, pull/1185
--target-dir as extra option is now considered as expected - sassman, issue/1076, pull/1082
Pass through --weak-refs --reference-types flags to bindgen - serprex, issue/930, pull/937
Fix binaryen URL and use updated binary-install to fix installation on macOS - matheus23, printfn, pull/1188
Use the updated binary-install crate (rustwasm/binary-install#21), switches from failure to anyhow to match what binary-install uses, and fixes wasm-opt installation on macOS.
Mark snippets and the bundler target's main file as having side effects - Liamolucko, issue/972, rustwasm/wasm-bindgen/3276, pull/1224
Fix typos in non-rustup-setups.md - dallasbrittany, issue/1141, pull/1142
Replace two mentions of wasm-pack init with wasm-pack build in the docs - mstange, pull/1086
Update npm installation link - benediktwerner, pull/1227
Bump wasm-opt to version 108 - MichaelMauderer, issue/1135 pull/1136
Update binary-install to v1.0.1 - EverlastingBugstopper, pull/1130
Add back run.js to npm installer - EverlastingBugstopper, pull/1149
Update actions/checkout in GitHub Actions workflows to v3 - striezel, pull/1221
Update actions/cache in GitHub Actions workflows to v3 - striezel, pull/1222
Update JamesIves/github-pages-deploy-action in GHA workflow to v4.4.1 - striezel, pull/1223
Use bash to create release tarballs - nasso, issue/1097 pull/1144
Fixes Windows installer failure due to malformatted tar.
Clean up package.json from previous runs - main--, issue/1110-comment pull/1119
Remove the package.json file from previous runs to avoid crashes.
Do not remove the pkg directory - huntc, issue/1099 pull/1110
A recent change ensured that the pkg directory was removed as the first step of attempting to create it. Unfortunately, this caused a problem for webpack when watching the pkg directory. Webpack was unable to recover its watching and so any watch server must be restarted, which is a blocker when using it. This PR and release fixes this.
Bump regex from 1.5.4 to 1.5.6 - dependabot, pull/1147
Version 1.5.5 of the regex crate fixed a security bug in the regex compiler.
Bump openssl-src from 111.17.0+1.1.1m to 111.20.0+1.1.1o - dependabot, pull/1146
Bring in bug fixes from the new version of openssl-src.
Add support for macos aarch64 - d3lm, issue/913 pull/1088
This fixes aarch64 for MacOS and will download x86_64-apple-darwin.
Add linux/arm64 to release workflow - nacardin, issue/1064 pull/1065
Force axios version - drager, pull/1094
Forces npm package axios
to version 0.21.2
in order to get security fix for a security vulnerability present in axios before version 0.21.2
.
Add exe to binary name if windows - drager, issue/1038 pull/1055
Added keywords - lucashorward, issue/707 pull/838
package.json
files usually contain a keywords array so that npm can make searching easier.
This PR extracts keywords from Cargo.toml
and puts them into package.json
.
Update binary-install to get fix for axios security vulnerability - simlay, Rizary, issue/958 pull/973 pull/1012
Updates binary-install
npm package to version ^0.1.0
in order to get security fix for a security vulnerability in axios.
Fix cargo-generate installation - bradyjoslin, issue/975 issue/907 pull/983
wasm-pack new hello-wasm
didn't work due to a bad link when trying to install cargo-generate
.
This PR points the installation to the correct place and makes wasm-pack new
working again!
Pass through extra options when building tests - azriel91, issue/698 pull/851
wasm-pack test
accepts extra options to pass through to cargo
when running tests.
Under the hood, this runs cargo build
before cargo test
, and the additional options were only passed through to the test
command. This meant that crates that enabled native features by default could not be built using wasm-pack
, as it would attempt to build tests for the wasm32-unknown-unknown
target with the native features enabled.
This PR passes through the extra options to cargo
when building the tests as well.
Corrected files included in package.json for bundler / no target - lucashorward, issue/837 pull/839
wasm-pack build
and wasm-pack build --target bundler
generates a _bg.js file, but it was not added to the package.json
.
The file that is added, *.js will however reference the _bg.js, so when the package was distributed (both through pack or publish) it is not usable.
This PR includes that _bg.js file in package.json
.
Find the main package if multiple packages have the same name - ghost, pull/830
If there were 2 packages with the same name, wasm-pack
would sometimes use the wrong one and errored.
Fix CI. Remove appveyor and travis and use Github actions - ashleygwilliams, drager, issue/594 issue/979 pull/947
Cargo update - ashleygwilliams, pull/800
Remove dirs dependency - brightly-salty, issue/943 pull/944
Bump binaryen to version_90 - ashleygwilliams, issue/781 issue/782 pull/687
Previously, wasm-pack was hardcoded to install and attempt to execute wasm-opt on every build using binaryen version 78. This version had various issues on Unix/Linux and caused broken CI builds for many folks (we're so sorry!).
This PR updates the binaryen version to 90, which should fix the issues folks were having.
Long-term, we'd like to create an auto-updating mechanism so that we can install and use the latest release of binaryen as we do for other binaries we orchestrate.
Consolidate wasm-opt installation into existing binary install logic - ashleygwilliams, issue/685 pull/687
Adding in --quiet
and --log-level
flags to control the console output - Pauan, pull/694
The --verbose
flag has long existed as a way to get more console output, but now there are two flags to get less console output:
--quiet
will silence all stdout, so only errors will be displayed.--log-level
can be used to silence [INFO]
or [WARN]
output from wasm-pack.You can cause it to display even more information by using --verbose
, or you can silence all stdout by using --quiet
.
You can also use --log-level
to have fine-grained control over wasm-pack's log output:
--log-level info
is the default, it causes all messages to be logged.--log-level warn
causes warnings and errors to be displayed, but not info.--log-level error
causes only errors to be displayed.These flags are global flags, so they can be used with every command, and they must come before the command:
wasm-pack --log-level error build
wasm-pack --quiet build
Wrap cargo-generate
with wasm-pack new
- ashleygwilliams, issue/373 pull/623
One of the first steps in getting started with wasm-pack
is to cargo install cargo-generate
to bootstrap some project templates. This can take a while and is an extra burden on users just getting started with wasm-pack
. wasm-pack new
uses cargo-generate
to bootstrap new projects, removing the need to install the tool on your own. You can read more about this feature here.
Allow wasm-pack
to be run from subdirectories - gameldar, issue/620 pull/624
If a crate path is not specified when running wasm-pack
and there is no Cargo.toml
in the current working directory, wasm-pack
will walk up the directory structure to find a Cargo.toml
.
Automatically execute wasm-opt
on produced binaries - alexcrichton, issue/159 pull/625
When wasm-pack
builds binaries in released and profiling modes, it will execute wasm-opt
on the binary, making the result smaller and more performant.
Helpful error message when wasm-bindgen fails because of an old version - gameldar, ashleygwilliams, issue/627 pull/633
wasm-pack
will pass a --web
flag to wasm-bindgen
when wasm-pack build --target web
is run. Before, if the user had an old version of wasm-bindgen
in their dependencies, they would receive a cryptic error message. Now they will be notified that they need to update their wasm-bindgen
dependency if they want to build for the web
target.
Publish releases by tag to npm - Tarnadas, pull/690
You can now use wasm-pack publish
to publish tagged releases with the optional --tag
argument. You can read more about distribution tags on NPM, and more about this feature in our docs.
Only use exactly v0.24.0 geckodriver on Windows - ashleygwilliams, issue/770 pull/774
wasm-pack test
is a great way to test your web Wasm modules- and it very nicely sets up and configures
the necessary browser engine drivers to do so!
For the v0.25.0 release of geckodriver, the team switched their build environment- which introduced a new surprise runtime dependency, Visual C++ redistributable package, to their windows binaries. You can read more about the issue here, mozilla/geckodriver/issue/1617.
Becuase the introduction of this runtime dependency is considered a bug, and should be eventually fixed, the team decided that the least invasive solution would be to hold geckodriver binaries, on Windows, at v0.24.0, and to disable the auto-update logic, until the bug is fixed.
Handle version check failures - drager, issue/652, issue/653 pull/660
Every day, wasm-pack
checks the crates.io API for the latest version number and lets the user know if their installation is out of date. Now, when these API calls fail, wasm-pack
alerts the user of the failure and waits until the next day to make another call to crates.io.
Add user agent for version check - drager, issue/651 pull/658
crates.io requires tools to set a version check User-Agent
header when requesting the latest version. Now, when wasm-pack
performs an API request to crates.io, it sends User-Agent: wasm-pack/0.9.0
.
Make sideEffects
in generated package.json
a boolean instead of a string - rhysd, pull/649
Don't warn if license-file is present - ashleygwilliams, issue/692 pull/693
Previously, wasm-pack
would warn that the license
field was missing if the license-file
field was used instead. This warning is now only surfaced if both license
and license-field
are absent from a Cargo.toml
.
Select correct webdriver version - MartinKavik, issue/611 pull/706
wasm-pack
used to install a pinned version of the Chrome, Gecko, and Safari drivers. Now when a driver needs to be installed, wasm-pack
will pull the latest version from the API and install that instead.
Only run node tests on wasm-pack test --node
- alexcrichton, pull/630
Fix npm installs for Windows Users - EverlastingBugstopper, issue/757 pull/759
We recently published wasm-pack
on the npm registry but forgot to test on Windows! npm install -g wasm-pack
now works on Windows machines.
Clean up cargo test
warnings - ashleygwilliams, issue/752 pull/753
Tests now use std::sync::Once::new()
instead of the deprecated std::sync::ONCE_INIT
Update help message for build
and publish
subcommands - ibaryshnikov, issue/636 pull/640
wasm-bindgen
recently changed the default target from browser
to bundler
and deprecated browser
. This change is now reflected in the help message for wasm-pack build
.
Add Release Checklist - ashleygwilliams, issue/370 pull/626
While we try to automate releases of wasm-pack
as much as possible, there are still some manual steps that need to be completed when releasing a new version (like writing a changelog 😉). These steps now live in RELEASE_CHECKLIST.md
.
Ensure that wasm-bindgen
generates move assertions - fitzgen, issue/677 pull/683
wasm-pack
now creates wasm-bindgen
test fixtures that must generate move assertions for both free functions and methods.
Update cargo_metadata
to v0.8.0 - ThomasdenH, pull/670
Update rustfmt
install snippet in PR template` - data-pup, issue/639 pull/664
rustfmt
is now available on Rust's stable channel so now the wasm-pack
PR template recommends installing the stable version instead of the nightly version.