ちょっと話題の記事

AWSサービス名typo防止用のRaycast拡張機能をStoreに公開してみた

前回作ったRaycastの拡張機能をStoreに公開してみました!Reactによる開発自体も楽しいですし、業務効率化にもピッタリだと思います!初めてのOSS活動にも良さそうなので、ぜひご検討ください!
2023.05.02

こんにちは。AWS事業本部コンサルティング部に所属している今泉(@bun76235104)です。

前回の記事でAWSのサービス名のtypo防止のためのtextlintルールをRaycastの拡張機能として自作しました。

今回の記事ではいろいろな方に利用していただけるように、Raycastの拡張機能のStoreに公開してみました!

公開までの経緯や公開している拡張機能についてまとめてみたいと思います。

公開している拡張機能について

Raycast Store: Textlint AWS Service Nameにて拡張機能をダウンロードできます。

使い方はシンプルです。

  • 上記Storeから拡張機能をインストール
  • Inputの欄にチェックしたい文章を入力
  • cmd+enterを押下
  • 修正後の文章がクリップボードにコピーされる
    • Check Resultに指摘内容が表示される
    • 修正後の文章がCopied Resultに表示される(クリップボードにコピーされた内容)

20230502_raycast_textlint_image

公開までの経緯について

ざっくり手順のまとめ

  • raycast/extensionsをforkする
  • forkしたリポジトリをgit clone
  • Create Your First Extension - Raycast APIに従って拡張機能のテンプレートをcloneしたリポジトリのextensionsの直下に配置する
  • テンプレートを変更し、機能を作り込んでいく
  • Prepare an Extension for Store - Raycast APIに従って命名規則などを合わせる
  • git pushしてPullRequestを作成する
  • CICDによる命名規則のチェックなどを通過して、コアコントリビューターのレビューを待つ(5日程度かかりました)
  • 無事にマージされれば公開されます

なお、公開までにあたってryo_kawamataさんがzennに公開している以下記事が非常に参考になりました。

拡張機能の開発

RaycastのStoreに拡張機能を公開するにはraycast/extensionsのリポジトリにてPullRequestを作成してマージされる必要があります。

まずはこのリポジトリをforkします。

20230502_raycast_textlint_fork_repo

forkしたリポジトリをgit cloneすると、以下のようなディレクトリ構成になっています。

.
├── docs
├── examples
├── extensions #ここにさまざまな拡張機能が配置されている
├── images
├── migrations
├── scripts
└── templates

extensionsフォルダの直下に自作の拡張機能を配置します。

拡張機能のテンプレートを作成するまでの流れはRaycast自作の拡張機能でAWSサービス名のtypoをサクッと確認・修正できるようにしてみた | DevelopersIOをご参照ください。 (Create Your First Extension - Raycast APIに従ってRaycastからテンプレートを作成できます)

すでに自作の拡張機能を始めている場合はextensionsのフォルダ配下に配置し直しましょう。

以下のような形になります。

.
├── docs
├── examples
├── extensions
# (略)さまざまな拡張機能
│   ├── textlint-rule-aws-service-name #自作の拡張
# (略)さまざまな拡張機能
├── images
├── migrations
├── scripts
└── templates

ここから機能を作り込んでいきます。

私が作成した拡張機能は以下ディレクトリに格納しているため、興味のある方はご参照ください。

公開前の準備

Prepare an Extension for Store - Raycast APIを参考にして拡張機能の命名規則などを確認します。

このあたりについてはPullRequest作成時にCICDによるチェックもされるので、事前によく確認しておいた方が良さそうです。

問題なければgit pushしてfork元のraycast/extensionsにPull Requestを作成します。

2023年5月2日時点ではPull Request作成における規則やテンプレートはないようですので、既存のPullRequestを参考に作成しました。

作成の後はコアコントリビューターによるレビューを待つのですが、かなり多忙な中、私の場合5日ほどでレビューをいただきました。

レビューだけでなく機能改修をしたうえで「変更する必要があるか確認してくださいね」的なメッセージをいただき、とてもすばらしい対応をしていただきました。

20230502_raycast_textlint_comments_histroy

私が作成したものをよりすごい人が改修してくれる。これぞOSSの醍醐味ですね。

無事マージされるとStoreに公開されます!

まとめ

  • RaycastはTypeScript + Reactで拡張機能の開発ができる
  • Storeへ公開する場合、raycast/extensionsにてPullRequestを作成する
  • 最低限動くものをRaycast Store: Textlint AWS Service Nameにて公開したので、隙間を見つけて改修していきます
  • 拡張作成も簡単で、業務効率化にちょうど良いので今後も何かツールを作成していきたい

既存の拡張機能へのコントリビュートもできるので、「何かOSS活動をしてみたいけど、巨大なプロジェクトに手を出すのは大変そうだな」という方にもぴったりかもしれません!

みなさんもぜひ拡張機能を探したり、なければ自分で作ってみてください!

このブログが誰かの時間を1秒でも削減すればうれしいです。

以上、今泉でした。