Skip to content

Main dev - #1

Merged
ShuhaoZhangTony merged 81 commits into
mainfrom
main-dev
Mar 30, 2026
Merged

ShuhaoZhangTony merged 81 commits into
mainfrom
main-dev

Conversation

@ShuhaoZhangTony

Copy link
Copy Markdown
Contributor

No description provided.

- Add pyproject.toml for isage-examples (v0.1.0)
- Update sage-apps to v0.2.4 with enhanced packaging
- Add build.sh automation script for package building and publishing
- Add quickstart.sh for easy installation
- Add comprehensive PyPI release documentation
- Add .gitignore for Python projects
- Add MANIFEST.in for both packages
- Add test_apps.py for application testing
- Successfully published isage-examples to PyPI
@ShuhaoZhangTony ShuhaoZhangTony moved this to In Progress in SAGE Jan 8, 2026
@ShuhaoZhangTony ShuhaoZhangTony added the enhancement New feature or request label Jan 8, 2026
🏗️ Major Structural Changes:
- Renamed apps/ → examples/ (clearer purpose as application examples)
- Moved tutorials/ → SAGE/tutorials/ (tutorials belong in main framework repo)
- Created docs/ directory for centralized documentation

📚 Documentation:
- Created sage-examples.chatmode.md (Custom Copilot chat mode)
- Updated copilot-instructions.md with comprehensive SAGE knowledge
- Moved PYPI_*.md files to docs/
- Created DEVELOPMENT.md and REFACTORING_SUMMARY.md
- Simplified README.md (removed excessive migration notices)

🔧 Development Tools:
- Added .pre-commit-config.yaml (11 hooks: ruff, mypy, shellcheck, mdformat, etc.)
- Created quality.yml and tests.yml workflows
- Aligned with SAGE main repository standards

✨ Breaking Changes:
- apps/ → examples/ (update imports and paths)
- tutorials/ removed from sage-examples (now in SAGE repo)
- Removed backward compatibility aliases in pyproject.toml

📦 Dependencies:
- Simplified pyproject.toml descriptions
- Removed tutorial-related dependencies
- Focused on application examples only

🎯 Purpose:
This refactoring makes sage-examples a focused repository for production
application examples, while tutorials are integrated into the SAGE main
repository for better discoverability and maintenance.

See docs/REFACTORING_SUMMARY.md for complete details.
🧹 Cleanup:
- Remove broken symlink 'data' (pointed to deleted tutorials/agents/data)
- Remove tutorials/ references from README.md and copilot-instructions.md
- Update DEVELOPMENT.md with current structure (no tutorials/, no data/)
- Add MIGRATION_COMPLETE.md documenting the tutorials migration

📝 Documentation Updates:
- Update README.md: removed 'data/' from structure, fixed test commands
- Update copilot-instructions.md:
  - Tutorials now in SAGE repo (SAGE/tutorials/)
  - Examples data in sage-apps packages
  - Removed outdated tutorial running commands
- Update DEVELOPMENT.md: reflect current directory structure

All references to tutorials/ now correctly point to SAGE/tutorials/.
🔧 Configuration:
- Create tools/config/ruff.toml (centralized ruff config)
- Update .pre-commit-config.yaml to use unified config
- Update pyproject.toml to extend tools/config/ruff.toml
- Update sage-apps/pyproject.toml path: tools/ruff.toml → tools/config/ruff.toml

🐛 Bug Fixes:
- Fix undefined 'project_root' in examples/run_medical_diagnosis.py
- Fix undefined 'project_root' in sage-apps medical_diagnosis/scripts/prepare_data.py
- Remove unused 'Path' imports in examples/
- Add strict=True to zip() calls in video operators (B905)

✅ Verification:
- ruff check . --config tools/config/ruff.toml ✅ All checks passed
- ruff format . --config tools/config/ruff.toml ✅ Formatted 1 file
- pre-commit run ruff --all-files ✅ Passed
- pre-commit run ruff-format --all-files ✅ Passed

This fixes the CI error:
  Cause: Failed to load extended configuration '/home/runner/work/sage-examples/tools/ruff.toml'

Now sage-examples follows SAGE repository's pre-commit hooks pattern.
- Update reference to sage-tutorials (now independent repository)
- Update reference to sage-benchmark (migrated to independent repository)
- Fix formatting and numbering
- Distinguish between 404 (package not found) and network errors
- 404 returns exit 1 (normal for first publish) instead of exit 2
- Update error message from 'network unavailable' to 'network/timeout issue'
- Add detailed comments for exit codes (0=exists, 1=not found, 2=error)
- Inline ruff configuration instead of extending tools/config/ruff.toml
- Fixes PyPI publish failure: bytecode compiler can't find external config in temp dir
- Error was: 'Illegal character at line 133' after pyproject.toml modification
- Bytecode compiler cannot parse TOML arrays with inline comments
- Simplified package-data configuration
- Successfully published to TestPyPI
- 移除所有额外的可选依赖组(examples, video, medical 等)
- 所有应用依赖移至核心 dependencies(默认安装)
- 只保留 dev 可选依赖(pytest, ruff, mypy)
- sage-apps 自动安装为核心依赖
- 简化 quickstart.sh,移除 C++ 构建步骤
- 更新 README.md 安装说明
- 修复测试警告(使用 assert 而非 return)
- 修复 E402 导入位置警告

遵循 SAGE 原则:只允许默认和 dev 两种依赖模式。
用户运行 `pip install -e .` 即可获得完整功能,无需额外标志。
- 目录 sage-apps/ → apps/ (避免与仓库名混淆)
- PyPI 包名保持 isage-apps 不变
- 更新所有脚本和文档中的引用
- 删除废弃的 requirements.txt (所有依赖已在 pyproject.toml)

符合 SAGE 原则:清晰的目录结构,避免命名混淆。
- testpaths: sage-apps/tests → apps/tests
- exclude: sage-apps* → apps*

修复重命名后的测试路径,确保 pytest 能找到所有测试。
@ShuhaoZhangTony
ShuhaoZhangTony merged commit e59c4e3 into main Mar 30, 2026
10 of 16 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in SAGE Mar 30, 2026
@ShuhaoZhangTony
ShuhaoZhangTony deleted the main-dev branch March 30, 2026 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants