Skip to content

Releases: rustwasm/wasm-pack

🌟 0.4.0

18 Jun 18:39
Compare
Choose a tag to compare

This release has a ton of awesome things in it, but the best thing is that
almost all of this awesome work is brought to you by a new contributor
to wasm-pack. Welcome ya'll! We're so glad to have you!

✨ Features

  • 🎏 New Flags

    • --mode flag for skipping steps when calling init - ashleygwilliams, pull/186

      After teaching and working with wasm-pack for some time, it's clear that people would
      like the flexibility to run some of the steps included in the init command and not others.
      This release introduces a --mode flag that you can pass to init. The two modes currently
      available are skip-build and no-installs and they are explained below. In the future,
      we are looking to change the init interface, and potentially to split it into two commands.
      If you have thoughts or opinions on this, please weigh in on issue/188!

      • skip-build mode - kohensu, pull/151

        wasm-pack init --mode skip-build
        

        Sometimes you want to run some of the shorter meta-data steps that
        wasm-pack init does for you without all the longer build steps. Now
        you can! Additionally, this PR was a fantastic refactor that allows even
        more custom build configurations will be simple to implement!

      • no-installs mode - ashleygwilliams, pull/186

        wasm-pack init --mode no-installs
        

        Sometimes you want to run wasm-pack and not have it modify your global
        env by installing stuff! Or maybe you are just in a hurry and trust your
        env is set up correctly- now the --mode no-install option allows you to
        do this.

    • --debug - clanehin, pull/127

      wasm-pack init --debug
      

      Find yourself needing to compile your Rust in development mode? You can now
      pass the --debug flag to do so! Thanks so much to clanehin for filing
      issue/126 for this feature... and then implementing it!

  • βœ… New Checks

    • ensure you have cdylib crate type - kendromelon, pull/150

      One of the biggest mistakes we've seen beginners make is forgetting to declare
      the cdylib crate type in their Cargo.toml before running wasm-pack init.
      This PR fixes that, and comes from someone who ran into this exact issue learning
      about wasm-pack at JSConfEU! Love when it works out like this.

    • ensure you have declared wasm-bindgen as a dep - robertohuertasm, pull/162

      Another easy mistake to make is to forget to declare wasm-bindgen as a
      dependency in your Cargo.toml. Now wasm-pack will check and make sure you
      have it set before doing a bunch of long build steps :)

    • ensure you are running nightly - FreeMasen, pull/172

      wasm-pack currently requires that you run it with nightly Rust. Now, wasm-pack
      will make sure you have nightly installed and will ensure that cargo build is run
      with nightly. Thanks so much to FreeMasen for filing issue/171 and fixing it!

πŸ€• Fixes

  • fixed broken progress bar spinner - migerh, pull/164

    Oh no! We broke the progress bar spinner in version 0.3.0. Thankfully, it's
    fixed now- with a thoughtful refactor that also makes the underlying code
    sounder overall.

πŸ› οΈ Maintenance

  • WIP bot - ashleygwilliams & mgattozzi, issue/170

    We've got a lot of work happening on wasm-pack so it's good to have a bit
    of protection from accidentally merging a Work In Progress. As a result, we
    now have the WIP Github App set up on wasm-pack. Great suggestion mgattozzi!

  • modularize command.rs - ashleygwilliams, pull/182

    Thanks to the growth of wasm-pack, command.rs was getting pretty long.
    We've broken it out into per command modules now, to help make it easier to
    read and maintain!

  • improve PoisonError conversion - migerh, pull/187

    As part of the awesome progress bar spinner fix in pull/164, migerh introduced
    a small concern with an unwrap due to an outstanding need to convert PoisonError
    into wasm-pack's custom Error. Though not a critical concern, migerh mitigated
    this right away by replacing std::sync::RwLock with the parking_lot crate!
    This cleaned up the code even more than the previous patch!

  • wasm category for crates.io discovery- TomasHubelbauer, pull/149

    crates.io has categories to help folks discover crates, be we weren't
    leveraging it! Now- if you explore the wasm category on crates.io
    you'll see wasm-pack!

πŸ“– Documentation

  • cleaned up the README - ashleygwilliams, pull/155

    Our README was struggling with a common problem- doing too much at once.
    More specifically, it wasn't clear who the audience was, contributers or
    end users? We've cleaned up our README and created a document specifically
    to help contributors get up and running.

🌠 0.3.1

05 Jun 10:11
Compare
Choose a tag to compare

Babby's first point release! Are we a real project now?

πŸ€• Fixes

  • fixed init Is a Directory error - ashleygwilliams, pull/139

    Our new logging feature accidentally introduced a regression into 0.3.0. When
    calling wasm-pack init, if a directory was not passed, a user would receive
    a "Is a Directory" Error. Sorry about that! Thanks to jbolila for filing
    issue/136!

  • typescript files were not included in published package - danreeves, pull/138

    Generating Typescript type files by default was a pretty rad feature in
    0.3.0 but we accidentally forgot to ensure they were included in the
    published package. Thanks so much to danreeves for catching this issue
    and fixing it for us!

πŸ’« 0.3.0

31 May 13:18
Compare
Choose a tag to compare

✨ Features

  • Logging - mgattozzi, pull/134

    Up until now, we've forced folks to rely on emoji-jammed console output to debug
    errors. While emojis are fun, this is often not the most pleasant experience. Now
    we'll generate a wasm-pack.log file if wasm-pack errors on you, and you can
    customize the log verbosity using the (previously unimplemented) verbosity flag.

  • --target flag - djfarly, pull/132

    wasm-bindgen-cli is able to generate a JS module wrapper for generated wasm files
    for both ES6 modules and CommonJS. Up until now, we only used wasm-bindgen's default
    behavior, ES6 modules. You can now pass a --target flag with either nodejs or
    browser to generate the type of module you want to use. Defaults to browser if not
    passed.

  • human readable panics - yoshuawuyts, pull/118

    Panics aren't always the most friendly situation ever. While we never want to panic on ya,
    if we do- we'll do it in a way that's a little more readable now.

  • typescript support by default - kwonoj, pull/109

    wasm-bindgen now generates typescript type files by default. To suppress generating
    the type file you can pass the --no-typescript flag. The type file is useful for more
    than just typescript folks- many IDEs use it for completion!

  • wrap npm login command - djfarly, pull/100

    In order to publish a package to npm, you need to be logged in. You can now use
    wasm-pack login to login to the npm (or any other) registry.

  • exit early on failure - mgattozzi, pull/90

    Until now, wasm-pack would continue to run tasks, even if a task failed. Now- if something
    fails, we'll exit so you don't have to wait to fix the error.

πŸ€• Fixes

  • force install wasm-bindgen - ashleygwilliams, pull/133

    Using an out of date version of wasm-bindgen can run you into a bunch of trouble. This
    very small change should fix the large number of bug reports we received from users using
    an out of date wasm-bindgen-cli by force installing wasm-bindgen-cli to ensure the user
    always has the latest version. We don't expect this to be a forever solution (it's a bit
    slow!) but it should help those who are getting started have a less rough time.

  • fix CI release builds - ashleygwilliams, pull/135

    This was not working! But now it is! You can always use cargo install to install
    wasm-pack, but now you can find pre-built Linux and Mac binaries in the Releases
    tab of our GitHub repo.

πŸ› οΈ Maintenance

  • remove quicli dependency - mgattozzi, pull/131

    While quicli is a great way to get started writing a CLI app in Rust- it's not meant for
    large, mature applications. Now that wasm-pack is bigger and has many active users, we've
    removed this dependency to unblock further development on the tool.

  • update rustfmt CI test - djfarly, pull/128

    Since 0.2.0 how one should call rustfmt changed! We've kept it up to date so we can continue
    to maintain conventional style in the codebase.

  • custom module for errors - mgattozzi, pull/120

    Thanks to the failure crate, we've been playing fast and loose with errors for a bit. We're
    finally getting serious about error handling - by organizing all of our specific errors in a
    specific module. This will make it easier to communicate these errors out and handle new error
    cases from future features.

πŸ“– Documentation

Special thanks to data-pup who continues to be our documentation champion! In case you missed it,
check out the guides in the docs directory!!

🌌 v0.2.0

27 Apr 02:30
Compare
Choose a tag to compare

This release focuses on filling out all commands and improving stderr/out
handling for improved user experience!

✨ Features

  • pack and publish - jamiebuilds, pull/67
    You can now run wasm-pack pack to generate a tarball of your generated package,
    as well as run wasm-pack publish to publish your package to the npm registry.
    Both commands require that you have npm installed, and the publish command requires
    that you be logged in to the npm client. We're working on wrapping the npm login
    command so that you can also login directly from wasm-pack, see pull/100 for more
    details.
  • package.json is pretty printed now - yoshuawuyts, pull/70

    Previously, package.json was not very human readable. Now it is pretty printed!

  • collaborators - yoshuawuyts, pull/70

    wasm-pack now will fill out the collaborators field in your package.json for
    you based on your Cargo.toml authors data. For more discussion on how we decided
    on this v.s. other types of author fields in package.json, see issues/2.

πŸ€• Fixes

πŸ› οΈ Maintenance and πŸ“– Documentation

Thanks so much to mgattozzi, data-pup, sendilkumarn, Andy-Bell,
steveklabnik, jasondavies, and edsrzf for all the awesome refactoring,
documentation, typo-fixing, and testing work. We appreciate it so much!

πŸ’₯ v0.1.0

27 Apr 02:29
cef406f
Compare
Choose a tag to compare
First release