Skip to content

test: Test built package in CI#2664

Merged
iwoplaza merged 2 commits into
mainfrom
test/built-pkg
Jun 30, 2026
Merged

test: Test built package in CI#2664
iwoplaza merged 2 commits into
mainfrom
test/built-pkg

Conversation

@iwoplaza

Copy link
Copy Markdown
Collaborator

No description provided.

@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown

pkg.pr.new

packages
Ready to be installed by your favorite package manager ⬇️

https://pkg.pr.new/software-mansion/TypeGPU/typegpu@5c347b3e55b02d94b232886518843f527914e50f
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/cli@5c347b3e55b02d94b232886518843f527914e50f
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/noise@5c347b3e55b02d94b232886518843f527914e50f
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/react@5c347b3e55b02d94b232886518843f527914e50f
https://pkg.pr.new/software-mansion/TypeGPU/unplugin-typegpu@5c347b3e55b02d94b232886518843f527914e50f

benchmark
view benchmark

commit
view commit

@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown

Bundle size comparison (import * as ... in PR vs import * as ... in target):

🟢 Decreased ➖ Unchanged 🔴 Increased ❔ Unknown
0 320 0 0

import { ... } in PR vs import * as ... in PR (is the library tree-Shakeable?):

Click to reveal the results table (297 entries).
Test tsdown
d_Void.ts 87.41 kB ($${\color{red}+12094.3\%}$$)
d_sampler.ts 87.41 kB ($${\color{red}+11963.2\%}$$)
d_isPtr.ts 87.41 kB ($${\color{red}+11802.5\%}$$)
d_comparisonSampler.ts 87.42 kB ($${\color{red}+11788.3\%}$$)
d_isSizeAttrib.ts 87.42 kB ($${\color{red}+11771.9\%}$$)
d_isWgslArray.ts 87.42 kB ($${\color{red}+11771.8\%}$$)
d_isAlignAttrib.ts 87.42 kB ($${\color{red}+11756.3\%}$$)
d_isWgslStruct.ts 87.42 kB ($${\color{red}+11756.2\%}$$)
d_isAtomic.ts 87.41 kB ($${\color{red}+11755.6\%}$$)
d_isBuiltinAttrib.ts 87.42 kB ($${\color{red}+11725.2\%}$$)
d_isLocationAttrib.ts 87.42 kB ($${\color{red}+11709.8\%}$$)
d_isDecorated.ts 87.42 kB ($${\color{red}+11709.1\%}$$)
d_isInterpolateAttrib.ts 87.42 kB ($${\color{red}+11663.6\%}$$)
d_atomic.ts 87.41 kB ($${\color{red}+11390.1\%}$$)
d_ptrHandle.ts 87.41 kB ($${\color{red}+10418.3\%}$$)
d_ptrUniform.ts 87.41 kB ($${\color{red}+10406.1\%}$$)
d_ptrStorage.ts 87.41 kB ($${\color{red}+10357.0\%}$$)
d_ptrPrivate.ts 87.41 kB ($${\color{red}+10332.6\%}$$)
d_ptrFn.ts 87.41 kB ($${\color{red}+10319.9\%}$$)
d_ptrWorkgroup.ts 87.42 kB ($${\color{red}+10308.6\%}$$)
d_textureExternal.ts 87.42 kB ($${\color{red}+10154.0\%}$$)
d_textureStorage1d.ts 87.42 kB ($${\color{red}+8532.4\%}$$)
d_textureStorage2d.ts 87.42 kB ($${\color{red}+8532.4\%}$$)
d_textureStorage3d.ts 87.42 kB ($${\color{red}+8532.4\%}$$)
d_textureStorage2dArray.ts 87.42 kB ($${\color{red}+8385.6\%}$$)
d_isDisarray.ts 87.41 kB ($${\color{red}+7758.8\%}$$)
d_isUnstruct.ts 87.41 kB ($${\color{red}+7758.8\%}$$)
d_isLooseDecorated.ts 87.42 kB ($${\color{red}+7711.3\%}$$)
d_isLooseData.ts 87.42 kB ($${\color{red}+7447.5\%}$$)
d_isWgslData.ts 87.41 kB ($${\color{red}+6570.0\%}$$)
d_unstruct.ts 87.41 kB ($${\color{red}+5547.3\%}$$)
d_isData.ts 87.41 kB ($${\color{red}+4735.7\%}$$)
d_deepEqual.ts 87.41 kB ($${\color{red}+3887.1\%}$$)
d_struct.ts 87.41 kB ($${\color{red}+2325.0\%}$$)
d_ref.ts 87.41 kB ($${\color{red}+1725.5\%}$$)
std_discard.ts 103.15 kB ($${\color{red}+624.8\%}$$)
std_copy.ts 103.14 kB ($${\color{red}+612.6\%}$$)
std_arrayLength.ts 103.15 kB ($${\color{red}+612.4\%}$$)
std_isBeingTranspiled.ts 103.16 kB ($${\color{red}+610.9\%}$$)
std_getTargetShaderLanguage.ts 103.16 kB ($${\color{red}+607.7\%}$$)
std_extensionEnabled.ts 103.16 kB ($${\color{red}+605.2\%}$$)
std_range.ts 103.14 kB ($${\color{red}+592.5\%}$$)
std_dpdx.ts 103.14 kB ($${\color{red}+584.2\%}$$)
std_fwidthCoarse.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdxCoarse.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdyCoarse.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_fwidthFine.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdxFine.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdyFine.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_fwidth.ts 103.15 kB ($${\color{red}+583.9\%}$$)
std_dpdy.ts 103.14 kB ($${\color{red}+583.9\%}$$)
d_bool.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_f16.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_f32.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_i32.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_u32.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_u16.ts 87.41 kB ($${\color{red}+570.2\%}$$)
std_atomicLoad.ts 103.15 kB ($${\color{red}+551.5\%}$$)
std_textureBarrier.ts 103.15 kB ($${\color{red}+551.3\%}$$)
std_atomicStore.ts 103.15 kB ($${\color{red}+551.3\%}$$)
std_workgroupBarrier.ts 103.16 kB ($${\color{red}+551.1\%}$$)
std_storageBarrier.ts 103.15 kB ($${\color{red}+551.1\%}$$)
std_atomicAdd.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicAnd.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicMax.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicMin.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicSub.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicXor.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicOr.ts 103.15 kB ($${\color{red}+551.0\%}$$)
d_textureDepth2d.ts 87.42 kB ($${\color{red}+549.4\%}$$)
d_textureDepthCube.ts 87.42 kB ($${\color{red}+549.1\%}$$)
d_texture1d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_texture2d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_texture3d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_textureDepth2dArray.ts 87.42 kB ($${\color{red}+548.6\%}$$)
d_textureCube.ts 87.42 kB ($${\color{red}+548.6\%}$$)
d_textureDepthCubeArray.ts 87.42 kB ($${\color{red}+548.3\%}$$)
d_textureDepthMultisampled2d.ts 87.43 kB ($${\color{red}+548.2\%}$$)
d_texture2dArray.ts 87.42 kB ($${\color{red}+548.0\%}$$)
d_textureCubeArray.ts 87.42 kB ($${\color{red}+547.7\%}$$)
d_textureMultisampled2d.ts 87.42 kB ($${\color{red}+547.7\%}$$)
d_disarrayOf.ts 87.41 kB ($${\color{red}+480.3\%}$$)
d_vec2b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
std_subgroupAdd.ts 103.15 kB ($${\color{red}+329.3\%}$$)
std_subgroupBroadcastFirst.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupExclusiveAdd.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupExclusiveMul.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupInclusiveAdd.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupInclusiveMul.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffleDown.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffleXor.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupBroadcast.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffleUp.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffle.ts 103.15 kB ($${\color{red}+329.3\%}$$)
std_subgroupBallot.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupElect.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupAll.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupAnd.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupAny.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupMax.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupMin.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupMul.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupXor.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupOr.ts 103.15 kB ($${\color{red}+329.2\%}$$)
d_formatToWGSLType.ts 87.42 kB ($${\color{red}+317.5\%}$$)
d_uint8.ts 87.41 kB ($${\color{red}+317.3\%}$$)
d_unorm10_10_10_2.ts 87.42 kB ($${\color{red}+317.3\%}$$)
d_unorm8x4_bgra.ts 87.42 kB ($${\color{red}+317.3\%}$$)
d_float16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_packedFormats.ts 87.42 kB ($${\color{red}+316.9\%}$$)
d_isPackedData.ts 87.42 kB ($${\color{red}+316.0\%}$$)
std_textureDimensions.ts 103.16 kB ($${\color{red}+300.1\%}$$)
std_textureGather.ts 103.15 kB ($${\color{red}+300.1\%}$$)
std_textureSampleBaseClampToEdge.ts 103.17 kB ($${\color{red}+300.0\%}$$)
std_textureSampleCompareLevel.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleCompare.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleLevel.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleBias.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleGrad.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSample.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureStore.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureLoad.ts 103.15 kB ($${\color{red}+300.0\%}$$)
d_alignmentOf.ts 87.42 kB ($${\color{red}+299.2\%}$$)
std_translation4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_rotationX4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_rotationY4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_rotationZ4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_identity2.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_identity3.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_identity4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_scaling4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
d_isBuiltin.ts 87.41 kB ($${\color{red}+255.1\%}$$)
d_sizeOf.ts 87.41 kB ($${\color{red}+254.4\%}$$)
d_isContiguous.ts 87.42 kB ($${\color{red}+254.3\%}$$)
d_getLongestContiguousPrefix.ts 87.43 kB ($${\color{red}+254.2\%}$$)
d_arrayOf.ts 87.41 kB ($${\color{red}+233.4\%}$$)
d_size.ts 87.41 kB ($${\color{red}+231.7\%}$$)
d_align.ts 87.41 kB ($${\color{red}+231.7\%}$$)
d_location.ts 87.41 kB ($${\color{red}+231.6\%}$$)
d_interpolate.ts 87.42 kB ($${\color{red}+231.6\%}$$)
d_invariant.ts 87.41 kB ($${\color{red}+227.0\%}$$)
d_mat4x4f.ts 87.41 kB ($${\color{red}+223.4\%}$$)
d_mat2x2f.ts 87.41 kB ($${\color{red}+223.3\%}$$)
d_mat3x3f.ts 87.41 kB ($${\color{red}+223.3\%}$$)
d_matToArray.ts 87.41 kB ($${\color{red}+221.8\%}$$)
d_builtin.ts 87.41 kB ($${\color{red}+204.8\%}$$)
std_unpack2x16float.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_unpack4x8unorm.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_pack2x16float.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_pack4x8unorm.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_bitcastU32toF32.ts 103.15 kB ($${\color{red}+133.2\%}$$)
std_bitcastU32toI32.ts 103.15 kB ($${\color{red}+133.2\%}$$)
std_neg.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_bitShiftRight.ts 103.15 kB ($${\color{red}+113.1\%}$$)
std_bitShiftLeft.ts 103.15 kB ($${\color{red}+113.1\%}$$)
std_add.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_div.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_mod.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_mul.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_sub.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_translate4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_rotateX4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_scale4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_rotateY4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_rotateZ4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
d_memoryLayoutOf.ts 87.42 kB ($${\color{red}+108.2\%}$$)
std_and.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_or.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_select.ts 103.15 kB ($${\color{red}+99.2\%}$$)
std_allEq.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_all.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_not.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_eq.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_lt.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_ne.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_isCloseTo.ts 103.15 kB ($${\color{red}+99.2\%}$$)
std_any.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_ge.ts 103.14 kB ($${\color{red}+99.1\%}$$)
std_gt.ts 103.14 kB ($${\color{red}+99.1\%}$$)
std_le.ts 103.14 kB ($${\color{red}+99.1\%}$$)
std_dot4U8Packed.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_length.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_countTrailingZeros.ts 103.16 kB ($${\color{red}+56.2\%}$$)
std_distance.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_dot.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_countLeadingZeros.ts 103.16 kB ($${\color{red}+56.2\%}$$)
std_firstTrailingBit.ts 103.16 kB ($${\color{red}+56.2\%}$$)
std_firstLeadingBit.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_fract.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_frexp.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_modf.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_quantizeToF16.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_mix.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_countOneBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_dot4I8Packed.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_determinant.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_extractBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_faceForward.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_inverseSqrt.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_reverseBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_insertBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_smoothstep.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_normalize.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_transpose.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_saturate.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_degrees.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_radians.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_reflect.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_refract.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_acosh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_asinh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_atan2.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_atanh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_clamp.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_cross.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_floor.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_ldexp.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_round.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_trunc.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_acos.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_asin.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_atan.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_ceil.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_cosh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_exp2.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_log2.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sign.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sinh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sqrt.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_step.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_tanh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_abs.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_cos.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_exp.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_fma.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_log.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_max.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_min.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_pow.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sin.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_tan.ts 103.14 kB ($${\color{red}+56.1\%}$$)
common_fullScreenTriangle.ts 57.18 kB ($${\color{red}+41.5\%}$$)
common_writeSoA.ts 57.17 kB ($${\color{red}+38.6\%}$$)
STATIC_allImports.ts 287.20 kB ($${\color{green}-1.7\%}$$)
STATIC_d.ts 87.40 kB ($${\color{green}-2.6\%}$$)
STATIC_std.ts 103.14 kB ($${\color{green}-2.7\%}$$)

If you wish to run a comparison for other, slower bundlers, run the 'Tree-shake test' from the GitHub Actions menu.

@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown

Resolution Time Benchmark

---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Random Branching (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.94, 1.85, 3.99, 6.25, 7.33, 11.02, 22.18, 26.22]
  line [0.88, 1.91, 4.12, 6.86, 7.85, 11.99, 24.56, 26.41]
  line [0.94, 1.96, 3.97, 6.52, 7.93, 11.30, 22.79, 23.38]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Linear Recursion (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.32, 0.59, 0.75, 0.92, 1.21, 1.24, 1.43, 1.56]
  line [0.30, 0.52, 0.73, 0.90, 1.20, 1.27, 1.54, 1.59]
  line [0.30, 0.51, 0.71, 0.84, 1.12, 1.26, 1.51, 1.62]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Full Tree (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.85, 2.13, 4.02, 6.48, 12.95, 26.29, 56.36, 113.08]
  line [0.85, 2.23, 3.91, 6.85, 13.37, 27.63, 59.69, 117.09]
  line [1.00, 2.16, 4.27, 6.37, 12.54, 26.63, 56.17, 115.59]
Loading

@iwoplaza iwoplaza force-pushed the test/built-pkg branch 4 times, most recently from 94a1e2f to 0f423f0 Compare June 30, 2026 13:58
Comment thread .github/workflows/ci.yml

- name: Test
run: pnpm test
- name: Build docs

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs are now built as part of the test script

@iwoplaza

Copy link
Copy Markdown
Collaborator Author

@pullfrog review

@iwoplaza iwoplaza marked this pull request as ready for review June 30, 2026 14:08
Copilot AI review requested due to automatic review settings June 30, 2026 14:08

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Two concerns need attention before merging: the packages/typegpu/package.json rewrite is fragile in a shared workspace, and the docs build was dropped from CI without explanation.

Reviewed changes — CI now builds all packages before running unit tests and sets TEST_BUILT=1 so packages/typegpu can run its suite against the built artifact. The implementation rewrites packages/typegpu/package.json to simulate publish-time exports, and adds a WebGPU-device-request fixture so React tests no longer need to spy on tgpu.init.

  • packages/typegpu/setupVitest.ts — On TEST_BUILT=1, merges publishConfig into packages/typegpu/package.json at setup and restores it on teardown.
  • packages/typegpu/vitest.config.mts — Excludes tests/internal/**/* when running against the built package.
  • packages/typegpu-testing-utility/src/extendedIt.ts — Adds _stallDeviceRequest internal fixture and public stallDeviceRequest helper.
  • packages/typegpu-react/tests/root-context.test.tsx — Replaces vi.spyOn(tgpu, 'init') with the new stallDeviceRequest fixture.
  • package.jsontest script now runs pnpm run -r build and exports TEST_BUILT=1 for the unit-test step.
  • .github/workflows/ci.yml — Removes the separate Build docs step.

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

Comment thread .github/workflows/ci.yml
Comment thread packages/typegpu/setupVitest.ts Outdated
Comment thread packages/typegpu-testing-utility/src/extendedIt.ts Outdated
Comment thread packages/typegpu/setupVitest.ts Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the CI test flow so unit tests exercise the built typegpu package output (from dist) rather than the source layout, aligning CI with what users consume from the published package.

Changes:

  • Build all workspace packages before unit tests and run unit tests with TEST_BUILT=1.
  • In the typegpu package’s Vitest setup, temporarily apply publishConfig-style package resolution during tests.
  • Add a test utility to stall device acquisition and refactor a React root cleanup test to use it.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
packages/typegpu/vitest.config.mts Uses TEST_BUILT to adjust Vitest exclusions (skip tests/internal when validating the built package).
packages/typegpu/setupVitest.ts Adds TEST_BUILT env handling and rewrites/restores packages/typegpu/package.json to behave like published output during tests.
packages/typegpu-testing-utility/src/extendedIt.ts Adds stallDeviceRequest helper and updates adapter mock to optionally delay requestDevice.
packages/typegpu-react/tests/root-context.test.tsx Updates unmount/late-init cleanup test to use stallDeviceRequest rather than mocking tgpu.init.
package.json Updates root test script to build first and set TEST_BUILT=1 for unit/attest tests.
.github/workflows/ci.yml Simplifies CI by relying on pnpm test (docs build step removed).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/typegpu-testing-utility/src/extendedIt.ts
Comment thread packages/typegpu-testing-utility/src/extendedIt.ts
Comment thread packages/typegpu-react/tests/root-context.test.tsx
Comment thread packages/typegpu/setupVitest.ts Outdated

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

This PR removes the docs build from the CI check. Please confirm that's intentional, or restore a docs-build gate for pull requests.

Reviewed changes — CI now builds packages before running tests, and the typegpu unit/attest tests resolve typegpu imports against the built dist/ via a runtime package.json rewrite in setupVitest.ts.

  • package.json test script — builds all packages and sets TEST_BUILT=1 before unit/attest tests.
  • setupVitest.ts — when TEST_BUILT is set, merges publishConfig into the top-level package.json so module resolution points at the built outputs; restores the original file on teardown.
  • vitest.config.mts — excludes tests/internal/**/* when running against the built package.
  • extendedIt.ts / root-context.test.tsx — replaces a tgpu.init spy that is hard to use against built exports with a new stallDeviceRequest fixture that stalls the mocked adapter's requestDevice.
  • .github/workflows/ci.yml — removes the explicit Build docs step.

⚠️ Docs build no longer runs in CI

Previously ci.yml ran cd apps/typegpu-docs && pnpm build after tests. This PR removes that step. test:types still runs astro check via the filtered test:types script, but astro check alone does not perform the full astro build. The deploy-docs.yml workflow only builds the docs app on pushes to the release branch, so a docs-only build break could land on main undetected.

Technical details
### ⚠️ Docs build no longer runs in CI

## Affected sites
- `.github/workflows/ci.yml` — removed `Build docs` step.
- `package.json:27``test:types` runs `astro check`, not `astro build`.

## Required outcome
PR checks should continue to guarantee that the docs app can build, or the team should intentionally move that gate elsewhere.

## Suggested approach
Either restore a docs-build job in `ci.yml` or add a dedicated PR workflow that runs `cd apps/typegpu-docs && pnpm build`. If the build was removed to save time, document that trade-off in the PR description or task list.

## Open questions for the human
- Is the removal of the docs build intentional, or a side effect of rearranging the `test` script?
- If intentional, is a separate change adding docs-build coverage back?

ℹ️ setupVitest.ts mutates a tracked package.json in place

usePublishConfig() overwrites packages/typegpu/package.json at test startup to point resolution at dist/, then restores it in teardown. The restore runs on normal completion and in the catch block, but it cannot run if the process exits abnormally. In ephemeral CI that is harmless, but locally the working tree can be left dirty and a developer could accidentally commit the mutated file.

Technical details
### ℹ️ `setupVitest.ts` mutates a tracked `package.json` in place

## Affected sites
- `packages/typegpu/setupVitest.ts:22-41``usePublishConfig` reads, rewrites, and later restores `package.json`.

## Required outcome
The built-package test gate must not leave the repository in a modified state or race on a shared tracked file.

## Suggested approach
Consider avoiding an in-place edit of a tracked file:
- Use a temporary directory with a synthetic `package.json` and point Vite/Node resolution at it.
- Use Vitest alias / `resolve.conditions` overrides to force resolution to `dist/` without touching source files.
- If the rewrite stays, fail loudly on teardown if the file doesn't match the original so a leaked mutation is visible immediately.

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

Comment thread packages/typegpu-testing-utility/src/extendedIt.ts Outdated
Comment thread packages/typegpu-testing-utility/src/extendedIt.ts Outdated

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ New commit fixes the stallDeviceRequest error message.

The incremental change rewords the stallDeviceRequest error so it describes the fixture accurately. No new issues in this delta.

Reviewed changes (incremental) — a single follow-up commit that updates the stallDeviceRequest error message.

  • packages/typegpu-testing-utility/src/extendedIt.tsstallDeviceRequest now throws Cannot stall .requestDevice() more than once at a time.

Pullfrog  | Fix it ➔View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

@aleksanderkatan aleksanderkatan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we can just forget about internal tests in CI. See #2668, it passes despite broken tests

Comment thread package.json Outdated
@iwoplaza iwoplaza force-pushed the test/built-pkg branch 2 times, most recently from c9d35e2 to 4c0ed9e Compare June 30, 2026 14:50
@iwoplaza iwoplaza requested a review from reczkok June 30, 2026 14:50

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

The alias-based built-package resolution works for today's subpaths, but the alias list and typegpu exports are maintained in two different files. A subpath added to one without the other would cause TEST_BUILT=1 tests to silently import source files instead of the built artifact.

Reviewed changes — Replaced the runtime package.json rewrite with Vite aliases that redirect typegpu subpaths to their $built$ exports when TEST_BUILT=1 is set.

  • Removed package.json mutationpackages/typegpu/setupVitest.ts no longer rewrites packages/typegpu/package.json; it only configures @ark/attest.
  • Added typegpuBuiltAliases() in packages/typegpu-testing-utility/src/config.ts — provides Vite aliases for the current typegpu subpaths.
  • Wired aliases into workspace Vitest configs — root, packages/typegpu, packages/typegpu-react, packages/typegpu-gl, and apps/typegpu-docs.
  • Switched React cleanup test to the stallDeviceRequest fixture and dropped the tgpu.init spy.

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

Comment thread packages/typegpu-testing-utility/src/config.ts

@aleksanderkatan aleksanderkatan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, this approach looks much cleaner! 📝🛠️

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ No new issues in this delta.

Reviewed changes — The test script was split into a source-only pass and a built-package pass so internal tests continue to run in CI alongside the new built-package validation.

  • package.json test scriptstest now runs test:unit-and-attest (source) followed by test:built-unit-and-attest (built).
  • test:built-unit-and-attest builds all packages/* and runs unit/attest tests with TEST_BUILT=1.
  • This keeps tests/internal/**/* in CI via the source pass while still validating published artifacts via the built pass.

Pullfrog  | Fix it ➔View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes — The latest commit restores the docs-build gate in CI and switches apps/typegpu-docs to the shared typegpuBuiltAliases helper.

  • Restored the Build docs step in .github/workflows/ci.yml — addresses the earlier concern that removing the docs build from PR checks could let docs-only breakages land on main.
  • Updated apps/typegpu-docs/vitest.config.mts to import typegpuBuiltAliases from typegpu-testing-utility/config, so docs tests resolve typegpu against the built artifacts under TEST_BUILT=1 using the same aliases as the rest of the workspace.

Pullfrog  | View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

@cieplypolar cieplypolar left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

@iwoplaza iwoplaza merged commit 25bcc9e into main Jun 30, 2026
5 checks passed
@iwoplaza iwoplaza deleted the test/built-pkg branch June 30, 2026 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants