Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
273 commits
Select commit Hold shift + click to select a range
c9846f1
We should not always set to hydration (#4529)
JoviDeCroock Oct 12, 2024
162d71f
ci: Remove saucelabs (#4530)
rschristian Oct 12, 2024
8deab11
ci: Fix PR reporter (#4531)
rschristian Oct 13, 2024
64e4a63
10.24.3 (#4532)
JoviDeCroock Oct 14, 2024
f6416e8
fix: oxlint violation of `react/iframe-missing-sandbox` (#4533)
DonIsaac Oct 14, 2024
efe9fb1
Fix error message typo (#4534)
jubalm Oct 17, 2024
c11e2d3
chore: upgrade biome to 1.9.4 (#4535)
unvalley Oct 18, 2024
4181cba
ci: Skip PR reporter action on non-pull request triggers (#4536)
rschristian Oct 18, 2024
5b99b99
Update props.js
lilnasy Oct 28, 2024
f7a89c8
prevent extracting hadleEvent method as an intermediate value
lilnasy Oct 28, 2024
4f39d2d
add tests
lilnasy Oct 28, 2024
9c267a1
Add object interface to JSX types
lilnasy Oct 28, 2024
8447cf7
Merge pull request #4538 from lilnasy/event-listener-object
marvinhagemeister Oct 28, 2024
07dc9f3
Re-export ErrorInfo type (#4541)
jose-torres-marin Oct 31, 2024
aee8285
types: Use `Signalish` helper to reduce verbosity (#4545)
rschristian Nov 8, 2024
76d6d4d
Ensure we unwrap custom .then() (#4547)
JoviDeCroock Nov 9, 2024
3a95fc1
types: Move per-element type interfaces into core and more strictly t…
rschristian Nov 10, 2024
84dcf74
Recreate unkeyed functional components when they change position. (#4…
JoviDeCroock Nov 11, 2024
e7610ef
Fix demo (#4551)
JoviDeCroock Nov 11, 2024
bedd413
types: Re-add missing properties & property casings (#4554)
rschristian Nov 12, 2024
514183f
Try constant for undefined (#4552)
JoviDeCroock Nov 12, 2024
208b0b9
Fork types for TS 5.1 and beyond (#4548)
JoviDeCroock Nov 13, 2024
68ada1a
fix: Ensure SVGAttributes includes height & width (#4556)
rschristian Nov 13, 2024
0fc547c
Ensure state updates work in signals (#4560)
JoviDeCroock Nov 21, 2024
33a688f
10.25.0 (#4561)
JoviDeCroock Nov 22, 2024
6590e26
Remove _nextDom usage (#4553)
JoviDeCroock Nov 22, 2024
38080ea
Handle errors during hydration (#2539)
JoviDeCroock Nov 22, 2024
22621b6
Merge pull request #4563 from preactjs/handle-errors-during-hydration
JoviDeCroock Nov 23, 2024
5b6c3a5
fix: `max` and `min` input element types (#4568)
rschristian Nov 23, 2024
269cdd8
Allow rendering in document (#4564)
JoviDeCroock Nov 24, 2024
c7ae2d2
fix(types): mark `datetime` on `<del>` as optional
marvinhagemeister Nov 25, 2024
bd14437
Merge pull request #4570 from preactjs/del-datetime-optional
marvinhagemeister Nov 25, 2024
b66c0ae
Fix portal children ordering (#4573)
JoviDeCroock Nov 26, 2024
db47ab6
fix: `href` & `hreflang` attribute types (#4575)
rschristian Nov 27, 2024
cf6942d
fix: `createElement` & `h` types (#4578)
rschristian Nov 29, 2024
cfd2f41
fix: Add missing SVG `type` attribute (#4582)
rschristian Nov 29, 2024
99e5e04
Move some frequently used things to constants (#4579)
JoviDeCroock Nov 29, 2024
b9ff1b7
Revert handle event (#4584)
JoviDeCroock Nov 29, 2024
42e7b45
refactor: Remove `declare global` from internal types (#4583)
rschristian Nov 30, 2024
42524db
fix: Correct `defaultValue` property types for inputs, selects, & tex…
rschristian Nov 30, 2024
65b4f6b
Test whether reducing bits leads to memory improvements (#4586)
JoviDeCroock Nov 30, 2024
f7ac8dc
chore: Correct some internal test types (#4588)
rschristian Nov 30, 2024
daa124a
fix: Ensure resolution of core types goes through typesVersions resol…
rschristian Dec 1, 2024
04684dd
feat: Add `ElementRef` type to compat (#4557)
rschristian Dec 1, 2024
80d9226
10.25.1 (#4589)
JoviDeCroock Dec 2, 2024
397240c
Bump babel/actions deps
JoviDeCroock Dec 4, 2024
4f896d6
Bump lint-staged/oxlint/husky
JoviDeCroock Dec 4, 2024
f11a96c
Remove diff, bump esbuild
JoviDeCroock Dec 4, 2024
3f57528
Bump mocha
JoviDeCroock Dec 4, 2024
f4dbd30
Bump karma
JoviDeCroock Dec 4, 2024
aad7f39
Remove karma benches and related deps
JoviDeCroock Dec 4, 2024
1984957
Add comment to trigger size
JoviDeCroock Dec 4, 2024
27c2a94
Remove export
JoviDeCroock Dec 4, 2024
9087adf
Merge pull request #4594 from preactjs/dependency-maintenance
JoviDeCroock Dec 4, 2024
2d76a3b
Remove benches folder (#4592)
JoviDeCroock Dec 4, 2024
b864138
preallocate new children array (#4595)
JoviDeCroock Dec 6, 2024
dee5673
fix max and min type definition to allow number (#4598)
devlux Dec 7, 2024
803b106
Use == where possible and precompute .length (#4599)
JoviDeCroock Dec 8, 2024
5c9625a
Replace npm-run-all and lint-staged (#4600)
JoviDeCroock Dec 8, 2024
d2904b9
Add missing space in hydration mismatch message
sirreal Dec 10, 2024
eba80f7
Merge pull request #4602 from sirreal/patch-1
marvinhagemeister Dec 10, 2024
fcb8d7c
Revert unkeyed no-search (#4604)
JoviDeCroock Dec 12, 2024
2beb9f7
10.25.2 (#4605)
JoviDeCroock Dec 12, 2024
2b82799
refactor: Add default event target types for HTML attribute interface…
rschristian Dec 15, 2024
bb68456
fix: Wrap hydration debug message vars in quotes (#4609)
rschristian Dec 15, 2024
0023670
Revert "Improve performance and reduce memory allocation" (#4611)
JoviDeCroock Dec 18, 2024
3972db1
10.25.3 (#4612)
JoviDeCroock Dec 18, 2024
3618771
fix: Incorrect onToggle event type (#4615)
rschristian Dec 20, 2024
a32924c
fix: support multiple synchronous timings for act (#4619)
rock-57blocks Dec 27, 2024
055cc5b
10.25.4 (#4620)
JoviDeCroock Dec 28, 2024
df1f20d
refactor: Remove `generic` aria role from types (#4610)
rschristian Dec 31, 2024
a1ff5f3
Adds support for react 19 (#4623)
JoviDeCroock Jan 7, 2025
1226aae
Support ref unmounting on imperative handles (#4625)
JoviDeCroock Jan 8, 2025
d16a34e
Add hasScuFromHooks to mangle (#4627)
JoviDeCroock Jan 10, 2025
b5eecc2
Allow for Context as JSX (#4618)
JoviDeCroock Jan 14, 2025
f68aebb
Switch _contextRef and _id (#4632)
JoviDeCroock Jan 15, 2025
28a937c
fix: ComponentProps type (#4634)
rschristian Jan 17, 2025
765f48e
Refactor component.js process() (#4637)
jviide Jan 18, 2025
cad1daf
Update http:// links to https:// (#4638)
jviide Jan 18, 2025
4b7e231
Support the template tag (#4639)
JoviDeCroock Jan 19, 2025
818eafb
ci: Run PR Reporter even against PRs from forks (#4643)
rschristian Jan 25, 2025
1da272c
ci: Fix path filter in PR Reporter action (#4644)
rschristian Jan 25, 2025
3ff5f50
fix: Typo in `_hasScuFromHooks` mangle (#4645)
rschristian Jan 30, 2025
52735c8
types: Correct `HTMLProps` to extend all known props (#4651)
rschristian Feb 11, 2025
2e85690
ci: Fix path filter in reporter workflow (#4654)
rschristian Feb 12, 2025
8a65010
test: Silence Karma warning over node:stream from RTS (#4660)
rschristian Feb 12, 2025
face924
Revert "Adds support for react 19 (#4623)" (#4664)
JoviDeCroock Feb 13, 2025
34e9715
types: Add auxClick event types (#4672)
rschristian Feb 16, 2025
62ad35b
types: Expose AriaAttributes from compat (#4673)
rschristian Feb 16, 2025
c477550
types: Expose EventHandler from compat (#4674)
rschristian Feb 16, 2025
7b94f64
types: Add type to compat (#4675)
rschristian Feb 16, 2025
2812165
10.26.0 (#4676)
JoviDeCroock Feb 16, 2025
5aa7244
chore: Fix mocha in Node v22+ (#4629)
rschristian Feb 17, 2025
4072d89
Add renderToReadableStream export (#4678)
JoviDeCroock Feb 17, 2025
501d7e6
chore: Simplify compat build script (#4677)
rschristian Feb 17, 2025
dfa67b8
Fix memory leak
JoviDeCroock Feb 17, 2025
21b4dcf
Remove log
JoviDeCroock Feb 17, 2025
36ebb0b
Merge branch 'main' into fix-memory-leak
JoviDeCroock Feb 17, 2025
44ef318
perf: created NULL constant (#4682)
Ben-Brady Feb 18, 2025
72154eb
Merge branch 'main' into fix-memory-leak
JoviDeCroock Feb 18, 2025
9a8dc3d
Merge pull request #4680 from preactjs/fix-memory-leak
JoviDeCroock Feb 18, 2025
8543dc2
Remove missing null
JoviDeCroock Feb 18, 2025
1cf7e6c
Merge pull request #4685 from preactjs/remove-missing-null
JoviDeCroock Feb 18, 2025
e62871c
Merge pull request #4684 from preactjs/10.26.1
JoviDeCroock Feb 18, 2025
3dd0c62
ci: Exclude devtools.js from triggering benchmarks (#4686)
rschristian Feb 18, 2025
46ac97c
fix: Remove pkg type (#4689)
rschristian Feb 18, 2025
927fdd4
10.26.2 (#4690)
JoviDeCroock Feb 18, 2025
e5a6dcf
feat: Add dialog closedby types
lukewarlow Feb 18, 2025
66fa1b5
Merge pull request #4693 from lukewarlow/dialog-closedby
marvinhagemeister Feb 18, 2025
8941185
feat: Add onBeforeToggle event handler type (#4694)
lukewarlow Feb 19, 2025
2a788d6
chore: Fix TS lang server support in our `.d.ts` files (#4698)
rschristian Feb 19, 2025
a54a914
Keyed nullish placeholders cause re-mounts (#4700)
JoviDeCroock Feb 21, 2025
d7b4787
chore: Fix mocha in Node v22+ (#4701)
rschristian Feb 21, 2025
46bace7
types: Flesh out HTMLMediaElement types (#4705)
rschristian Feb 24, 2025
eb9c8ab
feat: Add command invoker types (#4692)
lukewarlow Feb 25, 2025
94fbcbd
Remove unused deps (#4707)
JoviDeCroock Feb 25, 2025
1effaa6
chore: Remove console log in debug (#4709)
rschristian Feb 25, 2025
55e9f52
Add fetchPriority (#4713)
JoviDeCroock Feb 26, 2025
daba002
types: Refactor 'AllHTMLAttributes' interface (#4706)
rschristian Feb 26, 2025
ecf6c40
10.26.3 (#4714)
JoviDeCroock Feb 27, 2025
58703d6
Address context fragments issue (#4717)
JoviDeCroock Feb 27, 2025
ccd1e71
10.26.4 (#4718)
JoviDeCroock Feb 28, 2025
a69aada
refactor: Golf down unnecessary strict equality checks (#4723)
rschristian Mar 9, 2025
625aacf
revert: Bring back strict-equality bailout for children even w/ conte…
rschristian Mar 10, 2025
64242f4
test: Add test case checking previous behavior (#4725)
rschristian Mar 13, 2025
adb1414
Avoid cloning reused nodes (#4733)
JoviDeCroock Mar 18, 2025
f35272e
revert: Return 'AllHTMLAttributes' to manually including all attrs (#…
rschristian Mar 18, 2025
29b0021
fix: effect in memoed boundary should be re-executed when the lazy bo…
CaptainWang98 Mar 20, 2025
80ca668
correct hydrateRoot return type (#4735)
plesiecki Mar 20, 2025
0d4f33a
Update `CommandEventHandler` type to use `EventHandler` (#4740)
robertknight Mar 31, 2025
f6bbed5
10.26.5 (#4734)
JoviDeCroock Apr 6, 2025
bb804cd
Change controlslist type to string (#4744)
piotr-cz Apr 8, 2025
62a9b19
Vitest switch
JoviDeCroock Feb 17, 2025
0db9822
Make render work
JoviDeCroock Feb 19, 2025
bcd6310
Phewie
JoviDeCroock Feb 19, 2025
edf8b79
fix: dedupe preact (#4702)
sheremet-va Feb 21, 2025
ee7fbe2
Getting close
JoviDeCroock Feb 21, 2025
d90a8a3
All crashes are gone
JoviDeCroock Feb 21, 2025
f40709c
One more done
JoviDeCroock Feb 21, 2025
3a8db21
Add babel transform
JoviDeCroock Feb 22, 2025
09f447b
Add coverage
JoviDeCroock Feb 22, 2025
06a9f08
Another try
JoviDeCroock Feb 22, 2025
c1e772b
Use vite plugin instead
JoviDeCroock Feb 22, 2025
57bb577
Make all tests pass
JoviDeCroock Feb 22, 2025
49fe0b8
Coverage stuff
JoviDeCroock Feb 22, 2025
4671166
No isolation
JoviDeCroock Feb 22, 2025
63e917e
Add minify option
JoviDeCroock Feb 22, 2025
f302778
Format
JoviDeCroock Feb 22, 2025
2b332eb
Fix tests
JoviDeCroock Feb 22, 2025
9784f4b
Remove minify again
JoviDeCroock Feb 22, 2025
fa8d8b9
use env var
JoviDeCroock Feb 22, 2025
6780dc4
Reenable useId tests
JoviDeCroock Feb 22, 2025
15b9b87
Remove some deps
JoviDeCroock Feb 22, 2025
96dfa70
Lock terser
JoviDeCroock Feb 22, 2025
d0cafb5
Okay vite, lets try 5.16 then jeez
JoviDeCroock Feb 22, 2025
fdfaeaf
Add coverage dir
JoviDeCroock Feb 22, 2025
b324105
Fix some types
JoviDeCroock Feb 22, 2025
e100419
Backport commands
JoviDeCroock Feb 22, 2025
73c1dc8
Make minify work, partially failing 2 tests still
JoviDeCroock Feb 22, 2025
8ee6182
Add lcov
JoviDeCroock Feb 22, 2025
823e8af
change to only
JoviDeCroock Feb 22, 2025
9dbd5df
Maybe
JoviDeCroock Feb 22, 2025
ea8bd34
Maybe this?
JoviDeCroock Feb 22, 2025
32a3e9b
Fix some broken test
JoviDeCroock Feb 22, 2025
0c27fa6
Make coverage work
JoviDeCroock Feb 23, 2025
7e2b362
Fix vitest:min
JoviDeCroock Feb 23, 2025
2000037
Add devtools coverage back
JoviDeCroock Feb 23, 2025
556d8a0
Tweak config for consistency
JoviDeCroock Feb 23, 2025
e152bf0
test: Copy karma's filter over
rschristian Feb 23, 2025
1c1ab32
Try a cache
JoviDeCroock Feb 23, 2025
3ed298b
Fix test regex
JoviDeCroock Feb 23, 2025
fb71e9f
Try a run with isolate false
JoviDeCroock Feb 23, 2025
b38f5f2
Bump node and use playwright
JoviDeCroock Feb 24, 2025
473c65b
Restore CI
JoviDeCroock Feb 24, 2025
70e6f1f
Update .github/workflows/build-test.yml
JoviDeCroock Feb 24, 2025
ced6160
Switch to webdirver
JoviDeCroock Feb 24, 2025
7eba152
Package json
JoviDeCroock Feb 24, 2025
7651074
Bump vitest
JoviDeCroock Feb 24, 2025
8d64419
Add pending
JoviDeCroock Feb 24, 2025
f8ddf37
Skip more files
JoviDeCroock Feb 24, 2025
87eed69
Expand
JoviDeCroock Feb 25, 2025
e6a4080
Bump some stuff
JoviDeCroock Mar 7, 2025
e7cfb64
bump vitest
JoviDeCroock Apr 25, 2025
a2dcfc6
Enable lint
JoviDeCroock Apr 25, 2025
94db9b4
Try some stuff
JoviDeCroock Apr 25, 2025
0e1893c
Vitest switch (#4687)
JoviDeCroock Apr 28, 2025
8aac5fa
Merge pull request #4753 from preactjs/bump-vitest
JoviDeCroock May 4, 2025
8e05a6f
Ensure useId works in portals (#4752)
JoviDeCroock May 4, 2025
e92fdf8
10.26.6 (#4755)
JoviDeCroock May 6, 2025
9a00f03
chore: use `node:` prefix for Node builtins
marvinhagemeister May 6, 2025
7dc088c
chore: escape asterik in package scripts
marvinhagemeister May 6, 2025
ff053c8
Merge branch 'main' into node-prefix
marvinhagemeister May 7, 2025
b52475b
Merge pull request #4759 from preactjs/node-prefix
marvinhagemeister May 7, 2025
44c8f89
Remove some portal bytes (#4763)
JoviDeCroock May 16, 2025
a4affdc
Only one toLowerCase invoke (#4764)
JoviDeCroock May 16, 2025
b94920a
fix(types): add `name` to `<details>`
marvinhagemeister May 16, 2025
162d60b
Merge pull request #4766 from preactjs/details-name
marvinhagemeister May 16, 2025
a2032a3
Reduce raf timeout to 35ms (#4750)
JoviDeCroock May 17, 2025
3c556ad
10.26.7 (#4767)
JoviDeCroock May 24, 2025
c4dc71e
Fix nullish default props (#4775)
JoviDeCroock May 27, 2025
b9d66a5
10.26.8 (#4778)
JoviDeCroock May 29, 2025
c40d78a
Export test-utils from compat (#4783)
rawrmonstar Jun 4, 2025
28b7942
chore: Bump browserslist (#4785)
rschristian Jun 4, 2025
ee6598d
Avoid caching so file-saves work first try (#4786)
JoviDeCroock Jun 5, 2025
a4263b5
chore: make previous benchmark results not required
marvinhagemeister Jun 11, 2025
5c206b5
Merge pull request #4796 from preactjs/10.x-benchmarks
marvinhagemeister Jun 11, 2025
85e0cab
fix: escape style object value in precompile transform
marvinhagemeister Jun 11, 2025
fd1f38d
Merge pull request #4795 from preactjs/10.x-precompile-style
marvinhagemeister Jun 11, 2025
8ed14de
chore: point release workflow to 10.x
marvinhagemeister Jun 11, 2025
2a57866
Merge pull request #4797 from preactjs/10.x-release
marvinhagemeister Jun 11, 2025
c6defb4
fix: signal attribute values not working with precompile transform
marvinhagemeister Jun 11, 2025
d369bdb
Merge pull request #4798 from preactjs/10.x-precompile-attr
marvinhagemeister Jun 11, 2025
9b54e1b
10.26.9
marvinhagemeister Jun 11, 2025
ee12c20
Merge pull request #4800 from preactjs/release-10.26.9
marvinhagemeister Jun 11, 2025
504eb5c
perf: reduce some repeated logic (#4814) (#4821)
JoviDeCroock Jun 28, 2025
a9b12d9
chore: Update 'replaceNode' deprecation comment to point at new shim …
rschristian Jul 17, 2025
dec937f
Ensure we rerender after a suspensefully hydrating boundary throws an…
JoviDeCroock Jul 27, 2025
6e24eda
Only mark force when it's a real error
JoviDeCroock Jul 28, 2025
6fea157
Merge pull request #4856 from preactjs/ensure-we-rerender
JoviDeCroock Jul 28, 2025
43598cf
chore: Backport refcallback type and debug helpers (#4860)
rschristian Jul 28, 2025
e42b82b
Merge pull request #4859 from preactjs/10.26.10
JoviDeCroock Jul 28, 2025
2a48070
Accoutn for v10.x branch (#4861)
JoviDeCroock Jul 29, 2025
058573c
fix(types) make React.SVGAttributes generic (#4863)
shyguy1412 Jul 30, 2025
cf39a4b
fix(types) preact/compat missing React.Key (#4864)
shyguy1412 Jul 30, 2025
e25d0b9
feat: add .type property referencing original component
upupming Jul 31, 2025
5eada63
fix(compat): add .render property referencing original render function
frontman-git Jun 11, 2025
d698fd2
Merge pull request #4869 from upupming/v10.x-memo-type-field
marvinhagemeister Jul 31, 2025
89ad340
Merge pull request #4870 from upupming/v10.x-forward-ref-render-field
marvinhagemeister Jul 31, 2025
d92da32
Port #4888 to v10 (#4890)
vasylenkoval Aug 17, 2025
28a56ca
ci: Fix benchmarks workflow for v10.x (#4891)
rschristian Aug 18, 2025
02b52e6
10.27.1 (#4892)
JoviDeCroock Aug 18, 2025
a1039cc
Prevent frequently updated components from retaining memory (#4906)
JoviDeCroock Aug 27, 2025
0be5d20
refactor (v10): Mirror non-JSX types to the 'preact' namespace (#4904)
rschristian Aug 28, 2025
3e86d02
ci: Kickstart benches again in v10.x w/ successful run (#4911)
rschristian Sep 1, 2025
b0cb7c5
ci: Revert #4911 (#4912)
rschristian Sep 2, 2025
0dbe636
10.27.2 (#4917)
JoviDeCroock Sep 13, 2025
58ad04e
Avoid lazy components without result going in throw loop (#4937)
JoviDeCroock Oct 24, 2025
a347b0b
fix(compat): add `commpat/server.browser` entry (#4940)
marvinhagemeister Oct 26, 2025
3a5b4ba
Merge pull request #4941 from preactjs/v10-server-browser-entry
marvinhagemeister Oct 27, 2025
20ba6cc
types: Fix scroll events v10.x (#4949)
rschristian Oct 30, 2025
8ac2681
types: Missed jsx duplicates (#4950)
rschristian Oct 30, 2025
ff30c2b
Adds snap events (#4947)
argyleink Oct 30, 2025
3ab5c6f
Updates dangerouslySetInnerHTML type so future TS will accept Trusted…
lukewarlow Nov 16, 2025
7b74b40
Fix cascading renders with signals (#4966)
JoviDeCroock Nov 29, 2025
4d40e96
Backport some v11 optimizations (#4967)
JoviDeCroock Nov 29, 2025
b36b6a7
10.28.0 (#4968)
JoviDeCroock Dec 1, 2025
f7693b7
Fix erroneous diffing w/ growing list (#4975)
JoviDeCroock Dec 16, 2025
900ed15
Merge remote-tracking branch 'preact/v10.x' into lynx/v10.24.x
upupming Jan 4, 2026
db4d8bf
Revert "Allow rendering in document (#4564)"
upupming Dec 24, 2025
351d14e
make publish work
upupming Jan 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ insert_final_newline = true
[{*.json,.*rc,*.yml}]
indent_style = space
indent_size = 2
insert_final_newline = false

[*.md]
trim_trailing_whitespace = false
32 changes: 7 additions & 25 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,51 +2,33 @@ name: Benchmarks

on:
workflow_dispatch:
pull_request:
branches:
- '**'
paths:
- '**/src/**.js'
push:
branches:
- main
- v11
paths:
- '**/src/**.js'
workflow_call:

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

prepare:
name: Prepare environment
runs-on: ubuntu-latest
needs: build_test
timeout-minutes: 5
steps:
- name: Download locally built preact package
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: npm-package
- run: mv preact.tgz preact-local.tgz
- name: Upload locally built preact package
uses: actions/upload-artifact@v3
with:
name: bench-environment
path: preact-local.tgz
- name: Download base package
uses: andrewiggins/download-base-artifact@v3
with:
artifact: npm-package
workflow: ci.yml
required: false
- run: mv preact.tgz preact-main.tgz
- name: Upload base preact package
uses: actions/upload-artifact@v3
- name: Upload locally build & base preact package
uses: actions/upload-artifact@v4
with:
name: bench-environment
path: preact-main.tgz
path: |
preact-local.tgz
preact-main.tgz

bench_todo:
name: Bench todo
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Build & Test

on:
workflow_dispatch:
workflow_call:
inputs:
ref:
description: 'Branch or tag ref to check out'
type: string
required: false
default: ''
artifact_name:
description: 'Name of the artifact to upload'
type: string
required: false
default: 'npm-package'

jobs:
build_test:
name: Build & Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.ref || '' }}
- uses: actions/setup-node@v4
with:
node-version-file: 'package.json'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- run: npm ci
- name: test
env:
CI: true
COVERAGE: true
FLAKEY: false
# Not using `npm test` since it rebuilds source which npm ci has already done
run: npm run lint
- name: Coveralls GitHub Action
if: github.repository == 'preactjs/preact'
uses: coverallsapp/github-action@v2.3.0
timeout-minutes: 2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
fail-on-error: false
- name: Package
# Use --ignore-scripts here to avoid re-building again before pack
run: |
npm pack --ignore-scripts
mv preact-*.tgz preact.tgz
- name: Upload npm package
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.artifact_name || 'npm-package' }}
path: preact.tgz
- name: Publish with pkg.pr.new
run: |
npx pkg-pr-new publish --json
80 changes: 30 additions & 50 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,65 +2,45 @@ name: CI

on:
workflow_dispatch:
workflow_call:
inputs:
ref:
description: 'Branch or tag ref to check out'
type: string
required: false
default: ''
artifact_name:
description: 'Name of the artifact to upload'
type: string
required: false
default: 'npm-package'
pull_request:
branches:
- '**'
push:
branches:
- main
- restructure
- lynx/v10.24.x
- v10.x

jobs:
build_test:
name: Build & Test
filter_jobs:
name: Filter jobs
runs-on: ubuntu-latest
outputs:
jsChanged: ${{ steps.filter.outputs.jsChanged }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
ref: ${{ inputs.ref || '' }}
- uses: actions/setup-node@v4
with:
node-version-file: 'package.json'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- run: npm ci
- name: test
env:
CI: true
COVERAGE: true
FLAKEY: false
# Not using `npm test` since it rebuilds source which npm ci has already done
run: |
npm run lint
- name: Coveralls GitHub Action
if: github.repository == 'preactjs/preact'
uses: coverallsapp/github-action@v2.3.0
timeout-minutes: 2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Package
# Use --ignore-scripts here to avoid re-building again before pack
run: |
npm pack --ignore-scripts
mv preact-*.tgz preact.tgz
- name: Upload npm package
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.artifact_name || 'npm-package' }}
path: preact.tgz
- name: Publish with pkg.pr.new
run: |
npx pkg-pr-new publish --json
# Should be kept in sync with the filter in the PR Reporter workflow
predicate-quantifier: 'every'
filters: |
jsChanged:
- '**/src/**/*.js'
- '!devtools/src/devtools.js'

compressed_size:
name: Compressed Size
needs: filter_jobs
if: ${{ needs.filter_jobs.outputs.jsChanged == 'true' }}
uses: ./.github/workflows/size.yml

build_test:
name: Build & Test
needs: filter_jobs
uses: ./.github/workflows/build-test.yml

benchmarks:
name: Benchmarks
needs: build_test
if: ${{ needs.filter_jobs.outputs.jsChanged == 'true' && github.repository == 'preactjs/preact' }}
uses: ./.github/workflows/benchmarks.yml
45 changes: 38 additions & 7 deletions .github/workflows/pr-reporter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,45 @@ on:
# The pull_request event can't write comments for PRs from forks so using this
# workflow_run workflow as a workaround
workflow_run:
workflows: ['Benchmarks']
branches: ['**']
workflows: ['CI']
types:
- completed
- requested

jobs:
filter_jobs:
name: Filter jobs
runs-on: ubuntu-latest
if: |
github.event.workflow_run.event == 'pull_request'
outputs:
jsChanged: ${{ steps.filter.outputs.jsChanged }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
# As this Workflow is triggered by a `workflow_run` event, the filter action
# can't automatically assume we're working with PR data. As such, we need to
# wire it up manually with a base (merge target) and ref (source branch).
base: ${{ github.event.workflow_run.pull_requests[0].base.sha }}
ref: ${{ github.event.workflow_run.pull_requests[0].head.sha }}
# Should be kept in sync with the filter in the CI workflow
predicate-quantifier: 'every'
filters: |
jsChanged:
- '**/src/**/*.js'
- '!devtools/src/devtools.js'

report_running:
name: Report benchmarks are in-progress
needs: filter_jobs
runs-on: ubuntu-latest
# Only add the "benchmarks are running" text when a workflow_run is
# requested (a.k.a starting)
if: ${{ github.event.action == 'requested' }}
if: |
needs.filter_jobs.outputs.jsChanged == 'true' &&
github.event.action == 'requested'
steps:
- name: Report Tachometer Running
uses: andrewiggins/tachometer-reporter-action@v2
Expand All @@ -27,25 +53,30 @@ jobs:

report_results:
name: Report benchmark results
needs: filter_jobs
runs-on: ubuntu-latest
# Only run this job if the event action was "completed" and the triggering
# workflow_run was successful
if: ${{ github.event.action == 'completed' && github.event.workflow_run.conclusion == 'success' }}
if: |
needs.filter_jobs.outputs.jsChanged == 'true' &&
github.event.action == 'completed' &&
github.event.workflow_run.conclusion == 'success'
steps:
# Download the artifact from the triggering workflow that contains the
# Tachometer results to report
- uses: dawidd6/action-download-artifact@v2
with:
workflow: ${{ github.event.workflow.id }}
run_id: ${{ github.event.workflow_run.id }}
name: results
name_is_regexp: true
name: results-*
path: results

# Create/update the comment with the latest results
- name: Report Tachometer Results
uses: andrewiggins/tachometer-reporter-action@v2
with:
path: results/*.json
path: results/**/*.json
base-bench-name: preact-main
pr-bench-name: preact-local
summarize: 'duration, usedJSHeapSize'
summarize: 'duration, usedJSHeapSize'
11 changes: 6 additions & 5 deletions .github/workflows/run-bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
${{ runner.os }}-pnpm-store-

# Install benchmark dependencies
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: bench-environment
- name: Move tarballs from env to correct location
Expand Down Expand Up @@ -107,15 +107,16 @@ jobs:
id: log-artifact-name
run: |
NAME=$(echo "${{ inputs.benchmark }}" | sed -r 's/[\/]+/_/g')
echo "clean_name=$NAME" >> $GITHUB_OUTPUT
echo "artifact_name=logs_$NAME" >> $GITHUB_OUTPUT
- name: Upload results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: results
name: results-${{ steps.log-artifact-name.outputs.clean_name }}
path: benchmarks/out/results/${{ inputs.benchmark }}.json
- name: Upload logs
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ steps.log-artifact-name.outputs.artifact_name }}
path: benchmarks/out/${{ inputs.benchmark }}_logs.tgz
if-no-files-found: ignore
if-no-files-found: ignore
32 changes: 0 additions & 32 deletions .github/workflows/saucelabs.yml

This file was deleted.

Loading
Loading