Skip to content

Commit 8cc2fc7

Browse files
committed
ticket -> issue
1 parent 44a0b45 commit 8cc2fc7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+2189
-2035
lines changed

.claude/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ SPDX-License-Identifier: MIT
88

99
## Project Overview
1010

11-
This is **release-tool**, a comprehensive Python CLI tool for managing releases using semantic versioning. It automates release note generation by consolidating commits, fetching ticket details from GitHub, and creating beautifully formatted release notes.
11+
This is **release-tool**, a comprehensive Python CLI tool for managing releases using semantic versioning. It automates release note generation by consolidating commits, fetching issue details from GitHub, and creating beautifully formatted release notes.
1212

1313
## Key Capabilities
1414

1515
- **Semantic Versioning**: Full support for versions, release candidates, betas, alphas
16-
- **Ticket Consolidation**: Groups commits by parent tickets for cleaner release notes
16+
- **Issue Consolidation**: Groups commits by parent issues for cleaner release notes
1717
- **GitHub Integration**: Syncs PRs, issues, releases via parallelized API calls
1818
- **Local Git Analysis**: Analyzes commit history from local repositories
1919
- **Template-based Output**: Jinja2 templates for customizable release notes
@@ -35,13 +35,13 @@ This is **release-tool**, a comprehensive Python CLI tool for managing releases
3535
```
3636
src/release_tool/
3737
├── main.py # CLI entry point (sync, generate, list-releases commands)
38-
├── models.py # Pydantic models (SemanticVersion, Commit, PR, Ticket, Release)
38+
├── models.py # Pydantic models (SemanticVersion, Commit, PR, Issue, Release)
3939
├── config.py # Configuration with validation
4040
├── db.py # SQLite database operations
4141
├── git_ops.py # Git operations (find commits, tags, version comparison)
4242
├── github_utils.py # GitHub API client (search, fetch, create releases/PRs)
4343
├── sync.py # Parallelized sync manager
44-
├── policies.py # Ticket extraction, consolidation, categorization
44+
├── policies.py # Issue extraction, consolidation, categorization
4545
└── media_utils.py # Media download utilities
4646
```
4747

@@ -56,7 +56,7 @@ export GITHUB_TOKEN="ghp_..." # Set GitHub token
5656

5757
### 2. Sync GitHub Data
5858
```bash
59-
release-tool sync # Sync tickets, PRs, releases
59+
release-tool sync # Sync issues, PRs, releases
6060
```
6161

6262
### 3. Generate Release Notes
@@ -152,7 +152,7 @@ See `.claude/commands/` for custom slash commands:
152152

153153
## Key Design Patterns
154154

155-
1. **Ticket Consolidation**: Commits grouped by parent ticket for cleaner notes
155+
1. **Issue Consolidation**: Commits grouped by parent issue for cleaner notes
156156
2. **Version Comparison**: RCs compare to previous RC, finals to previous final
157157
3. **Incremental Sync**: Only fetch new items since last sync
158158
4. **Parallel Everything**: All GitHub operations parallelized

.claude/architecture.md

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ The release tool has a strict separation between online (GitHub API) and offline
1414
- **Purpose**: Fetch data from GitHub API and store in local database
1515
- **Internet**: REQUIRED
1616
- **Operations**:
17-
- Fetch ALL tickets from ticket repos (comprehensive initial sync)
17+
- Fetch ALL issues from issue repos (comprehensive initial sync)
1818
- Fetch pull requests from code repo
1919
- Clone/update git repository
2020
- Store everything in local SQLite database
@@ -29,16 +29,16 @@ The release tool has a strict separation between online (GitHub API) and offline
2929
- **Internet**: NOT REQUIRED (must work offline)
3030
- **Operations**:
3131
- Read commits from git repository
32-
- Extract ticket references from branches/PRs/commits
33-
- Query tickets from LOCAL database only
32+
- Extract issue references from branches/PRs/commits
33+
- Query issues from LOCAL database only
3434
- Generate formatted release notes
3535
- **Rules**:
3636
- ✅ CAN read from database
3737
- ✅ CAN read from local git repo
3838
- ✅ CAN write release notes to files
3939
- ❌ MUST NOT call GitHub API
40-
- ❌ MUST NOT fetch tickets from GitHub
41-
- ⚠️ If ticket not in DB: warn user to run `sync` first
40+
- ❌ MUST NOT fetch issues from GitHub
41+
- ⚠️ If issue not in DB: warn user to run `sync` first
4242

4343
### `publish` command - GitHub Publishing (Online)
4444
- **Purpose**: Upload release notes to GitHub
@@ -52,42 +52,42 @@ The release tool has a strict separation between online (GitHub API) and offline
5252
- ✅ CAN read from database
5353
- ❌ MUST NOT fetch additional data from GitHub
5454

55-
### `tickets` command - Database Query (Offline)
56-
- **Purpose**: Query and explore tickets in local database
55+
### `issues` command - Database Query (Offline)
56+
- **Purpose**: Query and explore issues in local database
5757
- **Internet**: NOT REQUIRED (fully offline)
5858
- **Operations**:
59-
- Search tickets by key, repo, or fuzzy patterns
60-
- Support smart TICKET_KEY formats (8624, #8624, meta#8624, meta#8624~, owner/repo#8624)
61-
- Export ticket data to CSV
62-
- Debug partial ticket matches
59+
- Search issues by key, repo, or fuzzy patterns
60+
- Support smart ISSUE_KEY formats (8624, #8624, meta#8624, meta#8624~, owner/repo#8624)
61+
- Export issue data to CSV
62+
- Debug partial issue matches
6363
- Explore synced data
6464
- **Rules**:
6565
- ✅ CAN read from database
6666
- ✅ CAN display data in table or CSV format
6767
- ❌ MUST NOT call GitHub API
68-
- ⚠️ Only shows synced tickets (remind user to sync first)
68+
- ⚠️ Only shows synced issues (remind user to sync first)
6969

70-
### Use Cases for tickets:
71-
- **Debugging partial matches**: Find why a ticket wasn't matched during release note generation
72-
- **Exploring tickets**: See what tickets are in the database
73-
- **Data export**: Export tickets to CSV for analysis
74-
- **Number proximity**: Find tickets with similar numbers (useful for tracking down typos)
70+
### Use Cases for issues:
71+
- **Debugging partial matches**: Find why a issue wasn't matched during release note generation
72+
- **Exploring issues**: See what issues are in the database
73+
- **Data export**: Export issues to CSV for analysis
74+
- **Number proximity**: Find issues with similar numbers (useful for tracking down typos)
7575
- **Pattern matching**: Use starts-with, ends-with for flexible searching
7676

7777
## Database Design
7878

79-
### Ticket Storage
80-
- Tickets are stored with their source `repo_id` (e.g., sequentech/meta)
81-
- Code repos and ticket repos have different repo_ids
82-
- Use `db.get_ticket_by_key(key)` to search across all repos
83-
- Use `db.get_ticket(repo_id, key)` only when repo is known
79+
### Issue Storage
80+
- Issues are stored with their source `repo_id` (e.g., sequentech/meta)
81+
- Code repos and issue repos have different repo_ids
82+
- Use `db.get_issue_by_key(key)` to search across all repos
83+
- Use `db.get_issue(repo_id, key)` only when repo is known
8484

8585
## Sync Strategy
8686

8787
### Initial Sync (First Time)
88-
- Fetch ALL tickets from ticket repos (no cutoff date)
88+
- Fetch ALL issues from issue repos (no cutoff date)
8989
- Fetch ALL pull requests from code repo (no cutoff date)
90-
- This ensures historical tickets are available
90+
- This ensures historical issues are available
9191

9292
### Incremental Sync (Subsequent Runs)
9393
- Use `last_sync` timestamp as cutoff
@@ -100,27 +100,27 @@ The release tool has a strict separation between online (GitHub API) and offline
100100
```python
101101
# BAD - This makes generate require internet
102102
github_client = GitHubClient(config)
103-
ticket = github_client.fetch_issue_by_key(repo, key, repo_id)
103+
issue = github_client.fetch_issue_by_key(repo, key, repo_id)
104104
```
105105

106106
### ✅ DO: Query from database only
107107
```python
108108
# GOOD - Works offline
109-
ticket = db.get_ticket_by_key(change.ticket_key)
110-
if not ticket:
111-
console.print("Ticket not found. Run 'sync' first.")
109+
issue = db.get_issue_by_key(change.issue_key)
110+
if not issue:
111+
console.print("Issue not found. Run 'sync' first.")
112112
```
113113

114114
### ❌ DON'T: Query with wrong repo_id
115115
```python
116-
# BAD - code_repo_id won't find tickets from ticket repos
117-
ticket = db.get_ticket(code_repo_id, "8624")
116+
# BAD - code_repo_id won't find issues from issue repos
117+
issue = db.get_issue(code_repo_id, "8624")
118118
```
119119

120120
### ✅ DO: Search across all repos
121121
```python
122-
# GOOD - Finds ticket in any repo
123-
ticket = db.get_ticket_by_key("8624")
122+
# GOOD - Finds issue in any repo
123+
issue = db.get_issue_by_key("8624")
124124
```
125125

126126
## Testing Guidelines
@@ -159,8 +159,8 @@ The release tool uses semantic versioning for config files to handle breaking ch
159159

160160
### Version History
161161
- **1.0**: Initial config format
162-
- **1.1**: Added template variables (ticket_url, pr_url)
163-
- **1.2**: Added partial_ticket_action policy
162+
- **1.1**: Added template variables (issue_url, pr_url)
163+
- **1.2**: Added partial_issue_action policy
164164

165165
### When to Bump Config Version
166166

@@ -284,13 +284,13 @@ def test_migration_1_1_to_1_2():
284284
old_config = {
285285
'config_version': '1.1',
286286
'repository': {'code_repo': 'test/repo'},
287-
'ticket_policy': {}
287+
'issue_policy': {}
288288
}
289289

290290
new_config = migrate(old_config)
291291

292292
assert new_config['config_version'] == '1.2'
293-
assert new_config['ticket_policy']['partial_ticket_action'] == 'warn'
293+
assert new_config['issue_policy']['partial_issue_action'] == 'warn'
294294
assert new_config['repository']['code_repo'] == 'test/repo' # Preserved
295295
```
296296

.claude/commands/debug-sync.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Debug synchronization issues with detailed logging and GitHub API diagnostics.
1313
Steps:
1414
1. Check configuration is valid:
1515
```bash
16-
cat release_tool.toml | grep -E "(code_repo|ticket_repos|parallel_workers|cutoff_date)"
16+
cat release_tool.toml | grep -E "(code_repo|issue_repos|parallel_workers|cutoff_date)"
1717
```
1818

1919
2. Verify GitHub token is set and valid:
@@ -44,7 +44,7 @@ Steps:
4444
```bash
4545
sqlite3 release_tool.db << EOF
4646
SELECT 'Repositories:', COUNT(*) FROM repositories;
47-
SELECT 'Tickets:', COUNT(*) FROM tickets;
47+
SELECT 'Issues:', COUNT(*) FROM issues;
4848
SELECT 'Pull Requests:', COUNT(*) FROM pull_requests;
4949
SELECT 'Releases:', COUNT(*) FROM releases;
5050
SELECT 'Sync Metadata:', * FROM sync_metadata;

.claude/commands/perf-profile.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Steps:
2424
```
2525

2626
3. Analyze the output for:
27-
- **Search phase timing**: How long "Searching for tickets/PRs" takes
27+
- **Search phase timing**: How long "Searching for issues/PRs" takes
2828
- **Filtering phase**: Time spent filtering against existing DB
2929
- **Parallel fetch timing**: Items/second throughput
3030
- **Progress gaps**: Any delays >2 seconds without feedback
@@ -46,7 +46,7 @@ Steps:
4646
6. Analyze database size and query performance:
4747
```bash
4848
ls -lh release_tool.db
49-
sqlite3 release_tool.db "SELECT COUNT(*) FROM tickets;"
49+
sqlite3 release_tool.db "SELECT COUNT(*) FROM issues;"
5050
sqlite3 release_tool.db "SELECT COUNT(*) FROM pull_requests;"
5151
```
5252

.claude/commands/sync-fast.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ SPDX-License-Identifier: MIT
88
description: Fast sync with progress monitoring and timing statistics
99
---
1010

11-
Run a fast, parallelized sync of GitHub data (tickets, PRs, releases) with detailed progress monitoring.
11+
Run a fast, parallelized sync of GitHub data (issues, PRs, releases) with detailed progress monitoring.
1212

1313
Steps:
1414
1. Check if `release_tool.toml` exists and has valid configuration
@@ -20,7 +20,7 @@ Steps:
2020
4. Monitor the output for:
2121
- Progress indicators (searching, filtering, fetching)
2222
- Parallel fetch progress bars
23-
- Final statistics (tickets, PRs, releases synced)
23+
- Final statistics (issues, PRs, releases synced)
2424
5. Report total time taken
2525
6. If sync takes >60 seconds, suggest checking:
2626
- Network connectivity

0 commit comments

Comments
 (0)