Skip to content

Commit 6034549

Browse files
feat: Add Docker Hub publishing workflow, version roadmap, and update project status documentation.
1 parent 0af290d commit 6034549

File tree

5 files changed

+315
-11
lines changed

5 files changed

+315
-11
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Publish to Docker Hub
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
inputs:
8+
tag:
9+
description: 'Docker image tag (default: latest)'
10+
required: false
11+
default: 'latest'
12+
13+
env:
14+
REGISTRY: docker.io
15+
IMAGE_NAME: git-chronoscope
16+
17+
jobs:
18+
build-and-push:
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
22+
packages: write
23+
24+
steps:
25+
- name: Checkout repository
26+
uses: actions/checkout@v4
27+
28+
- name: Set up QEMU
29+
uses: docker/setup-qemu-action@v3
30+
31+
- name: Set up Docker Buildx
32+
uses: docker/setup-buildx-action@v3
33+
34+
- name: Log in to Docker Hub
35+
uses: docker/login-action@v3
36+
with:
37+
username: ${{ secrets.DOCKERHUB_USERNAME }}
38+
password: ${{ secrets.DOCKERHUB_TOKEN }}
39+
40+
- name: Extract metadata (tags, labels)
41+
id: meta
42+
uses: docker/metadata-action@v5
43+
with:
44+
images: ${{ env.REGISTRY }}/${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}
45+
tags: |
46+
type=semver,pattern={{version}}
47+
type=semver,pattern={{major}}.{{minor}}
48+
type=raw,value=latest,enable={{is_default_branch}}
49+
type=raw,value=${{ github.event.inputs.tag }},enable=${{ github.event_name == 'workflow_dispatch' }}
50+
51+
- name: Build and push Docker image
52+
uses: docker/build-push-action@v5
53+
with:
54+
context: .
55+
platforms: linux/amd64,linux/arm64
56+
push: true
57+
tags: ${{ steps.meta.outputs.tags }}
58+
labels: ${{ steps.meta.outputs.labels }}
59+
cache-from: type=gha
60+
cache-to: type=gha,mode=max
61+
62+
- name: Update Docker Hub description
63+
uses: peter-evans/dockerhub-description@v4
64+
with:
65+
username: ${{ secrets.DOCKERHUB_USERNAME }}
66+
password: ${{ secrets.DOCKERHUB_TOKEN }}
67+
repository: ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}
68+
short-description: "Generate time-lapse visualizations of Git repository evolution"
69+
readme-filepath: ./README.md

CHANGELOG.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Changelog
2+
3+
All notable changes to git-chronoscope will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
- Docker Hub publishing workflow for multi-architecture images (amd64, arm64)
12+
- Version roadmap documentation for path to v1.0
13+
14+
### Changed
15+
- Version scheme updated to 0.9.x beta series before v1.0 release
16+
17+
## [0.9.0] - TBD
18+
19+
First public beta release.
20+
21+
### Features
22+
- **Core Functionality**
23+
- Time-lapse video generation from Git repository history
24+
- Commit information overlay (hash, author, date, message)
25+
- Multiple output formats: MP4, GIF, HTML interactive timeline
26+
- Customizable rendering options (FPS, resolution, themes, fonts, colors)
27+
28+
- **Advanced Features**
29+
- Path filtering with `--include` and `--exclude` glob patterns
30+
- Branch comparison with `--compare` flag
31+
- Author highlighting with unique colors per contributor
32+
- Semantic diffing with `--show-diff` flag
33+
- Interactive HTML timeline with searchable navigation
34+
35+
- **Performance & Scalability**
36+
- Frame caching for faster re-renders
37+
- Parallel processing with configurable worker count
38+
- Large repository support via `--sample-rate` and `--max-commits`
39+
- Date range filtering with `--since` and `--until`
40+
41+
- **Security**
42+
- Sensitive data redaction (API keys, passwords, tokens)
43+
- Input sanitization against prompt injection
44+
- File access control via `.agentignore`
45+
- Default blocklists for sensitive files
46+
- Filesystem sandboxing
47+
- Immutable audit logging
48+
- Dry-run mode for previewing actions
49+
50+
- **Integrations**
51+
- GitHub Actions workflow
52+
- GitLab CI/CD pipeline templates
53+
- VS Code extension
54+
- Jira issue filtering
55+
56+
- **Distribution**
57+
- PyPI package (`pip install git-chronoscope`)
58+
- Homebrew formula (`brew install git-chronoscope`)
59+
- Standalone executables for Windows, macOS, Linux
60+
- Docker image with pre-installed dependencies
61+
62+
- **Web GUI**
63+
- Flask-based web interface
64+
- Interactive configuration panel
65+
- Job history tracking
66+
- Real-time progress updates
67+
- Preview frame generation
68+
69+
### Documentation
70+
- Quick start guide
71+
- Contributing guidelines
72+
- Troubleshooting guide
73+
- System requirements
74+
- Dependencies documentation
75+
76+
---
77+
78+
## Version History
79+
80+
| Version | Status | Focus |
81+
|---------|--------|-------|
82+
| 0.9.0 | Beta | First public release |
83+
| 0.9.x | Beta | Distribution & integrations |
84+
| 1.0.0 | Planned | Stable release |

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "git-chronoscope"
7-
version = "1.0.0"
7+
version = "0.9.0"
88
description = "Generate time-lapse visualizations of Git repository evolution"
99
readme = "README.md"
1010
license = {text = "MIT"}

roadmap/README.md

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,17 @@ This document outlines the roadmap for the Git Time-Lapse project. The project a
44

55
## Implementation Status Overview
66

7-
**All roadmap items are now implemented! ✅**
7+
**Core features complete. Distribution and new integrations in progress.**
8+
9+
- Core Functionality: 4/4 ✅
10+
- Advanced Features: 5/5 ✅
11+
- Security: 12/12 ✅
12+
- Performance & Scalability: 3/3 ✅
13+
- Integrations: 4/4 ✅
14+
- Non-Functional: 4/4 ✅
15+
- Distribution: 3/5 (in progress)
16+
- New Integrations: 0/4 (planned)
17+
- New Advanced Features: 0/5 (planned for post-1.0)
818

919
### Core Functionality (4/4 ✅)
1020

@@ -70,17 +80,19 @@ This document outlines the roadmap for the Git Time-Lapse project. The project a
7080

7181
---
7282

73-
## Future Features (Not Yet Implemented)
83+
## Distribution (3/5 ✅)
7484

75-
### Distribution (0/5 ⏳)
85+
| Feature | Status | Description | Implementation |
86+
|---------|--------|-------------|----------------|
87+
| PyPI Package || `pip install git-chronoscope` | `.github/workflows/publish.yml` |
88+
| Homebrew Formula || `brew install git-chronoscope` | `Formula/git-chronoscope.rb` |
89+
| Standalone Executable || No Python required | `packaging/`, `.github/workflows/build-executables.yml` |
90+
| Docker Hub Image || Official Docker image | `Dockerfile` (not yet published) |
91+
| npm Package || Node.js wrapper | Not started |
7692

77-
| Feature | Status | Description |
78-
|---------|--------|-------------|
79-
| PyPI Package || `pip install git-chronoscope` |
80-
| Homebrew Formula || `brew install git-chronoscope` |
81-
| Standalone Executable || No Python required |
82-
| Docker Hub Image || Official Docker image |
83-
| npm Package || Node.js wrapper |
93+
---
94+
95+
## Future Features (Not Yet Implemented)
8496

8597
### New Integrations (0/4 ⏳)
8698

roadmap/VERSION_ROADMAP.md

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# Version Roadmap to v1.0
2+
3+
This document outlines the versioning strategy and release plan for git-chronoscope leading up to the official v1.0 release.
4+
5+
## Versioning Strategy
6+
7+
Git-chronoscope follows [Semantic Versioning](https://semver.org/):
8+
- **0.9.x-beta.N**: Beta releases with new features
9+
- **0.9.x-rc.N**: Release candidates for stabilization
10+
- **1.0.0**: First stable production release
11+
12+
## Current Status
13+
14+
**Version**: 0.9.0 (beta)
15+
16+
### What's Complete
17+
- Core time-lapse generation functionality
18+
- All advanced visualization features
19+
- Full security suite (12/12 features)
20+
- Performance optimizations
21+
- CI/CD integrations (GitHub, GitLab, VS Code, Jira)
22+
- Distribution infrastructure (PyPI, Homebrew, executables)
23+
24+
### What's In Progress
25+
- Docker Hub image publishing
26+
- npm package wrapper
27+
28+
### What's Planned for v1.0
29+
- Slack integration
30+
- Discord bot
31+
- Linear integration
32+
33+
---
34+
35+
## Release Schedule
36+
37+
### v0.9.0-beta.1 - Distribution Foundation
38+
**Status**: In Progress
39+
40+
Establish core distribution channels:
41+
- [x] PyPI package configuration
42+
- [x] Homebrew formula
43+
- [x] Standalone executable build scripts
44+
- [x] Docker Hub CI workflow
45+
- [ ] First PyPI publication
46+
- [ ] First Docker Hub publication
47+
- [ ] First GitHub Release with executables
48+
49+
### v0.9.0-beta.2 - npm Package
50+
**Status**: Planned
51+
52+
JavaScript ecosystem distribution:
53+
- [ ] Node.js CLI wrapper
54+
- [ ] npx zero-install support
55+
- [ ] npm registry publication
56+
57+
### v0.9.0-beta.3 - Slack Integration
58+
**Status**: Planned
59+
60+
Team collaboration features:
61+
- [ ] Slack bot application
62+
- [ ] `/chronoscope` slash command
63+
- [ ] Threaded progress updates
64+
- [ ] Interactive configuration
65+
66+
### v0.9.0-beta.4 - Discord Bot
67+
**Status**: Planned
68+
69+
Community distribution:
70+
- [ ] Discord bot using discord.py
71+
- [ ] Slash commands
72+
- [ ] Video preview embeds
73+
74+
### v0.9.0-beta.5 - Linear Integration
75+
**Status**: Planned
76+
77+
Issue tracking support:
78+
- [ ] Linear API client
79+
- [ ] `--linear-issue` CLI flag
80+
- [ ] Webhook triggers
81+
82+
### v0.9.0-rc.1 - Release Candidate
83+
**Status**: Planned
84+
85+
Stabilization and polish:
86+
- [ ] Comprehensive cross-platform testing
87+
- [ ] Documentation review
88+
- [ ] Performance benchmarking
89+
- [ ] Security audit
90+
- [ ] Bug fixes from beta feedback
91+
92+
### v1.0.0 - Official Release
93+
**Status**: Planned
94+
95+
Production-ready release criteria:
96+
- [ ] All distribution channels published
97+
- [ ] Slack and Discord integrations functional
98+
- [ ] Linear integration complete
99+
- [ ] Documentation complete
100+
- [ ] No critical bugs
101+
- [ ] Security review passed
102+
103+
---
104+
105+
## Post-1.0 Roadmap
106+
107+
Features planned for future major versions:
108+
109+
| Version | Features |
110+
|---------|----------|
111+
| v1.1 | Mobile Apps (iOS/Android), Custom Themes |
112+
| v1.2 | Analytics Dashboard |
113+
| v1.3 | AI-Powered Narration |
114+
| v1.4 | Real-Time Streaming |
115+
| v2.0 | Web Dashboard (SaaS) |
116+
117+
---
118+
119+
## Distribution Matrix
120+
121+
| Channel | v0.9.0 | v1.0.0 |
122+
|---------|--------|--------|
123+
| PyPI |||
124+
| Homebrew |||
125+
| Standalone |||
126+
| Docker Hub |||
127+
| npm |||
128+
| GitHub Releases |||
129+
130+
---
131+
132+
## Contributing
133+
134+
See [CONTRIBUTING.md](../CONTRIBUTING.md) for guidelines on contributing to git-chronoscope.
135+
136+
To help with a specific release milestone:
137+
1. Check the release checklist above
138+
2. Pick an unchecked item
139+
3. Open a PR referencing the version target

0 commit comments

Comments
 (0)