Redmine View Customize Plugin のコード例を整理しました

Redmine Advent Calendar 2021 - Adventar の7日目の記事になります。


View customizeのコード例を雑多に置いていたプロジェクトを整理しました。

View customizeとRedmineのバージョンが上がっていくにつれ、

  • もっと簡潔に書けるようになっている
  • Redmine自体に機能として用意されたので利用する意味がなくなった

ということがあったので、2021年9月頃から少しずつ整理をはじめ、最近その整理が一通り完了しました。

やったことは下記になります。

  • View customizeとRedmineともに最新のバージョンを対象にコードを書き直し
  • 既にRedmine自体に存在するものは削除
  • 全ての例に画面キャプチャ(アニメーションの方がわかりやすい場合はアニメーションGIF)を用意
  • 英語+日本語で書くように(といっても文章は少なめで💦)

また、トップページに注意事項等も明記するようにしました。

  • 「このプロジェクトはView customizeのコードの書き方やコード例に関する質問をする場所で、コード作成を依頼する場所ではありません」
    • 連続して同じようなものを教えて欲しい&作って欲しい的なのが来てしまい、どうやら自分でまったくコード試してなさそうだな、、ってのがあったので、念のためです💦
    • View customizeをいろんな人に使って欲しいと思っていて、出来るだけサポートしたいので、試してわからないことは気兼ねなくお尋ねください。
  • 「このプロジェクトではPull Requestを受け付けていません」
    • 他の方に作成していただいたスクリプトを確認し、また、今後もメンテナンスしていくのは今の時点だと困難だな、、と判断したためです。
      コミニティでメンテナンスしていくような仕組みが作れたらと思ったこともありますが、今の時点では気楽にやれる方法をとりたいと思います。
      • コミニティでやるならば、コード登録は自由で、それに対して他の人が自由にコメントできるようなものが良いなぁと思っているので、やるならば別の場所を用意するなど考えたいなと。
  • 「GitHubスポンサーとしてのプロジェクト支援を受け付けています」
    • もしもこれが役立って何かしたいってときにはぜひ!

古いコードについて

昔のものは下記に移動しています。

移動したことによって、他のサイトからのリンク切れが発生していると思います。
古いのを探していただくより、新しく書き直したものをみてもらった方が良いと思いますので、リンク切れしている場合はトップページから探していただけると幸いです。

今後について

引き続き問い合わせがあったり、自分で試したものは残していけるようにしたいと思っています。
Tips的なものも書いていって、ここを見てね!って感じで済ませられるものが増やせたらなと。

Redmine issue assign notice plugin の v2.0.0 をリリースしました

チケットの担当者が変わったときに、SlackやRocket.Chat、Teamsなどに通知するプラグイン、Redmine issue assign notice pluginのv2.0.0をリリースしました。

Redmineのtrunk(r21289)でも動作するようにしています。

Redmine: View customize plugin の v3.0.0 をリリースしました

View customize plugin の v3.0.0 をリリースしました。

下記2つの対応を行っています。

  • Zeitwerk が有効になった場合に動作しない箇所の修正
  • ViewCustomize.contextにプロジェクトのIDを追加

Zeitwerk が有効になった場合に動作しない箇所の修正

Redmineのtrunkに最近入った下記対応でView customizeが動かなくなっていたので、動くように修正しました。
ファーエンドテクノロジーの前田さんからIssue、石川さんからPull Requestをいただきました。ありがとうございます。

Zeitwerk が有効になったことで、クラスのロードの仕組みが変わり、ロードに失敗していました。
なお、修正後のものは、Zeitwerk が有効になる前でも動きます。(元々の書き方があまり良くなく、Zeitwerkによってロードに失敗するようになった)

ViewCustomize.contextにプロジェクトのIDを追加

プロジェクトが1つしかない場合、プロジェクトのセレクトボックスがチケット編集画面で表示されないため、プロジェクトIDを簡単に取得する方法がありませんでした。
あまり使うことない(プロジェクトのidentifierは既に提供しており、たいていそちらで事足りる)のですが、プロジェクトIDの方がサンプルとして説明しやすいことがあったので、今回追加することにしました。

ViewCustomize.context.project.id で取得できます。

社内勉強会で「今からでも遅くないDBマイグレーション」というタイトルで発表しました

社内勉強会で「今からでも遅くないDBマイグレーション」というタイトルで、FlywayとSchemaSpyの紹介をしました。

FlywayはCLIツール&SQLで書くので、DBマイグレーションやっていなかったプロジェクトに途中から入れる時も敷居がとても低いと思います。 SchemaSpyはDB定義(特にリレーションシップ)を確認するのにとても便利なドキュメント生成ツールなのですが、これがなんでGitHubでスターが2K程度しかついていないのか理解できないくらいに便利です。

Online Bookmark Incremental Search の v2.0.3 をリリースしました

Online Bookmark Incremental Search の v2.0.3 をリリースしました。
大量のブックマークがあると、Chrome版でlocalStorage APIの制限(5,242,880バイト)に引っかかり、ブックマークが保存されないという問題に対応しています。

unlimitedStorage という権限を付けると、制限を回避できるので、それで対応しています。

問い合わせのあった方は、4万件のブックマークがあり、この制限に引っかかっていました。

Online Bookmark Incremental Search の v2.0.2 をリリースしました

Online Bookmark Incremental Search の v2.0.2 をリリースしました。
はてなブックマークで動作しなくなっていたのを修正しています。

Online Bookmark Incremental Search は、オンラインブックマーク(Google Bookmarks, Pinboard, はてなブックマーク)をインクリメンタルサーチする拡張機能です。
ChromeとFirefox版の2つをリリースしています。

Firefox側でのコメントで、はてなブックマークで動作しないってあったので、今回の問題に気が付きました。
はてなブックマークが常時https化されたタイミング(2019年5月28日)から動いていないと思うので、はてなブックマークで使っている人はいなさそうです。

Googleブックマークも今月末で終了なので、この拡張機能を使う人もほとんどいないのかもしれませんね、、