やったこと
これまで Emacs を使ってる中で 「動いてれば良し」の精神でパッケージ更新は基本的にやってなかったけど それもまあ健全じゃないよな〜ってことで腹を括ってアップデート祭を行った
前提
パッケージ管理には el-get を使っていて さらに el-get-lock で lock も掛けられる状態にしていた。 もちろん lock できるのは el-get-lock の制限を超えられないが、 それでも多くのパッケージは lock がかけられる状態になっていた
方針
- できるだけ1つずつアップデートを掛けていく
- 全部まとめてアップデート案もあったけど、色々なものが動かなくなってわけわからんって状態になりそうだった & やってみたらやっぱりそうなったのでそれは諦めた
- もちろんパッケージによっては1つだけ更新ってわけにもいかないので、そういうやつはまとめて対応
- Magit 周りとかね
- アップデート時には差分か CHANGELOG を極力チェックする
- 差分が大き過ぎてつらいやつはその限りではない
- アップデートかけて Emacs を再起動して影響がありそうな機能を触ってみて問題がないかのチェックを毎度する
- 少しずつ更新する中でこれが結構しんどかった。差分チェックもだけど。
事前準備
el-get-lock で lock も掛けられる状態にしていた。
という前提のために、一旦できる限り lock をかけていった。 その過程で誤って最新化されたのもあるけど、まあしょうがないってことで許容してたりする。
- https://github.com/mugijiru/.emacs.d/pull/84
- https://github.com/mugijiru/.emacs.d/pull/86
- https://github.com/mugijiru/.emacs.d/pull/87
- https://github.com/mugijiru/.emacs.d/pull/88
- https://github.com/mugijiru/.emacs.d/pull/90
あたりで諸々 lock をかけていってる。 PR の途中の番号で抜けてるところでも関連する作業をしている。
実施作業
https://github.com/mugijiru/.emacs.d/pull/91 から https://github.com/mugijiru/.emacs.d/pull/149 までの PR が ほとんどアップデート作業の記録。
Magit 関連は https://github.com/mugijiru/.emacs.d/pull/116 でまとめて更新している 差分を見て「わからん」としている部分が多いがあまり更新してなかったので仕方ない
作業した感想など
- lock から考えると3週間費したので疲れた
- ほぼ週末しか作業してないけどね
- 更新時の差分チェックは結構楽しかった
- チェックした内容ほとんど覚えてないけどなっ
- そもそも lock が Emacs のパッケージシステムと相性が良くはないのでちょっと考え直したいところはある
- とはいえ更新した時に元からどれだけ変わったのかが分かるのは便利
その後
とりあえず全体最新化できたので 毎週アップデートしていける状態にもっていけた。 現時点で既に2回の週次アップデートを実施していて良さげな感覚を抱いている。
ただ、週次でも差分チェックがだるいなとは感じてるので、 毎日アップデートでも良いかもしれない。
何年も続いている私の Emacs パッケージ管理方法 / マスタカの ChangeLog メモ
https://masutaka.net/chalow/2020-07-24-1.html