Skip to content

🌥️ 0.9.0

Compare
Choose a tag to compare
@ashleygwilliams ashleygwilliams released this 31 Jan 20:44
  • ✨ Features

    • 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.

  • 🤕 Fixes

    • 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.

    • Remove broken link from the README - drager, pull/635

    • 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

  • 📖 Documentation

    • Document npm installer - drager, issue/751 pull/767

    • 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.

  • 🛠️ Maintenance

    • 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.