Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
Sunwood-ai-labs committed Feb 2, 2025
2 parents cb63e62 + 0bb64b5 commit 28dd939
Show file tree
Hide file tree
Showing 24 changed files with 1,185 additions and 216 deletions.
78 changes: 44 additions & 34 deletions .SourceSageignore
Original file line number Diff line number Diff line change
@@ -1,38 +1,48 @@
.git
__pycache__
LICENSE
output.md
assets
Style-Bert-VITS2
output
streamlit
SourceSage.md
data
# バージョン管理システム関連
.git/
.gitignore
.SourceSageignore
*.png
Changelog
SourceSageAssets
SourceSageAssetsDemo
__pycache__
.pyc

# キャッシュファイル
__pycache__/
.pytest_cache/
**/__pycache__/**
modules\__pycache__
.svg
sourcesage.egg-info
.pytest_cache
dist
build
.SourceSageAssets
docs
.Gaiah.md
.env
STAGE_INFO
example
ISSUES_RESOLVE
*.pyc

# ビルド・配布関連
build/
dist/
*.egg-info/

# 一時ファイル・出力
output/
output.md
test_output/
.SourceSageAssets/
.SourceSageAssetsDemo/
**/.SourceSageAssets/
sourcesage/config/
tests
changelog_generator.log
issue_creator.log
issue_response.txt

.ipynb_checkpoints
# アセット
*.png
*.svg
assets/

# その他
LICENSE
example/
package-lock.json
.DS_Store

# 特定のディレクトリを除外
tests/temp/
docs/drafts/

# パターンの例外(除外対象から除外)
!docs/important.md
!.github/workflows/
repository_summary.md

venv/
.venv/
docs/
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -169,3 +169,4 @@ temp/
issue_response.txt
llm_output.md
output.html
sourcesage/modules/DocuSum/repository_summary.md
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,23 +96,23 @@ sourcesage
#### IssueWizeを使って詳細なIssueの作成

```bash
sourcesage --mode IssueWize --issue-summary "IssueWize.pyをSourceSageのCLIコマンドから実行できるようにコマンドを追加する。SourceSageのCLIコマンドからパラメータを指定できるようにしたい(repo_overview_fileやモデル名などのパラメータ)" --project-name "TaskSphere" --milestone-name "Sprint01" --repo-overview-file ".SourceSageAssets\DOCUMIND\Repository_summary.md" --issuewize-model "gemini/gemini-1.5-flash"
sourcesage --mode IssueWize --issue-summary "IssueWize.pyをSourceSageのCLIコマンドから実行できるようにコマンドを追加する。SourceSageのCLIコマンドからパラメータを指定できるようにしたい(repo_overview_fileやモデル名などのパラメータ)" --project-name "TaskSphere" --milestone-name "Sprint01" --repo-overview-file ".SourceSageAssets/DOCUMIND/Repository_summary.md" --issuewize-model "gemini/gemini-1.5-flash"
```

詳しくは[こちら`docs/ISSUEWIZE.md`](docs/ISSUEWIZE.md)

#### コミットメッセージの生成

```bash
sourcesage --mode CommitCraft --model-name "gemini/gemini-1.5-pro-latest" --stage-info-file ".SourceSageAssets\COMMIT_CRAFT/STAGE_INFO\STAGE_INFO_AND_PROMT_GAIAH_B.md" --commit-craft-output ".SourceSageAssets/COMMIT_CRAFT/" --llm-output "llm_output.md"
sourcesage --mode CommitCraft --model-name "gemini/gemini-1.5-pro-latest" --stage-info-file ".SourceSageAssets/COMMIT_CRAFT/STAGE_INFO/STAGE_INFO_AND_PROMT_GAIAH_B.md" --commit-craft-output ".SourceSageAssets/COMMIT_CRAFT/" --llm-output "llm_output.md"
```

詳しくは[こちら`docs/COMMITCRAFT.md`](docs/COMMITCRAFT.md)

#### リリースノートの生成

```bash
sourcesage --mode DocuMind --docuMind-model "gemini/gemini-1.5-pro-latest" --docuMind-db ".SourceSageAssets\DOCUMIND\Repository_summary.md" --docuMind-release-report ".SourceSageAssets\RELEASE_REPORT\Report_v5.0.2.md" --docuMind-changelog ".SourceSageAssets\Changelog\CHANGELOG_release_5.0.2.md" --docuMind-output ".SourceSageAssets/DOCUMIND/RELEASE_NOTES_v5.0.2.md" --docuMind-prompt-output ".SourceSageAssets/DOCUMIND/_PROMPT_v5.0.2.md" --repo-name "SourceSage" --repo-version "v0.5.0"
sourcesage --mode DocuMind --docuMind-model "gemini/gemini-1.5-pro-latest" --docuMind-db ".SourceSageAssets/DOCUMIND/Repository_summary.md" --docuMind-release-report ".SourceSageAssets/RELEASE_REPORT/Report_v5.0.2.md" --docuMind-changelog ".SourceSageAssets/Changelog/CHANGELOG_release_5.0.2.md" --docuMind-output ".SourceSageAssets/DOCUMIND/RELEASE_NOTES_v5.0.2.md" --docuMind-prompt-output ".SourceSageAssets/DOCUMIND/_PROMPT.md" --repo-name "SourceSage" --repo-version "v0.5.0"
```

```bash
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
name='sourcesage',

# パッケージのバージョン
version='5.6.1',
version='6.0.0',

# パッケージに含めるモジュールを自動的に探す
packages=find_packages(),
Expand Down
35 changes: 6 additions & 29 deletions sourcesage/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
from loguru import logger
import sys
from art import *
import yaml

from .config.constants import Constants
from .modules.CommitCraft import CommitCraft
from .modules.DocuMind import DocuMind
Expand Down Expand Up @@ -86,9 +84,9 @@ def add_arguments(parser):
#
parser.add_argument('--llm-output', type=str, default="llm_output.md", help='LLMレスポンスの出力ファイル')
parser.add_argument('--ss-model-name', type=str, default=None, help='LLMのモデル名(デフォルト: None)')
parser.add_argument('--stage-info-file', type=str, default=".SourceSageAssets\COMMIT_CRAFT/STAGE_INFO\STAGE_INFO_AND_PROMT_GAIAH_B.md", help='ステージファイルパス')
parser.add_argument('--stage-info-file', type=str, default=".SourceSageAssets/COMMIT_CRAFT/STAGE_INFO/STAGE_INFO_AND_PROMT_GAIAH_B.md", help='ステージファイルパス')
parser.add_argument('--commit-craft-output', type=str, default=".SourceSageAssets/COMMIT_CRAFT/", help='CommitCraftの出力フォルダ')

# ==============================================
# DocuMind用の引数を追加
#
Expand All @@ -113,26 +111,6 @@ def parse_arguments():
add_arguments(parser)
return parser.parse_args()

def load_config_from_yaml(yaml_file=None):
"""YAMLファイルから設定を読み込み、argparse.Namespaceオブジェクトを返す"""
default_config_file = 'sourcesage_config.yml'

if yaml_file:
config_file = yaml_file
elif os.path.exists(default_config_file):
config_file = default_config_file
else:
return None # 設定ファイルが見つからない場合は None を返す

logger.info(f"{config_file}を読み込みます...")
with open(config_file, 'r') as f:
yaml_args = yaml.safe_load(f)
args_dict = {} # args_dict を初期化
for key, value in yaml_args.items():
key = key.replace("-", "_")
logger.debug(">> {: >30} : {: <20}".format(str(key), str(value)))
args_dict[key] = value
return argparse.Namespace(**args_dict)

def log_arguments(args):
"""引数の内容をログ出力する"""
Expand All @@ -148,7 +126,7 @@ def run(args=None):
# SourceSageの実行
if 'all' in args.ss_mode or 'Sage' in args.ss_mode:
logger.info("SourceSageを起動します...")
sourcesage = SourceSage(args.ss_config, args.ss_output, args.repo, args.owner, args.repository, args.ignore_file, args.language_map,
sourcesage = SourceSage(args.ss_output, args.repo, args.owner, args.repository, args.ignore_file, args.language_map,
args.changelog_start_tag, args.changelog_end_tag)
sourcesage.run()

Expand Down Expand Up @@ -208,10 +186,9 @@ def main():
logger.debug(f"dotenv_path : {dotenv_path}")
load_dotenv(dotenv_path=dotenv_path, verbose=True, override=True)

_args = parse_arguments()
args = load_config_from_yaml(_args.yaml_file) or _args
log_arguments(args)

args = parse_arguments()
log_arguments(args)
run(args)

if __name__ == '__main__':
main()
5 changes: 1 addition & 4 deletions sourcesage/config/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,7 @@ def set_output_dir(self, output_dir):
self.SOURCE_SAGE_ASSETS_DIR = os.path.join(output_dir, ".SourceSageAssets")
self.ISSUE_LOG_DIR = os.path.join(self.SOURCE_SAGE_ASSETS_DIR, "ISSUE_LOG")
self.ISSUES_RESOLVE_DIR = os.path.join(self.SOURCE_SAGE_ASSETS_DIR, "ISSUE_WISE/ISSUES_RESOLVE")
self.STAGE_INFO_DIR = os.path.join(self.SOURCE_SAGE_ASSETS_DIR, "COMMIT_CRAFT/STAGE_INFO")



self.STAGE_INFO_DIR = os.path.join(self.SOURCE_SAGE_ASSETS_DIR, "COMMIT_CRAFT/STAGE_INFO")

self.TEMPLATE_ISSUES_RESOLVE_DIR = os.path.join(self.DOCS_DIR, "ISSUES_RESOLVE")
self.ISSUES_RESOLVE_TEMPLATE_MD = "ISSUES_RESOLVE_TEMPLATE.md"
Expand Down
36 changes: 20 additions & 16 deletions sourcesage/config/language_map.json
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
{
".py": "python",
".js": "javascript",
".java": "java",
".c": "c",
".cpp": "cpp",
".h": "cpp",
".cs": "csharp",
".go": "go",
".php": "php",
".rb": "ruby",
".rs": "rust",
".ts": "typescript",
".html": "html",
".css": "css",
".md": "markdown",
".json": "json",
".xml": "xml",
".yml": "yaml",
".yaml": "yaml",
".md": "markdown",
".txt": "plaintext",
".sh": "bash",
".bash": "bash",
".sql": "sql",
"Dockerfile": "dockerfile",
".xml": "xml",
".java": "java",
".cpp": "cpp",
".c": "c",
".h": "c",
".hpp": "cpp",
".cs": "csharp",
".go": "go",
".rs": "rust",
".rb": "ruby",
".php": "php",
".scala": "scala",
".kt": "kotlin",
".swift": "swift",
".r": "r",
".dockerfile": "dockerfile",
"docker-compose.yml": "yaml",
"docker-compose.yaml": "yaml"
}
".tex": "tex"
}
11 changes: 2 additions & 9 deletions sourcesage/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@
from loguru import logger

class SourceSage:
def __init__(self, config_path, output_dir, repo_path, owner, repository, ignore_file, language_map_file,
def __init__(self, output_dir, repo_path, owner, repository, ignore_file, language_map_file,
changelog_start_tag=None, changelog_end_tag=None):
self.config_path = config_path
self.output_dir = output_dir
self.repo_path = repo_path
self.ignore_file = ignore_file
Expand All @@ -30,9 +29,6 @@ def __init__(self, config_path, output_dir, repo_path, owner, repository, ignore
def run(self):
logger.info("Running SourceSage...")

# Load configuration
config = self.load_config()

# Create necessary directories
os.makedirs(self.constants.ISSUE_LOG_DIR, exist_ok=True)
os.makedirs(self.constants.ISSUES_RESOLVE_DIR, exist_ok=True)
Expand Down Expand Up @@ -99,7 +95,4 @@ def run(self):

# logger.info("SourceSage completed successfully.")
# tprint("!! successfully !!", font="rnd-medium")
def load_config(self):
# Load configuration from YAML file
# Implement this method based on your configuration file structure
pass

41 changes: 41 additions & 0 deletions sourcesage/modules/DocuSum/.SourceSageignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# バージョン管理システム関連
.git/
.gitignore

# キャッシュファイル
__pycache__/
.pytest_cache/
**/__pycache__/**
*.pyc

# ビルド・配布関連
build/
dist/
*.egg-info/

# 一時ファイル・出力
output/
output.md
test_output/
.SourceSageAssets/
.SourceSageAssetsDemo/

# アセット
*.png
*.svg
assets/

# その他
LICENSE
example/
package-lock.json
.DS_Store

# 特定のディレクトリを除外
tests/temp/
docs/drafts/

# パターンの例外(除外対象から除外)
!docs/important.md
!.github/workflows/
repository_summary.md
Loading

0 comments on commit 28dd939

Please sign in to comment.