Skip to content

Latest commit

 

History

History
39 lines (33 loc) · 3.8 KB

File metadata and controls

39 lines (33 loc) · 3.8 KB

AGENTS.md

プロジェクト概要 / Overview

  • WEKO3は研究成果の公開を行うためのリポジトリソフトウェアである。Git等の所謂コードのためのリポジトリとは異なるソフトウェアで、ウェブデータベースアプリケーションに近い概念のソフトウェアである。基本的な機能は研究成果とメタデータと呼ばれる研究成果の説明情報を一緒に保存し、表示、検索、配布する機能がある。外部システム連携のためのAPIを備える。
  • フレームワーク(バックエンド): Invenio 3. Invenio3は Flask 1.0.4 をベースにしている。(Python 3.6)
  • フレームワーク(フロントエンド): React, Anguler JS, JQuery
  • 利用ミドルウェア: PostgreSQL 12.x(データベース), Pgpool-II 4.2.2(データベースクラスタ用), Elasticsearch 6.8.23(検索用),Redis 7.4.1(セッション、キャッシュ管理用),RabbitMQ 4.0.2(メッセージキューイング用), nginx 1.20.1(ウェブサーバ用), shibboleth-sp(認証用),CNRI Handle Server(CNRIハンドル発行用)
  • 主要ライブラリ: Invenio 3 Framework(API,Web API用), Celery + RabbitMQ(タスクキュー)
  • 環境設定: 環境変数は docker-compose2.yml ファイルで管理(機密情報はコードに直書きしない)。サーバ固有の設定は scripts/instance.cfg に記載する。

開発環境セットアップ / Development Setup

  • dockerを利用する。
  • リポジトリのクローン後、install.sh コマンドを実行すると、環境構築が開始される。
  • 環境構築後、https://127.0.0.1/ でサーバにアクセスすることができる。

テストの実行方法 / Testing

  • ユニットテストを実行: python manage.py test
    (またはpytest使用時: pytest
  • 新機能を追加した際は必ず対応するテストコードを追加してください
  • テストが全てパスすることを確認してから変更を確定します

コードスタイル / Code Style

  • コーディング規約: PEP8に準拠 (スタイルガイドの遵守)
  • フォーマッター: Black を使用(black . でソースコードを整形)
  • リンター: Flake8 を使用(flake8 で静的解析チェック)
  • インポート順の整理: isort を使用(isort . でインポート並び替え)
  • これらのフォーマットチェックはコミット前に必ず実行し、指摘がない状態にしてください

セキュリティ方針 / Security

  • 秘密情報は厳重に管理: APIキーやパスワードなど秘密情報は.envや環境変数から読み込み、絶対にGitに含めないでください
  • ユーザ入力の検証: フォームやAPIで受け取る入力はDjangoのバリデーション機構で適切に検証してください
  • デバッグ設定: 開発中以外ではDEBUG = Falseに設定し、エラーページや機密情報が漏洩しないようにします
  • 依存パッケージ: 新しいパッケージを導入する際はセキュリティ面を確認し、必要に応じてチームの承認を得てください

プルリクエストガイドライン / PR Guidelines

  • タイトル形式: feat: 機能概要 のように、プレフィックスと簡潔な説明を書いてください
  • 事前チェック: コードを提出する前に flake8pytest を実行し、エラーやテスト失敗がないことを確認しましょう
  • 差分の範囲: 1つのPRは関連する変更に留め、小さくまとまった変更を心がけてください(大規模な変更は分割を検討)
  • 説明コメント: PRの説明欄には変更内容と目的、動作確認の方法を簡潔に記述してください