Skip to content

enhance: Set default Node.js version to v26#17623

Merged
syuilo merged 28 commits into
misskey-dev:developfrom
kakkokari-gtyih:enh-support-node-24-26
Jun 27, 2026
Merged

enhance: Set default Node.js version to v26#17623
syuilo merged 28 commits into
misskey-dev:developfrom
kakkokari-gtyih:enh-support-node-24-26

Conversation

@kakkokari-gtyih

@kakkokari-gtyih kakkokari-gtyih commented Jun 26, 2026

Copy link
Copy Markdown
Member

What

nsfw.js を外部化したことにより v22 でないと動作しないという制約が外れたため、v24, v26のサポートを追加し、26.4.0をデフォルトバージョンに設定。v22のサポートは次回削除

Why

Fix #16944
Close #17100
Close #14705

Additional info (optional)

Checklist

  • Read the contribution guide
  • Test working in a local environment
  • (If needed) Add story of storybook
  • (If needed) Update CHANGELOG.md
  • (If possible) Add tests

@dosubot dosubot Bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Jun 26, 2026
@github-actions github-actions Bot added packages/frontend Client side specific issue/PR packages/backend Server side specific issue/PR packages/misskey-js labels Jun 26, 2026
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

このPRによるapi.jsonの差分
差分はありません。
Get diff files from Workflow Page

@codecov

codecov Bot commented Jun 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 25.21%. Comparing base (ba3fb4a) to head (57920bb).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #17623      +/-   ##
===========================================
+ Coverage    24.96%   25.21%   +0.25%     
===========================================
  Files         1162     1163       +1     
  Lines        39749    39941     +192     
  Branches     11073    11118      +45     
===========================================
+ Hits          9925    10073     +148     
- Misses       23888    23927      +39     
- Partials      5936     5941       +5     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@syuilo

syuilo commented Jun 26, 2026

Copy link
Copy Markdown
Member

22をサポートすることに対するコストは無いと思うから落とすのは今後22非対応の改修を入れることになった折もしくは22がEoLになった時でよさそう

@kakkokari-gtyih

kakkokari-gtyih commented Jun 26, 2026

Copy link
Copy Markdown
Member Author

22をサポートすることに対するコストは無いと思うから落とすのは今後22非対応の改修を入れることになった折もしくは22がEoLになった時でよさそう

あるにはある

今のところ node-version と min-node-version の2つでワークフローが回っているけど、node-version を v26 に引き上げ、min-node-versionを据え置き(v22)にすると、 v24 に対するテストが行われないことになる

テストの改修で対応できないことはないけど、そうすると今度はテストの完了に時間がかかるようになる

@syuilo

syuilo commented Jun 26, 2026

Copy link
Copy Markdown
Member

あー

@syuilo

This comment was marked as resolved.

@kakkokari-gtyih kakkokari-gtyih marked this pull request as draft June 26, 2026 09:42
@syuilo

syuilo commented Jun 26, 2026

Copy link
Copy Markdown
Member

一旦26をサポート対象に入れてからデフォルトバージョン上げるステップを踏まないとworkflowが弾かれそう

@kakkokari-gtyih kakkokari-gtyih marked this pull request as ready for review June 27, 2026 14:15
@github-actions

Copy link
Copy Markdown
Contributor

⚙️ Backend Memory Usage Report

After GC

Metric Base Head Δ median Δ MAD Δ min Δ max
HeapUsed 83.8 MB
± 0 MB
83.8 MB
± 0 MB
$\text{-0 MB}$
$\text{-0\%}$
0 MB $\text{-0.1 MB}$ $\text{+0 MB}$
Pss 331.8 MB
± 3 MB
326.9 MB
± 3.3 MB
$\color{green}{\text{-4.9 MB}}$
$\color{green}{\text{-1.5\%}}$
3.3 MB $\color{green}{\text{-104.8 MB}}$ $\color{orange}{\text{+2.6 MB}}$
Private_Dirty 270.2 MB
± 3.1 MB
265 MB
± 3.5 MB
$\color{green}{\text{-4.8 MB}}$
$\color{green}{\text{-1.8\%}}$
3 MB $\color{green}{\text{-104.9 MB}}$ $\color{orange}{\text{+2.8 MB}}$
VmRSS 369.7 MB
± 3 MB
364.8 MB
± 3.4 MB
$\color{green}{\text{-5 MB}}$
$\color{green}{\text{-1.3\%}}$
3.4 MB $\color{green}{\text{-104.9 MB}}$ $\color{orange}{\text{+2.6 MB}}$
External 10.7 MB
± 0 MB
10.7 MB
± 0 MB
0 MB
0%
0 MB 0 MB 0 MB

V8 Heap Snapshot Statistics

Metric Base Head Δ median Δ MAD Δ min Δ max
$\color{gray}{\rule{8pt}{8pt}}$ Total 102 MB
± 8.8 KB
102 MB
± 2.7 KB
$\text{-6.8 KB}$
$\text{-0\%}$
32 KB $\text{-48 KB}$ $\text{+25 KB}$
$\color{orange}{\rule{8pt}{8pt}}$ Code24.5% → 24.5%
25 MB 25 MB $\text{-1.5 KB}$ 2.1 KB $\text{-12 KB}$ $\text{+2.9 KB}$
$\color{red}{\rule{8pt}{8pt}}$ Strings42.1% → 42.1%
43 MB 43 MB $\text{-188 B}$ 224 B $\text{-3.6 KB}$ $\text{+644 B}$
$\color{cyan}{\rule{8pt}{8pt}}$ JS arrays4.1% → 4.1%
4.1 MB 4.1 MB 0 B 0 B 0 B 0 B
$\color{green}{\rule{8pt}{8pt}}$ Typed arrays0.5% → 0.5%
533 KB 533 KB 0 B 0 B 0 B 0 B
$\color{yellow}{\rule{8pt}{8pt}}$ System objects2.2% → 2.2%
2.2 MB 2.2 MB $\text{+328 B}$ 4.6 KB $\text{-5.8 KB}$ $\text{+4.9 KB}$
$\color{violet}{\rule{8pt}{8pt}}$ Other JS objs26.5% → 26.5%
27 MB 27 MB $\text{-3.3 KB}$ 29 KB $\text{-46 KB}$ $\text{+32 KB}$
$\color{pink}{\rule{8pt}{8pt}}$ Other non-JS objs0% → 0%
37 KB 37 KB 0 B 0 B 0 B 0 B
Head heap snapshot composition
%%{init: {"sankey":{"showValues":false,"linkColor":"target","labelStyle":"outlined","nodeAlignment":"center","nodePadding":10,"nodeColors":{"Head":"#888888","code":"#f28e2c","bytecode":"#f28e2c","Other":"#888888","strings":"#e15759","string":"#e15759","jsArrays":"#76b7b2","typedArrays":"#59a14f","systemObjects":"#edc949","otherJsObjects":"#af7aa1","array":"#af7aa1","otherNonJsObjects":"#ff9da7"}}}}%%
sankey-beta
"Head","Code",24.51
"Code","bytecode",8.1
"Code","Other",16.41
"Head","Strings",42.15
"Strings","string",41.58
"Strings","Other",0.57
"Head","JS arrays",4.06
"Head","Typed arrays",0.52
"Head","System objects",2.17
"Head","Other JS objs",26.54
"Other JS objs","array",9.74
"Other JS objs","Other",16.8
"Head","Other non-JS objs",0.04
Loading

Download representative V8 heap snapshot (head)

Runtime Loaded JS Footprint

Click to show
Metric Base Head Δ Δ (%)
Loaded JS modules 150 150 0 0%
Loaded JS source 13 MB 13 MB $\color{orange}{\text{+26 B}}$ $\color{orange}{\text{+0\%}}$
External packages loaded 19 19 0 0%
Native addon packages 2 2 0 0%

Largest Newly Loaded Modules

Module Package Loaded JS
packages/backend/built/ApNoteService-B_uhqJcY.js backend 4 MB
packages/backend/built/ServerService-DjkH9hNc.js backend 973 KB
packages/backend/built/endpoints-VVenuDpv.js backend 874 KB
packages/backend/built/MetaEntityService-5dXhp5JB.js backend 627 KB
packages/backend/built/gen-spec-SCm4Vv-6.js backend 57 KB
packages/backend/built/GlobalModule-BUGvhPQp.js backend 52 KB
packages/backend/built/ApInboxService-DdIRWjx5.js backend 18 KB
packages/backend/built/master-C6QoHlD9.js backend 6 KB
packages/backend/built/common-DnVAy_BY.js backend 1.3 KB
packages/backend/built/MainModule-BeBk112I.js backend 1.2 KB

@github-actions

Copy link
Copy Markdown
Contributor

📦 Frontend Bundle Report

Chunk size diff (0 updated, 0 added, 0 removed)

No data

Startup chunk size (0 updated, 0 added, 0 removed)
Chunk Before After Δ Δ (%)
(total) 1.1 MB 1.1 MB 0 B 0%
os ja-JP/oaynS8Knu-DJXqgAhN.js
465 KB 465 KB 0 B 0%
i18n ja-JP/oaynS8Knu-DB_C9YCF.js
216 KB 216 KB 0 B 0%
photoswipe ja-JP/oaynS8Knu-OMfijBv8.js
73 KB 73 KB 0 B 0%
src/_boot_.ts ja-JP/oaynS8Knu-BT5oHEKA.js
63 KB 63 KB 0 B 0%
runtime-core.esm-bundler ja-JP/oaynS8Knu-v_kYKDkM.js
50 KB 50 KB 0 B 0%
MkNotification ja-JP/oaynS8Knu-Bf8oDwtd2.js
23 KB 23 KB 0 B 0%
built ja-JP/oaynS8Knu-DaYzER0Z.js
21 KB 21 KB 0 B 0%
reactivity.esm-bundler ja-JP/oaynS8Knu-CSrO7js8.js
21 KB 21 KB 0 B 0%
store ja-JP/oaynS8Knu-DbieiGlP.js
18 KB 18 KB 0 B 0%
runtime-dom.esm-bundler ja-JP/oaynS8Knu-C7PP-tAz.js
17 KB 17 KB 0 B 0%
tinycolor ja-JP/oaynS8Knu-PEGdpOg42.js
15 KB 15 KB 0 B 0%
achievements ja-JP/oaynS8Knu-eCphU14S.js
10 KB 10 KB 0 B 0%
widgets ja-JP/oaynS8Knu-B7lpOEDE.js
9.7 KB 9.7 KB 0 B 0%
theme ja-JP/oaynS8Knu-BWYNy1sA2.js
8.3 KB 8.3 KB 0 B 0%
MkCustomEmoji ja-JP/oaynS8Knu-CyvNqqG52.js
6.5 KB 6.5 KB 0 B 0%
MkAnimBg ja-JP/oaynS8Knu-Dfu90kEK2.js
4.8 KB 4.8 KB 0 B 0%
common ja-JP/oaynS8Knu-DwRu4wfM2.js
4 KB 4 KB 0 B 0%
MkSwiper ja-JP/oaynS8Knu-CD85dBwY2.js
3 KB 3 KB 0 B 0%
navbar ja-JP/oaynS8Knu-N28lu6PS.js
2.9 KB 2.9 KB 0 B 0%
MkUrl ja-JP/oaynS8Knu-xGQ5Qzeu2.js
2.9 KB 2.9 KB 0 B 0%
MkTabs ja-JP/oaynS8Knu-D6VVDxn82.js
2.8 KB 2.8 KB 0 B 0%
MkCode ja-JP/oaynS8Knu-CYHZ16we2.js
2.7 KB 2.7 KB 0 B 0%
lookup ja-JP/oaynS8Knu-CPUedlan2.js
2.3 KB 2.3 KB 0 B 0%
MkSparkle ja-JP/oaynS8Knu-C04fhV3v2.js
2.2 KB 2.2 KB 0 B 0%
dist ja-JP/oaynS8Knu-IbAMbJNv.js
1.8 KB 1.8 KB 0 B 0%
_dark ja-JP/oaynS8Knu-DfGzfoC32.js
1.8 KB 1.8 KB 0 B 0%
media-proxy ja-JP/oaynS8Knu-DFn3JVOO.js
1.7 KB 1.7 KB 0 B 0%
_light ja-JP/oaynS8Knu-D67CB4xl.js
1.7 KB 1.7 KB 0 B 0%
hotkey ja-JP/oaynS8Knu-CBolqMYr.js
1.6 KB 1.6 KB 0 B 0%
is-birthday ja-JP/oaynS8Knu-cuedjN9z2.js
1.5 KB 1.5 KB 0 B 0%
MkStickyContainer ja-JP/oaynS8Knu-BICKXuNT2.js
1.4 KB 1.4 KB 0 B 0%
config ja-JP/oaynS8Knu-DNtzj-qY.js
1.3 KB 1.3 KB 0 B 0%
preload-helper ja-JP/oaynS8Knu-DyAp3Zfi.js
1.3 KB 1.3 KB 0 B 0%
MkLoading ja-JP/oaynS8Knu-DndTpCB22.js
1.1 KB 1.1 KB 0 B 0%
MkInfo ja-JP/oaynS8Knu-CBDgVQnS.js
1 KB 1 KB 0 B 0%
webgl ja-JP/oaynS8Knu-wb3e_Vqx2.js
1 KB 1 KB 0 B 0%
use-scroll-position-keeper ja-JP/oaynS8Knu--oyyt7aZ2.js
990 B 990 B 0 B 0%
misskey-api ja-JP/oaynS8Knu-BR1jNBEn.js
986 B 986 B 0 B 0%
instance ja-JP/oaynS8Knu-DJdbbAdo.js
918 B 918 B 0 B 0%
get-note-summary ja-JP/oaynS8Knu-Bkk3eQW_.js
704 B 704 B 0 B 0%
rolldown-runtime ja-JP/oaynS8Knu-QTnfLwEv.js
694 B 694 B 0 B 0%
page ja-JP/oaynS8Knu-DVxDvZ4C.js
688 B 688 B 0 B 0%
i ja-JP/oaynS8Knu-AFJdxzxK.js
631 B 631 B 0 B 0%
clear-cache ja-JP/oaynS8Knu-D7_slxOj2.js
472 B 472 B 0 B 0%
emoji-base ja-JP/oaynS8Knu-BVbfT0gI2.js
413 B 413 B 0 B 0%
d-green-lime ja-JP/oaynS8Knu-DEHvjKGz.js
391 B 391 B 0 B 0%
use-interval ja-JP/oaynS8Knu-B5BnI2fD.js
384 B 384 B 0 B 0%
l-light ja-JP/oaynS8Knu-B8GJAiDX.js
351 B 351 B 0 B 0%
user ja-JP/oaynS8Knu-ByMYRwAL.js
205 B 205 B 0 B 0%
get-bg-color ja-JP/oaynS8Knu-DpyGyEl72.js
190 B 190 B 0 B 0%
isChromatic ja-JP/oaynS8Knu-Dd9satMa2.js
172 B 172 B 0 B 0%
is-device-darkmode ja-JP/oaynS8Knu-CHGi6RJT2.js
93 B 93 B 0 B 0%
_plugin-vue_export-helper ja-JP/oaynS8Knu-BDNMzG2s.js
84 B 84 B 0 B 0%

Startup chunks are the Vite entry for src/_boot_.ts and its static imports.

Bundle Stats

Bundles Modules Entries Imports Size
Static Dynamic Rendered Gzip Brotli
Before 466 2,850 21 8,592 324 10 MB 2.8 MB 2.4 MB
After 466 2,850 21 8,592 324 10 MB 2.8 MB 2.4 MB
Δ 0 0 0 0 0 $\text{-101 B}$ $\text{-61 B}$ $\text{+37 B}$
Δ (%) 0% 0% 0% 0% 0% $\text{-0\%}$ $\text{-0\%}$ $\text{+0\%}$

Open treemap HTML

@syuilo syuilo merged commit 4f993ce into misskey-dev:develop Jun 27, 2026
44 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in [実験中] 管理用 Jun 27, 2026
@syuilo

syuilo commented Jun 27, 2026

Copy link
Copy Markdown
Member

👍

@kakkokari-gtyih kakkokari-gtyih deleted the enh-support-node-24-26 branch June 27, 2026 15:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

packages/backend:test packages/backend Server side specific issue/PR packages/frontend Client side specific issue/PR packages/misskey-js size:S This PR changes 10-29 lines, ignoring generated files.

Projects

Development

Successfully merging this pull request may close these issues.

node 24でnsfwjsがメモリリークする

2 participants