[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
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:
pip install -r scripts/track_progress/requirements.txt
For development or building the executable, install all dependencies:
pip install -r scripts/track_progress/requirements.txt[all]
Quick Install
Run the setup script to install the tracker to your project:
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")--verboseor-v: Enable verbose output--forceor-f: Force overwrite existing files
Manual Installation
- Copy the
track_progressdirectory to your project - Create a
docs/statusdirectory in your project root - Create a
docs/features.mdfile if it doesn't exist - Create a
CHANGELOG.mdfile in your project root
Usage
Basic Usage
Run the tracker with default settings:
# 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:
# 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:
{
"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 documentdocs/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 processconfig.py: Configuration managementgit_analyzer.py: Git history analysiscode_stats.py: Code statistics and metricsfeature_markdown.py: Feature tracking utilitiestemplate_engine.py: Template rendering enginechangelog_generator.py: Changelog generationroadmap_generator.py: Roadmap generation
Building an Executable
You can build a standalone executable using Nuitka:
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 documentfeature_template.md: Template for the feature tracking documentchangelog_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
- Missing Git Repository: Ensure you're running the tracker in a Git repository.
- No Features Found: Create a basic
docs/features.mdfile with at least one feature. - Template Not Found: Check that templates exist in the templates directory.
Debug Mode
Run with --verbose to see detailed output:
python scripts/track_progress/track_progress.py --verbose