Plan 9とGo言語のブログ

主にPlan 9やGo言語の日々気づいたことを書きます。

2023-01-01から1年間の記事一覧

Goで非推奨(Deprecated)や撤回(Retracted)を明示する方法

Go

最近のGoには、関数やパッケージを非推奨と扱う方法があります。まとまっていると便利かなと思うので、種類ごとにまとめてみました。GoDocコメントを多用するので、GoDocを書き慣れていない場合は以下も参考にしてください。 blog.lufia.org 関数と型を非推…

GitHub ProjectsのTracksとTracked byを設定する

GitHub ProjectsにはTracksフィールドとTracked byフィールドがあります。 フィールド選択のところで確認できます これらのフィールドは、新しいタスクリストでissueやプルリクエストを追加すると追跡の対象となります。 ```[tasklist] ## Tasks - [ ] #1234…

systemd-homed環境でユーザーにログインできなくなる原因と対処

ここ数年はLinuxデスクトップで生活しているが、たまにユーザー環境へログインできなくなることがあった。 症状 これまで何の問題もなく動いていたが、再起動した後に突然ログインできなくなる。gdm を使っているけれども、パスワード入力のあと何のエラーも…

Goの型パラメータを使って型付きバリデータを作っている

Go

型パラメータ(generics)とerrors.Joinを使ってバリデータを作っています。 github.com 経緯 Goで値のバリデーションを行う場合、有名なライブラリには以下の2つがあります。 go-playground/validator go-ozzo/ozzo-validation go-playground/validator はよ…

GitHubの複数リポジトリで共通したワークフローを(ある程度)まとめて管理する

TL;DR Reusable workflowにタグを付けて、参照する側のリポジトリはDependabotなどで更新するといいと思う リポジトリごとにDependabotのプルリクエストをマージする手間は必要になる GitHub Actionsのscheduleトリガーでcron式を書けるが、60日以上更新がな…