[feature:track_progress] Implemented main progress tracking system [feature:git_integration] Added Git history analysis with commit tag parsing [feature:template_engine] Created flexible template engine for documentation generation [feature:feature_tracking] Implemented feature status tracking and updates [feature:changelog_generation] Added automatic changelog generation from commits [feature:code_stats] Added code statistics and metrics collection [feature:roadmap_generation] Implemented roadmap generation [new-feature:launcher_scripts:Created cross-platform launcher scripts for easy execution] [new-feature:executable_build:Added Nuitka-based executable build system] [new-feature:project_installation:Created setup script for easy installation to projects] [status:track_progress_and_feature_statuses] Completed automatic status document generation [status:git_integration] Completed parsing Git logs for status updates [status:doc_generation] Completed auto-generation of status docs and changelog [changelog:Added comprehensive progress tracking system] [changelog:Added feature status tracking with Git integration] [changelog:Added customizable template system for documentation] [changelog:Added automatic changelog generation from commit messages] [changelog:Added code statistics and metrics collection] [changelog:Added cross-platform launcher scripts] [changelog:Added executable build system using Nuitka] [changelog:Added project installation script] [milestone:v1.0] Completed initial release of progress tracking system
208 lines
6.1 KiB
Markdown
208 lines
6.1 KiB
Markdown
# Progress Tracker
|
|
|
|
A comprehensive tool for tracking project progress, feature status, and generating documentation from Git history.
|
|
|
|
## Overview
|
|
|
|
The Progress Tracker analyzes your Git repository and codebase to automatically generate:
|
|
|
|
- Feature tracking documentation
|
|
- Project status reports
|
|
- Changelog based on commit messages
|
|
- Code statistics and metrics
|
|
|
|
## Installation
|
|
|
|
### Prerequisites
|
|
|
|
- Python 3.8 or higher
|
|
- Git
|
|
|
|
### Dependencies
|
|
|
|
Install the required dependencies:
|
|
|
|
```bash
|
|
pip install -r scripts/track_progress/requirements.txt
|
|
```
|
|
|
|
For development or building the executable, install all dependencies:
|
|
|
|
```bash
|
|
pip install -r scripts/track_progress/requirements.txt[all]
|
|
```
|
|
|
|
### Quick Install
|
|
|
|
Run the setup script to install the tracker to your project:
|
|
|
|
```bash
|
|
python scripts/track_progress/scripts/setup_install.py --project "Your Project Name" --dest path/to/destination
|
|
```
|
|
|
|
Options:
|
|
- `--project name`: Set your project name
|
|
- `--dest folder`: Set destination directory (default: "scripts")
|
|
- `--verbose` or `-v`: Enable verbose output
|
|
- `--force` or `-f`: Force overwrite existing files
|
|
|
|
### Manual Installation
|
|
|
|
1. Copy the `track_progress` directory to your project
|
|
2. Create a `docs/status` directory in your project root
|
|
3. Create a `docs/features.md` file if it doesn't exist
|
|
4. Create a `CHANGELOG.md` file in your project root
|
|
|
|
## Usage
|
|
|
|
### Basic Usage
|
|
|
|
Run the tracker with default settings:
|
|
|
|
```bash
|
|
# Using the Python script
|
|
python scripts/track_progress/track_progress.py
|
|
|
|
# Using the executable (if built)
|
|
scripts/track_progress/track_progress
|
|
```
|
|
|
|
### Command-Line Options
|
|
|
|
The tracker supports the following command-line options:
|
|
|
|
```
|
|
--config PATH Path to configuration file (default: scripts/track_progress/progress_config.json)
|
|
--project NAME Project name (overrides config)
|
|
--output-dir DIR Output directory for status document (overrides config)
|
|
--repo PATH Repository path to analyze (default: current directory)
|
|
--verbose, -v Enable verbose output
|
|
```
|
|
|
|
Examples:
|
|
|
|
```bash
|
|
# Specify a custom configuration file
|
|
python scripts/track_progress/track_progress.py --config path/to/config.json
|
|
|
|
# Override project name
|
|
python scripts/track_progress/track_progress.py --project "My Project"
|
|
|
|
# Specify output directory
|
|
python scripts/track_progress/track_progress.py --output-dir docs/my-status
|
|
|
|
# Analyze a different repository
|
|
python scripts/track_progress/track_progress.py --repo path/to/repo
|
|
|
|
# Enable verbose output
|
|
python scripts/track_progress/track_progress.py --verbose
|
|
```
|
|
|
|
## Commit Message Tags
|
|
|
|
The tracker recognizes special tags in commit messages to update feature status and documentation:
|
|
|
|
| Tag | Description | Example |
|
|
|-----|-------------|---------|
|
|
| `[status:key]` | Update status of a component | `[status:database]` |
|
|
| `[feature:key]` | Mark a feature as completed | `[feature:login]` |
|
|
| `[new-feature:key:description]` | Add a new feature | `[new-feature:search:Implement search functionality]` |
|
|
| `[changelog:message]` | Add an entry to the changelog | `[changelog:Added dark mode]` |
|
|
| `[fix:description]` | Document a bug fix | `[fix:Fixed login issue]` |
|
|
| `[issue:id]` | Reference an issue | `[issue:42]` |
|
|
| `[breaking]` | Mark a breaking change | `[breaking]` |
|
|
| `[roadmap:milestone:item]` | Add an item to the roadmap | `[roadmap:v2:Add OAuth support]` |
|
|
| `[milestone:key]` | Reference a milestone | `[milestone:v1.0]` |
|
|
| `[priority:level]` | Set priority level | `[priority:high]` |
|
|
| `[owner:name]` | Assign an owner | `[owner:John]` |
|
|
| `[tag:name]` | Add a custom tag | `[tag:security]` |
|
|
|
|
Example commit message:
|
|
```
|
|
Implement search functionality [feature:search] [changelog:Added search with filtering]
|
|
```
|
|
|
|
## Configuration
|
|
|
|
The tracker uses a JSON configuration file (`progress_config.json`) with the following settings:
|
|
|
|
```json
|
|
{
|
|
"project_name": "Your Project",
|
|
"output_dir": "docs/status",
|
|
"status_doc": "status.md",
|
|
"features_file": "docs/features.md",
|
|
"changelog_file": "CHANGELOG.md",
|
|
"git_log_limit": 100,
|
|
"untagged_commit_limit": 50,
|
|
"top_files_limit": 20,
|
|
"exclude_dirs": ["node_modules", "venv", ".git"],
|
|
"source_extensions": [".py", ".cs", ".js"],
|
|
"templates": {
|
|
"status": "status_template.md",
|
|
"features": "feature_template.md",
|
|
"changelog": "changelog_template.md"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Output Files
|
|
|
|
The tracker generates the following files:
|
|
|
|
- `docs/features.md`: Feature tracking document
|
|
- `docs/status/status.md`: Project status document (or path specified in config)
|
|
- `CHANGELOG.md`: Project changelog
|
|
|
|
## Components
|
|
|
|
The tracker consists of the following components:
|
|
|
|
- `track_progress.py`: Main script that orchestrates the tracking process
|
|
- `config.py`: Configuration management
|
|
- `git_analyzer.py`: Git history analysis
|
|
- `code_stats.py`: Code statistics and metrics
|
|
- `feature_markdown.py`: Feature tracking utilities
|
|
- `template_engine.py`: Template rendering engine
|
|
- `changelog_generator.py`: Changelog generation
|
|
- `roadmap_generator.py`: Roadmap generation
|
|
|
|
## Building an Executable
|
|
|
|
You can build a standalone executable using Nuitka:
|
|
|
|
```bash
|
|
python scripts/track_progress/scripts/build_with_nuitka.py
|
|
```
|
|
|
|
This creates an executable in the `scripts/track_progress/dist` directory.
|
|
|
|
## Customizing Templates
|
|
|
|
The tracker uses Markdown templates to generate documentation. You can customize these templates in the `scripts/track_progress/templates` directory:
|
|
|
|
- `status_template.md`: Template for the status document
|
|
- `feature_template.md`: Template for the feature tracking document
|
|
- `changelog_template.md`: Template for the changelog
|
|
|
|
The templates use a simple syntax:
|
|
- `{{ variable }}`: Insert a variable
|
|
- `{% if condition %}...{% endif %}`: Conditional block
|
|
- `{% for item in items %}...{% endfor %}`: Loop over items
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
1. **Missing Git Repository**: Ensure you're running the tracker in a Git repository.
|
|
2. **No Features Found**: Create a basic `docs/features.md` file with at least one feature.
|
|
3. **Template Not Found**: Check that templates exist in the templates directory.
|
|
|
|
### Debug Mode
|
|
|
|
Run with `--verbose` to see detailed output:
|
|
|
|
```bash
|
|
python scripts/track_progress/track_progress.py --verbose
|
|
```
|