firefish/docs/contributing.md
2024-01-14 19:48:41 +09:00

91 lines
2.8 KiB
Markdown

# 開発への協力方法
これは個人的なフォークなので、基本的には本家 Firefish の開発に協力してもらえればと思います。ただし、最近は本家 Firefish へのマージリクエストのマージが滞りがちですし、本家版にいきなり貢献するのはハードルが高いと思ったりマージしてもらえるか分からないニッチな機能を作ったりした場合にはこのフォークへ貢献していただいてもよいです。
現状、マージリクエストを直接送る方法が無いので patch ファイルまたは別のサイトにフォークしたリポジトリに追加したコミットへの URL を[私](https://post.naskya.net/@dev)に送ってください。
## 開発の方法
### 環境構築
1. 以下のソフトウェアをインストールする
- podman
- podman-compose
- make
- nodejs
- pnpm
- shellcheck
- sea-orm-cli
2. 以下の内容の `dev/docker-compose.yml` を作成する
```yaml
version: "3"
services:
redis:
image: docker.io/redis:7-alpine
ports:
- "6379:6379"
db:
image: docker.io/groonga/pgroonga:latest-alpine-16
environment:
- "POSTGRES_PASSWORD=password"
- "POSTGRES_USER=firefish"
- "POSTGRES_DB=firefish_db"
ports:
- "5432:5432"
```
3. コンテナを起動し、PGroonga を有効化する
```bash
cd dev
podman-compose up --detach
podman-compose exec db --user=firefish --dbname=firefish_db --command='CREATE EXTENSION pgroonga;'
```
4. 以下の内容の `.config/default.yml` を作成する
```yaml
url: http://localhost:3000
port: 3000
db:
host: localhost
port: 5432
db: firefish_db
user: firefish
pass: password
redis:
host: localhost
port: 6379
```
コンテナを作り直すと簡単にデータベースを初期化できます。
```bash
cd dev
podman-compose down --volumes
podman-compose up --detach
podman-compose exec db --user=firefish --dbname=firefish_db --command='CREATE EXTENSION pgroonga;'
```
参考にした記事: [Firefish 開発環境の準備(バックエンド向け)](https://hackmd.io/@nmkj-io/HJHNbM_8a)
### 実行
```bash
make debug
```
### コミット前に行う確認
```bash
make pre-commit
```
## 注意事項
データベースのマイグレーションを伴う変更を加える場合にはマイグレーションのファイルを [`packages/backend/migration-neko`](https://code.naskya.net/naskya/firefish/source-by/main/packages/backend/migration-neko) の下に作成し、マイグレーションを打ち消す SQL クエリを [`neko/revert.sql`](https://code.naskya.net/naskya/firefish/source-by/main/neko/revert.sql) の**一番上に**追記してください。