gqlgencをgqlgo organizationに移行しました
はじめに
GraphQL Code Generator for Go、gqlgencを github.com/Yamashou/gqlgenc から github.com/gqlgo/gqlgenc に移行しました。
利用者の方は、import pathを以下のように変更してください:
// Before
import "github.com/Yamashou/gqlgenc/..."
// After
import "github.com/gqlgo/gqlgenc/..."
※ GitHubのリポジトリ転送機能により、旧URLへのアクセスは自動的にリダイレクトされます。
gqlgencとは
gqlgencは、GraphQLクエリからGoのクライアントコードを自動生成するツールです。
2021年のGo Conference 2021 Springで発表しました。
発表内容はlogmiで記事化されています:
当時、GoのGraphQLクライアントライブラリはJSON取得機能のみを提供するものが多く、開発者が手動でデータ構造体へのマッピングや型定義を行う必要がありました。
以前Protocol Buffersを使っていた際は、サーバー・クライアント両方のコードを自動生成できていました。GraphQLに移行するにあたり、同じワークフローを維持したいという思いから開発したのがgqlgencです。
主な特徴:
- GraphQLスキーマのイントロスペクションによる自動取得
- クエリから型安全なGoコードを生成
- gqlgenのプラグインシステムとの統合
なぜ移行したか
gqlgo organizationとは
gqlgoは、GraphQLのGo製ツールチェーンを提供するorganizationです。弊社Stackのメンバーや、gqlgenなどを利用している方々によって運営されています。
移行を決めた理由
gqlgencはStackのサービス開発でも多くの場所で利用されています。個人リポジトリに置いておくよりも、organizationに置くことで、より多くの人に気軽に開発に参加してもらえるのではないかと考えました。
正直なところ、仕事の合間にメンテナンスできるタイミングは年に1〜2回あるかないかという状況で、新機能の追加や問題の解決が追いついていませんでした。社内から上がる要望にも対応しきれていない部分があり、これは個人でメンテし続ける限界を感じていました。
OSSメンテナーとしての4年間
2021年から約4年間、個人で開発・メンテナンスしてきました。
自分たちが使う範囲では大きな問題はなく、ちまちま直していけばよかったのですが、外部のユーザーが増えてくると話が変わってきます。本当に直すべき問題と、正直なところ「それは言いがかりでは...」と思うようなIssueの両方に対応しなければならず、これがなかなか大変でした。
移行プロセス
GitHubのリポジトリ転送機能を使って移行しました。
2025年12月31日に移行完了。年内に終わらせることができてよかったです。
今後について
移行によって、より多くの方に開発に参加してもらえることを期待しています。
gqlgencは現在395スター。これからもGoでGraphQLを使う方々の開発体験を良くしていければと思います。
Discussion