gqlgencをgqlgo organizationに移行しました

に公開

はじめに

GraphQL Code Generator for Go、gqlgencgithub.com/Yamashou/gqlgenc から github.com/gqlgo/gqlgenc に移行しました。

https://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で発表しました。

https://gocon.jp/2021spring/sessions/session-a8-s/

発表内容はlogmiで記事化されています:

当時、GoのGraphQLクライアントライブラリはJSON取得機能のみを提供するものが多く、開発者が手動でデータ構造体へのマッピングや型定義を行う必要がありました。

以前Protocol Buffersを使っていた際は、サーバー・クライアント両方のコードを自動生成できていました。GraphQLに移行するにあたり、同じワークフローを維持したいという思いから開発したのがgqlgencです。

主な特徴:

  • GraphQLスキーマのイントロスペクションによる自動取得
  • クエリから型安全なGoコードを生成
  • gqlgenのプラグインシステムとの統合

なぜ移行したか

gqlgo organizationとは

gqlgoは、GraphQLのGo製ツールチェーンを提供するorganizationです。弊社Stackのメンバーや、gqlgenなどを利用している方々によって運営されています。

https://github.com/gqlgo

移行を決めた理由

gqlgencはStackのサービス開発でも多くの場所で利用されています。個人リポジトリに置いておくよりも、organizationに置くことで、より多くの人に気軽に開発に参加してもらえるのではないかと考えました。

正直なところ、仕事の合間にメンテナンスできるタイミングは年に1〜2回あるかないかという状況で、新機能の追加や問題の解決が追いついていませんでした。社内から上がる要望にも対応しきれていない部分があり、これは個人でメンテし続ける限界を感じていました。

OSSメンテナーとしての4年間

2021年から約4年間、個人で開発・メンテナンスしてきました。

自分たちが使う範囲では大きな問題はなく、ちまちま直していけばよかったのですが、外部のユーザーが増えてくると話が変わってきます。本当に直すべき問題と、正直なところ「それは言いがかりでは...」と思うようなIssueの両方に対応しなければならず、これがなかなか大変でした。

移行プロセス

GitHubのリポジトリ転送機能を使って移行しました。

https://docs.github.com/ja/repositories/creating-and-managing-repositories/transferring-a-repository

2025年12月31日に移行完了。年内に終わらせることができてよかったです。

今後について

移行によって、より多くの方に開発に参加してもらえることを期待しています。

gqlgencは現在395スター。これからもGoでGraphQLを使う方々の開発体験を良くしていければと思います。

Discussion