Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge master into v11 #3943

Open
wants to merge 431 commits into
base: v11
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
431 commits
Select commit Hold shift + click to select a range
4e34efe
comply with react's new server file, allthough they export CJS and we…
JoviDeCroock May 29, 2022
8fb48b8
10.7.3 (#3551)
JoviDeCroock Jun 1, 2022
3bd3c46
implement state settling in X
JoviDeCroock Jun 3, 2022
9c3d992
Update hooks/test/browser/useState.test.js
JoviDeCroock Jun 5, 2022
daa65de
Update useState.test.js
JoviDeCroock Jun 5, 2022
1dc4f56
Merge pull request #3553 from preactjs/state-settling-x
developit Jun 5, 2022
d59a4c6
test
JoviDeCroock Jun 6, 2022
2834d5a
make createRoot / hydrateRoot compatible with React spec (#3560)
3846masa Jun 12, 2022
0b9a927
fix ci (#3563)
JoviDeCroock Jun 13, 2022
c746ecf
Ensure both onchange and oninput callbacks are executes when typing (…
marconi1992 Jun 14, 2022
68882bf
add export maps to the subpackages (#3565)
JoviDeCroock Jun 14, 2022
c77e628
10.8.0 (#3566)
JoviDeCroock Jun 14, 2022
fc5a5df
cleanup repeated renders
JoviDeCroock Jun 14, 2022
aaa219f
avoid megamorhpic hook shapes
JoviDeCroock Jun 14, 2022
e13e9db
fixes
JoviDeCroock Jun 14, 2022
b3dca40
react 18 hooks
JoviDeCroock Jun 15, 2022
41e5ab8
add second notice
JoviDeCroock Jun 15, 2022
7b96849
Merge branch 'master' into redo-hooks
JoviDeCroock Jun 15, 2022
b5775a8
add types
JoviDeCroock Jun 15, 2022
6b1e91f
tests
JoviDeCroock Jun 15, 2022
b1cc827
correct types
JoviDeCroock Jun 15, 2022
2a04fb7
Merge pull request #3567 from preactjs/pending-value
marvinhagemeister Jun 16, 2022
6a64ece
10.8.1 (#3571)
JoviDeCroock Jun 16, 2022
a5b9a39
Merge branch 'master' into redo-hooks
JoviDeCroock Jun 17, 2022
ee69576
restrict "oninputCapture" conversion to just "oninput" vs "oninput*"
jramanat-oracle Jun 17, 2022
bc02039
Merge pull request #3573 from jramanat-oracle/jramanat-custom-element…
developit Jun 17, 2022
e9c8d1c
Improve unit tests to cover fix on #3573 (#3574)
marconi1992 Jun 19, 2022
079f9a6
Add `_pendingValue` to `mangle.json`
marvinhagemeister Jun 20, 2022
6a9aaed
Merge branch 'master' into redo-hooks
JoviDeCroock Jun 20, 2022
894f7ba
Merge pull request #3575 from preactjs/pending_mangle-name
marvinhagemeister Jun 20, 2022
cd6960c
:fire: Removes setState on unmounted warning (#3576)
ekwoka Jun 21, 2022
6f01754
commit hooks in diffed to bypass the issue of us dealing with a compo…
JoviDeCroock Jun 21, 2022
b91771d
remove pending application in _render
JoviDeCroock Jun 21, 2022
82bd5a0
Merge pull request #3578 from preactjs/fix-commit-hooks-issue
marvinhagemeister Jun 21, 2022
d63915c
Fix incorrect return value after skipped render
marvinhagemeister Jun 21, 2022
641c10b
Merge pull request #3579 from preactjs/skipped-memo
marvinhagemeister Jun 21, 2022
d2cc99b
Add support for svg property shape-rendering (#3577)
DannyvanderJagt Jun 21, 2022
8fb0923
Fix undefined useMemo after skipped render
marvinhagemeister Jun 21, 2022
5e010c5
Merge pull request #3580 from preactjs/skipped-memo
marvinhagemeister Jun 21, 2022
a0f7742
10.8.2 (#3581)
JoviDeCroock Jun 22, 2022
8a1cbd4
prevent _suspended and _force from colliding (#3585)
JoviDeCroock Jun 24, 2022
557a8e4
Merge branch 'master' into redo-hooks
marvinhagemeister Jun 29, 2022
9e51ee1
Merge pull request #3568 from preactjs/redo-hooks
marvinhagemeister Jun 29, 2022
7649231
fix: Adding type for 'part' attribute (#3595)
rschristian Jun 30, 2022
80600ea
10.9.0 (#3601)
JoviDeCroock Jul 6, 2022
4758ef1
mirror change for `setTimeout` debounce
JoviDeCroock Jul 7, 2022
eeb3c5d
Merge pull request #3608 from preactjs/JoviDeCroock-patch-1
marvinhagemeister Jul 7, 2022
dbe0fa8
10.10.0 (#3613)
JoviDeCroock Jul 13, 2022
e960162
svg dashed props conversion improvements (#3615)
iminside Jul 15, 2022
cef315a
fix: make demo compatible with node 16 and 18 (#3617)
gengjiawen Jul 15, 2022
9744bbd
defer bailing out of render to the render phase
JoviDeCroock Jul 18, 2022
b4af4a5
add type
JoviDeCroock Jul 18, 2022
020b578
add check to prevent repeating functional renders to rely on the invo…
JoviDeCroock Jul 18, 2022
b24a4f9
commit pending values in _render for repeating renders
JoviDeCroock Jul 19, 2022
a1fc94f
mangle _nextValu
JoviDeCroock Jul 19, 2022
3d0cdf7
Merge pull request #3621 from preactjs/defer-state-equality
marvinhagemeister Jul 19, 2022
67edfcb
fix nextValue setting
JoviDeCroock Jul 20, 2022
0406941
Merge pull request #3623 from preactjs/JoviDeCroock-patch-1
marvinhagemeister Jul 20, 2022
1a134b3
Update esbuild (#3630)
marvinhagemeister Jul 26, 2022
e201caf
Fix `useSyncExternalStore` not working with function values (#3633)
marvinhagemeister Jul 26, 2022
1658d43
check for undefined __hooks in afterpaint
JoviDeCroock Aug 2, 2022
f4bd535
Merge pull request #3643 from preactjs/fix-undefined-suspense
marvinhagemeister Aug 3, 2022
6ef6440
support multiple state hooks
JoviDeCroock Aug 4, 2022
c87daab
remove
JoviDeCroock Aug 4, 2022
a356999
add comments
JoviDeCroock Aug 4, 2022
16367b4
Merge pull request #3645 from preactjs/multiple-state-hooks
marvinhagemeister Aug 5, 2022
4e3564a
10.10.1
JoviDeCroock Aug 4, 2022
191d5cb
Merge pull request #3646 from preactjs/10.10.1
marvinhagemeister Aug 5, 2022
1a874a7
avoid crashing due to __hooks being null
JoviDeCroock Aug 7, 2022
0dfff5c
Update compat/test/browser/suspense.test.js
JoviDeCroock Aug 7, 2022
d483611
Merge pull request #3651 from preactjs/avoid-suspense-hooks-reset-crash
marvinhagemeister Aug 7, 2022
88bf973
fix for apollo relying on the state changing between renders
JoviDeCroock Aug 8, 2022
cb50040
remove .only
JoviDeCroock Aug 8, 2022
b1d3ac3
use sync external store requires stable getSnapshot results
JoviDeCroock Aug 8, 2022
1032d2b
Merge pull request #3655 from preactjs/fix-use-sync-external-store
marvinhagemeister Aug 9, 2022
6b92b1f
10.10.2 (#3653)
JoviDeCroock Aug 10, 2022
b9f6446
fix sync-external-store with zustand (#3663)
JoviDeCroock Aug 12, 2022
c9ad4f3
fix case where we set SCU multiple times (#3670)
JoviDeCroock Aug 15, 2022
4441dc7
Fix hooks calling shouldComponentUpdate without context (#3671)
developit Aug 16, 2022
a4c3e7b
10.10.3 (#3667)
JoviDeCroock Aug 16, 2022
1cb4b38
ensure we iterate over all hooks (#3675)
JoviDeCroock Aug 17, 2022
7d54883
allow function component with children (#3676)
JoviDeCroock Aug 18, 2022
b7072ad
10.10.4 (#3678)
JoviDeCroock Aug 18, 2022
0fd11bc
undo jsx-element removal
JoviDeCroock Aug 19, 2022
5362360
Merge pull request #3680 from preactjs/fix-jsx-element
marvinhagemeister Aug 19, 2022
2b1930c
10.10.5 (#3681)
JoviDeCroock Aug 19, 2022
36525c1
allow for null return from fc (#3683)
JoviDeCroock Aug 19, 2022
9457b22
10.10.6 (#3684)
JoviDeCroock Aug 19, 2022
61c7eb1
Pass `errorInfo` to `useErrorBoundary` calbback
marvinhagemeister Aug 21, 2022
14977dd
Merge pull request #3689 from preactjs/use-error-boundary-errorinfo
marvinhagemeister Aug 21, 2022
1633907
improve types for bare createElement and h calls (#3690)
JoviDeCroock Aug 24, 2022
4672611
fix case where we would omit the ref from reused vnodes (#3696)
JoviDeCroock Aug 28, 2022
c78428a
fix: mac arm build
gengjiawen Aug 30, 2022
03a66bc
Merge branch 'master' into fix/mac_arm
JoviDeCroock Aug 30, 2022
89fe31e
Merge pull request #3697 from gengjiawen/fix/mac_arm
marvinhagemeister Aug 30, 2022
ec99de1
chore: Add deprecation JSDoc for render()'s `replaceNode`
rschristian Aug 30, 2022
cfd586a
fix: Microbundle output formats after #3697
rschristian Aug 30, 2022
35e7d8e
Merge pull request #3702 from preactjs/fix/microbundle-outputs
marvinhagemeister Aug 30, 2022
c0e8689
Merge branch 'master' into chore/deprecate-replace-node
rschristian Aug 30, 2022
3fc8b5e
refactor: Expound upon `replaceNode`'s deprecation message
rschristian Aug 30, 2022
e70238f
Merge pull request #3700 from preactjs/chore/deprecate-replace-node
marvinhagemeister Aug 31, 2022
008b5ec
add todo benchmark and add a proxy package that uses preact/hooks
JoviDeCroock Sep 2, 2022
1afc99b
update hooks
JoviDeCroock Sep 2, 2022
966d6e8
add newline so benches run
JoviDeCroock Sep 2, 2022
94eed5c
rename
JoviDeCroock Sep 2, 2022
87013a6
different results
JoviDeCroock Sep 2, 2022
b749474
add v8 back
JoviDeCroock Sep 2, 2022
1427d58
Merge pull request #3708 from preactjs/todo-benchmark
marvinhagemeister Sep 2, 2022
803dbb5
Preact X useId (#3583)
JoviDeCroock Sep 3, 2022
a5258a9
fix typescript definition for class | className (#3711)
PodaruDragos Sep 7, 2022
7469051
Cleanup _parent, _dom and __hooks after unmount (#3709)
JoviDeCroock Sep 11, 2022
41574c8
add test for useId (#3716)
JoviDeCroock Sep 11, 2022
77b79c0
10.11.0 (#3719)
JoviDeCroock Sep 12, 2022
5c6b89a
support falsy data attributes
JoviDeCroock Sep 12, 2022
da36142
add mangle value for stable mask on v node
JoviDeCroock Sep 12, 2022
a8e4c99
Merge pull request #3721 from preactjs/stable-mask-prop
marvinhagemeister Sep 12, 2022
e159f84
Merge branch 'master' into support-falsy-data
JoviDeCroock Sep 13, 2022
d7a433e
Merge pull request #3720 from preactjs/support-falsy-data
marvinhagemeister Sep 13, 2022
9dea4ea
Add missing "types" field for preact/debug
marvinhagemeister Sep 17, 2022
63f285b
Merge pull request #3732 from preactjs/debug-types
marvinhagemeister Sep 17, 2022
2cafede
align ts definitions from react to refs and forward refs (#3713)
PodaruDragos Sep 22, 2022
a868b02
fix equality for non root children (#3739)
JoviDeCroock Sep 23, 2022
d4be39b
Bugfix: don't remove nested DOM elements in unmount
developit Sep 21, 2022
fc32565
Update index.js
developit Sep 21, 2022
6b70436
Update index.js
developit Sep 21, 2022
32163d0
Merge pull request #3741 from preactjs/bugfix-nested-unmount
marvinhagemeister Sep 27, 2022
eeb5d6c
Support signal values for html + svg attributes
marvinhagemeister Sep 26, 2022
dfd45aa
Merge pull request #3747 from preactjs/signals-type
marvinhagemeister Sep 27, 2022
d30a0ed
Avoid synchronously adding setState callbacks (#3743)
JoviDeCroock Sep 29, 2022
284a8b0
remove _nextDom resetting as it collides with nested fragment switchi…
JoviDeCroock Sep 29, 2022
b5d589c
chore(compat): add package.json to exports
akselander Oct 3, 2022
4362700
refactor(curb): remove format specifiers
akselander Oct 3, 2022
820bff3
Merge pull request #3755 from akselander/chore/compat/add-package
marvinhagemeister Oct 4, 2022
19374b3
Release 10.11.1
marvinhagemeister Oct 4, 2022
b25fd03
Merge pull request #3756 from preactjs/release-10.11.1
marvinhagemeister Oct 4, 2022
8ed068a
Fix duplicate ids when Fragments are involved
marvinhagemeister Oct 6, 2022
5e31c9a
Add useId top level Fragment test case
marvinhagemeister Oct 6, 2022
a08f182
Update preact-render-to-string
marvinhagemeister Oct 6, 2022
e968a5a
Merge pull request #3758 from preactjs/use-id-bug
marvinhagemeister Oct 6, 2022
43204de
fix setstate order (#3763)
JoviDeCroock Oct 14, 2022
6cc4b4e
Fix props not spreadable to input elements
mwszekely Oct 12, 2022
b99d217
Drop duplicate defaultValue definition
marvinhagemeister Oct 15, 2022
7b7ac5f
Merge pull request #3764 from mwszekely/master
marvinhagemeister Oct 15, 2022
8beb883
Release 10.11.2
marvinhagemeister Oct 15, 2022
9d4b2dc
Merge pull request #3768 from preactjs/release-10.11.2
marvinhagemeister Oct 15, 2022
528a776
Use Object.is in useSyncExternalStore
zalishchuk Oct 24, 2022
9f7a922
Add useSyncExternalStore NaN infinite loop test
zalishchuk Oct 24, 2022
c629fc2
Merge pull request #3776 from zalishchuk/use-sync-external-store-fix
marvinhagemeister Oct 25, 2022
16d570f
fix case where keyed children would get removed (#3779)
JoviDeCroock Oct 26, 2022
596b81b
Fix useId not unique on shared component parent + DOM
marvinhagemeister Oct 21, 2022
8579923
Add test for same renderToString ids per root
marvinhagemeister Oct 22, 2022
e094e27
Add conditional components test case
marvinhagemeister Oct 25, 2022
46ddfeb
Drop useId hashing as it's not needed anymore
marvinhagemeister Oct 25, 2022
062d62a
Rename _ids -> _mask
marvinhagemeister Oct 25, 2022
a15edaf
Use counter per boundary for id generation
marvinhagemeister Oct 25, 2022
253c39f
Simplify useId
marvinhagemeister Oct 25, 2022
979c4e6
Separate root id + id part to avoid ambuigity
marvinhagemeister Oct 25, 2022
b1549ee
Merge pull request #3773 from preactjs/use-id-dom
marvinhagemeister Oct 27, 2022
3b6c6c2
Upgrade workflow actions
andrewiggins Oct 25, 2022
40c48b4
Support benching preact local from a tarball
andrewiggins Oct 27, 2022
cfc7dc1
Reuse preinstall script for preact hooks
andrewiggins Oct 27, 2022
494c428
Fix package.json formatting
andrewiggins Oct 27, 2022
b0ff453
Add post install script to reset pkg dep to local build
andrewiggins Oct 27, 2022
34a8c16
Merge pull request #3777 from preactjs/upgrade-workflows
andrewiggins Oct 27, 2022
fbabbbb
Upgrade bench dependencies
andrewiggins Oct 25, 2022
05d91ad
Merge pull request #3778 from preactjs/upgrade-bench-deps
andrewiggins Oct 27, 2022
2a3b1aa
Consolidate benchmark workflow definitions into a single reusable def…
andrewiggins Oct 28, 2022
80dd66c
Add an explicit export default for compatibility with esbuild
Verseth Oct 29, 2022
50d3837
Add a test for default exports from `preact/compat/client`
Verseth Oct 29, 2022
a31e564
Merge pull request #3783 from Verseth/explicit_default_export
marvinhagemeister Oct 30, 2022
f9c9cf6
Release 10.11.3
marvinhagemeister Nov 14, 2022
4a37c99
Merge pull request #3795 from preactjs/release-10.11.3
marvinhagemeister Nov 14, 2022
7e3c068
Debug: limit "object as children" error to elements
developit Nov 15, 2022
6724d43
validate materialized children on components
developit Nov 15, 2022
d4089df
Invoke setState callbacks setup in componentWillMount (#3806)
andrewiggins Nov 22, 2022
f930e1b
docs: Removes recommendation for preact-cli
rschristian Nov 30, 2022
3c7cc27
Merge branch 'master' into debug-limit-object-children
developit Dec 3, 2022
915fd30
Merge pull request #3801 from preactjs/debug-limit-object-children
developit Dec 3, 2022
226d77d
Preserve event handler return values (#3812)
developit Dec 4, 2022
b689f1f
Merge branch 'master' into docs/remove-cli-recommendation
developit Dec 21, 2022
8a6d301
Merge pull request #3816 from preactjs/docs/remove-cli-recommendation
developit Dec 21, 2022
0c076bf
docs: Fix a few typos
timgates42 Dec 30, 2022
d527b4b
Merge pull request #3844 from timgates42/bugfix_typos
rschristian Dec 30, 2022
2ce7b0a
Improve suspense test spies (#3856)
andrewiggins Jan 10, 2023
c483d96
Clear css properties when passed undefined (#3862)
andrewiggins Jan 19, 2023
15913ad
Narrows type of `parent` in render functions. (#3863)
MicahZoltu Jan 27, 2023
e703a62
Changes `EventHandler<...>` to have a `this` of type `void`. (#3867)
MicahZoltu Feb 1, 2023
fc5758b
Improve Fragment unmounting while correctly swapping nested fragments…
andrewiggins Feb 2, 2023
5eecaf1
Fix parameters or JSX dev runtime (#3880)
wooorm Feb 3, 2023
ef025df
Add test for context propagation compat bug
andrewiggins Jan 24, 2023
8e93eb7
pass all queus in one go
JoviDeCroock Jan 24, 2023
fc935fb
Remove unnecessary top loop since the inner loop will always run unti…
andrewiggins Jan 27, 2023
4e55f55
Comment out console logs from test
andrewiggins Jan 27, 2023
1de5866
Merge pull request #3871 from preactjs/context-fix
andrewiggins Feb 3, 2023
ef708b9
Use lastDOM's nextSibling (#3878)
andrewiggins Feb 3, 2023
6e2e952
use microtick outside of events (#3879)
JoviDeCroock Feb 3, 2023
8a30bcc
avoid bailing in strict equality (#3884)
JoviDeCroock Feb 4, 2023
b7d9e61
add exactOptionalPropertyTypes support to html attributes (#3868)
deadem Feb 6, 2023
233eaef
Release 10.12.0 (#3882)
andrewiggins Feb 6, 2023
9b83481
set dimensional attributes through `setAttribute` (#3888)
JoviDeCroock Feb 9, 2023
cea22e0
Fix createContext update being blocked by sCU
marvinhagemeister Feb 9, 2023
1de8059
Merge pull request #3889 from preactjs/context-scu
marvinhagemeister Feb 9, 2023
0c521d3
Release 10.12.1
marvinhagemeister Feb 9, 2023
dec4d42
Merge pull request #3890 from preactjs/release-10.12.1
marvinhagemeister Feb 9, 2023
b99c91c
Fix hydrating textarea with value prop (#3891)
andrewiggins Feb 14, 2023
ac25a51
fix: Missing `MemoExoticComponent` type in compat
rschristian Feb 15, 2023
a8f6366
types: Add `indeterminate` attribute
rschristian Dec 23, 2022
c272b4e
Merge pull request #3837 from preactjs/types/indeterminate
rschristian Feb 16, 2023
5187c74
Merge branch 'master' into types/compat-memo-exotic-component
rschristian Feb 18, 2023
17ce063
Add aria role attribute values (#3904)
shoonia Feb 19, 2023
cc88ae6
pass inEvent so custom debouncers can mirror our logic (#3909)
JoviDeCroock Feb 21, 2023
f409692
prevent memory leak with currentComponent by unsetting it in diffed (…
JoviDeCroock Feb 21, 2023
3bfce88
fix case where strict equality leads to a deadlock with c._force (#3906)
JoviDeCroock Feb 21, 2023
4d2b724
Add missing SVG Elements to types
shoonia Feb 19, 2023
5624b3c
Merge pull request #3905 from shoonia/add-svg-elements-to-types
marvinhagemeister Feb 21, 2023
c68a6b2
Merge branch 'master' into types/compat-memo-exotic-component
rschristian Feb 21, 2023
a96e644
Merge pull request #3898 from preactjs/types/compat-memo-exotic-compo…
rschristian Feb 21, 2023
833d7de
Add typings for ARIA attributes (#3910)
andrewiggins Feb 23, 2023
54ecaa1
Switch back to microticks for scheduling
marvinhagemeister Feb 24, 2023
8ff0e53
Merge pull request #3911 from preactjs/schedule-promise
marvinhagemeister Feb 24, 2023
3674c42
Fix tests assertions for IE11
marvinhagemeister Feb 24, 2023
ca31f13
Merge pull request #3912 from preactjs/fix-ie11-test
marvinhagemeister Feb 24, 2023
5e425df
Release 10.13.0
marvinhagemeister Feb 24, 2023
de08e91
Merge pull request #3913 from preactjs/release-10.13.0
marvinhagemeister Feb 24, 2023
bb276c3
Fix inverted IE11 guard
marvinhagemeister Feb 24, 2023
bdf100d
Fix test failing in IE11
marvinhagemeister Feb 24, 2023
bf39376
Merge pull request #3914 from preactjs/ie11-fixes-2
marvinhagemeister Feb 24, 2023
b060516
[perf] Hoist render queue sorting fn
developit Feb 28, 2023
950b239
Merge pull request #3921 from preactjs/hoist-render-queue-sort
marvinhagemeister Feb 28, 2023
5b7fb23
Trying a few compat optimizations (#3903)
JoviDeCroock Mar 2, 2023
15f0c96
Skip over function children when rendering (#3919)
andrewiggins Mar 2, 2023
74dff66
Merge branch 'master' into v11-merge-master
andrewiggins Mar 8, 2023
d4e8ed3
Update mangle.json to use spaces
andrewiggins Mar 8, 2023
2d12284
Fix bad name merges
andrewiggins Mar 8, 2023
455f1c8
Fix using hooks with render-to-string
andrewiggins Mar 20, 2023
35219aa
Remove unused variable in compat vnode hook
andrewiggins Mar 20, 2023
5ce99dc
Update text hydration hook and skip test for now
andrewiggins Mar 20, 2023
1736cac
Bring back forceUpdate warnings to make v11 aligned with master
andrewiggins Mar 20, 2023
fa93a56
Fix useErrorBoundary to support errorInfo
andrewiggins Mar 21, 2023
2ed4f68
Ensure state callbacks are enqueued after componentDidUpdate
andrewiggins Mar 21, 2023
cacf6e1
Update DOM ops of new tests to match v11 algo behavior
andrewiggins Mar 21, 2023
44483e5
Remove duplicated test cases
andrewiggins Mar 21, 2023
0c771fa
Upgrade TypeScript to match master
andrewiggins Mar 21, 2023
69ca049
Update mangle.json
andrewiggins Mar 21, 2023
3726e37
Add TODO to update CONTIRBUTING release instructions for v11
andrewiggins Mar 21, 2023
c0c08b4
Clean up old comments
andrewiggins Mar 21, 2023
417289a
Update benchmark package-lock
andrewiggins Mar 21, 2023
0737e26
Fix benchmark util script
andrewiggins Mar 21, 2023
9ee38ad
Remove local helper script
andrewiggins Mar 22, 2023
3ff2944
Fix benchmarks by setting options.debounceRendering = queueMicrotask
andrewiggins Mar 22, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
279 changes: 53 additions & 226 deletions .github/workflows/benchmarks.yml
Expand Up @@ -19,268 +19,95 @@ on:
- 'mangle.json'

jobs:
build_test:
name: Build & Test
uses: ./.github/workflows/ci.yml

prepare:
name: Prepare benchmarks
name: Prepare environment
runs-on: ubuntu-latest
needs: build_test
timeout-minutes: 5
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- name: Download locally built preact package
uses: actions/download-artifact@v3
with:
node-version: 14.x
cache: npm
- run: npm ci
- run: pushd benches && npm ci; popd # Prime benchmark npm cache
- name: Package
# Use --ignore-scripts here to avoid re-building again before pack
run: |
npm pack --ignore-scripts
mv preact-*.tgz preact.tgz
tar -xzf preact.tgz
rm preact.tgz
- name: Upload build output
uses: actions/upload-artifact@v2
name: npm-package
- run: mv preact.tgz preact-local.tgz
- name: Upload locally built preact package
uses: actions/upload-artifact@v3
with:
name: build-output
path: package/
- uses: andrewiggins/download-base-artifact@v1
name: bench-environment
path: preact-local.tgz
- name: Download base package
uses: andrewiggins/download-base-artifact@v2
with:
artifact: npm-package
workflow: ci.yml
required: false
- run: mv preact.tgz preact-master.tgz
- name: Upload base preact package
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: build-output
path: preact.tgz
name: bench-environment
path: preact-master.tgz

bench_todo:
name: Bench todo
uses: ./.github/workflows/run-bench.yml
needs: prepare
with:
benchmark: todo
timeout: 10

bench_text_update:
name: Bench text_update
runs-on: ubuntu-latest
uses: ./.github/workflows/run-bench.yml
needs: prepare
timeout-minutes: 10
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- uses: actions/download-artifact@v2
with:
name: build-output
- name: install & build
run: |
cd benches
npm ci
- name: bench
run: |
export CHROMEDRIVER_FILEPATH=$(which chromedriver)
cd benches
npm run bench text_update.html
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: results
path: benches/results/text_update.json
with:
benchmark: text_update
timeout: 10

bench_many_updates:
name: Bench many_updates
runs-on: ubuntu-latest
uses: ./.github/workflows/run-bench.yml
needs: prepare
timeout-minutes: 10
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- uses: actions/download-artifact@v2
with:
name: build-output
- name: install & build
run: |
cd benches
npm ci
- name: bench
run: |
export CHROMEDRIVER_FILEPATH=$(which chromedriver)
cd benches
npm run bench many_updates.html
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: results
path: benches/results/many_updates.json
with:
benchmark: many_updates
timeout: 10

bench_02_replace1k:
name: Bench 02_replace1k
runs-on: ubuntu-latest
uses: ./.github/workflows/run-bench.yml
needs: prepare
timeout-minutes: 10
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- uses: actions/download-artifact@v2
with:
name: build-output
- name: install & build
run: |
cd benches
npm ci
- name: bench
run: |
export CHROMEDRIVER_FILEPATH=$(which chromedriver)
cd benches
npm run bench 02_replace1k.html
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: results
path: benches/results/02_replace1k.json
with:
benchmark: 02_replace1k

bench_03_update10th1k_x16:
name: Bench 03_update10th1k_x16
runs-on: ubuntu-latest
uses: ./.github/workflows/run-bench.yml
needs: prepare
timeout-minutes: 10
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- uses: actions/download-artifact@v2
with:
name: build-output
- name: install & build
run: |
cd benches
npm ci
- name: bench
run: |
export CHROMEDRIVER_FILEPATH=$(which chromedriver)
cd benches
npm run bench 03_update10th1k_x16.html
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: results
path: benches/results/03_update10th1k_x16.json
with:
benchmark: 03_update10th1k_x16

bench_07_create10k:
name: Bench 07_create10k
runs-on: ubuntu-latest
uses: ./.github/workflows/run-bench.yml
needs: prepare
timeout-minutes: 20
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- uses: actions/download-artifact@v2
with:
name: build-output
- name: install & build
run: |
cd benches
npm ci
- name: bench
run: |
export CHROMEDRIVER_FILEPATH=$(which chromedriver)
cd benches
npm run bench 07_create10k.html
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: results
path: benches/results/07_create10k.json
with:
benchmark: 07_create10k

bench_hydrate1k:
name: Bench hydrate1k
runs-on: ubuntu-latest
uses: ./.github/workflows/run-bench.yml
needs: prepare
timeout-minutes: 20
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- uses: actions/download-artifact@v2
with:
name: build-output
- name: install & build
run: |
cd benches
npm ci
- name: bench
run: |
export CHROMEDRIVER_FILEPATH=$(which chromedriver)
cd benches
npm run bench hydrate1k.html
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: results
path: benches/results/hydrate1k.json
with:
benchmark: hydrate1k

bench_filter_list:
name: Bench filter_list
runs-on: ubuntu-latest
needs: prepare
timeout-minutes: 10
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- uses: actions/download-artifact@v2
with:
name: build-output
- name: install & build
run: |
cd benches
npm ci
- name: bench
run: |
export CHROMEDRIVER_FILEPATH=$(which chromedriver)
cd benches
npm run bench filter_list.html
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: results
path: benches/results/filter_list.json

bench_todo:
name: Bench todo
runs-on: ubuntu-latest
uses: ./.github/workflows/run-bench.yml
needs: prepare
timeout-minutes: 10
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
cache: npm
- uses: actions/download-artifact@v2
with:
name: build-output
- name: install & build
run: |
cd benches
npm ci
- name: bench
run: |
export CHROMEDRIVER_FILEPATH=$(which chromedriver)
cd benches
npm run bench todo.html
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: results
path: benches/results/todo.json
with:
benchmark: filter_list
timeout: 10
14 changes: 8 additions & 6 deletions .github/workflows/ci.yml
Expand Up @@ -2,6 +2,7 @@ name: CI

on:
workflow_dispatch:
workflow_call:
pull_request:
branches:
- '**'
Expand All @@ -15,11 +16,12 @@ jobs:
name: Build & Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14.x
cache: npm
node-version-file: 'package.json'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- run: npm ci
- name: test
env:
Expand All @@ -31,7 +33,7 @@ jobs:
npm run lint
npm run test:unit
- name: Coveralls GitHub Action
uses: coverallsapp/github-action@v1.0.1
uses: coverallsapp/github-action@1.1.3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Package
Expand All @@ -40,7 +42,7 @@ jobs:
npm pack --ignore-scripts
mv preact-*.tgz preact.tgz
- name: Upload npm package
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: npm-package
path: preact.tgz
4 changes: 4 additions & 0 deletions .github/workflows/release.yml
@@ -1,5 +1,9 @@
name: Version or Publish

###### TODO ######
## Update to work with release scripts which create a GH release and upload the
## built npm package as an artifact

on:
push:
branches:
Expand Down