Skip to content

@marvinhagemeister marvinhagemeister released this Nov 10, 2019 · 122 commits to master since this release

tl;dr: This release is a bug fix only release and all users are encouraged to update.

This week saw many cool improvements surrounding our TypeScript definitions. Thanks to an amazing contribution from @lukeshiru the event target is now correctly inferred for all native elements. This alone should remove many manually casted event arguments in your code 🎉

Together @JoviDeCroock and @cristianbote set their minds on fixing a few newly reported issues surrounding refs and the like. Personally, I'm pretty impressed how quickly they could identify and resolve the issues. Much respect to you two 👍

As the year is coming to an end @andrewiggins did some house-cleaning and found various places where we could save even more bytes! I don't know how he does it and it's just amazing to witness so much pure talent!

Beside that, the changes mainly revolve around maintenance tasks. We've switched to prettier for automatic code formatting, lowering the barrier for new contributors even more. The formatting is automatically applied on each commit via a git-hook, and everything will be taken care of for you 💯

We also saw two exciting contributions from Googlers: @jridgewell found a very hard to spot unnecessary case in a regex we use to append px to certain CSS values and @jakearchibald found an html attribute we missed in our typings 🎉

Like in our past release we'd like to take a moment to thank everybody who contributed, not just code but also made the time to write bug reports. Thank you so much 👍

Bug Fixes

Golf 🏌️‍♀️

TypeScript

Maintenance

Assets 2

@marvinhagemeister marvinhagemeister released this Nov 1, 2019

Assets 2

@robertknight robertknight released this Oct 29, 2019 · 203 commits to master since this release

This release fixes a build issue that caused errors when using effect hooks.

Assets 2

@marvinhagemeister marvinhagemeister released this Oct 29, 2019 · 207 commits to master since this release

This release corrects an issue where a debug warning was printed incorrectly to the console, that (rightfully) confused users. So we wanted to fix that as quick as possible 👍

Bug Fixes

Maintenance

  • Queue layoutEffects in component render callbacks array (+0 B) (#2050, thanks @andrewiggins)
  • Separate debug tests into multiple files and fix some bugs in debug (#2047, thanks @andrewiggins)
Assets 2

@marvinhagemeister marvinhagemeister released this Oct 28, 2019 · 224 commits to master since this release

tl;dr: This is release contains mostly bug fixes and some size reductions. We encourage everyone to upgrade.

Just a week has passed since the last release and there are already an exciting number of new commits in master. Hackoktoberfest has had really positive effects on us and we're excited to see some new contributors in this release 💯

As you can see from the changelog: @andrewiggins is currently on a byte removing spree, so I thought it'd be appropriate to list them in their own category 🎉 A few others joined him and marie kondo'ed everything that didn't spark joy in us!

Besides some great savings, there are new debug warnings for components and fixes for our Suspense implementation 🎉

Features

  • Add debug warnings when calling setState or forceUpdate on an unmounted component (#2037, thanks @andrewiggins)

Bug Fixes

Golf (size reductions)

  • Inline coerceToVNode inside of toChildArray (-21 B) (#2040, thanks @andrewiggins)
  • Remove unused mount check in context Provider (-6 B) (#2039, thanks @andrewiggins)
  • Golfed render (#2045, thanks @MohammedSheikhIbrahim)
  • Remove useless return from eventProxy (#2026, thanks @jridgewell)
  • Rewrite useImperativeHandle to use useLayoutEffect (-35 B) (#2003, thanks @andrewiggins)
  • Re-purpose renderCallbacks as a general per-component commit queue (#2011, thanks @andrewiggins)

Types

  • Add nonce to JSX HTMLAttributes types for better Content Security Policy support. (#2035, thanks @calvinf)
  • Remove internal import from compat types (#2018, thanks @andrewiggins)
  • Fix internal vnode typings (#2015, thanks @pmkroeker)

Maintenance

Assets 2

@marvinhagemeister marvinhagemeister released this Oct 17, 2019 · 314 commits to master since this release

tl;dr: This is a standard bug-fix release with no new features. We encourage everyone to upgrade

Wow, we've been overwhelmed with the reactions to our final Preact X release! We saw a huge uptick in npm downloads to 200.000 per week 🎉 Another exciting announcement is that Google AMP is officially using Preact under the hood. We've receivied many more thank you notes (and even stroopwafels!) from companies using Preact. Those range from small companies to big enterprise ones, where Preact is used in a wide span of different environments.

We preactively allocated the weeks after the big launch for a period of bug-fixes only in case something slipped through. It was admittedly a more conservative decision after our long alpha and beta period, but we wanted to make sure that you all would have a butter smooth experience no matter what 🌠 It's safe to say that it went really well and we've only received a couple bug reports so far 🎉

In the short amount of time that has passed since the release, we managed to squash a good portion of those! Thank you so much to everyone for reporting bugs and helping us track them down! You rock 👍 💯

Bug Fixes

Types

Maintenance

Assets 2

@marvinhagemeister marvinhagemeister released this Oct 1, 2019

preact-x

tl;dr: Preact X is the next major version of Preact fully packed with features like Fragments, Hooks, componentDidCatch, Test-Utils, Debug-Warnings, many compatibility fixes and so much more 🎉

It's finally happening! After months of hard work we've crossed the finish line and are over the moon with excitement to finally mark Preact X as stable. We'd like to thank everybody who tested it and submitted bug reports.

We originally planned to release a sort-of migration release as version 9 with just the breaking changes from X, but that got canned because many users reported that the upgrade process was easy enough and didn't warrant a long migration period in-between. In fact we got many reports that the upgrade could be done in under an hour, despite some of the breaking changes in X, making the need for a migration release even less desirable.

What's new?

Preact X ships with several major features and we combined them all in a single document on our site. If you're upgrading an existing Preact 8.x project, we got you covered with a detailed upgrade guide.

To give a quick summary of the new features:

  • Fragments
  • componentDidCatch
  • preact/hooks addon
  • preact/test-utils addon
  • createContext API
  • compat moved to core
  • Plethora of compatibility fixes
  • Many new warnings in preact/debug
  • Same 3 kB size as Preact 8

Again, we highly recommend checking out our new site and specifically the what's new section.

Changes since RC 4

Bug Fixes

Typings

Maintenance

Assets 2

@marvinhagemeister marvinhagemeister released this Sep 10, 2019 · 365 commits to master since this release

So uhm... just yesterday we've published RC2 and we've mentioned that it would be likely the last RC before going final. Turns out that fate had other plans. One seemingly minor change to our jsx constructor function lead to pretty weird and nasty bug depending on whether the code was run in use strict mode or not. @jviide wrote up a great summary on how this issue came to be.

Bug Fixes

Typings

  • Fix PureComponent not passing generic types along (#1920, thanks @amelekhin)
Assets 2

@marvinhagemeister marvinhagemeister released this Sep 9, 2019

tl;dr: This release contains a lot of bug fixes in many areas and we encourage everyone to upgrade. We're confident that this is the last rc release before marking X as stable.

It's time for another Preact release 🎉 We've spent the past weeks on make
Preact as robust as we can. Most fixes are ones you all submitted to our
tracker. This is super awesome and we wouldn't be where we are without all your
help!

On top of countless fixes, a few minor features found their way into the
package like isValidElement that can be used to check if something is valid to
render, meaning it's a valid child that was created by h/createElement.

The test utils also received much love and we're very impressed with how quickly
@robertknight was able to land support for async callbacks and nested calls
to act 💯 This is useful in cases where triggering an effect or state change
involves async steps, such as waiting for a fetch call to resolve.

Preact Devtools are coming

We think it'd be good to give a setSate of the union here about where we are
with the devtools. As many of you are aware we've always depended on the
react-devtools extension for a long time now. We were very excited to
integrate with version 4, not just because of the new featureset, but also
because the adapter and protocol is so much better than before.

We got very far, but despite of all our efforts we ran into blocker issues with
the expected order of events that need to be sent to the extension. Our
internals differ quite a bit and after trying for weeks to get it right we
ultimately went back to the drawing board.

It became clear that just writing our own extension would be less resource
intensive and would make it easier for us to maintain. It's pre-alpha right now,
but we expect to mature in the coming weeks/month. Here is a screenshot as a
little sneak peek:

preact-devtools-preview-public

Very early pre-alpha preview of preact-devtools

We'll keep you posted! Here is the full list of changes in this release:

Features

Bug Fixes

Typings

Maintenance

Assets 2

@marvinhagemeister marvinhagemeister released this Aug 18, 2019 · 4 commits to 8 since this release

This release is a maintenance release and all users of the 8.x release line are encouraged to upgrade to it.

  • Fix devtools bridge not working with react devtools v4 (#1876)
Assets 2
You can’t perform that action at this time.