RenovateでDenoの依存ライブラリをアップデートしてみた

1.4K Views

May 15, 24

スライド概要

2024-05-15 toranoana.deno #16の発表資料

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

RenovateでDenoの依存ライブラリをアップデート してみた 2024-05-15 toranoana.deno #16 1/18

2.

あなたは誰 Name: Omochice Twitter: @omochicemgr GitHub: Omochice Hobby: Vim 2/18

3.

Denoの依存を追いかけるの辛くないですか? 3/18

4.

deno.land/stdの更新頻度 Version Date 0.224.0 2024-04-25 0.223.0 2024-04-15 1, 2週間に1回程度リリースされている 0.222.1 2024-04-11 0.222.0 2024-04-11 0.221.0 2024-03-27 0.220.1 2024-03-15 0.220.0 2024-03-14 4/18

5.

手で依存を更新するのは大変なので自動化したい 5/18

6.

自動で依存をアップデートするツール hayd/deno-udd boywithkeyboard/updater drashland/dmm hasundue/molt Dependabot renovatebot/renovate ... 6/18

7.

数が多いので端折ります 7/18

8.
[beta]
udd, updater, dmm
正規表現ベースや文字列一致で依存を探す
本来反応して欲しくない部分(コメントアウト等)にも反応してしまう
import { join } from "jsr:@std/[email protected]/join";
// https://deno.land/[email protected]/path/join.ts // ここにもマッチしてしまう

8/18

9.

molt deno_graphで依存グラフを作ってからアップデート確認をする コメントアウトされている部分や文字列に反応しない 9/18

10.

Dependabot GitHubの機能として提供されている リポジトリの設定をGUIでやれば動く Rubyで書かれている(はず) 他のツールのアップデートもできる 最近コア部分がOSSになった dependabot-core is now open source with an MIT license - The GitHub Blog denoに対応させられるかは不明 10/18

11.

Renovate GitHubのApplicationとして提供されている 正規表現ベース 他のツールのアップデートもできる 11/18

12.
[beta]
作ったやつ
renovate-config
RenovateでDenoの依存関係をアップデー
トする

{

https://deno.land/
npm: ,

jsr:

"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"github>Omochice/renovate-config:deno"
]

}

deno.jsonc のimport map
deno.lock はアップデートできない

12/18

13.

実際に動いているところ chore(deps): update dependency https://deno.land/std to v0.223.0 by renovate[bot] · Pull Request #63 · Omochice/deno-redmine 13/18

14.

半年ほど使ってみての所感 自動で更新がされるので都度手であげて動作を確認しなくてよくなった deno check が通るMinorとかPatchは自動で更新している denoが型チェッカー内蔵なのがありがたい checkが落ちてても軽微なバグなら直しにいける fix(deno): fix missing extensions by Omochice · Pull Request #387 · fabian-hiller/valibot 14/18

15.

困っていること(1/2) Renovateでの deno.land/std/ から jsr:@std/ への置き換え パッケージが std から std/foo になる [email protected]/assert が std/[email protected] になってしまう [email protected]/assert/assert.ts を std/[email protected]/assert にしない といけない jsonで表現しないといけない 15/18

16.

困っていること(2/3) deno.lock の更新 renovateでlockfileを更新するAPIはあるがself-hostedなrenoveteじゃ ないと動かなそう Configuration Options - Renovate Docs 16/18

17.

困っていること(3/3) jsrのnpm互換のAPIの情報が足りない npm compatibility registry API 公開されてからの時間とかリリースノートとかの情報が入っていない chore(deps): update dependency @std/path to v0.224.0 by renovate[bot] · Pull Request #94 · Omochice/tataku.vim 17/18

18.

サマリ HEADを追いかけるのは大変 アップデートは自動でやりたいね Renovateで更新させてみたら便利だった いくつか不満点もある 18/18