Stan44 1b7601120c Completed progress tracking system with multiple features
[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
2025-05-12 18:37:02 -05:00

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
```