mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 06:14:59 +00:00
ORGANIZED INTO 4 MAIN CATEGORIES: - react/ React TypeScript components (145 components + Python bindings) - qml/ QML desktop components (104+ QML components) - python/ Python package implementations - legacy/ Utilities, contexts, and migration-in-progress code SUPPORTING FOLDERS (kept as-is): - icons/ 421 SVG icons - theming/ Material Design 3 theme system - styles/ SCSS modules and utilities - scss/ SCSS preprocessor files - docs/ Documentation files STRUCTURE IMPROVEMENTS: ✅ All code preserved (nothing deleted) ✅ Clear separation by implementation type ✅ Better navigation and discoverability ✅ Easy to find what you need ✅ Professional organization DOCUMENTATION: - Added STRUCTURE.md explaining the new layout - Updated folder organization with clear purpose - Maintained all original functionality All files reorganized while keeping full functionality intact. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Scripts Directory
This directory contains utility scripts for the MetaBuilder project.
Scripts
triage-duplicate-issues.sh
Purpose: Automatically finds and closes duplicate GitHub issues while keeping the most recent one open.
Features:
- 🔍 Dynamically searches for duplicate issues using GitHub API
- 📅 Sorts issues by creation date (newest first)
- ✅ Keeps the most recent issue open as the canonical tracking issue
- 🔒 Closes all older duplicates with explanatory comments
- ⚙️ Configurable search pattern via environment variables
- 🛡️ Error handling and rate limiting protection
Usage:
# Basic usage (uses default search pattern)
export GITHUB_TOKEN="ghp_your_github_token_here"
./scripts/triage-duplicate-issues.sh
# With custom search pattern
export GITHUB_TOKEN="ghp_your_github_token_here"
export SEARCH_TITLE="Your custom issue title"
./scripts/triage-duplicate-issues.sh
# Show help
./scripts/triage-duplicate-issues.sh --help
Environment Variables:
GITHUB_TOKEN(required): GitHub personal access token withrepoaccessSEARCH_TITLE(optional): Issue title pattern to search for- Default:
"🚨 Production Deployment Failed - Rollback Required"
- Default:
How it works:
- Searches GitHub API for all open issues matching the title pattern
- Sorts issues by creation date (newest first)
- Identifies the most recent issue to keep open
- Adds an explanatory comment to each older duplicate
- Closes older duplicates with
state_reason: "not_planned"
Example output:
🔍 Searching for issues with title: "🚨 Production Deployment Failed - Rollback Required"
📊 Found 5 duplicate issues
📌 Most recent issue: #124 (created: 2025-12-27T10:30:00Z)
🔧 Starting bulk issue triage...
📋 Planning to close 4 duplicate issues
📌 Keeping issue #124 open (most recent)
📝 Adding comment to issue #122...
✅ Added comment to issue #122
🔒 Closing issue #122...
✅ Closed issue #122
...
✨ Triage complete!
test-triage-logic.sh
Purpose: Comprehensive test suite for the triage script logic.
Features:
- ✅ Tests multiple duplicate issues handling
- ✅ Tests two duplicate issues
- ✅ Tests single issue (should not close)
- ✅ Tests empty input handling
- ✅ Validates date sorting
- ✅ Tests jq parsing and formatting
Usage:
./scripts/test-triage-logic.sh
Example output:
🧪 Testing triage-duplicate-issues.sh logic
=============================================
Test 1: Multiple duplicate issues (should close all except most recent)
-----------------------------------------------------------------------
Total issues found: 5
Most recent issue: #124
Issues to close: 122 121 119 117
Count to close: 4
✅ PASS: Correctly identified most recent and 4 issues to close
...
=============================================
✅ All tests passed!
generate_mod.py
Purpose: Python script for generating module files.
Development Guidelines
Adding New Scripts
When adding new scripts to this directory:
- Use descriptive names that clearly indicate the script's purpose
- Add executable permissions:
chmod +x script-name.sh - Include usage documentation in the script header
- Add help flag support (
--helpor-h) - Handle errors gracefully with proper exit codes
- Update this README with script documentation
Testing Scripts
- Run
shellcheckon bash scripts before committing - Create test scripts for complex logic
- Validate with sample data before using in production
- Test edge cases (empty input, single item, etc.)
Best Practices
- ✅ Use
set -eto exit on errors - ✅ Validate required environment variables
- ✅ Add descriptive comments
- ✅ Use meaningful variable names
- ✅ Include usage examples
- ✅ Handle rate limiting for API calls
- ✅ Provide clear error messages