Releases: rustwasm/wasm-pack
π 0.4.0
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 callinginit
- ashleygwilliams, pull/186After 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 theinit
command and not others.
This release introduces a--mode
flag that you can pass toinit
. The two modes currently
available areskip-build
andno-installs
and they are explained below. In the future,
we are looking to change theinit
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/151wasm-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/186wasm-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.
-
-
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/150One of the biggest mistakes we've seen beginners make is forgetting to declare
thecdylib
crate type in theirCargo.toml
before runningwasm-pack init
.
This PR fixes that, and comes from someone who ran into this exact issue learning
aboutwasm-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 yourCargo.toml
. Nowwasm-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/172wasm-pack
currently requires that you run it withnightly
Rust. Now,wasm-pack
will make sure you havenightly
installed and will ensure thatcargo build
is run
withnightly
. 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 onwasm-pack
. Great suggestion mgattozzi! -
modularize
command.rs
- ashleygwilliams, pull/182Thanks 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 anunwrap
due to an outstanding need to convertPoisonError
intowasm-pack
's customError
. Though not a critical concern, migerh mitigated
this right away by replacingstd::sync::RwLock
with theparking_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 thewasm
category on crates.io
you'll seewasm-pack
!
-
human panic is now 1.0.0 - spacekookie, pull/156
Congrats friends! We like what you do.
π 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
Babby's first point release! Are we a real project now?
π€ Fixes
-
fixed
init
Is a Directory
error - ashleygwilliams, pull/139Our new logging feature accidentally introduced a regression into 0.3.0. When
callingwasm-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
β¨ Features
-
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 awasm-pack.log
file ifwasm-pack
errors on you, and you can
customize the log verbosity using the (previously unimplemented) verbosity flag.
-
--target
flag - djfarly, pull/132wasm-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 eithernodejs
or
browser
to generate the type of module you want to use. Defaults tobrowser
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/100In 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 datewasm-bindgen-cli
by force installingwasm-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/131While
quicli
is a great way to get started writing a CLI app in Rust- it's not meant for
large, mature applications. Now thatwasm-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
This release focuses on filling out all commands and improving stderr/out
handling for improved user experience!
β¨ Features
pack
andpublish
- jamiebuilds, pull/67
You can now runwasm-pack pack
to generate a tarball of your generated package,
as well as runwasm-pack publish
to publish your package to the npm registry.
Both commands require that you have npm installed, and thepublish
command requires
that you be logged in to the npm client. We're working on wrapping thenpm login
command so that you can also login directly fromwasm-pack
, see pull/100 for more
details.
-
package.json
is pretty printed now - yoshuawuyts, pull/70Previously,
package.json
was not very human readable. Now it is pretty printed! -
collaborators
- yoshuawuyts, pull/70wasm-pack
now will fill out thecollaborators
field in yourpackage.json
for
you based on yourCargo.toml
authors
data. For more discussion on how we decided
on this v.s. other types ofauthor
fields inpackage.json
, see issues/2.
- Release binaries built with CI - ashleygwilliams, pull/103
π€ 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
First release