おやさい鯖の開発を行っているモノレポです。インフラからプラグインまで、幅広く開発しています。
オープンソース・クローズドコントリビューションです。貢献に興味がある方は Discord1に参加して、サーバーに慣れてきたらぜひ運営チームに声をかけてください。
脆弱性を発見した場合も Discord1でご連絡ください。
Important
Windows ユーザーはWSLをインストールしてください。全ての作業は WSL 内で行います。
開発には Nix を使用しています。Nix の使用を推奨しますが、基礎的なプラグイン開発のみの場合、Nix を使用しない開発も可能です。
-
nixos.org から Nix をインストールしてください。マルチユーザーを推奨しますが、シングルユーザーでも問題ありません。インストール後にターミナルを再起動してください。
-
いくつかの実験的要素を有効化する必要があります。
experimental-features = nix-command flakesこの行を、マルチユーザーの場合は
/etc/nix/nix.confに、シングルユーザーの場合は~/.config/nix/nix.confに追加してください、 -
このレポジトリ内で
nix flake showと実行してください。エラーが出なければ成功です。 -
nix developと実行してください。これが開発シェル (devshell)、Java など開発に必要なツールが全て入っています。 -
Nix を使用してくると、キャッシュが溜まっていきます。定期的に
nix-garbage-collect -dと実行して、キャッシュをクリアしてください。
nix fmtフォーマットされていないコードは受け付けられません。
Warning
Nix を使用しない開発は非推奨です。限定的なプラグイン開発のみ可能です。開発チームは正式にサポートしません。
Java (JDK) 25をインストールしてください。
javac --version # javac 25 と出れば成功./gradlew fmtフォーマットされていないコードは受け付けられません。Nix を使用しない開発では、Kotlin ファイルのみフォーマット可能です。
./pluginsで開発を行います。
全てのプラグインを並列でビルドするには、レポジトリのルートから:
./gradlew build --parallel特定のプラグインのみビルドしたい場合は:
./gradlew :plugins:<plugin-name>:build<plugin-name>をビルドしたいプラグインの名前に変更してください。
Nix でビルドする場合は:
nix build .#oyasai-plugins -L全てのプラグインが並列でビルドされますが、passthru経由で独立したプラグインにアクセスできます。
Gradle Version Catalog
を使用して、プロジェクト内のバージョンを一貫させています。依存関係を変更したい場合は、./gradle/libs.versions.tomlを編集してください。
依存関係を変更した場合(依存を追加・削除、バージョンの変更、など)、依存のロックが必要です。
./gradlew lockgradle.lockが再生成されます。
./packages以下はそれぞれビルド可能なパッケージです。Docker イメージ、実行可能なバイナリ、Gradle
Plugin 等、Nix でビルド可能な様々なパッケージが入っています。
nix build .#<package-name>でビルドできます。